Вызов супер из модульного метода

Я пытаюсь переопределить метод, находящийся в Gem in a 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)

Как я должен написать переопределяющий метод, чтобы я мог вызывать супер с поднятым исключением?

PS: Переопределяющий метод работает просто отлично, если я удалю супер, но тогда оригинальный метод не вызывается, и я не хочу этого.

5
задан Elhu 19 September 2011 в 17:34
поделиться