def version_available?(package_name, desired_version, arch)
if (package_data = @data[package_name])
if (available_versions = package_data[:available])
if arch
matching_versions = [ available_versions[arch.sub(/^./, '')]]
else
matching_versions = available_versions.values
end
if matching_versions.nil?
if arch.empty?
arch_msg = ""
else
arch_msg = "with arch #{arch.sub(/^./, '')} "
end
raise ArgumentError, "#{package_name}: Found no available versions #{arch_msg}to match"
end
matching_versions.each do |ver|
Chef::Log.debug("#{@new_resource} trying to match #{desired_version} to version #{ver[:version]} and release #{ver[:release]}")
if (desired_version == "#{ver[:version]}-#{ver[:release]}")
return true
end
end
end
end
nil
end