filter 0.0.2
Synopsys
Enumerable#filter - extended Enumerable#select
Examples
String filter (acts like Enumerable#grep):
[1, 2, 3, 'ab'].filter(/a/) # => #<Enumerator: ['ab']>
[1, 2, 3, '3'].filter('3') # => #<Enumerator: ['3']>
You can pass a Proc
or Symbol
. Methods and blocks are allowed too:
[1, 2, 3].filter(&:even?) # => #<Enumerator: [2]>
[1, 2, 3].filter(:even?) # => #<Enumerator: [2]>
[1, 2, 4].filter { |num| num.even? } # => #<Enumerator: [2, 4]>
Enumerable#filter
can match against enumerable items attributes. Like this:
[1, 2, 3, 4.2].filter :to_i => :even? # => #<Enumerator: [2, 4]>
If the block is supplied, each matching element is passed to it, and the blockâs result is stored in the output enumerator.
[1, 2, 4].filter(&:even?) { |n| n + 1 } # => #<Enumerator: [3, 5]>
Enumerable#filter
also accepts true
or false
as argument:
[0, false, 2, nil].filter(true) # => #<Enumerator: [0, 2]>
[0, false, 2, nil].filter(false) # => #<Enumerator: [false, nil]>