Module: HashHelper
- Defined in:
- lib/utils/hash_helper.rb
Overview
Module HashHelper
Class Method Summary collapse
-
.get_sorted(hash, type = :asc) ⇒ Hash
The method helps to get new sorted hash by key.
- .recursive_map_keys(data) ⇒ Object
-
.recursive_symbolize_keys(input_value) ⇒ Hash, Enumerable
The method recursively symbolizes keys of hash.
-
.recursive_unsymbolize_keys(input_value) ⇒ Hash, Enumerable
The method recursively unsymbolizes keys of hash.
Class Method Details
.get_sorted(hash, type = :asc) ⇒ Hash
The method helps to get new sorted hash by key.
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/utils/hash_helper.rb', line 14 def self.get_sorted(hash, type = :asc) hash = {} unless hash case type.to_s.downcase.to_sym when :asc Hash[hash.sort] when :desc Hash[hash.sort{|a,b| a<=>b}] else hash end end |
.recursive_map_keys(data) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/utils/hash_helper.rb', line 67 def self.recursive_map_keys(data) data.map{|k,v| if v.is_a?(Hash) && !v.empty? inner_array = recursive_map_keys(v) else inner_array = [] end [k] + inner_array }.reduce(:+) end |
.recursive_symbolize_keys(input_value) ⇒ Hash, Enumerable
The method recursively symbolizes keys of hash.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/utils/hash_helper.rb', line 31 def self.recursive_symbolize_keys(input_value) case input_value when Hash Hash[ input_value.map do |k, v| [k.respond_to?(:to_sym) ? k.to_sym : k, recursive_symbolize_keys(v)] end ] when Enumerable input_value.map { |v| recursive_symbolize_keys(v) } else input_value end end |
.recursive_unsymbolize_keys(input_value) ⇒ Hash, Enumerable
The method recursively unsymbolizes keys of hash.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/utils/hash_helper.rb', line 51 def self.recursive_unsymbolize_keys(input_value) case input_value when Hash Hash[ input_value.map do |k, v| [k.respond_to?(:to_s) ? k.to_s : k, recursive_unsymbolize_keys(v)] end ] when Enumerable input_value.map { |v| recursive_unsymbolize_keys(v) } else input_value end end |