Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/core_extensions/hash/deep_dup.rb,
lib/core_extensions/hash/assert_required_keys.rb

Instance Method Summary collapse

Instance Method Details

#assert_required_keys(*required_keys) ⇒ Object



2
3
4
5
6
7
8
# File 'lib/core_extensions/hash/assert_required_keys.rb', line 2

def assert_required_keys(*required_keys)
  required_keys.each do |required_key|
    unless has_key?(required_key)
      raise ArgumentError, "Missing required key: #{required_key}"
    end
  end
end

#deep_dupObject



3
4
5
6
7
8
9
10
# File 'lib/core_extensions/hash/deep_dup.rb', line 3

def deep_dup
  duplicate = self.dup
  duplicate.each_pair do |k,v|
    tv = duplicate[k]
    duplicate[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? tv.deep_dup : v
  end
  duplicate
end