class Basic::Service

Attributes

args[R]
message[R]
result[RW]

Public Class Methods

call(args) click to toggle source
# File lib/basic_service.rb, line 5
def self.call(args)
  new(args).tap do |basic_service|
    basic_service.instance_eval do
      self.result = call
    end
  end
end
new(*args) click to toggle source
# File lib/basic_service.rb, line 25
def initialize(*args)
  @args = args
  @success = false
  @error = false
  @pristine = false
end

Public Instance Methods

call() click to toggle source

method error if call not defined

# File lib/basic_service.rb, line 44
def call
  raise NoMethodError, "Called undefined #call. You need to implement the method in the class: #{self.class.name}"
end
error(str = '') click to toggle source
# File lib/basic_service.rb, line 19
def error(str = '')
  @error = true
  @message = str
  @pristine = true
end
success(str = '') click to toggle source
# File lib/basic_service.rb, line 13
def success(str = '')
  @success = true
  @message = str
  @pristine = true
end
success?() click to toggle source

Defaults to the boolean’ed result of “call”

# File lib/basic_service.rb, line 37
def success?
  raise RuntimeError, "#success or #error should be called inside #call" unless @pristine
  raise RuntimeError, "both #success and #error where called" if (@success && @error)
  @success && !@error
end