lib/datacaster/trier.rb in datacaster-2.0.2 vs lib/datacaster/trier.rb in datacaster-3.0.0
- old
+ new
@@ -1,27 +1,25 @@
module Datacaster
class Trier < Base
- def initialize(name, error, catched_exception, &block)
+ def initialize(catched_exception, error_key = nil, &block)
raise "Expected block" unless block_given?
- @name = name
- @error = error
@catched_exception = Array(catched_exception)
- @transform = block
+ @try = block
+
+ @error_keys = ['.try', 'datacaster.errors.try']
+ @error_keys.unshift(error_key) if error_key
end
- def cast(object)
- intermediary_result = super(object)
- object = intermediary_result.value
-
+ def cast(object, runtime:)
begin
- Datacaster.ValidResult(@transform.(object))
+ Datacaster.ValidResult(Runtimes::Base.(runtime, @try, object))
rescue *@catched_exception
- Datacaster.ErrorResult([@error])
+ Datacaster.ErrorResult(I18nValues::Key.new(@error_keys, value: object))
end
end
def inspect
- "#<Datacaster::#{@name}Trier>"
+ "#<Datacaster::Trier>"
end
end
end