# File lib/chef/provider/package/yum.rb, line 107
          def version_available?(package_name, desired_version, arch)
            if (package_data = @data[package_name])
              if (available_versions = package_data[:available])
                if arch
                  # arch gets passed like ".x86_64"
                  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

                # Expect [ { :version => "ver", :release => "rel" }, { :version => "ver", :release => "rel" }, { :version => "ver", :release => "rel" } ] ???
                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