class Corvette::Procedure

Public Instance Methods

procedure(params) { || ... } click to toggle source
# File lib/corvette/procedure.rb, line 10
def procedure(params)
        procedure_log(:start)
        process_params(params)
        process_auxiliary
        process_required
        procedure_validate(params)
        yield
        act_success
        procedure_log(:end)
rescue StandardError => exception
        log_error(exception, params)
        act_error(exception)
end

Private Instance Methods

procedure_log(kind) click to toggle source
# File lib/corvette/procedure.rb, line 38
def procedure_log(kind)
        case kind
        when :start
                logger.info "procedure started (#{act_name})"
        when :end
                logger.info "procedure ended (#{act_name})"
        when :validation_success
                logger.info "params validation succeeded (#{act_name})"
        end
end
procedure_validate(params) click to toggle source
# File lib/corvette/procedure.rb, line 26
def procedure_validate(params)
        model = OpenStruct.new
        contract = contract_klass.new(model)

        unless contract.validate(params)
                exception = ValidationError.new("validation failed")
                exception.errors = contract.errors.messages
                raise exception
        end
        procedure_log(:validation_success)
end