Sha256: e1a1a2fb824289f1d7e932e7ff4cdcf995dfe3ed264072a00718d914cc31e520
Contents?: true
Size: 1.02 KB
Versions: 4
Compression:
Stored size: 1.02 KB
Contents
require 'corvette/assertion' require 'corvette/act' module Corvette class Procedure < Act include Validation include Auxiliary include Required 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 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 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 end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
corvette-0.0.5 | lib/corvette/procedure.rb |
corvette-0.0.4 | lib/corvette/procedure.rb |
corvette-0.0.3 | lib/corvette/procedure.rb |
corvette-0.0.2 | lib/corvette/procedure.rb |