module Logicum::Interactor::CallInterface
Public Instance Methods
call(*)
click to toggle source
Calls superclass method
# File lib/logicum/interactor.rb, line 42 def call(*) raise MissingCallError unless defined? super @__result__ = Result.new begin super rescue StandardError => e @__result__.fail! e.message end self.class.provisions.each do |attr| ivar_name = "@#{attr}" if instance_variable_defined? ivar_name val = instance_variable_get ivar_name @__result__.define_singleton_method(attr) { val } else # Calling code must ensure instance variables to provide are # set before any code which could raise an exception. raise ProvisionError, "#{ivar_name} was not set in call() method" end end @__result__ end