[ruby-core:93667] [Ruby master Bug#11808] Different behavior between Enumerable#grep and Array#grep
From:
ko1@...
Date:
2019-07-11 06:04:49 UTC
List:
ruby-core #93667
Issue #11808 has been updated by ko1 (Koichi Sasada).
Assignee set to ko1 (Koichi Sasada)
----------------------------------------
Bug #11808: Different behavior between Enumerable#grep and Array#grep
https://bugs.ruby-lang.org/issues/11808#change-79279
* Author: BenOlive (Ben Olive)
* Status: Open
* Priority: Normal
* Assignee: ko1 (Koichi Sasada)
* Target version:
* ruby -v:
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
Regex special global variables are available within the block for `Array#grep`, but are nil within the block for `Enumerable#grep`.
Here is an example that explains it better:
~~~ruby
class Test
include Enumerable
def each
return enum_for(:each) unless block_given?
yield "Hello"
yield "World"
end
end
enum = Test.new
array = ["Hello", "World"]
enum.grep(/^(.)/) {$1} # => [nil, nil]
array.grep(/^(.)/) {$1} # => ["H", "W"]
~~~
Tested on 2.0.0, 2.1.5, & 2.2.2
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>