class Operators::EitherService

Public Class Methods

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

Public Instance Methods

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

Private Instance Methods

calling() click to toggle source
# File lib/operators/either_service.rb, line 39
def calling
  raise 'Must be redefined'
end
error_wrap(result) click to toggle source
# File lib/operators/either_service.rb, line 31
def error_wrap(result)
  result
end
success_wrap(result) click to toggle source
# File lib/operators/either_service.rb, line 35
def success_wrap(result)
  result
end