class Datacaster::Trier

Public Class Methods

new(name, error, catched_exception, &block) click to toggle source
# File lib/datacaster/trier.rb, line 3
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

Public Instance Methods

call(object) click to toggle source
Calls superclass method Datacaster::Base#call
# File lib/datacaster/trier.rb, line 12
def call(object)
  intermediary_result = super(object)
  object = intermediary_result.value

  begin
    Datacaster.ValidResult(@transform.(object))
  rescue *@catched_exception
    Datacaster.ErrorResult([@error])
  end
end
inspect() click to toggle source
# File lib/datacaster/trier.rb, line 23
def inspect
  "#<Datacaster::#{@name}Trier>"
end