Module: Enumerable

Defined in:
lib/finishing_moves/enumerable.rb

Instance Method Summary collapse

Instance Method Details

#key_map(key) ⇒ Object



3
4
5
# File 'lib/finishing_moves/enumerable.rb', line 3

def key_map(key)
  map { |h| h[key] }
end

#key_map_reduce(key, arg = :+, &block) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/finishing_moves/enumerable.rb', line 7

def key_map_reduce(key, arg = :+, &block)
  if block_given?
    # arg is the initial value of memo
    key_map(key).reduce(arg, &block)
  else
    # arg is a named method
    raise ArgumentError.new "arg must be a method symbol" unless arg.is_a? Symbol
    key_map(key).reduce(arg)
  end
end