Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/ruby_wings.rb
Overview
Allow recursive merging of Hashes thanks to stackoverflow.com/a/25990044
Instance Method Summary collapse
Instance Method Details
#deep_merge(second) ⇒ Object
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/ruby_wings.rb', line 26 def deep_merge(second) merger = proc do |key, v1, v2| if Hash === v1 && Hash === v2 v1.merge(v2, &merger) else [:undefined, nil, :nil].include?(v2) ? v1 : v2 end end self.merge(second, &merger) end |
#symbolize ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/ruby_wings.rb', line 37 def symbolize Hash[ self.map do |k, v| [(k.respond_to?(:to_sym) ? k.to_sym : k), v.class == Hash ? v.symbolize : v] end ] end |