Archive for August, 2007

CruiseControl.rb: Automated Continuous Integration voor Ruby en Rails

CruiseControl.rb is een Continous Integration tool geschreven in Rails waarin het mogelijk is om applicaties geschreven in o.a. Ruby, Rails, Java en C++ automatisch te compilen en te testen wanneer er een commit op de centrale subversion repository is gedaan.

Hierbij wordt frequent de volledige testcyclus doorlopen, welke stappen als het compilen van de applicatie, het uitvoeren van geautomatiseerde testen en het packagen van een applicatie kan bevatten.

Een geautomatiseerde versie van dit proces is bekend als Automated Continuous Integration. Wanneer er tijdens de integratietest een fout optreedt (een unit test faalt bijvoorbeeld) dan is het mogelijk om elke ontwikkelaar automatisch op de hoogte te stellen d.m.v. een email, sms of een instant message.

De volledige test suite wordt automatisch bij elke commit uitgevoerd en zodoende wordt continu de gezondheid van je applicatie(s) gecontroleerd.

In dit artikel wordt beschreven hoe je CruiseControl.rb op kunt zetten, hoe een standaard Ruby project erin op te nemen en hoe de functionaliteit op basis van plugins uit te breiden is.

Color Scheme Generator 2

Color Scheme Generator 2 voor het bepalen van kleur combinaties. Tevens de mogelijkheid om te kijken of kleurenblinden het ook kunnen zien!

backgroundrb: render rhtml templates in worker

Duurde ff voordat ik dat had gevonden maar het equivalent van render_to_string in een backgroundrb process wordt hiermee ondervangen:

Subject: [Backgroundrb-devel] render rhtml templates in worker

So i have not figured out any sane way to access controllers inside of backgroundrb
or other rails-working scripts but instead i've resorted to rendering my rhtml
templates directly using the ERB module that rails already includes from ruby standard lib.

There are a few limitations to using ERB in the raw:
- it doesn't understand the trailing dash in <% -%> so you have to strip those.
- obviously it doesn't know about any rails helper methods although i
  think you might be able to explicitly include their classes.
- you have to pass it a binding to your namespace or else it won't be
  able to access any instance variables

Here's an example that works from inside of a model class:
     #load template into ERB object for rendering
     erb = ERB.new( IO.read( rhtml_template_path ) )

     #set instance variables for rendering
     @report = self
     @chart = @report.chart

     # in order for the erb template to access the instance variables
     # we must pass it a binding to this namespace
     b = binding

     #render template with instance variables
     rendered_result = erb.result(b)

One upside to giving up all the rails framework help is that it runs a
bit faster and lighter.

-Jacob

Update:‘trailing dash’ was niet zichtbaar ivm html codes, heeft me dus een paar uur gekost :(

Shizzle!

Zoek de gelijkenis: Ergens in frame 5365 komt de heer sturre in beeld :P