class Corvette::Act

Public Class Methods

new(options={}) click to toggle source

include ActiveSupport::Rescuable rescue_from ERRORS, with: :log_error

# File lib/corvette/act.rb, line 12
def initialize(options={})
        @options = options
        process_callbacks
end

Public Instance Methods

act_error(exception) click to toggle source
# File lib/corvette/act.rb, line 40
def act_error(exception)
        @error_callback.call(self, exception) if @error_callback.is_a?(Proc)
end
act_name() click to toggle source
# File lib/corvette/act.rb, line 65
def act_name
        @act_name ||= self.class.name.to_s
end
act_success() click to toggle source
# File lib/corvette/act.rb, line 36
def act_success
        @success_callback.call(self) if @success_callback.is_a?(Proc)
end
log_error(exception, params = nil) click to toggle source
# File lib/corvette/act.rb, line 44
def log_error(exception, params = nil)
        message = "message: #{ exception.message }; place: #{act_name}; (#{ exception.class })"

        case exception
        when Validation::ValidationError, Required::RequiredError
                message << " error: #{exception.errors.inspect};"
        else
                #nothing
        end

        unless params.nil?
                message << " params: #{params.inspect}"
        end

        Rails.logger.error message
end
logger() click to toggle source
# File lib/corvette/act.rb, line 61
def logger
        Rails.logger
end
process_callbacks() click to toggle source
# File lib/corvette/act.rb, line 31
def process_callbacks
        @error_callback = @options[:on_error]
        @success_callback = @options[:on_success]
end
process_params(params) click to toggle source
# File lib/corvette/act.rb, line 21
def process_params(params)
        assert { params.is_a?(Hash) }

        if params.is_a?(Hashie::Mash)
                @params = params
        else
                @params = Hashie::Mash.new(params)
        end
end
run() click to toggle source
# File lib/corvette/act.rb, line 17
def run
        raise NotImplementedError, 'must be overridden'
end