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