Moin Hendrik, was mir spontan einfällt ist dass instance_eval (und instance_exec) nicht immer ganz intuitiv sind wenn man a) damit nicht vertraut ist und b) eine "echte" closure erwartet.
instance_eval behält zwar den scope für lokale Variablen bei, verändert allerdings auch self und den default definee zum Receiver object bezw. dessen Eigenclass. Stell dieses verhalten dem (den meisten von uns sicher weitaus vertrauteren) Verhalten von Blöcken die ge-yielded (wtfdenglish) werden entgegen und du hast den einen oder anderen der deinen Code liest unter umständen schon abgehängt oder zumindest eine Zeit lang mit jagen von "Bugs" die er nicht auf Anhieb versteht beschäftig. Clever ist doof und stumpf ist Trumpf. Ich würd's halt vermeiden wenn sich ein anderer, weniger smarter, Weg bietet. Manchmal reicht das ja schon um was als nicht empfehlenswert einzustufen. achja, guckst du hier: http://yugui.jp/articles/846 -- Pascal Friederich Twitter: http://twitter.com/paukul - @paukul XING: https://www.xing.com/profile/Pascal_Friederich On Sunday, May 6, 2012 at 11:36 AM, Hendrik Mans wrote: > Einen wundervollen Sonntagmorgen euch allen. > > Ich experimentiere aus Spaß an der Freude, und weil ich dieses Wochenende > Strohwitwer und zum Spazierengehen zu faul und langweilig bin, mit > verschiedenen DSL-Implementierungs-Ansätzen herum. Ja, ich weiß, eigentlich > sollte ich raus gehen und ein Eis essen oder mich mit Freunden treffen oder > wenigstens ein gutes Buch lesen, aber so ist halt mein Leben. Ruby ist mein > Freund, method_missing meine Eiskrem, und… ach, ich schweife ab. > > Jedenfalls kommt dabei gerne mal instance_exec zum Einsatz. instance_exec ist > superdipupertoll. Es führt einen Block/Proc/lambda/etc. in einem anderen als > dem ursprünglichen Scope aus. Praktisch! Aber ich stolpere immer wieder über > Blogartikel/Tweets/Seniorarchitekten, die instance_exec voll doof finden. Nur > leider immer ohne schlüssige Erklärung. > > Ist von euch vielleicht jemand der größte Meta-Programmer aller Zeiten und > kann da etwas Licht drauf werfen? Ist instance_exec eine schlechte Idee? Wenn > ja, warum, und: wie macht man's sonst? > > Freue mich auf Input. INPUT INPUT INPUT. > > H. > _______________________________________________ > rubyonrails-ug mailing list > rubyonrails-ug@headflash.com (mailto:rubyonrails-ug@headflash.com) > http://mailman.headflash.com/listinfo/rubyonrails-ug > >
_______________________________________________ rubyonrails-ug mailing list rubyonrails-ug@headflash.com http://mailman.headflash.com/listinfo/rubyonrails-ug