Петър обнови решението на 26.10.2012 22:32 (преди около 13 години)
Предавам с цел да въпрос. :) Обосновано ли е в случая използването на eval? Четох из нета, че eval се ползва само ако няма друг вариант, следователно май не. Но все пак да попитам. :)
Чист eval е зло :) Ruby предоставя няколко други такива, които се ползват - instance_eval и {class|module}_eval, но за тях по-нататък.
Като гледам кода, това което правиш с eval може да го направиш и с блокове. След като ги запазиш може да ги извикаш с block.call, block.() или block[]. Последното не го ползвай :)
Отделно може да изпуснеш, скобите при def !(). Освен това решението ти изглежда добре, но оправи евала.
Благодаря за коментара. :) Като цяло се колебаех за eval, защото в момента става много просто решението. Методите са картички и четими според мен. С блокове или ламбди едва ли ще мога да постигна много четим код. Най-вероятно ще сменя схемата като цяло.
За eval-а ще ти взема точки. Като пич.
