"Han Holl" <han.holl / pobox.com> schrieb im Newsbeitrag
news:b93fa83f.0402271401.74158b0a / posting.google.com...
> "Robert Klemme" <bob.news / gmx.net> wrote in message >
> > I wonder though what you are trying to achieve.  It looks quite
> > complicated to me and currently I don't have a clue about the real world
> > problem you are trying to solve.
> >
> You're right, it's quite complicated.

Aha... :-)

I need to repeat your statements to be sure I got you correctly. :-)

> We had a data-entry program where people who weren't necessarily
professional
> programmers could write end-of-text-field validation functions in a very
simple
> programming language that looked a lot like awk, but with multidimensional
> associative arrays.
> We are going to replace this language with a subset of ruby.

So, people will write the functions using Ruby sytax in the future?

> I am trying to create an environment that resembles the environment they
were
> used to. They will be able to write functions that are all evaluated into
> the same class.

If I do understand correctly, you end up with a single class that has a
bunch of methods and these methods are the ones your people will write.

> These ruby functions will be called with a lot of environment
> predefined. A typical end-function could look like:
> def date_ok(value)
>   value =~ /\d\d-\d\d-\d\d/
> end

This one apparently doesn't use any environmental data.  (Btw, you might
want to add "^" and "$" to that function.)

> These end-functions are alse able to fill-in other fields, do code
expansion
> and so on.

Aha, so the instance of your class at hand has instance variables and
predefined methods that some of the functions can use.

> In an configuration file you can specify which functions will be called
when.
> An important part of this is to make it look as familiar to them as I can,
> but still have the advantage of using ruby with all of it's wondeful
features.

So, basically there are two interfaces for your people: the piece where they
define the functions and the config file where they define the concrete
invocation order of functions.

And it seems, you want to keep the config file syntax while changing the
sytax that the function definition interface (or file?) uses to Ruby.  So
basically you parse the config file and generate a method that reflects
invocation sequence of the other methods.  Something like that.

I guess, I got the broad picture.  Now I'm just missing the connection to
the original problem. :-)

Regards

    robert