Project

General

Profile

Actions

Bug #11808

open

Different behavior between Enumerable#grep and Array#grep

Added by BenOlive (Ben Olive) over 8 years ago. Updated 5 months ago.

Status:
Open
Target version:
-
[ruby-core:72067]
Tags:

Description

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:

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

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0