module Enumerable

def index_by

=> { "Chade- Fowlersburg-e" => , "David Heinemeier Hansson" => , ...}
people.index_by { |person| "#{person.first_name} #{person.last_name}" }
=> { "nextangle" => , "chade-" => , ...}
people.index_by(&:login)

Convert an enumerable to a hash.
def index_by
  if block_given?
    Hash[map { |elem| [yield(elem), elem] }]
  else
    to_enum(:index_by) { size if respond_to?(:size) }
  end
end