class Gourmet::Service

Public Class Methods

call(*args) click to toggle source
# File lib/gourmet/service.rb, line 4
def self.call(*args)
  new.call(*args)
end

Public Instance Methods

Failure(value = nil) click to toggle source
# File lib/gourmet/service.rb, line 39
def Failure(value = nil)
  Gourmet::Failure.new(value)
end
Success(value = nil) click to toggle source

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
# File lib/gourmet/service.rb, line 35
def Success(value = nil)
  Gourmet::Success.new(value)
end
call() click to toggle source
# File lib/gourmet/service.rb, line 8
def call
  raise "You must override #call in class #{self.class.name}"
end