Class: MiniAutobot::Settings

Inherits:
Object
  • Object
show all
Defined in:
lib/mini_autobot/settings.rb

Overview

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.

Instance Method Summary collapse

Constructor Details

#initializeSettings

Returns a new instance of Settings.



13
14
15
# File 'lib/mini_autobot/settings.rb', line 13

def initialize
  @hsh = {}
end

Instance Method Details

#auto_finalize?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/mini_autobot/settings.rb', line 22

def auto_finalize?
  hsh.fetch(:auto_finalize, true)
end

#connectorObject



26
27
28
# File 'lib/mini_autobot/settings.rb', line 26

def connector
  hsh.fetch(:connector, :firefox).to_s
end

#envObject



30
31
32
33
34
# File 'lib/mini_autobot/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

#feature_flipsObject



104
105
106
# File 'lib/mini_autobot/settings.rb', line 104

def feature_flips
  hsh[:feature_flips]
end

#google_sheetObject



100
101
102
# File 'lib/mini_autobot/settings.rb', line 100

def google_sheet
  hsh[:google_sheets]
end

#google_sheets?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'lib/mini_autobot/settings.rb', line 96

def google_sheets?
  hsh[:google_sheets] != false
end

#inspectObject



17
18
19
20
# File 'lib/mini_autobot/settings.rb', line 17

def inspect
  settings = self.class.public_instance_methods(false).sort.map(&:inspect).join(', ')
  "#<MiniAutobot::Settings #{settings}>"
end

#ioObject



49
50
51
# File 'lib/mini_autobot/settings.rb', line 49

def io
  hsh[:io]
end

#merge!(other) ⇒ Object



53
54
55
56
# File 'lib/mini_autobot/settings.rb', line 53

def merge!(other)
  hsh.merge!(other.symbolize_keys)
  self
end

#parallelObject

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



60
61
62
63
64
65
66
# File 'lib/mini_autobot/settings.rb', line 60

def parallel
  if hsh[:parallel] == 0
    return nil
  else
    hsh.fetch(:parallel).to_i
  end
end

#raw_argumentsObject



68
69
70
# File 'lib/mini_autobot/settings.rb', line 68

def raw_arguments
  hsh.fetch(:args, nil).to_s
end

#rerun_failureObject



76
77
78
# File 'lib/mini_autobot/settings.rb', line 76

def rerun_failure
  hsh.fetch(:rerun_failure)
end

#reuse_driver?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/mini_autobot/settings.rb', line 72

def reuse_driver?
  hsh.fetch(:reuse_driver, false)
end

#sauce_access_keyObject



45
46
47
# File 'lib/mini_autobot/settings.rb', line 45

def sauce_access_key
  sauce_user["pass"]
end

#sauce_session_http_auth(driver) ⇒ Object



36
37
38
39
# File 'lib/mini_autobot/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_usernameObject



41
42
43
# File 'lib/mini_autobot/settings.rb', line 41

def sauce_username
  sauce_user["user"]
end

#seedObject



80
81
82
# File 'lib/mini_autobot/settings.rb', line 80

def seed
  hsh.fetch(:seed, nil).to_i
end

#tagsObject



84
85
86
# File 'lib/mini_autobot/settings.rb', line 84

def tags
  hsh[:tags] ||= []
end

#verbose?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'lib/mini_autobot/settings.rb', line 88

def verbose?
  verbosity_level > 0
end

#verbosity_levelObject



92
93
94
# File 'lib/mini_autobot/settings.rb', line 92

def verbosity_level
  hsh.fetch(:verbosity_level, 0).to_i
end