class RWF::Result

Attributes

error[R]
ptr[R]
state[R]

Public Class Methods

new(params) click to toggle source
# File lib/rwf/result.rb, line 7
def initialize(params)
  @params = params
  @state = :initial
  @error = nil
  @ptr = nil
end

Public Instance Methods

[](key) click to toggle source
# File lib/rwf/result.rb, line 72
def [](key)
  @params[key]
end
failure!(error = nil) click to toggle source
# File lib/rwf/result.rb, line 31
def failure!(error = nil)
  @error = error if error
  @state = :failure
  self
end
failure?() click to toggle source
# File lib/rwf/result.rb, line 37
def failure?
  !success?
end
initial?() click to toggle source
# File lib/rwf/result.rb, line 14
def initial?
  state == :initial
end
okish?() click to toggle source
# File lib/rwf/result.rb, line 27
def okish?
  initial? || success?
end
on_failure() { |error| ... } click to toggle source
# File lib/rwf/result.rb, line 54
def on_failure
  yield(error) if failure?
end
on_success() { || ... } click to toggle source
# File lib/rwf/result.rb, line 50
def on_success
  yield if success?
end
recover!() click to toggle source
# File lib/rwf/result.rb, line 67
def recover!
  @error = nil
  success!
end
redirect!(ptr) click to toggle source
# File lib/rwf/result.rb, line 45
def redirect!(ptr)
  @ptr = ptr
  self
end
redirect?() click to toggle source
# File lib/rwf/result.rb, line 41
def redirect?
  !ptr.nil?
end
state!(value) click to toggle source
# File lib/rwf/result.rb, line 58
def state!(value)
  if value.is_a?(Result)
    value.success? ? success! : failure!
    redirect!(value.ptr) if value.redirect?
  else
    value ? success! : failure!
  end
end
success!() click to toggle source
# File lib/rwf/result.rb, line 18
def success!
  @state = :success
  self
end
success?() click to toggle source
# File lib/rwf/result.rb, line 23
def success?
  state == :success && error.nil?
end
to_s() click to toggle source
# File lib/rwf/result.rb, line 76
def to_s
  state.to_s.capitalize
end