从外部添加后如何调用原始方法

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?

Method#super_method:

a.method(:log).super_method.call
#=> Log