From: dohzya Date: 2007-08-02T04:48:30+09:00 Subject: Re: Dynamic method call Le jeudi 02 ao�t 2007 � 04:27 +0900, Andrea Maschio a �crit : > the problem is that method_name is a static call, i need to make it dynamic > and choosed by the user/programmer, so at least he should type > eval("method_name(arg1,arg2)") if condition > > but my aim was just to encapsulate this in a more comprehensible grammar > like > > if_it_happens_that(is_true, "do_something(arg1,arg2)") > > in another language that english it sound more different using english word > "like if, then, end, do" > > i know it could sound weird, but this was my need, and i solved it with eval > (of course the internal logic is far more complex) Do you want something like this : --- def sendif( args, &bloc ) if args[:if] send args[:then].shift, *args[:then], &bloc else send args[:else].shift, *args[:else], &bloc if args[:else] end end sendif :if => 1 < 2, :then => [:p, "gagne"], :else => [:puts, "perdu"] --- ? -- Etienne Vallette d'Osia