Я пытаюсь переопределить метод, расположенный в Gem в Ruby/Rails, и борюсь с некоторыми проблемами.
Моя цель — выполнять пользовательский код при вызове метода из Gem, а также продолжать выполнять исходный код.
Я попытался абстрагировать код в следующий скрипт:
module Foo
class << self
def foobar
puts "foo"
end
end
end
module Foo
class << self
def foobar
puts "bar"
super
end
end
end
Foo.foobar
Выполнение этого скрипта дает мне эту ошибку:
in `foobar': super: no superclass method `foobar' for Foo:Module (NoMethodError)
Как мне написать метод переопределения, чтобы я мог вызывать super с этим исключением?
PS: переопределение работает нормально, если я удалю супер, но тогда исходный метод не вызывается, и я этого не хочу.