On Sep-25, Steve Fink wrote: > I have written a support library for creating daemons that send and > receive commands via IM networks. Well, sorta -- at the moment, I only > have a Jabber backend, but the library is split up into fairly general > IM daemon management and protocol-specific support. > > The working name is Net::IMClient for the general module, and > Net::IMClient::Jabber for the jabber support. I suppose I could use
Now I'm thinking of Net::Chat::Server for the server framework and Net::Chat::Jabber for the Jabber-specific functionality. I plan on a Net::Chat::Client eventually, but I don't use that much. (For now, my client-only program just uses Net::Jabber directly.) On the module list, brian d foy suggested that maybe it's time for a toplevel Chat:: namespace, which would be great but I'm not about to throw my stuff in there until it has some measure of approval. Net::Chat::Server is a little odd since it goes from general to specific to general. I suppose I could do Net::Server::Chat and Net::Server::Chat::Jabber. But I'm probably going to leave it as is since it's just about ready to commit, and none of these names is really satisfying. The only other issue I have (besides naming) is how to write a test suite. I don't want to force the user to install a Jabber server just to test this module. I can use jabber.org as the server, but it seems impolite to spam it with a whole bunch of test accounts for everyone who tries the module out, and error-prone to reuse the same set of accounts (what happens if two people are running the tests simultaneously?) I've never tried writing a Jabber server. Perhaps some simplistic implementation wouldn't be too bad. I could stub out the server, but that would pretty severely cut down on the set of useful tests. (I could still write a full test suite, but most of the tests wouldn't be very representative of its actual behavior since the difficult parts generally deal with interoperating with the server protocol properly.)
