Class: FilterChain::Chain

Inherits:
Object
  • Object
show all
Defined in:
lib/filter_chain/chain.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ Chain

Returns a new instance of Chain.



5
6
7
8
# File 'lib/filter_chain/chain.rb', line 5

def initialize(opts = {})
  @opts = opts
  @filters = create_filters(opts[:filters] || [])
end

Instance Attribute Details

#filtersObject (readonly)

Returns the value of attribute filters.



3
4
5
# File 'lib/filter_chain/chain.rb', line 3

def filters
  @filters
end

Instance Method Details

#input(data) ⇒ Object



10
11
12
# File 'lib/filter_chain/chain.rb', line 10

def input(data)
  @filters.first.input(data)
end

#outputObject

Raises:



14
15
16
17
18
# File 'lib/filter_chain/chain.rb', line 14

def output
  raise MissingCollector if @filters.empty? || !@filters.last.is_a?(Collector)

  @filters.last.collection
end