Module: NightVision

Defined in:
lib/night_vision.rb,
lib/night_vision/version.rb

Constant Summary collapse

DIVIDER =
"------------------------------------------------"
VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.goggles(*classes) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/night_vision.rb', line 5

def self.goggles(*classes)
  classes.each do |klass|
    klass.instance_methods.each do |method|
      m = klass.instance_method(method)
      klass.send(:define_method, method) do |*args, &block|
        puts DIVIDER
        puts "Invoking #{m.owner}##{method}"
        puts "Actual arguments are: #{args}"
        puts DIVIDER
        val = m.bind(self).(*args, &block)
        puts DIVIDER
        puts "Returning from #{m.owner}##{method}"
        puts "Return value is: #{val}"
        puts DIVIDER
        val
      end
    end
  end
end