Sha256: 31861ffbca9ac150f2de6a6febfa8dc9ae774162bef174d69a7af8f32a88ba5d

Contents?: true

Size: 614 Bytes

Versions: 3

Compression:

Stored size: 614 Bytes

Contents

module Enumerable

  # The block acts as an arbitrary filter on the data. Unlike
  # map, it can choose to drop elements from the result, and/or add
  # additional ones. The first object passed to the block is the receiver
  # of the output.
  #
  #   (1..1_000_000_000).
  #     filter { |out,i| out << i if i % 2 == 0 }.  # like select
  #     filter { |out,i| out << i + 100 }.          # like map
  #     take(10).each { |i| puts i }
  #
  def filter(output=[])
    if block_given?
      each do |*input|
        yield(output, *input)
      end
      output
    else
      to_enum(:filter)
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
facets-2.8.1 lib/core/facets/enumerable/filter.rb
facets-2.8.0 lib/core/facets/enumerable/filter.rb
facets-2.7.0 lib/core/facets/enumerable/filter.rb