Sha256: a273966ef54619e09b00465ed7234cb96d316c9fbe967f594420324139eb3658
Contents?: true
Size: 1.13 KB
Versions: 4
Compression:
Stored size: 1.13 KB
Contents
module Lev class ErrorTransferer def self.transfer(source, target_routine, input_mapper, fail_if_errors=false) case source when ActiveRecord::Base, Lev::Paramifier source.errors.each do |error| target_routine.nonfatal_error( code: error.type, data: { model: source, attribute: error.attribute }, kind: :activerecord, message: error.message, offending_inputs: input_mapper.map(error.attribute) ) end when Lev::Errors source.each do |error| target_routine.nonfatal_error( code: error.code, data: error.data, kind: error.kind, message: error.message, offending_inputs: input_mapper.map(error.offending_inputs) ) end else raise Exception end # We add nonfatal errors above and then have this call here so that all # errors can be transferred before we freak out. throw :fatal_errors_encountered if target_routine.errors? && fail_if_errors end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
lev-13.0.0 | lib/lev/error_transferer.rb |
lev-12.1.0 | lib/lev/error_transferer.rb |
lev-12.0.0 | lib/lev/error_transferer.rb |
lev-11.0.0 | lib/lev/error_transferer.rb |