Module: SortByKey

Included in:
Hash
Defined in:
lib/sort_by_key.rb,
lib/sort_by_key/version.rb

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.sort_by_key(hash, symbolize_keys: false, recursive: false, &block) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/sort_by_key.rb', line 4

def self.sort_by_key(hash, symbolize_keys: false, recursive: false, &block)
  keys = symbolize_keys ? hash.keys.map(&:to_sym) : hash.keys
  keys.sort(&block).reduce({}) do |acc, k|
    v = hash[k]
    if recursive && v.is_a?(Hash)
      acc[k] = self.sort_by_key(v, symbolize_keys: symbolize_keys, recursive: recursive, &block)
    else
      acc[k] = v
    end
    acc
  end
end

Instance Method Details

#sort_by_key(symbolize_keys: false, recursive: false, &block) ⇒ Object



17
18
19
# File 'lib/sort_by_key.rb', line 17

def sort_by_key(symbolize_keys: false, recursive: false, &block)
  ::SortByKey.sort_by_key(self, symbolize_keys: symbolize_keys, recursive: recursive, &block)
end