有一个需求,需要统计一个 module 中所有的方法名,并输出方法所在的文件名和其所在的行数。这个 module 引用了很多其他的 module,需要把其他 module 的方法也输出。
我的思路是建一个白板类,然后 include 这个 module,在输出其方法,但是不知道怎么输出方法所在的文件名和行数,麻烦高手赐教^_^
class FindMethods
instance_methods.each do |m|
undef_method m unless m.to_s =~ /^__|^methods/
end
include Module_Mymodule
end
my_methods = FindMethods.new
my_methods.methods.each do |m|
puts m
next if m =~ /^__|^methods/
end