class Resultr::Result

Attributes

reason[R]
value[R]

Public Class Methods

new(kind, value) click to toggle source
# File lib/resultr/result.rb, line 8
def initialize(kind, value)
  @kind = kind
  @value = value
end

Public Instance Methods

and_then() { |value| ... } click to toggle source
# File lib/resultr/result.rb, line 21
def and_then
  if ok?
    yield @value
  else
    self
  end
end
err?() click to toggle source
# File lib/resultr/result.rb, line 17
def err?
  @kind == :err
end
expect!(message = nil) click to toggle source
# File lib/resultr/result.rb, line 37
def expect!(message = nil)
  return @value if ok?

  raise ::Resultr::ExpectationError, message || @value
end
ok?() click to toggle source
# File lib/resultr/result.rb, line 13
def ok?
  @kind == :ok
end
or_else() { |value| ... } click to toggle source
# File lib/resultr/result.rb, line 29
def or_else
  if err?
    yield @value
  else
    self
  end
end
thus() { |result_proxy| ... } click to toggle source
# File lib/resultr/result.rb, line 43
def thus
  result_proxy = ::Resultr::ResultProxy.new(self)
  yield result_proxy
end