module Rescue::Controller

Public Class Methods

included(base) click to toggle source
# File lib/rescue/controller.rb, line 5
def self.included(base)
  base.extend Rescue::Controller::ClassMethods
  base.send(:private, :rescue_respond)
end

Public Instance Methods

rescue_respond(call, params, options = {}) click to toggle source
# File lib/rescue/controller.rb, line 10
def rescue_respond call, params, options = {}
  begin
    send(call, params, (options[:validate] ? { context: options[:validate] } : {}))
    success_message = options[:success]||Flash.message(self, :success)
    flash[:success] = success_message unless success_message.blank?
    instance_exec(&options[:render])
  rescue => e
    Rails.logger.debug ([e.message] + e.backtrace).join("\n\t")
    error_message = options[:error]||Flash.message(self, :error)
    flash.now[:error] = error_message unless error_message.blank?
    instance_exec(&options[:rescue])
  end
end