class Aldous::Controller::Action::ResultExecutionService

Attributes

controller[R]
default_view_data[R]
respondable[R]

Public Class Methods

new(controller, respondable, default_view_data) click to toggle source
# File lib/aldous/controller/action/result_execution_service.rb, line 16
def initialize(controller, respondable, default_view_data)
  @controller = controller
  @respondable = respondable
  @default_view_data = default_view_data
end
perform(controller, respondable, default_view_data) click to toggle source
# File lib/aldous/controller/action/result_execution_service.rb, line 9
def perform(controller, respondable, default_view_data)
  self.new(controller, respondable, default_view_data).perform
end

Public Instance Methods

perform() click to toggle source
# File lib/aldous/controller/action/result_execution_service.rb, line 22
def perform
  respondable.action(controller).execute
rescue => e
  LoggingWrapper.log(e)
  error_handler = ::Aldous.configuration.error_handler

  if error_handler.kind_of?(Class) && error_handler.ancestors.include?(Aldous::Respondable::Base)
    view_builder.build(error_handler, errors: [e]).action(controller).execute
  else
    controller.head :internal_server_error
  end
end

Private Instance Methods

view_builder() click to toggle source
# File lib/aldous/controller/action/result_execution_service.rb, line 37
def view_builder
  @view_builder ||= Aldous::ViewBuilder.new(controller.view_context, default_view_data)
end