In a vaguely similar spirit, I've been toying for a while with an object model for CGI::Wiki. Rather than re-implement things, I'm trying to nail OOP onto the top of CGI:::Wiki. Mostly, I'm lazy and don't want to re-implement all that stuff. I have a first-cut effort that I'm quite happy with in my svn repository ( I imported 0.61 from CPAN for hacking on ) which you can get at and play with here:
http://dev.jerakeen.org/svn/tomi/Projects/CGI-Wiki/
I've added one file, https://dev.jerakeen.org/svn/tomi/Projects/CGI-Wiki/lib/CGI/Wiki/ Node.pm which represents a node object, and a few methods to CGI::Wiki to return and create nodes. I'm trying to document the things in the existing API that I break here:
http://dev.jerakeen.org/svn/tomi/Projects/CGI-Wiki/INCOMPATIBILITIES
The API is demonstrated best by the test:
http://dev.jerakeen.org/svn/tomi/Projects/CGI-Wiki/t/160_objects.t
which exercises most of the interesting bits. Note that not all of the rest of the tests pass - this is because I've broken the plugin API completely. I may revert this - I _also_ intend, thanks to conversations with Martin in the pub, to re-build the plugin interface - right now it's not a plugin interface at all, frankly, it's a list of modules. But this really should be a separate development branch..
Anyway, I'm interested in feedback on the direction the API is going, if anyone wants to look at the code.
On Oct 14, 2004, at 23:11, Justin Kao wrote:
Hello all,
I've been playing with ideas for Wiki::Toolkit for a while, and occasionally inflicting them on Kake. She suggested sending this to the list, so see below... please be kind :)
Justin