Class: Gourmet::Service

Inherits:
Object
  • Object
show all
Defined in:
lib/gourmet/service.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.call(*args) ⇒ Object



4
5
6
# File 'lib/gourmet/service.rb', line 4

def self.call(*args)
  new.call(*args)
end

Instance Method Details

#callObject



8
9
10
# File 'lib/gourmet/service.rb', line 8

def call
  raise "You must override #call in class #{self.class.name}"
end

#Failure(value = nil) ⇒ Object



39
40
41
# File 'lib/gourmet/service.rb', line 39

def Failure(value = nil)
  Gourmet::Failure.new(value)
end

#Success(value = nil) ⇒ Object

Helper methods for instantiating Success/Failure result objects inside Services

Example:

class DoWork < Gourmet::Service
  def call(magic_number)
    if magic_number == 7
      Success(magic_number)
    else
      Failure()
    end
  end
end

result = DoWork.call(7)
result.success? # => true
result.value    # => 7

result = DoWork.call(2)
result.failure? # => true


35
36
37
# File 'lib/gourmet/service.rb', line 35

def Success(value = nil)
  Gourmet::Success.new(value)
end