如何从外部

时间:2017-03-22 17:21:15

标签: ruby class prepend

我正在重构一些适合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

这样的东西

1 个答案:

答案 0 :(得分:1)

Method#super_method

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