class Substation::Response
Base class for action responses
The following code illustrates context and serves as setup for all instance method doc examples
module App class Environment def initialize(storage, logger) @storage, @logger = storage, logger end end class SuccessfulAction def self.call(request) data = perform_work request.success(data) end end class FailingAction def self.call(request) error = perform_work request.error(error) end end end storage = SomeStorageAbstraction.new env = App::Environment.new(storage, Logger.new($stdout)) dispatcher = Substation::Dispatcher.coerce({ :successful_action => { :action => App::SuccessfulAction }, :failing_action => { :action => App::FailingAction } }, env)
@abstract
Attributes
env[R]
The application environment used within an action
@example
response = dispatcher.call(:successful_action, :some_input) response.env # => env passed to Substation::Dispatcher.coerce(config, env)
@return [Object]
@api public
input[R]
The request model instance passed into an action
@example
response = dispatcher.call(:successful_action, :some_input) response.input # => :some_input
@see Request#input
@return [Object]
@api public
Public Class Methods
new(_request, _output)
click to toggle source
Initialize a new instance
@param [Request] request
the request passed to the action that returned this response
@param [Object] output
the data returned from the action that returned this response
@return [undefined]
@api private
Calls superclass method
# File lib/substation/response.rb, line 85 def initialize(_request, _output) super @env = request.env @input = request.input end
Public Instance Methods
exception?()
click to toggle source
Test wether processing raised an exception
@return [true]
@api private
# File lib/substation/response.rb, line 114 def exception? false end
to_request(new_input = output)
click to toggle source
Return a {Request} instance built upon this response
@return [Request]
@api private
# File lib/substation/response.rb, line 123 def to_request(new_input = output) Request.new(request.name, env, new_input) end