class JoyfulJsonapi::MultiToJson::Result

Result object pattern is from johnnunemaker.com/resilience-in-ruby/ e.g. github.com/github/github-ds/blob/fbda5389711edfb4c10b6c6bad19311dfcb1bac1/lib/github/result.rb

Public Class Methods

new(*rescued_exceptions) { || ... } click to toggle source
# File lib/joyful_jsonapi/multi_to_json.rb, line 16
def initialize(*rescued_exceptions)
  @rescued_exceptions = if rescued_exceptions.empty?
    [StandardError]
  else
    rescued_exceptions
  end

  @value = yield
  @error = nil
rescue *rescued_exceptions => e
  @error = e
end

Public Instance Methods

ok?() click to toggle source
# File lib/joyful_jsonapi/multi_to_json.rb, line 29
def ok?
  @error.nil?
end
rescue() { |error| ... } click to toggle source
# File lib/joyful_jsonapi/multi_to_json.rb, line 41
def rescue
  return self if ok?

  Result.new(*@rescued_exceptions) { yield(@error) }
end
value!() click to toggle source
# File lib/joyful_jsonapi/multi_to_json.rb, line 33
def value!
  if ok?
    @value
  else
    raise @error
  end
end