Module: Kernel
- Defined in:
- lib/intercepted.rb
Overview
System module.
Instance Method Summary collapse
Instance Method Details
#intercepted(origin = nil, &pipe) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/intercepted.rb', line 8 def intercepted(origin = nil, &pipe) raise 'Block is expected by intercepted()' unless block_given? Class.new(BasicObject) do define_method(:initialize) { @o = origin } define_method(:method_missing) do |name, *args, &block| pipe.call(@o, name, *args, &block) end define_method(:respond_to?) do |name, include_private = false| @o.respond_to?(name, include_private) end end.new end |