Sha256: bb2f6c80a3bb272155b1e74a3def41c065147595b329928b7c3736ed543d4b35
Contents?: true
Size: 882 Bytes
Versions: 1
Compression:
Stored size: 882 Bytes
Contents
module MethodFound class Interceptor < Module attr_reader :regex def initialize(regex = nil, &intercept_block) define_method_missing(regex, &intercept_block) unless regex.nil? end def define_method_missing(regex, &intercept_block) @regex = regex 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 def inspect klass = self.class name = klass.name || klass.inspect "#<#{name}: #{regex.inspect}>" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
method_found-0.1.2 | lib/method_found/interceptor.rb |