blogstrapping

Call For Testing: Droll Gem

I have finally started pushing my droll project out of the nest and teaching it to fly. It is in pre-release status as version 1.0 release candidate 5.2.3, and is available for download from the standard Ruby Gems archive. You can check out the RubyGems.org Droll Project page on the rubygems.org site.

Note that as a pre-release gem, installing in the usual manner requires an extra --pre option when installing with the gem command line utility:

> gem install droll --pre

This will only be the case until the final 1.0 release version hits the "streets". I am not sure at this point how long that will take. It has already taken me much longer to push this release candidate to gemcutter for publication in RubyGems because of my basic performance anxiety. I have not ever done this before; this is my first official gem maintainership, and I wanted to do things "right".

There are a couple of things I did not do according to how others suggested, even after all that procrastination and hand-wringing, but I think they are stylistic matters that will not get me mocked too much for doing things differently, and for the moment I am not too terribly worried about them. I figured I should just get things out there in the world sooner rather than later on those issues. My bigger concerns right now are related to stuff like organization of code in the Droll class and minor issues of the mechanics of gem organization that I am not certain I fully understand at this point (thanks to the spotty documentation of some of it all).

Speaking of documentation, I have -- 'scuse the language -- documented the *shit** out of droll*. The RDoc is pretty complete, rather than the typical empty function signature BS it seems most people pretend is "documentation" when they generate RDoc from their Ruby projects, despite the fact Droll only has two class methods (new and version) and one instance method (roll). The droll project comes with two application interfaces, too, which include their own documentation as well:

droll

The droll utility is for command-line access to the dice-rolling functionality of the Droll class. It's a relatively straightforward interface to the functionality of the Droll class, with a small number of command line options. The -h (or --help) option gives a simple explanation of how to use the droll command line utility, including a listing of the other command line options.

One of those other options is -s, or --syntax, which dumps a rather in-depth explanation of the die-code syntax droll accepts for figuring out how you want to roll dice. This syntax explanation should be essentially identical to the RDoc documentation of the syntax the Droll class can handle.

drollbot

The drollbot tool is an IRC dicebot, which offers a slightly simplified version of the kind of functionality you get from droll, primarily because at this time it makes more sense to do it that way for IRC use. It also offers additional functionality that only really makes sense in an IRC context. You can execute drollbot from the command line to start it up, or with command line options to get some documentation output.

As does droll, drollbot accepts a -h or --help option with a simple explanation of how to use it. One of the options presented there is the -c or --config option, which explains how to set up a configuration file for drollbot.

Administrivia

The droll project repository is currently hosted at Bitbucket, at bitbucket.org/apotheon/droll. There is an issue tracker there, if you want to share any bugs you found or offer some feature requests. I would be happy to review any pull request on Bitbucket, or otherwise consider contributions. You can contact me via the contact page here at blogstrapping as well if you have comments or questions.

I am thinking about setting up a site specifically for droll somewhere, though I have not yet decided where. I do have an idea that I may use, but doing so depends on the disposition of a site that currently has nothing on it, and that I have not yet made public for various reasons, so I do not have much news to offer there or any kind of URI to show for it.

I believe that the droll project is release-worthy stable software, though the drollbot IRC interface may not be quite as resilient in the face of network inconsistency as I would like. It should generally be "production ready", but it has not been widely tested and I have as yet not received any direct feedback (as of this writing) about it from people actually using it independently of my own use.

I owe some thanks to 7rans, aka "intransition", of RubyWorks for some help in polishing up the organization of the gem, though I still have not implemented all of his suggestions. I owe some as well to my Significant Other and my friends Nathan Eriksen and Sterling Camden for their moral support and occasional technical aid in testing and thinking about the problem of how this software should be made. All of the code, so far, is mine (with the exception of Ruby and the isaac library, of course, the latter of which does the heavy lifting for drollbot).

Droll may be distributed under the terms of the Open Works License, as indicated in the sources.