module Enumerable

def min_by

def min_by
  return to_enum(:min_by) unless block_given?
  min_object, min_result = nil, Backports::MOST_EXTREME_OBJECT_EVER
  each do |object|
    result = yield object
    min_object, min_result = object, result if min_result > result
  end
  min_object
end