Sha256: 27b948916e326e798f49b0cf3e7614773ccef8c2ed35faf35fb759682e8d65c6
Contents?: true
Size: 1.26 KB
Versions: 1
Compression:
Stored size: 1.26 KB
Contents
# Polisher Errata Operations # # Licensed under the MIT license # Copyright (C) 2013-2014 Red Hat, Inc. require 'json' require 'curb' module Polisher class Errata # Initialize/return singleton curl handle to # query errata and set url def self.client(url) @curl ||= begin c = Curl::Easy.new c.ssl_verify_peer = false c.ssl_verify_host = false c.http_auth_types = :negotiate c.userpwd = ':' end @curl.url = url @curl end def self.versions_for(advisory_url, name, &bl) result = self.client("#{advisory_url}/builds").get versions = JSON.parse(result.body_str).collect { |tag, builds| ErrataBuild.builds_matching(builds, name) }.flatten bl.call(:errata, name, versions) unless(bl.nil?) versions end end class ErrataBuild def self.builds_matching(builds, name) builds.collect { |build| self.build_matches?(build, name) ? self.build_version(build, name) : nil }.compact end def self.build_matches?(build, name) pkg,meta = *build.flatten pkg =~ /^rubygem-#{name}-([^-]*)-.*$/ end def self.build_version(build, name) pkg,meta = *build.flatten pkg.split('-')[2] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
polisher-0.8.1 | lib/polisher/errata.rb |