From: "Victor \"Zverok\" Shepelev" Date: 2006-11-23T10:04:03+09:00 Subject: Rubyish inst.var initializations Hi all. I have some huge class with aspects of functionality spreaded in several source files. And in some of those aspects there is the same picture: --- class MyClass def push_something(obj) @something_list ||= [] @something_list << obj end def use_something(i) (@something_list ||= [])[i] end end --- Then I note (through profiler) various push_XXX spend too much time in checking is @XXX_list initialized. Then I change it: --- class MyClass alias :initialize_without_something :initialize def initialize(*arg) initialize_without_something(*arg) @something_list = [] end def push_something(obj) @something_list << obj end def use_something(i) @something_list[i] end end --- Now push_XXX and use_XXX work cleaner and faster, but all those initialize aliases (now I have 5 or 6) don't seem to be very elegant. Is there better solution? (to be clear, all those push_XXX are NOT similar - some of them push object to hashes, others to arrays, params count differ and so on - so, they can't be generated at once through metaprogramming) Thanks. V.