Rubyのaliasとalias_method

Rubyのaliasは文法でalias_methodはメソッドなのだけど、Railsの影響か、class内でショートカット的な役割をするメソッドはシンボルを引数に取るということが多くなっているので、

class SomeClass
  def old_some_method
  end
  alias new_some_method old_some_method
end

と書くよりも、

class SomeClass
  def old_some_method 
  end
  alias_method :new_some_method, :old_some_method
end

と書く方が驚き最小の法則に従うと、よい気がする。

Refeによると、

Module#alias_method
--- alias_method(new, old)

    メソッドの別名を定義します。
    alias との違いは以下の通りです。

      * メソッド名は文字列または Symbol で指定する
      * グローバル変数の別名をつけることはできない
      * alias は構文なのでメソッドの中では使えない

    self を返します。

とのことで、困りそうなのはグローバル変数の別名をつけるときだけだし。(とおもってたら、グローバルなコンテキストでメソッドを作るときに引っかかった。

でも、スピードが違ったりするのかもしれない…。

文法としてなら、

class SomeClass
  def old_some_method
      alias new_some_method
  end
end

と書けたらよいのになぁ…。これなら古いメソッド名を明示的に書かなくてすむし、名前の変更も見やすい。