class Phantomjs::Helper::BitbucketDownloadParser

Attributes

driver_name[R]
source[R]
url[R]

Public Class Methods

new(driver_name, url:, open_uri_provider: OpenURI) click to toggle source
# File lib/phantomjs/helper/bitbucket_download_parser.rb, line 11
def initialize(driver_name, url:, open_uri_provider: OpenURI)
  @driver_name = driver_name
  @url = url
  @source = open_uri_provider.open_uri(url, {:ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE})
end

Public Instance Methods

downloads() click to toggle source
# File lib/phantomjs/helper/bitbucket_download_parser.rb, line 17
def downloads
  doc = Nokogiri::XML.parse(source)
  items = doc.css('table#uploaded-files tr.iterable-item td.name a.execute').collect {|k| {text:k.text, url:k[:href]} }
  items.reject! {|k| !(driver_name===k[:text]) }
  items.map {|k| URI.parse(url).tap {|u|u.path = k[:url]}.to_s}
end
newest_download() click to toggle source
# File lib/phantomjs/helper/bitbucket_download_parser.rb, line 24
def newest_download
  (downloads.sort { |a, b| version_of(a) <=> version_of(b)}).last
end

Private Instance Methods

grab_version_string_from(url) click to toggle source
# File lib/phantomjs/helper/bitbucket_download_parser.rb, line 34
def grab_version_string_from(url)
  url.match(/-(\d+\.?\d+\.?\d+)\-/).captures.first
end
version_of(url) click to toggle source
# File lib/phantomjs/helper/bitbucket_download_parser.rb, line 30
def version_of(url)
  Gem::Version.new grab_version_string_from(url)
end