使用已定义的方法在类上调用ruby include

时间:2019-02-27 00:19:42

标签: ruby include metaprogramming

我想通过在定义类后在类上调用一个include来覆盖下面的call方法。重要的部分是允许“其他”代码抽象地决定要包含哪个模块,而不是“打开”该类并使用“ include”

示例:

module Test1
  def call
    puts "Test1"
  end
end

class MyClass
  def call
    puts "MyClass"
  end
end


MyClass.include(Test1)

x = MyClass.new
x.call

输出:

MyClass

所需的输出:

Test1

经过Ruby 2.4.3p205测试

1 个答案:

答案 0 :(得分:0)

嗯...解决方案是使用前置而不包括。

MyClass.prepend(Test1)