Alle mercoled13 giugno 2007, Sharon Phillips ha scritto: > Hi, > > I have an hash of code blocks(procs?), @styles, and am trying to call > these using method missing. Problem is, some take one argument, and > others take two, and I can't seem to pass args to them without if > being passed as an array > > Here's the method_missing code > > def method_missing style_type, *args > case args.size > when 1 : @styles [style_type].call(args[0]) > when 2 : @styles [style_type].call(args[0], args[1]) > end > end > > > I'm sure there's a way for me to get rid of the case statement, but > if I try > @styles [style_type].call(args) it just gets sent an array. > > Question is, how do I send the contents of the args array? > > I realise I should probably have a means of dealing with a genuine > method_missing. What's the 'ruby way' of doing this? if I call > method_missing again, wont I end in a recursive mess? > > Is this making any sense? > > Cheers, > Dave def method_missing style_type, *args @styles[style_type].call(*args) end I hope this helps Stefano