As part of my new courses of "Paradigms of Programming" in Oxford Brookes University, I've to develop 7 different programs in 7 different languages. Two of them will be larger programs (but not too large ;) and the five others will be smaller, more or less.
Time will tell if the five small programs will be small enough for me to finish them before the end of the semester :)
So Rubyztag is one a the 5 small programs :
Ruby (guess what ?) for Ruby !
ztag for Nabaztag
Rubyztag's aim is to provide your GitHub watched repositories last commits via your Nabaztag in Text-To-Speech. Meaning that each time you runs Rubyztag, it will scan all the repositories you watch on GitHub and tells you which ones have new commits.
To do so, the first time you launch Rubyztag, it will store all the commits of all the repositories you are currently watching, so after that it will be possible to determine whether a commit is new or not.
Obviously, you need a GitHub account and a Nabaztag (or at least the serial number and token of a friend's bunny so you can send him thing he may have never heard of :).
Because of GutHub and Nabaztag API's limitations, if you have more than a certain number (will be defined later) of watched repositories, you'll have to define which ones you want to be processed by Rubyztag.
Many other functionnality could be implemented, for instance it would be possible to make a sort of TweetDeck, spoken by your bunny.
Currently, Rubyztag is aimed to use only the GitHub and Nabaztag API, but like I said, a lot of features could be added, and one of them would be to detect in which language is the text you're sending to your rabbit (Nabaztag can handle several languages).
For now I don't have enough time, so it's just a 'wait for it' :) Rubyztag is not finished yet ! It's just a kind of Beta.
Moreover a new version of the Nabaztag (currently version 2) is coming for March 2011 and the possibilities might be very interesting. I you're interested in, search for Karotz on Google, which is the name of the V3, and you will probably find a link to its dedicated web page. Problem is the new API will not support the current one... So I'll have to do it again, but that's fun :D