module Polisher::KojiVersions::ClassMethods

Public Instance Methods

has_build?(name, version) click to toggle source

Return bool indiciating if koji has a build exactly matching the specified version

# File lib/polisher/targets/koji/versions.rb, line 15
def has_build?(name, version)
  versions = versions_for name
  versions.include?(version)
end
has_build_satisfying?(name, version) click to toggle source

Return bool indicating if koji has a build which satisfies the specified ruby dependency

# File lib/polisher/targets/koji/versions.rb, line 22
def has_build_satisfying?(name, version)
  dep = ::Gem::Dependency.new name, version
  versions_for(name).any? { |v| dep.match?(name, v) }
end
tagged_version_for(name) click to toggle source
# File lib/polisher/targets/koji/versions.rb, line 47
def tagged_version_for(name)
  versions = {}
  tagged_versions_for(name).each do |tag, tagged_versions|
    versions[tag] = tagged_versions.first
  end
  versions
end
tagged_versions_for(name) click to toggle source
# File lib/polisher/targets/koji/versions.rb, line 39
def tagged_versions_for(name)
  versions = {}
  koji_tags.each do |tag|
    versions[tag] = versions_for_tag(name, tag).flatten.uniq
  end
  versions
end
versions_for(name, &bl) click to toggle source

Retrieve list of the versions of the specified package in koji

@param [String] name name of package to lookup @param [Callable] bl optional block to invoke with versions retrieved @return [Array<String>] versions retrieved, empty array if none found

# File lib/polisher/targets/koji/versions.rb, line 32
def versions_for(name, &bl)
  # koji xmlrpc call
  versions = tagged_versions_for(name).values.flatten.uniq
  bl.call(:koji, name, versions) unless bl.nil?
  versions
end
versions_for_tag(name, tag) click to toggle source
# File lib/polisher/targets/koji/versions.rb, line 55
def versions_for_tag(name, tag)
  metadata =
    package_prefixes.collect do |prefix|
      #                         tag  event inherit prefix latest
      client.call('listTagged', tag, nil,  true,   nil,   false,
                  "#{prefix}#{name}")
    end

  metadata.flatten.collect { |b| b['version'] }.uniq
end