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
40 41 42 43 44 45 46 47 48 49 |
# File 'lib/ruby_wings.rb', line 40 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
51 52 53 54 55 56 57 |
# File 'lib/ruby_wings.rb', line 51 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 |