Kleine Helfer #1: alias_method_chain
31. Januar 2008
Ich entdecke immer mal wieder kleine Helferlein, die mir bis dato noch nicht untergekommen waren. In der heutigen Episode: alias_method_chain
Die Methode wurde mit Revision 4276 in Rails eingeführt und dient dazu eine oft benutze Kombination von alias Aufrufen zu vereinfachen.
1 2 3 4 5 6 7 8 9 10 11 |
def example end def example_with_put puts 'ping' example_without_put end alias_method :example_without_put, :example alias_method :example, :example_with_put |
Was passiert hier?
Wir erstellen ein Alias meiner alten Methode example und leiten alle Aufrufe an example_with_put weiter. Diese Methode wiederum tut was Sinnvolles und ruf dann meine originale example Methode via _example_without_put auf. Eigentlich nichts besonderes..
Da dieser Trick recht oft verwendet wird, erhielt Rails mit der Rev 4276 die Methode alias_method_chain, die dieses “Doppel-Aliasing” übernimmt. Ich kann die beiden alias_method Aufrufe auch folgendermaßen erstellen:
1 2 |
alias_method_chain :example, :put |
Mehr Information finden sich im Code von Rails.