module NoException

Constants

Go
No

Public Class Methods

Go(*methods) click to toggle source
Calls superclass method
# File lib/noexception.rb, line 25
def self.Go(*methods)
  Module.new do
    define_singleton_method(:included) do |klass|
      methods = klass.instance_methods(false) if methods.empty?
      mod = Module.new do
        methods.each do |m|
          define_method m do |*args|
            begin
              return super(*args), nil
            rescue StandardError => e
              return nil, e
            end
          end
        end
      end
      klass.prepend mod
    end
  end
end
No(*methods) click to toggle source
Calls superclass method
# File lib/noexception.rb, line 2
def self.No(*methods)
  Module.new do
    define_singleton_method(:included) do |klass|
      methods = klass.instance_methods(false) if methods.empty?
      mod = Module.new do
        methods.each do |m|
          define_method m do |*args|
            begin
              return super(*args)
            rescue StandardError => e
              $error = e
              return nil
            end
          end
        end
      end
      klass.prepend mod
    end
  end
end