Sha256: fd0c844263afeab98f8799fb189cdd76c05c4786009cd4c59a8a83c50f762ffe

Contents?: true

Size: 1.16 KB

Versions: 3

Compression:

Stored size: 1.16 KB

Contents

require 'nokogiri'
require 'open-uri'

module Webdrivers
  class Geckodriver < Common
    class << self

      def current
        return nil unless downloaded?
        puts binary
        string = %x(#{binary} --version)
        puts string
        normalize string.match(/geckodriver (\d+\.\d+\.\d+)/)[1]
      end

      private

      def normalize(string)
        string.match(/(\d+)\.(\d+\.\d+)/).to_a.map {|v| v.tr('.', '') }[1..-1].join('.').to_f
      end

      def downloads
        raise StandardError, "Can not reach site" unless site_available?

        doc = Nokogiri::XML.parse(OpenURI.open_uri(base_url))
        items = doc.css(".release-downloads a").collect {|item| item["href"]}
        items.reject! {|item| item.include?('archive')}
        items.select! {|item| item.include?(platform)}
        items.each_with_object({}) do |item, hash|
          key = normalize item[/v(\d+\.\d+\.\d+)/, 1]
          hash[key] = "https://github.com#{item}"
        end
      end

      def file_name
        platform == "win" ? "geckodriver.exe" : "geckodriver"
      end

      def base_url
        'https://github.com/mozilla/geckodriver/releases'
      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
webdrivers-3.0.1 lib/webdrivers/geckodriver.rb
webdrivers-3.0.0 lib/webdrivers/geckodriver.rb
webdrivers-3.0.0.beta3 lib/webdrivers/geckodriver.rb