class Proxy::Omaha::ReleaseProvider

Attributes

architecture[RW]
track[RW]

Public Class Methods

new(options) click to toggle source
# File lib/smart_proxy_omaha/release_provider.rb, line 14
def initialize(options)
  @track = options.fetch(:track)
  @architecture = options.fetch(:architecture, 'amd64-usr')
end

Public Instance Methods

fetch_releases() click to toggle source
# File lib/smart_proxy_omaha/release_provider.rb, line 23
def fetch_releases
  releases = http_request.get("https://#{track}.release.core-os.net/#{architecture}/")
  xml = Nokogiri::HTML(releases)
  parsed = (xml.xpath('//a/text()').map(&:to_s) - ['current']).map do |v|
    Proxy::Omaha::Release.new(:version => v, :track => track, :architecture => architecture)
  end.sort
  logger.debug "Fetched releases for #{architecture}/#{track}: #{parsed.map(&:to_s).join(', ')}"
  parsed
end
releases() click to toggle source
# File lib/smart_proxy_omaha/release_provider.rb, line 19
def releases
  @releases ||= fetch_releases
end

Private Instance Methods

http_request() click to toggle source
# File lib/smart_proxy_omaha/release_provider.rb, line 35
def http_request
  @http_request ||= ::Proxy::Omaha::HttpRequest.new
end