Module: KeyFlatten
- Included in:
- Hash
- Defined in:
- lib/key_flatten.rb,
lib/key_flatten/version.rb
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.key_flatten(hash, symbolize: false, delimiter: '.', prefix: nil, result: {}) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/key_flatten.rb', line 4 def self.key_flatten(hash, symbolize: false, delimiter: '.', prefix: nil, result: {}) hash.each do |k, v| flat_key = prefix.nil? ? k.to_s : "#{prefix}#{delimiter}#{k}" flat_key = symbolize ? flat_key.to_sym : flat_key.to_s if v.is_a?(Hash) self.key_flatten(v, symbolize: symbolize, delimiter: delimiter, prefix: flat_key, result: result) else result[flat_key] = v end end result end |
Instance Method Details
#key_flatten(symbolize: false, delimiter: '.', prefix: nil) ⇒ Object
19 20 21 |
# File 'lib/key_flatten.rb', line 19 def key_flatten(symbolize: false, delimiter: '.', prefix: nil) ::KeyFlatten.key_flatten(self, symbolize: symbolize, delimiter: delimiter, prefix: prefix) end |