Class: Operators::Service

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.call(*args) ⇒ Object



23
24
25
# File 'lib/operators/service.rb', line 23

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

.rescue_callbacks(*exceptions) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 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

Instance Method Details

#failure(result = nil) ⇒ Object



31
32
33
# File 'lib/operators/service.rb', line 31

def failure(result = nil)
  Dry::Monads.Left(error_wrap(result))
end

#success(result = nil) ⇒ Object



27
28
29
# File 'lib/operators/service.rb', line 27

def success(result = nil)
  Dry::Monads.Right(success_wrap(result))
end