Class: Hash

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

Instance Method Summary collapse

Instance Method Details

#deep_symbolize_keysObject

Implement this method because only is supported by > Rails 4, so if you want use only ruby, this will help. :)



25
26
27
28
29
30
31
32
33
# File 'lib/snoopy_afip/core_ext/hash.rb', line 25

def deep_symbolize_keys
  return self.reduce({}) do |memo, (k, v)|
    memo.tap { |m| m[k.to_sym] = (v.is_a?(Hash) || v.is_a?(Array)) ? v.deep_symbolize_keys : v }
  end if self.is_a? Hash
  return self.reduce([]) do |memo, v|
    memo << v.deep_symbolize_keys; memo
  end if self.is_a? Array
  self
end

#symbolize_keysObject



9
10
11
# File 'lib/snoopy_afip/core_ext/hash.rb', line 9

def symbolize_keys
  dup.symbolize_keys!
end

#symbolize_keys!Object



2
3
4
5
6
7
# File 'lib/snoopy_afip/core_ext/hash.rb', line 2

def symbolize_keys!
  keys.each do |key|
    self[(key.to_sym rescue key) || key] = delete(key)
  end
  self
end

#underscore_keysObject



20
21
22
# File 'lib/snoopy_afip/core_ext/hash.rb', line 20

def underscore_keys
  dup.underscore_keys!
end

#underscore_keys!Object



13
14
15
16
17
18
# File 'lib/snoopy_afip/core_ext/hash.rb', line 13

def underscore_keys!
  keys.each do |key|
    self[(key.underscore rescue key) || key] = delete(key)
  end
  self
end