class Browsery::Settings

An object that holds runtime settings.

Furthermore, Minitest doesn't provide any good way of passing a hash of options to each test.

TODO: We're importing ActiveSupport's extensions to Hash, which means that we'll be amending the way Hash objects work; once AS updates themselves to ruby 2.0 refinements, let's move towards that.

Attributes

hsh[R]

Public Class Methods

new() click to toggle source
# File lib/browsery/settings.rb, line 13
def initialize
  @hsh = {}
end

Public Instance Methods

auto_finalize?() click to toggle source
# File lib/browsery/settings.rb, line 22
def auto_finalize?
  hsh.fetch(:auto_finalize, true)
end
connector() click to toggle source
# File lib/browsery/settings.rb, line 26
def connector
  hsh.fetch(:connector, :firefox).to_s
end
env() click to toggle source
# File lib/browsery/settings.rb, line 30
def env
  # add a gitignored env file which stores a default env
  # pass the default env in as default
  hsh.fetch(:env, :rent_qa).to_s
end
inspect() click to toggle source
# File lib/browsery/settings.rb, line 17
def inspect
  settings = self.class.public_instance_methods(false).sort.map(&:inspect).join(', ')
  "#<Browsery::Settings #{settings}>"
end
io() click to toggle source
# File lib/browsery/settings.rb, line 49
def io
  hsh[:io]
end
merge!(other) click to toggle source
# File lib/browsery/settings.rb, line 53
def merge!(other)
  hsh.merge!(other.symbolize_keys)
  self
end
parallel() click to toggle source

can be used as a flag no matter parallel option is used in command line or not can also be used to fetch the value if a valid value is specified

# File lib/browsery/settings.rb, line 60
def parallel
  if hsh[:parallel] == 0
    return nil
  else
    hsh.fetch(:parallel).to_i
  end
end
raw_arguments() click to toggle source
# File lib/browsery/settings.rb, line 68
def raw_arguments
  hsh.fetch(:args, nil).to_s
end
rerun_failure() click to toggle source
# File lib/browsery/settings.rb, line 76
def rerun_failure
  hsh.fetch(:rerun_failure)
end
reuse_driver?() click to toggle source
# File lib/browsery/settings.rb, line 72
def reuse_driver?
  hsh.fetch(:reuse_driver, false)
end
sauce_access_key() click to toggle source
# File lib/browsery/settings.rb, line 45
def sauce_access_key
  sauce_user["pass"]
end
sauce_session_http_auth(driver) click to toggle source
# File lib/browsery/settings.rb, line 36
def sauce_session_http_auth(driver)
  session_id = driver.session_id
  "https://#{sauce_username}:#{sauce_access_key}@saucelabs.com/rest/v1/#{sauce_username}/jobs/#{session_id}"
end
sauce_username() click to toggle source
# File lib/browsery/settings.rb, line 41
def sauce_username
  sauce_user["user"]
end
seed() click to toggle source
# File lib/browsery/settings.rb, line 84
def seed
  hsh.fetch(:seed, nil).to_i
end
tags() click to toggle source
# File lib/browsery/settings.rb, line 88
def tags
  hsh[:tags] ||= []
end
verbose?() click to toggle source
# File lib/browsery/settings.rb, line 92
def verbose?
  verbosity_level > 0
end
verbosity_level() click to toggle source
# File lib/browsery/settings.rb, line 96
def verbosity_level
  hsh.fetch(:verbosity_level, 0).to_i
end
visual_regression() click to toggle source
# File lib/browsery/settings.rb, line 80
def visual_regression
  hsh.fetch(:visual_regression)
end

Private Instance Methods

sauce_user() click to toggle source
# File lib/browsery/settings.rb, line 103
def sauce_user
  overrides = connector.split(/:/)
  file_name = overrides.shift
  path = Browsery.root.join('config/browsery', 'connectors')
  filepath  = path.join("#{file_name}.yml")
  raise ArgumentError, "Cannot load profile #{file_name.inspect} because #{filepath.inspect} does not exist" unless filepath.exist?

  cfg = YAML.load(File.read(filepath))
  cfg = Connector.resolve(cfg, overrides)
  cfg.freeze
  cfg["hub"]
end