Sha256: 60a3240e2a89db67cc259a820585ccea065b2e2af9efacce7ef7ff63747a141d

Contents?: true

Size: 567 Bytes

Versions: 1

Compression:

Stored size: 567 Bytes

Contents

module MethodFound
  class Interceptor < Module
    def initialize(regex, &intercept_block)
      define_method :method_missing do |method_name, *arguments, &method_block|
        if matches = regex.match(method_name)
          instance_exec(method_name, matches, *arguments, &intercept_block)
        else
          super(method_name, *arguments, &method_block)
        end
      end

      define_method :respond_to_missing? do |method_name, include_private = false|
        (method_name =~ regex) || super(method_name, include_private)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
method_found-0.1.0 lib/method_found/interceptor.rb