Module: Inquisitive::Environment::Parser

Defined in:
lib/inquisitive/environment.rb

Class Method Summary collapse

Class Method Details

.[](var_name) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/inquisitive/environment.rb', line 51

def [](var_name)
  if ENV.has_key? var_name
    env_var = ENV[var_name]

    if env_var.include? ','
      env_var.split(',').map(&:strip)
    else
      env_var
    end

  elsif Parser.env_key? var_name

    Parser.env_keys_from(var_name).reduce({}) do |hash, key|
      hash[Parser.key_for(key, var_name)] = Inquisitive[Parser[key]]
      hash
    end

  end
end

.env_key?(var_name) ⇒ Boolean

Returns:

  • (Boolean)


77
78
79
# File 'lib/inquisitive/environment.rb', line 77

def env_key?(var_name)
  !env_keys_from(var_name).empty?
end

.env_keys_from(var_name) ⇒ Object



71
72
73
74
75
# File 'lib/inquisitive/environment.rb', line 71

def env_keys_from(var_name)
  ENV.keys.select do |key|
    key =~ /^#{var_name}_/
  end
end

.key_for(env_key, var_name) ⇒ Object



81
82
83
# File 'lib/inquisitive/environment.rb', line 81

def key_for(env_key, var_name)
  env_key.gsub("#{var_name}_", '').downcase
end