class Resol::Service
Constants
- Result
Public Class Methods
call(*args, **kwargs, &block)
click to toggle source
# File lib/resol/service.rb, line 41 def call(*args, **kwargs, &block) command = build(*args, **kwargs) result = catch(command) do __run_callbacks__(command) command.call(&block) nil end return Resol::Success(result.data) unless result.nil? error_message = "No success! or fail! called in the #call method in #{command.class}" raise InvalidCommandImplementation, error_message rescue self::Failure => e Resol::Failure(e) end
call!(...)
click to toggle source
# File lib/resol/service.rb, line 56 def call!(...) call(...).value_or { |error| raise error } end
inherited(klass)
click to toggle source
Calls superclass method
# File lib/resol/service.rb, line 36 def inherited(klass) klass.const_set(:Failure, Class.new(klass::Failure)) super end
Private Instance Methods
fail!(code, data = nil)
click to toggle source
@!method call
# File lib/resol/service.rb, line 65 def fail!(code, data = nil) raise self.class::Failure.new(code, data) end
success!(data = nil)
click to toggle source
# File lib/resol/service.rb, line 69 def success!(data = nil) throw(self, Result.new(data)) end