Sha256: df404c547138413fb241fbd7b8626a812ec79089a8863b5c916239c9de2cbabe

Contents?: true

Size: 1003 Bytes

Versions: 2

Compression:

Stored size: 1003 Bytes

Contents

# encoding: utf-8

module Substation
  module Processor

    # Namespace for processor that call a nested chain
    module Nest

      # An incoming processor that calls a nested chain
      class Incoming

        include Processor::Incoming

        # Call the processor
        #
        # @param [Request] request
        #   the request to process
        #
        # @return [Response::Success]
        #
        # @api private
        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

      end # class Incoming
    end # module Nest
  end # module Processor
end # module Substation

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
substation-0.0.11 lib/substation/processor/nest.rb
substation-0.0.10 lib/substation/processor/nest.rb