Method: EasySettings::PathSource#assign_value
- Defined in:
- lib/easy-settings/path_source.rb
#assign_value(data, keys, value) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/easy-settings/path_source.rb', line 27 def assign_value(data, keys, value) keys.map! do |key| next key.to_i if key =~ /^\d+/ next key.send(converter) if converter key rescue NoMethodError => e raise "Invalid name converter: #{converter}" end leaf = keys[0...-1].each_with_index.inject(data){ |h, (key, i)| h[key] ||= keys[i + 1].is_a?(Integer) ? [] : {} } leaf[keys.last] = parse_values ? EasySettings::Coercion.new(value).run : value end |