class Chromedriver::Helper::GoogleCodeParser

Constants

BUCKET_URL

Attributes

newest_download_version[R]
platform[R]
source[R]

Public Class Methods

new(platform, open_uri_provider=OpenURI) click to toggle source
# File lib/chromedriver/helper/google_code_parser.rb, line 12
def initialize(platform, open_uri_provider=OpenURI)
  @platform = platform
  @source = open_uri_provider.open_uri(BUCKET_URL)
  @newest_download_version = Gem::Version.new(open_uri_provider.open_uri(URI.join(BUCKET_URL, "LATEST_RELEASE")).read)
end

Public Instance Methods

downloads() click to toggle source
# File lib/chromedriver/helper/google_code_parser.rb, line 18
def downloads
  @downloads ||= begin
    doc = Nokogiri::XML.parse(source)
    items = doc.css("Contents Key").collect {|k| k.text }
    items.reject! {|k| !(/chromedriver_#{platform}/===k) }
    items.map {|k| "#{BUCKET_URL}/#{k}"}
  end
end
version_download_url(version) click to toggle source
# File lib/chromedriver/helper/google_code_parser.rb, line 27
def version_download_url(version)
  gem_version = Gem::Version.new(version)
  downloads.find { |download_url| version_of(download_url) == gem_version }
end

Private Instance Methods

grab_version_string_from(url) click to toggle source
# File lib/chromedriver/helper/google_code_parser.rb, line 38
def grab_version_string_from url
  # assumes url is of form similar to http://chromedriver.storage.googleapis.com/2.3/chromedriver_mac32.zip
  url.split("/")[3]
end
version_of(url) click to toggle source
# File lib/chromedriver/helper/google_code_parser.rb, line 34
def version_of url
  Gem::Version.new grab_version_string_from(url)
end