secret
Created

  • Download Gist
method_logging.rb
Ruby
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
# Totally untested.
 
module MethodLogging
def self.included(base)
base.methods.each do |m|
alias_method :"old_#{m}", m
define_method(m) do |args|
puts "Called #{m}(#{args.map{|a|a.inspect}.join(', ')})"
return_value = send("old_#{m}", *args)
puts "# => #{return_value.inspect}"
return_value
end
end
end
end
 
class Foo
def bar
# ...
end
 
include MethodLogging
end

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.