class Webdrivers::Geckodriver

Public Class Methods

base_url() click to toggle source

Returns url with domain for calls to get this driver.

@return [String]

# File lib/webdrivers/geckodriver.rb, line 35
def base_url
  'https://github.com/mozilla/geckodriver/releases'
end
current_version() click to toggle source

Returns current geckodriver version.

@return [Gem::Version]

# File lib/webdrivers/geckodriver.rb, line 13
def current_version
  Webdrivers.logger.debug 'Checking current version'
  return nil unless exists?

  version = binary_version
  return nil if version.nil?

  normalize_version version.match(/geckodriver (\d+\.\d+\.\d+)/)[1]
end
latest_version() click to toggle source

Returns latest available geckodriver version.

@return [Gem::Version]

# File lib/webdrivers/geckodriver.rb, line 27
def latest_version
  @latest_version ||= with_cache(file_name) { normalize_version(Network.get_url("#{base_url}/latest")[/[^v]*$/]) }
end

Private Class Methods

direct_url(version) click to toggle source
# File lib/webdrivers/geckodriver.rb, line 53
def direct_url(version)
  "#{base_url}/download/v#{version}/geckodriver-v#{version}-#{platform_ext}"
end
download_url() click to toggle source
# File lib/webdrivers/geckodriver.rb, line 45
def download_url
  @download_url ||= if required_version == EMPTY_VERSION
                      direct_url(latest_version)
                    else
                      direct_url(required_version)
                    end
end
file_name() click to toggle source
# File lib/webdrivers/geckodriver.rb, line 41
def file_name
  System.platform == 'win' ? 'geckodriver.exe' : 'geckodriver'
end
platform_ext() click to toggle source
# File lib/webdrivers/geckodriver.rb, line 57
def platform_ext
  case System.platform
  when 'linux'
    "linux#{System.bitsize}.tar.gz"
  when 'mac'
    'macos.tar.gz'
  when 'win'
    "win#{System.bitsize}.zip"
  end
end