Skip to content
This repository
tree: 7194b393a6
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 17 lines (15 sloc) 0.35 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
class Array
  # Returns an unique array based on the criteria given as a +Proc+.
  #
  # [1, 2, 3, 4].uniq_by { |i| i.odd? } # => [1, 2]
  #
  def uniq_by
    hash, array = {}, []
    each { |i| hash[yield(i)] ||= (array << i) }
    array
  end

  # Same as uniq_by, but modifies self.
  def uniq_by!
    replace(uniq_by{ |i| yield(i) })
  end
end
Something went wrong with that request. Please try again.