Module: Chamber::Environmentable

Included in:
Filters::EnvironmentFilter
Defined in:
lib/chamber/environmentable.rb

Instance Method Summary collapse

Instance Method Details

#with_environment(settings, parent_keys, hash_block, value_block) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/chamber/environmentable.rb', line 5

def with_environment(settings, parent_keys, hash_block, value_block)
  environment_hash = Hashie::Mash.new

  settings.each_pair do |key, value|
    environment_keys = parent_keys.dup.push(key)

    if value.respond_to? :each_pair
      environment_hash.merge!(hash_block.call(key, value, environment_keys))
    else
      environment_key = environment_keys.join('_').upcase

      environment_hash.merge!(value_block.call(key, value, environment_key))
    end
  end

  environment_hash
end