Class: Webdrivers::Common

Inherits:
Object
  • Object
show all
Defined in:
lib/webdrivers/common.rb

Direct Known Subclasses

Chromedriver, Geckodriver, IEdriver

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.cache_warningObject

Returns the value of attribute cache_warning.



68
69
70
# File 'lib/webdrivers/common.rb', line 68

def cache_warning
  @cache_warning
end

.required_versionGem::Version

Returns the user defined required version.

Returns:

  • (Gem::Version)


84
85
86
# File 'lib/webdrivers/common.rb', line 84

def required_version
  normalize_version @required_version
end

Class Method Details

.binaryObject



126
127
128
129
# File 'lib/webdrivers/common.rb', line 126

def binary
  Webdrivers.logger.deprecate('#binary', '#driver_path')
  driver_path
end

.desired_versionObject



103
104
105
106
107
108
109
# File 'lib/webdrivers/common.rb', line 103

def desired_version
  old = "#{self.class}#desired_version"
  new = "#{self.class}#required_version or #{self.class}#latest_version"
  Webdrivers.logger.deprecate(old, new)

  desired_version == EMPTY_VERSION ? latest_version : normalize_version(desired_version)
end

.downloadObject



121
122
123
124
# File 'lib/webdrivers/common.rb', line 121

def download
  Webdrivers.logger.deprecate('#download', '#update')
  System.download(download_url, driver_path)
end

.driver_pathString

Returns path to the driver binary.

Returns:

  • (String)


135
136
137
# File 'lib/webdrivers/common.rb', line 135

def driver_path
  File.join System.install_dir, file_name
end

.removeObject

Deletes the existing driver binary.



114
115
116
117
118
119
# File 'lib/webdrivers/common.rb', line 114

def remove
  @download_url = nil
  @latest_version = nil
  System.delete "#{System.install_dir}/#{file_name.gsub('.exe', '')}.version"
  System.delete driver_path
end

.updateString

Triggers an update check.

Returns:

  • (String)

    Path to the driver binary.



92
93
94
95
96
97
98
99
100
101
# File 'lib/webdrivers/common.rb', line 92

def update
  if correct_binary?
    msg = required_version != EMPTY_VERSION ?  'The required webdriver version' : 'A working webdriver version'
    Webdrivers.logger.debug "#{msg} is already on the system"
    return driver_path
  end

  remove
  System.download(download_url, driver_path)
end

.versionObject



70
71
72
73
# File 'lib/webdrivers/common.rb', line 70

def version
  Webdrivers.logger.deprecate("#{self.class}#version", "#{self.class}#required_version")
  required_version
end

.version=(version) ⇒ Object



75
76
77
78
# File 'lib/webdrivers/common.rb', line 75

def version=(version)
  Webdrivers.logger.deprecate("#{self.class}#version=", "#{self.class}#required_version=")
  self.required_version = version
end