Sha256: 68cff48905b140ca5bd66446ef5d06b4c448048d5a264c231d362abc52c978f3
Contents?: true
Size: 607 Bytes
Versions: 2
Compression:
Stored size: 607 Bytes
Contents
module Datacaster class Trier < Base def initialize(name, error, catched_exception, &block) raise "Expected block" unless block_given? @name = name @error = error @catched_exception = Array(catched_exception) @transform = block end def cast(object) intermediary_result = super(object) object = intermediary_result.value begin Datacaster.ValidResult(@transform.(object)) rescue *@catched_exception Datacaster.ErrorResult([@error]) end end def inspect "#<Datacaster::#{@name}Trier>" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
datacaster-2.0.2 | lib/datacaster/trier.rb |
datacaster-2.0.1 | lib/datacaster/trier.rb |