Como alias um método de classe dentro de um módulo?

Estou usando o Ruby v1.9.2 e o Ruby on Rails v3.2.2 gem. Eu tive o seguinte módulo

module MyModule
  extend ActiveSupport::Concern

  included do
    def self.my_method(arg1, arg2)
      ...
    end
  end
end

e eu queria aliasmétodo de classe my_method. Então, eu disse o seguinte (não está funcionando) código:

module MyModule
  extend ActiveSupport::Concern

  included do
    def self.my_method(arg1, arg2)
      ...
    end

    # Note: the following code doesn't work (it raises "NameError: undefined
    # local variable or method `new_name' for #<Class:0x00000101412b00>").
    def self.alias_class_method(new_name, old_name)
      class << self
        alias_method new_name, old_name
      end
    end

    alias_class_method :my_new_method, :my_method
  end
end

Em outras palavras, pensei em estender oModule classe de alguma maneira, a fim de adicionar umalias_class_method método disponível em todoMyModule. No entanto, eu gostaria de fazer issotrabalhar eestar disponível em toda a minha aplicação Ruby on Rails.

Onde devo colocar o arquivo relacionado à extensão do núcleo Ruby doModule classe? Talvez no Ruby on Railslib diretório?Como devo "estender" apropriadamenteModule classe no arquivo de extensão do núcleo?É o caminho certo para prosseguir? Isto é, por exemplo, devo "estender" outra classe (Object, BasicObject, Kernel, ...) ao invés deModule? ou devo evitar a implementação da extensão central mencionada?

Mas,mais importante, existe um recurso Ruby que faz o que eu estou tentando realizar para que eu não precise estender suas classes?

questionAnswers(3)

yourAnswerToTheQuestion