从外部添加后如何调用原始方法
How to call original method after it got prepend from outside
我正在重构一些旧代码以适应 Ruby > 2。还有一些 alias_method_chain
我想删除。
但是有些地方调用了 without 方法。在方法内部我必须 super
肯定但是从外部?
给出以下内容:
module ExtraLog
def log
puts "ExtraLog"
super
end
end
class Klass
prepend ExtraLog
def log
puts "Log"
end
end
a = Klass.new
a.log
#=> "ExtraLog"
#=> "Log"
我现在如何在不调用前置方法的情况下调用原始日志方法?类似于 a.original_log
?
a.method(:log).super_method.call
#=> Log
我正在重构一些旧代码以适应 Ruby > 2。还有一些 alias_method_chain
我想删除。
但是有些地方调用了 without 方法。在方法内部我必须 super
肯定但是从外部?
给出以下内容:
module ExtraLog
def log
puts "ExtraLog"
super
end
end
class Klass
prepend ExtraLog
def log
puts "Log"
end
end
a = Klass.new
a.log
#=> "ExtraLog"
#=> "Log"
我现在如何在不调用前置方法的情况下调用原始日志方法?类似于 a.original_log
?
a.method(:log).super_method.call
#=> Log