class Operators::Service

Public Class Methods

call(*args) click to toggle source
# File lib/operators/service.rb, line 23
def self.call(*args)
  new(*args).call
end
rescue_callbacks(*exceptions) click to toggle source
# File lib/operators/service.rb, line 3
def self.rescue_callbacks(*exceptions)
  define_method :call do
    begin
      calling
    rescue *exceptions => error
      failure(error.message)
    end
  end

  define_method :failure_wrapper do |&block|
    begin
      block.call
    rescue *exceptions => error
      failure(error.message)
    end
  end
end

Public Instance Methods

failure(result = nil) click to toggle source
# File lib/operators/service.rb, line 31
def failure(result = nil)
  Dry::Monads.Left(error_wrap(result))
end
success(result = nil) click to toggle source
# File lib/operators/service.rb, line 27
def success(result = nil)
  Dry::Monads.Right(success_wrap(result))
end

Private Instance Methods

calling() click to toggle source
# File lib/operators/service.rb, line 45
def calling
  raise 'Not implemented'
end
error_wrap(result) click to toggle source
# File lib/operators/service.rb, line 37
def error_wrap(result)
  result
end
success_wrap(result) click to toggle source
# File lib/operators/service.rb, line 41
def success_wrap(result)
  result
end