In article <p0623091cc111234e90db@[192.168.254.205]>, Rich Morin <rdm / cfcl.com> wrote: >At 5:45 AM +0900 8/23/06, Phil Tomson wrote: >> I guess I'd be inclined to do it like: >> >> count_neighbors(:have_cats?) >> >> and not use method_missing for this. >> method_missing is really quite nice, >> but if you over-use it, it can be very >> difficult to debug. > >Why do I believe this? :-) Yes, it definitely can be difficult to debug programs which make heavy use of method_missing (even light use in some cases ;-) > >Anyway, it looks like you're suggesting that I >ask the node to run the count_neighbors method, >asking each of the neighbors to run :have_cats? > right. >This is vaguely along the lines of one approach >I've been considering, where I would send only >method names, in some hierarchical arrangement, >to be executed by the appropriate objects. > >If the methods don't have side effects, it could >be a bit like functional programming. Also, by >restricting the availability of methods, I might >be able to achieve a sort of "sandbox" effect. > >Speaking of which, is there a (reasonable) way to >limit the methods that are available within, say, >an eval? Maybe playing with $SAFE ? You might also want to look into _why's Sandbox. Phil