Por que a inclusão deste módulo não substitui um método gerado dinamicamente?

Estou tentando substituir um método gerado dinamicamente incluindo um módulo.

No exemplo abaixo, uma associação Ripple adiciona umrows= método para tabela. Eu quero chamar esse método, mas também fazer algumas coisas adicionais depois.

Criei um módulo para substituir o método, pensando que o módulo estárow= seria capaz de ligarsuper para usar o método existente.

class Table

  # Ripple association - creates rows= method
  many :rows, :class_name => Table::Row

  # Hacky first attempt to use the dynamically-created
  # method and also do additional stuff - I would actually
  # move this code elsewhere if it worked
  module RowNormalizer
    def rows=(*args)
      rows = super
      rows.map!(&:normalize_prior_year)
    end
  end
  include RowNormalizer

end

No entanto, meu novorows= nunca é chamado, como evidenciado pelo fato de que, se eu criar uma exceção dentro dela, nada acontece.

Eu sei que o módulo está sendo incluído, porque se eu colocar isso nele, minha exceção será levantada.

      included do
        raise 'I got included, woo!'
      end

Além disso, se em vez derows=, o módulo definesomethingelse=, esse método pode ser chamado.

Por que o método do meu módulo não está substituindo o método gerado dinamicamente?

questionAnswers(3)

yourAnswerToTheQuestion