테스트 환경을 위해 모든 응용 프로그램 클래스의 모든 메서드 앞에 binding.remote_pry
을 추가하려고합니다. 'define_method'에서 'super'를 어떻게 호출 할 수 있습니까?
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
을하지만 define_method
내에서 각 방법의 super
를 호출하는 방법을 모르는 내가 여기 너무 많이 미친 뭔가를하려고? 다른 방법이 있습니까? 미리 감사드립니다
확실히 뭔가를,
을 당신은 괜찮을 것 : 그냥 않습니다. '슈퍼 '에게 전화하는 데있어서 또 다른 문제는 무엇입니까? –
FYI :'classes = ObjectSpace.each_object.select {| o | o.class == Class}' – meagar
RuntimeError : define_method()에 정의 된 메소드에서 super의 암시 적 인수 전달이 지원되지 않습니다. 모든 인수를 명시 적으로 지정하십시오. – Cassiano