Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/veritrans/core_extensions.rb

Overview

This is replacement for Hash#deep_merge in acive_support when acive_support not loaded

Instance Method Summary collapse

Instance Method Details

#deep_merge(second) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/veritrans/core_extensions.rb', line 7

def deep_merge(second)
  merger = proc { |key, v1, v2|
    if Hash === v1 && Hash === v2
      v1.merge(v2, &merger)
    else
      [:undefined, nil, :nil].include?(v2) ? v1 : v2
    end
  }
  self.merge(second, &merger)
end

#except(*keys) ⇒ Object



27
28
29
# File 'lib/veritrans/core_extensions.rb', line 27

def except(*keys)
  dup.except!(*keys)
end

#except!(*keys) ⇒ Object



20
21
22
23
# File 'lib/veritrans/core_extensions.rb', line 20

def except!(*keys)
  keys.each { |key| delete(key) }
  self
end