ptkwt
8/22/2006 8:21:00 PM
In article <p06230914c110cc8d3bb9@[192.168.254.205]>,
Rich Morin <rdm@cfcl.com> wrote:
>Ruby Graph Language (RGL) allows graphical structures
>to be modeled as collections of objects. So, you can
>ask a node to iterate through its neighbors, etc.
>
>I've been toying with ways to extend this notion, using
>(say) method_missing. Here's a hand-waving example,
>where "you" are assumed to be a Ruby object:
>
> Let's say that I want to find out how many of your
> neighbors have cats. Although you don't know the
> answer, you do know who your neighbors are. They,
> in turn, know whether they have cats. So, I send
> you the following message:
>
> count_neighbors_with_cats
>
> Having no method of this name, you hand it off to
> method_missing for parsing and such. As a result,
> each of your neighbors is sent a message such as:
>
> have_cats?
>
> After they respond, you tally and return the results.
>
>Obviously, this could be done without method_missing.
>For example, I could send you a Ruby script to eval.
>Alternatively, I could send you a YAML (or whatever)
>description. Each approach has its own flexibility,
>overhead, dangers, etc.
>
>Has anyone done anything like this? I'd love to see
>pointers to related work, etc.
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.
Phil