Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/the_role_api/hash.rb

Overview

load ‘the_role/hash.rb’ - UPDATE, BUT NOT RELOAD [for console testing]

Instance Method Summary collapse

Instance Method Details

#deep_reset(default = nil) ⇒ Object



48
49
50
51
52
53
54
# File 'lib/the_role_api/hash.rb', line 48

def deep_reset(default = nil)
  hash = dup
  hash.each do |key, value|
    hash[key] = hash[key].is_a?(Hash) ? hash[key].deep_reset(default) : default
  end
  hash
end

#deep_reset!(default = nil) ⇒ Object



56
57
58
# File 'lib/the_role_api/hash.rb', line 56

def deep_reset!(default = nil)
  replace deep_reset(default)
end

#deep_stringify_keysObject



28
29
30
# File 'lib/the_role_api/hash.rb', line 28

def deep_stringify_keys
  deep_transform_keys{ |key| key.to_s }
end

#deep_stringify_keys!Object



32
33
34
# File 'lib/the_role_api/hash.rb', line 32

def deep_stringify_keys!
  deep_transform_keys!{ |key| key.to_s }
end

#deep_transform_keys(&block) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/the_role_api/hash.rb', line 10

def deep_transform_keys(&block)
  result = {}
  each do |key, value|
    result[yield(key)] = value.is_a?(Hash) ? value.deep_transform_keys(&block) : value
  end
  result
end

#deep_transform_keys!(&block) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/the_role_api/hash.rb', line 18

def deep_transform_keys!(&block)
  keys.each do |key|
    value = delete(key)
    self[yield(key)] = value.is_a?(Hash) ? value.deep_transform_keys!(&block) : value
  end
  self
end

#underscorify_keysObject



38
39
40
# File 'lib/the_role_api/hash.rb', line 38

def underscorify_keys
  deep_transform_keys{ |key| key.to_slug_param(sep: '_') }
end

#underscorify_keys!Object



42
43
44
# File 'lib/the_role_api/hash.rb', line 42

def underscorify_keys!
  replace underscorify_keys
end