In my spare time I created a library in Ruby that mimics something I
needed at work. I call it PlanMachine9 (from outer space), and you can
find what I threw together here:
I’m not ANNouncing it yet, because it’s not packaged up or polished at
all at this stage. I’m mostly trying to gauge interest before I
potentially waste time doing that.
Do any of you look at this and say “Oh, yeah, that would work really
well for me to do____!” If so, I’d be interested in feedback around
some aspects of it:
Should state transitions resulting from events be synchronous to
the event firing, or should events be queued up and processed during a
(timed or explicit) call to #update?
Is the env variable interesting, or would you always be replacing
the machine-specific variables with direct access to variables in
other code? (For example, the ‘obstacles hit’ count used in the
example on that page could totally be an instance variable tracked on
the Elevator class itself, removing any need for ‘env’ altogether.)
Are there any aspects of the precondition/postcondition/prelude/
postlude/action setup that you think you would never use, that I
should remove to simplify things?