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.)

Reply via email to