class Substation::Processor::Nest::Incoming

An incoming processor that calls a nested chain

Public Instance Methods

call(request) click to toggle source

Call the processor

@param [Request] request

the request to process

@return [Response::Success]

@api private

# File lib/substation/processor/nest.rb, line 22
def call(request)
  state = invoke(decompose(request))

  case state
  when Request
    request.success(compose(request, request.success(state.data)))
  when Response::Success
    request.success(compose(request, state))
  when Response::Failure
    request.error(compose(request, state))
  else
    raise 'Illegal state returned from the invoked handler'
  end
end