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