S
Sharon Phillips
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
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