Module: EasyConfig::EnvVar
- Included in:
- EasyConfig
- Defined in:
- lib/easy_config/env_var.rb
Class Method Summary collapse
- .create_method(base, name, value) ⇒ Object
- .env_vars ⇒ Object
- .extended(base) ⇒ Object
- .setup(base) ⇒ Object
Class Method Details
.create_method(base, name, value) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/easy_config/env_var.rb', line 24 def create_method(base, name, value) base.class_eval do (class << self; self; end).instance_eval do define_method(name.to_sym) { value } end end end |
.env_vars ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/easy_config/env_var.rb', line 13 def env_vars configs = {} ENV.each do |key, value| if key.downcase =~ /^([a-zA-Z][^_]+)_(\w+)/ configs[$1] = configs.fetch($1, {}) configs[$1][$2] = value end end configs end |
.extended(base) ⇒ Object
3 4 5 |
# File 'lib/easy_config/env_var.rb', line 3 def extended(base) setup(base) end |
.setup(base) ⇒ Object
7 8 9 10 11 |
# File 'lib/easy_config/env_var.rb', line 7 def setup(base) env_vars.each do |key, configs| create_method(base, key, EasyConfig::Configuration.new(configs)) end end |