Method: Enumerable#filter

Defined in:
lib/jinx/helpers/enumerable.rb

#filter {|item| ... } ⇒ Enumerable

Returns a new Enumerable that iterates over the base Enumerable items for which filter evaluates to a non-nil,

non-false value, e.g.:
 [1, 2, 3].filter { |n| n != 2 }.to_a #=> [1, 3]

Unlike select, filter reflects changes to the base Enumerable, e.g.:

a = [1, 2, 3]
filter = a.filter { |n| n != 2 }
a << 4
filter.to_a #=> [1, 3, 4]

In addition, filter has a small, fixed storage requirement, making it preferable to select for large collections. Note, however, that unlike select, filter does not return an Array. The default filter block returns the passed item.

Examples:

[1, nil, 3].filter.to_a #=> [1, 3]

Yields:

  • (item)

    filter the selection filter

Yield Parameters:

  • item

    the collection member to filter

Returns:



143
144
145
# File 'lib/jinx/helpers/enumerable.rb', line 143

def filter(&filter)
  Jinx::Filter.new(self, &filter)
end