class Corvette::Operation

Attributes

contract[R]

Public Instance Methods

operation(model, params) { || ... } click to toggle source
# File lib/corvette/operation.rb, line 19
def operation(model, params)
        operation_log(:start)
        process_params(params)
        operation_validate(model, params)
        yield
        act_success
        operation_log(:end)
rescue StandardError => exception
        log_error(exception, params)
        act_error(exception)
end

Private Instance Methods

operation_log(kind) click to toggle source
# File lib/corvette/operation.rb, line 43
def operation_log(kind)
        case kind
        when :start
                logger.info "operation started (#{act_name})"
        when :end
                logger.info "operation ended (#{act_name})"
        when :validation_success
                logger.info "params validation succeeded (#{act_name})"
        end
end
operation_validate(model, params) click to toggle source
# File lib/corvette/operation.rb, line 33
def operation_validate(model, params)
        @contract = contract_klass.new(model)
        unless contract.validate(params)
                exception = ValidationError.new("validation failed")
                exception.errors = contract.errors.messages
                raise exception
        end
        operation_log(:validation_success)
end