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
|