    # 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