A Comparison of Continuous Integration Tools for Ruby on Rails

February 28, 2007

Yesterday I gave a talk at the Ruby Users of Minnesota (RUM) meeting where I presented some slides and gave a demo on some of the current Continuous Integration (CI) tools that are available for Ruby and Ruby on Rails.

The technologies reviewed were Continuous Builder, Cerberus, CruiseControl, and CruiseControl.rb. I also compiled and presented a comparison matrix much like Aslak Hellesoy has done on the DamageControl web site.

All the artifacts that I used for the demo can be found on the Docs page.


Learning Ruby – TDD Style! (Part 2)

January 31, 2007

start | previous | next | finish

In order to do Test Driven Development (TDD), we need to become intimately familiar with assertions. In my last blog entry, we started to look at the assert method. Lets consider the contract of this method:

assert(boolean, message=nil)
– Asserts that boolean is not false or nil.

When testing this method I’m making the conscious decision not to test assert using the other methods that Test::Unit::Assertions offers. Although it’ll make things more difficult at first, it will force us to learn aspects of the Ruby language that we would not be able to see if we used one “assert” to test another “assert”.

Read the rest of this entry »


Learning Ruby – TDD Style! (Part 1)

January 13, 2007

start | previous | next | finish

I’m starting to take a serious look at Ruby, and like many people who are new to a programming language, it’s difficult to know where to start. Sure I have the “pickaxe” book in hand and my bookmarks are overflowing with Ruby links, but where ever and however I start I would like to be able to see immediate results and I would like to prove to myself that I’m understanding the syntax.

How about testing what I already know? Well, right now I don’t know too much. However, that should make things easier since it will prevent me from wanting to take on too much at once and keeping myself focused on small obtainable goals.

Read the rest of this entry »