2013-11-14 2 views
9

元のメソッドに2つのエイリアスを追加したいと考えていますが、alias_methodが複数のエイリアスを1つずつではなく同時に実行することはありません。このようなものにメソッドを複数回エイリアス

alias_method :aliased_first_method, :first_method 
alias_method :aliased_first_method?, :first_method 

alias_method [:aliased_first_method, :aliased_first_method?], :first_method 

私はカスタムメソッドを作成することに興味はないよ

だから、これから変更する可能性があります。

+0

私はそれにあまり意味が表示されませんが、あなたはワンライナーを持つようにしたい場合は、あなたができる: '[:aliased_first_method、:aliased_first_method ?]。each {| name | alias_method name、:first_method} '(それを' Class'の別のメソッドに入れて、名前を付けたい場合) – tessi

+0

上のコードを2回連続して実行すると意味があります。 – Zippie

答えて

16

私はちょうどそれぞれを使用してより良い方法があるとは思わない:

[:aliased_first_method, :aliased_first_method?].each{|ali| alias_method ali, :first_method} 
+0

私が探していたものではありませんが、ありがとうございます。 Rubyにデフォルトで組み込まれているものがあると思ったかもしれません – Zippie

+0

私はあなたの願いを理解していますが、この答えは正しいです。 AFAIK、これを行うための組み込みの方法はありません。 – Phrogz

2

alias_methoddocs and sourceを見て、私が何をしたいがカスタムメソッドなしないことが可能であることを言うでしょう。

(ちょうど私のほとんど同名:)を答える必要がありました)

関連する問題