Class: Webspicy::Support::DeepMerge
- Inherits:
-
Object
- Object
- Webspicy::Support::DeepMerge
- Defined in:
- lib/webspicy/support/deep_merge.rb
Class Method Summary collapse
Class Method Details
.deep_dup(x) ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/webspicy/support/deep_merge.rb', line 23 def deep_dup(x) case x when Array x.map{|y| deep_dup(y) } when Hash x.each_with_object({}){|(k,v),memo| memo[k] = deep_dup(v) } else x end end |
.deep_merge(h1, h2) ⇒ Object
19 20 21 |
# File 'lib/webspicy/support/deep_merge.rb', line 19 def deep_merge(h1, h2) merge_maps(deep_dup(h1), deep_dup(h2)) end |
.symbolize_keys(arg) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/webspicy/support/deep_merge.rb', line 6 def symbolize_keys(arg) case arg when Hash arg.each_pair.each_with_object({}){|(k,v),memo| memo[k.to_sym] = symbolize_keys(v) } when Array arg.map{|item| symbolize_keys(item) } else arg end end |