Я пытаюсь написать модуль, который перезаписывает метод экземпляра в классе, в который он включен.
Это не работает:
require 'active_support'
class Foo
def bar
"bar"
end
end
module NewFoo
extend ActiveSupport::Concern
included do
alias __bar__ bar
end
def bar
"new " + __bar__
end
end
class Baz < Foo
include NewFoo
end
Я ожидаю, что Baz.new.bar.should eql "new bar"
, но вместо этого я получаю undefined local variable or method '__bar__'
ошибку.
Я пробовал варианты вышеупомянутого, включая старый способ через def self.include(base)...
безрезультатно.
Есть указатели?