module Rescuer

Constants

DEFAULT_EXCEPTIONS_TO_RESCUE
Failure
Success
VERSION

The current version of this gem

Public Class Methods

new(*exceptions) { || ... } click to toggle source
# File lib/rescuer.rb, line 6
def new(*exceptions)
  raise ArgumentError, 'no block given' unless block_given?

  passed = exceptions && exceptions.flatten.compact
  to_rescue, to_pass =
    if passed.nil? || passed.empty? then [DEFAULT_EXCEPTIONS_TO_RESCUE, nil] else [passed, passed] end

  begin
    value = yield
    Success.new(value, to_pass)
        rescue *to_rescue => error
    Failure.new(error, to_pass)
  end
end

Private Instance Methods

new(*exceptions) { || ... } click to toggle source
# File lib/rescuer.rb, line 6
def new(*exceptions)
  raise ArgumentError, 'no block given' unless block_given?

  passed = exceptions && exceptions.flatten.compact
  to_rescue, to_pass =
    if passed.nil? || passed.empty? then [DEFAULT_EXCEPTIONS_TO_RESCUE, nil] else [passed, passed] end

  begin
    value = yield
    Success.new(value, to_pass)
        rescue *to_rescue => error
    Failure.new(error, to_pass)
  end
end