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