class Hash
Public Instance Methods
recursive_symbolize_keys()
click to toggle source
Return a new instance of Hash which represents the same data as self
but with all keys - including those of sub-hashes - symbolized
# File lib/core-extensions/hash.rb, line 11 def recursive_symbolize_keys new_hash = {} self.each_pair do |k,v| new_hash[k.to_sym] = value_or_symbolize_value(v) end new_hash end
recursive_symbolize_keys!()
click to toggle source
Modify self
in place, transforming all keys - including those of sub-hashes - in to symbols
# File lib/core-extensions/hash.rb, line 22 def recursive_symbolize_keys! items = {} self.each_pair do |k,v| value = delete(k) items[k] = value_or_symbolize_value(value) end items end
Private Instance Methods
value_or_symbolize_value(value)
click to toggle source
Symbolize any hash key or sub-hash key containing within value
.
# File lib/core-extensions/hash.rb, line 34 def value_or_symbolize_value(value) if value.is_a? Hash return value.recursive_symbolize_keys elsif value.is_a? Array return value.map { |elem| value_or_symbolize_value(elem) } else return value end end