Class: PgExport::Transactions::Evaluator

Inherits:
Object
  • Object
show all
Defined in:
lib/pg_export/transactions/evaluator.rb

Instance Method Summary collapse

Constructor Details

#initialize(listeners) ⇒ Evaluator

Returns a new instance of Evaluator.



6
7
8
9
# File 'lib/pg_export/transactions/evaluator.rb', line 6

def initialize(listeners)
  @operations = []
  @listeners = listeners
end

Instance Method Details

#<<(operation) ⇒ Object



11
12
13
# File 'lib/pg_export/transactions/evaluator.rb', line 11

def <<(operation)
  operations << operation
end

#call(input) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/pg_export/transactions/evaluator.rb', line 15

def call(input)
  result = ValueObjects::Success.new(input)

  operations.each do |operation|
    result = result.bind do
      call_operation(operation, result)
    end
  end

  result
end