Class: Result::Case

Inherits:
Object
  • Object
show all
Defined in:
lib/result/case.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(result, ok_block:) ⇒ Case

Returns a new instance of Case.



2
3
4
5
# File 'lib/result/case.rb', line 2

def initialize(result, ok_block:)
  @result = result
  @ok_block = ok_block
end

Class Method Details

.when_ok(result, &block) ⇒ Object



7
8
9
# File 'lib/result/case.rb', line 7

def self.when_ok(result, &block)
  new(result, ok_block: block)
end

Instance Method Details

#when_error(&block) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/result/case.rb', line 11

def when_error(&block)
  case @result.send(:_result)
  when Result::Ok
    @ok_block.call(@result.send(:_result).extract)
  when Result::Err
    block.call(@result.send(:_result).extract)
  end
end