Sha256: b874061439feb3d7459a3cea531412fc39c721a9e6513680a6d0ac34b15eca11

Contents?: true

Size: 792 Bytes

Versions: 2

Compression:

Stored size: 792 Bytes

Contents

require "canada/version"

module Canada
  module ObjectExtensions
    EH_METHOD_REGEXP = /\A(?<method_name>.+)_eh\?\z/

    def respond_to_missing?(meth, include_all = false)
      if (m = EH_METHOD_REGEXP.match(meth))
        super || self.respond_to?("#{m[:method_name]}?", include_all)
      else
        super
      end
    end

    def method_missing(meth, *args, &block)
      if (m = EH_METHOD_REGEXP.match(meth))
        self.public_send("#{m[:method_name]}?", *args, &block)
      else
        super
      end
    end
  end

  ::Object.send(:include, ObjectExtensions)

  module ExceptionExtensions
    def to_s
      "I'm sorry, but #{super}"
    end
  end

  ::Exception.send(:prepend, ExceptionExtensions)

  module ::Kernel
    def aboot(obj)
      obj.inspect
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
canada-0.0.3 lib/canada.rb
canada-0.0.2 lib/canada.rb