вызов ruby ​​include для класса с уже определенным методом - PullRequest
0 голосов
/ 27 февраля 2019

Я хочу перезаписать метод вызова ниже, вызвав включение класса после того, как он был определен.Важная часть заключается в том, чтобы позволить «другому» коду абстрактно решать, какой модуль включать, а не «открывать» класс и использовать «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 голосов
/ 27 февраля 2019

Тьфу ... Решение состоит в том, чтобы использовать prepend и не включать.

MyClass.prepend(Test1)
...