Sha256: b762a534d0cdc6f7a731b51f5e83303e7cc322a8ee6d6dfdfd2df1bd4d047952

Contents?: true

Size: 353 Bytes

Versions: 42

Compression:

Stored size: 353 Bytes

Contents

class Array
  # Return 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

Version data entries

42 entries across 42 versions & 3 rubygems

Version Path
social_url_stats-0.0.1 vendor/ruby/1.9.1/gems/activesupport-3.0.0/lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.20 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.19 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.18 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.17 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.16 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.15 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.14 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.13 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.13.rc1 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.12 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.12.rc1 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.11 lib/active_support/core_ext/array/uniq_by.rb
messagebus_ruby_api-0.4.7 spec/ruby/1.9.1/gems/activesupport-3.0.9/lib/active_support/core_ext/array/uniq_by.rb
messagebus_ruby_api-0.4.4 spec/ruby/1.9.1/gems/activesupport-3.0.9/lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.10 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.10.rc1 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.9 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.9.rc5 lib/active_support/core_ext/array/uniq_by.rb
activesupport-3.0.9.rc4 lib/active_support/core_ext/array/uniq_by.rb