module UsefulUtilities::Hash

Hash utilities

Public Instance Methods

group_by_keys(*list) click to toggle source
# File lib/useful_utilities/hash.rb, line 15
def group_by_keys(*list)
  collect_keys(*list).inject({}) do |result, key|
    result[key] = []
    list.each { |item| result[key] << item[key] if item.has_key?(key) }

    result
  end
end
sum_values(*list) click to toggle source
# File lib/useful_utilities/hash.rb, line 6
def sum_values(*list)
  collect_keys(*list).inject({}) do |result, key|
    result[key] = 0
    list.each { |item| result[key] += item[key] if item.has_key?(key) }

    result
  end
end

Private Instance Methods

collect_keys(*list) click to toggle source
# File lib/useful_utilities/hash.rb, line 26
def collect_keys(*list)
  list.inject([]) { |result, item| result |= item.keys }
end