class Gracefully::Unresolved

Public Class Methods

new(&block) click to toggle source
# File lib/gracefully/try.rb, line 11
def initialize(&block)
  @block = block
end

Public Instance Methods

get() click to toggle source
# File lib/gracefully/try.rb, line 29
def get
  resolve.get
end
or_else(other) click to toggle source
# File lib/gracefully/try.rb, line 25
def or_else(other)
  resolve.or_else other
end
resolve() click to toggle source
# File lib/gracefully/try.rb, line 15
def resolve
  @resolved = begin
    Success.with @block.call
  rescue => e
    # Back-traces, which are required by Gracefully::Error, of errors are usually set by `raise`.
    # We need to set them manually because we aren't relying on `raise`.
    Failure.with Error.new('Nested error', nested: e).tap { |e| e.set_backtrace caller(0) }
  end
end