Class: RiotKit::Result

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value:, error:) ⇒ Result

Returns a new instance of Result.



15
16
17
18
# File 'lib/riot_kit/result.rb', line 15

def initialize(value:, error:)
  @value = value
  @error = error
end

Instance Attribute Details

#errorObject (readonly)

Returns the value of attribute error.



5
6
7
# File 'lib/riot_kit/result.rb', line 5

def error
  @error
end

#valueObject (readonly)

Returns the value of attribute value.



5
6
7
# File 'lib/riot_kit/result.rb', line 5

def value
  @value
end

Class Method Details

.failure(error) ⇒ Object



11
12
13
# File 'lib/riot_kit/result.rb', line 11

def self.failure(error)
  new(value: nil, error: error)
end

.success(value) ⇒ Object



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

def self.success(value)
  new(value: value, error: nil)
end

Instance Method Details

#failure?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/riot_kit/result.rb', line 24

def failure?
  !success?
end

#on_failure {|error| ... } ⇒ Object

Yields:



34
35
36
37
38
# File 'lib/riot_kit/result.rb', line 34

def on_failure
  yield(error) if failure?

  self
end

#on_success {|value| ... } ⇒ Object

Yields:



28
29
30
31
32
# File 'lib/riot_kit/result.rb', line 28

def on_success
  yield(value) if success?

  self
end

#success?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/riot_kit/result.rb', line 20

def success?
  error.nil?
end

#value!Object



40
41
42
43
44
# File 'lib/riot_kit/result.rb', line 40

def value!
  raise error if failure?

  value
end