Module: TestBench::Environment::Boolean

Defined in:
lib/test_bench/environment/boolean.rb

Constant Summary collapse

Error =
Class.new(RuntimeError)

Class Method Summary collapse

Class Method Details

.false_patternObject



35
36
37
# File 'lib/test_bench/environment/boolean.rb', line 35

def self.false_pattern
  @false_pattern ||= %r{\A(?:off|no|n|false|f|0)\z}ni
end

.fetch(env_var, default_value = nil, env: nil) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/test_bench/environment/boolean.rb', line 6

def self.fetch(env_var, default_value=nil, env: nil)
  value = get(env_var, env: env)

  return default_value if value.nil?

  value
end

.get(env_var, env: nil) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/test_bench/environment/boolean.rb', line 14

def self.get(env_var, env: nil)
  env ||= ::ENV

  return nil unless env.key?(env_var)

  text_value = env.fetch(env_var)

  case text_value
  when true_pattern
    true
  when false_pattern
    false
  else
    raise Error, "Invalid boolean value for ENV variable #{env_var.inspect} (Value: #{text_value.inspect})"
  end
end

.true_patternObject



31
32
33
# File 'lib/test_bench/environment/boolean.rb', line 31

def self.true_pattern
  @true_pattern ||= %r{\A(?:on|yes|y|true|t|1)\z}ni
end