2013-11-14 15 views
9

Ich möchte zwei Aliase für eine ursprüngliche Methode, aber ich sehe nicht die Fähigkeit alias_method, mehrere Aliase auf einmal zu tun, eher eins nach dem anderen.Alias ​​eine Methode mehrere Male

So besteht die Möglichkeit, von diesem zu ändern:

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

etwas wie folgt aus:

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

ich in das Erstellen von benutzerdefinierten Methoden nicht interessiert bin.

+0

ich viel Sinn, dass nicht sehen, aber wenn Sie einen Einzeiler haben wollen, könnten Sie tun: '[: aliased_first_method,: aliased_first_method ?]. jeder {| name | alias_method name,: first_method} '(und setze das in eine andere Methode in' Class', um ihm einen Namen zu geben, wenn du willst) – tessi

+0

macht es Sinn, wenn du den oberen Code zweimal hintereinander wiederholst. – Zippie

Antwort

16

Ich glaube nicht, gibt es einen besseren Weg, als nur jeder mit:

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

Nicht was ich suchte, aber danke. Ich dachte, vielleicht hat Ruby etwas eingebaut standardmäßig – Zippie

+0

Ich verstehe deinen Wunsch, aber diese Antwort ist richtig. AFAIK, es gibt keine eingebaute Möglichkeit, dies zu tun. – Phrogz

2

Mit Blick auf die docs and source von alias_method, würde ich sagen, dass Sie, was Sie wollen ist nicht möglich, ohne eine eigene Methode.

(hatte gerade meine fast gleichnamigen :) antworten)

Verwandte Themen