mirror of
https://github.com/github/rails.git
synced 2026-01-29 16:28:09 -05:00
Remove Enumerable#first_match in favor of using break(result_for_each)
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4349 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -1,5 +1,18 @@
|
||||
*SVN*
|
||||
|
||||
* Remove Enumerable#first_match since break(value) handles the use case well enough. [Nicholas Seckar]
|
||||
Enumerable#first_match was like detect, but instead of returning the matching element, the yielded value returned. For example:
|
||||
|
||||
user_xml = adapters(:from => User, :to => Xml).first_match do |adapter|
|
||||
adapter.adapt @user
|
||||
end
|
||||
|
||||
But this is just as easily done with:
|
||||
|
||||
user_xml = adapters(:from => User, :to => Xml).each do
|
||||
break adapter.adapt(@user)
|
||||
end
|
||||
|
||||
* Make Array#in_groups_of just return the grouped collection if a block isn't given. [Marcel Molina Jr.]
|
||||
|
||||
* Don't destroy a HashWithIndifferentAccess if symbolize_keys! or stringify_keys! is called on it. Closes #5076. [Marcel Molina Jr., guy.naor@famundo.com]
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
module Enumerable #:nodoc:
|
||||
def first_match
|
||||
match = nil
|
||||
each do |items|
|
||||
break if match = yield(items)
|
||||
end
|
||||
match
|
||||
end
|
||||
|
||||
# Collect an enumerable into sets, grouped by the result of a block. Useful,
|
||||
# for example, for grouping records by date.
|
||||
#
|
||||
|
||||
@@ -3,16 +3,6 @@ require File.dirname(__FILE__) + '/../../lib/active_support/core_ext/enumerable'
|
||||
|
||||
class EnumerableTests < Test::Unit::TestCase
|
||||
|
||||
def test_first_match_no_match
|
||||
[[1, 2, 3, 4, 5], (1..9)].each {|a| a.first_match {|x| x > 10}}
|
||||
end
|
||||
|
||||
def test_first_match_with_match
|
||||
assert_equal true, [1, 2, 3, 4, 5, 6].first_match {|x| x > 4}
|
||||
assert_equal true, (1..10).first_match {|x| x > 9}
|
||||
assert_equal :aba, {:a => 10, :aba => 50, :bac => 40}.first_match {|k, v| k if v > 45}
|
||||
end
|
||||
|
||||
def test_group_by
|
||||
names = %w(marcel sam david jeremy)
|
||||
klass = Class.new
|
||||
|
||||
Reference in New Issue
Block a user