Class: SimpleServiceObject::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_service_object/base.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.call(*args) ⇒ Object



6
7
8
9
10
# File 'lib/simple_service_object/base.rb', line 6

def self.call(*args)
  instance = new(*args)
  result_value = instance.call
  Result.new(result_value, instance.errors)
end

.call!(*args) ⇒ Object

Raises:



12
13
14
15
16
# File 'lib/simple_service_object/base.rb', line 12

def self.call!(*args)
  result = call(*args)
  raise FailureError, result.errors.join(", ") if result.failure?
  result.value
end

Instance Method Details

#callObject

Raises:

  • (NotImplementedError)


18
19
20
# File 'lib/simple_service_object/base.rb', line 18

def call
  raise NotImplementedError, "Should be implemented in subclass."
end

#errorsObject



22
23
24
# File 'lib/simple_service_object/base.rb', line 22

def errors
  @errors ||= []
end