droll

Droll is a dice roller library written in Ruby. The library itself can also be used directly as a command line dice roller utility, and comes with a wrapper script called drollbot that allows it to be used as an IRC dicebot.

Contributing

It is possible to contribute code to any software development project, so long as you have access to the source and the maintainer is willing to accept contributions. In the case of a project hosted on Bitbucket, however, the process of managing contributions can be much easier for everyone involved. Toward that end, this document represents an attempt to explain how to make the best use of these tools to make the process of contribution as smooth and easy as possible. The first step, if you are not already familiar with them, is to familiarize yourself with the tools.

Eventually, the plan is to write more original material for inclusion here, but for now much of the howto information will be presented via articles available on the Web.

The Source

I (the guy who created this project) am a mediocre programmer. The program is effective, and does its job well so far. If you see problems with the way it is written, please feel free to let me know and suggest changes; there are probably some problems that I have not figured out yet.

The code base is, at this time, relatively simple and easy to understand (I think). It may serve as a good example of a working program written in Ruby if you want to tinker with something to learn more about Ruby in particular and programming in general.

Helpful Resources

Some of the following TechRepublic articles may suffer from some formatting issues, thanks to changes in the CSS formatting the site uses. In particular, inline code snippets are treated like complete, separate blocks of code, breaking up paragraphs into, well, messes. Hopefully the problem will not be too awful for trying to comprehend the content of the articles. If you use Firefox with the Greasemonkey extension, the tr-rectify Greasemonkey script corrects a lot of the problems in the new TechRepublic formatting scheme.

This project uses the Mercurial distributed version control system (DVCS). A basic explanation of an effective development workflow using Mercurial is explained in A Development Workflow For Mercurial.

Using Mercurial with Bitbucket is not terribly difficult, but on Unix-like systems the most secure approach is probably to use public key authentication with OpenSSH. You can read about that in the Secure Mercurial And BitBucket Quickstart.

This project uses the Isaac library in the "drollbot" component, an IRC dicebot script that wraps the core droll library. You can read about basic use of Isaac in the article Let Isaac Help You Build IRC Bots.