Class: Pull::Filter

Inherits:
Object
  • Object
show all
Defined in:
lib/pull/through/filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ Filter



5
6
7
# File 'lib/pull/through/filter.rb', line 5

def initialize(&block)
  @block = block
end

Instance Method Details

#call(read) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/pull/through/filter.rb', line 9

def call(read)
  -> (finish, callback) {
    if finish
      on_abort.()
      return nil
    end

    read.(nil, -> (value) {
      pass = block.call(value)
      callback.(value) if pass
    })
  }
end