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
|