Class: Resol::Service

Inherits:
Object
  • Object
show all
Includes:
Builder, SmartCore::Initializer
Defined in:
lib/resol/service.rb

Defined Under Namespace

Classes: Failure, Interruption, InvalidCommandImplementation, Success

Class Method Summary collapse

Methods included from Builder

included

Class Method Details

.call(*args, &block) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
# File 'lib/resol/service.rb', line 52

def call(*args, &block)
  command = build(*args)
  command.call(&block)

  error_message = "No success! or fail! called in the #call method in #{command.class}"
  raise InvalidCommandImplementation, error_message
rescue self::Success => e
  Resol::Success(e.data)
rescue self::Failure => e
  Resol::Failure(e)
end

.call!(*args) ⇒ Object



64
65
66
# File 'lib/resol/service.rb', line 64

def call!(*args)
  call(*args).value_or { |error| raise error }
end

.inherited(klass) ⇒ Object



46
47
48
49
50
# File 'lib/resol/service.rb', line 46

def inherited(klass)
  klass.const_set(:Failure, Class.new(klass::Failure))
  klass.const_set(:Success, Class.new(klass::Success))
  super
end