我正在尝试将binding.remote_pry
添加到我的应用程序的所有类中的所有方法中,以用于测试环境。
我试试这个:
classes = []
ObjectSpace.each_object { |o| classes << o if o.class == Class }
classes.each do |classe|
classe.methods.each do |method_name|
classe.class_eval do
define_method(method_name.to_sym) do
@@bindings ||= []
@@bindings << Thread.new {binding.remote_pry}
super
end
end
end
end
但我不知道如何在super
内调用每个方法的define_method
我想在这里做一些太疯狂的事吗?
还有另外一种方法吗?提前致谢
答案 0 :(得分:-1)
您应该使用显式空参数列表调用它,否则super
会尝试从原始方法传递参数,这不适用于define_method
定义的方法。只是做:
super()
你应该没事;)