Module: MobME::Infrastructure::Utilities::CoreExtensions::Keys
Overview
Hash extension, allowing recursive Hash key symbolization
Instance Method Summary collapse
-
#recursively_symbolize_keys(modify_nested_arrays = false) ⇒ Hash, Array
(also: #recursive_symbolize_keys)
Returns a version of the supplies Hash or Array with all Hash keys symbolized.
-
#recursively_symbolize_keys!(modify_nested_arrays = false) ⇒ Hash, Array
(also: #recursive_symbolize_keys!)
Recursively symbolize all keys in hashes.
Instance Method Details
#recursively_symbolize_keys(modify_nested_arrays = false) ⇒ Hash, Array Also known as: recursive_symbolize_keys
Returns a version of the supplies Hash or Array with all Hash keys symbolized.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/mobme_support/core_ext/hash/keys.rb', line 14 def recursively_symbolize_keys(modify_nested_arrays = false) recursively_symbolized_value = case self when Hash symbolized_hash = symbolize_keys symbolized_hash.each do |key, value| if value.is_a?(Hash) || (modify_nested_arrays && value.is_a?(Array)) symbolized_hash[key] = value.recursively_symbolize_keys(modify_nested_arrays) end end symbolized_hash when Array symbolized_array = self.dup symbolized_array.each_with_index do |value, index| symbolized_array[index] = value.recursively_symbolize_keys(true) if (value.is_a?(Hash) || value.is_a?(Array)) end symbolized_array end recursively_symbolized_value end |
#recursively_symbolize_keys!(modify_nested_arrays = false) ⇒ Hash, Array Also known as: recursive_symbolize_keys!
Recursively symbolize all keys in hashes.
45 46 47 |
# File 'lib/mobme_support/core_ext/hash/keys.rb', line 45 def recursively_symbolize_keys!(modify_nested_arrays = false) replace recursively_symbolize_keys(modify_nested_arrays) end |