class Substation::Processor::Evaluator
Abstract processor to evaluate a request coming into a chain
Public Instance Methods
call(request)
click to toggle source
Evaluate a chain's request input data
@param [Request] request
the request to process
@return [Response]
@api private
# File lib/substation/processor/evaluator.rb, line 46 def call(request) result = invoke(decompose(request)) if result.success? on_success(request, result) else on_failure(request, result) end end
Private Instance Methods
on_failure(request, result)
click to toggle source
Return a failure response by invoking a failure chain
@param [Request] request
the evaluated request
@param [#output] result
the evaluation result
@return [Response::Failure]
@api private
# File lib/substation/processor/evaluator.rb, line 83 def on_failure(request, result) failure_chain.call(request.error(output(request, result))) end
on_success(request, result)
click to toggle source
Return a successful response
@param [Request] request
the evaluated request
@param [#output] result
the evaluation result
@return [Response::Success]
@api private
# File lib/substation/processor/evaluator.rb, line 68 def on_success(request, result) request.success(output(request, result)) end
output(request, result)
click to toggle source
Return a new composed output
@param [Request] request
the evaluated request
@param [Response] response
the evaluation result
@return [Object]
@api private
# File lib/substation/processor/evaluator.rb, line 98 def output(request, result) compose(request, result.output) end