Module: EasyCreds::Flatten
- Defined in:
- lib/easy_creds/flatten.rb
Class Method Summary collapse
Class Method Details
.dot(hash, prefix = nil) ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/easy_creds/flatten.rb', line 5 def self.dot(hash, prefix = nil) hash.each_with_object({}) do |(key, value), result| full_key = prefix ? "#{prefix}.#{key}" : key.to_s if value.is_a?(Hash) result.merge!(dot(value, full_key)) else result[full_key] = value end end end |
.unflatten(flat) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/easy_creds/flatten.rb', line 16 def self.unflatten(flat) flat.each_with_object({}) do |(key, value), result| parts = key.to_s.split('.') leaf = parts.pop node = parts.reduce(result) { |acc, part| acc[part.to_sym] ||= {} } node[leaf.to_sym] = value end end |