---
title: This week in open source
teaser:
tags: news,open source
author: Mike Burns
published_on: 2011-08-05
---

Another week of great pull requests to our open source projects.

## kumade

A _new gem_, started by Gabe Berke-Williams
([gabebw](https://github.com/gabebw)) with much help from Nick Quaranto
([qrush](https://github.com/qrush)), kumade is a drop-in Heroku deployer that
handles assets, migrations, and sanity checks. It's under heavy development so
stay tuned to hear more, or [try it out
yourself](https://github.com/thoughtbot/kumade).

The name comes from the Japanese word for "bamboo rake" and is pronounced "koo-mah-day".

## appraisal

Appraisal is our gem for testing engines against multiple versions of
Rails&mdash;or really, for testing any gem against multiple gemsets. We use it
to make sure our gems continue to work against various version of Rails.

Matt Griffin ([betamatt](https://github.com/betamatt)) noticed that the
excellent Aruba gem is listed as a runtime dependency even though it is most
definitely a development dependency, and fixed that
([276cc9b](https://github.com/thoughtbot/appraisal/commit/276cc9b6e756230f0734d999ced3a1217fdec2f6
"Aruba should not be a runtime dependency")).

## clearance

Clearance, our authentication engine, got a little formatting fix for the README
([77bb97a](https://github.com/thoughtbot/clearance/commit/77bb97ae77c3dc8df53df8ed0d124dc36cc4e8e5
"Escape underscore in ")) thanks to Quico Moya
([qmoya](https://github.com/qmoya)).

## factory_bot[^1]

Our popular fixture-improving testing gem, factory_bot, got more specs for
assigning associations
([841e012](https://github.com/thoughtbot/factory_bot/commit/841e012c5dffa415571f85f11ca53197d49dd695
"Add acceptance spec covering assigning associations via :factory")) from Josh
Clayton ([joshuaclayton](https://github.com/joshuaclayton)) and a hard decision
that non-block values are evaluated before block values
([28f541e](https://github.com/thoughtbot/factory_bot/commit/28f541eefc840a0943a9cbb8f057e4f5ce0476af
"Ensure static attributes are executed before dynamic ones.")) thanks to Flavio
Castelli ([flavio](https://github.com/flavio)).

Since we love pushing new versions while I'm writing this, Josh then pushed
_version 2.0.3 of factory_bot_
([ec88698](https://github.com/thoughtbot/factory_bot/commit/ec886985d114156e517de3f9b1e31a7e63895acf
"Bump version to 2.0.3 ")).

## capybara-webkit

Our headless webkit-based integration testing tool, capybara-webkit, saw a bunch
of documentation and session love this week.

Dennis Prochniak ([denysonique](https://github.com/denysonique)) and Diego
Plentz ([plentz](https://github.com/plentz)) clarified documentation for Gentoo
([9b53e01](https://github.com/thoughtbot/capybara-webkit/commit/9b53e0141d3d83b06bb29d28626b0568909d1867
"Gentoo Linux qt-webkit install instruction") and
[8850f2d](https://github.com/thoughtbot/capybara-webkit/commit/8850f2db4536570d6e706efdc2a1b69be5c2f846
"Edited README.md via GitHub")) and OS X Lion
([47b8c86](https://github.com/thoughtbot/capybara-webkit/commit/47b8c868967b492fe7c1ed6ec602187b0bc64efc
"splitting OS X instructions in Lion and pre-Lion.")), respectively.

Then our Matt Mongeau ([halogenandtoast](https://github.com/halogenandtoast))
got it passing capybara's session spec and session spec with JavaScript
([c621e65](https://github.com/thoughtbot/capybara-webkit/commit/c621e651c9ba45bb4be06f32677321fc74b49175
"Support Textareas#value"),
[983b556](https://github.com/thoughtbot/capybara-webkit/commit/983b556fa83c10a4de903bee56dd53ba5075eb27
"Support maxlength"),
[63e5a53](https://github.com/thoughtbot/capybara-webkit/commit/63e5a53c014ac2e35582f032c5fea7f01dd96583
"implement node#selected?"),
[5d50d77](https://github.com/thoughtbot/capybara-webkit/commit/5d50d77b3c6cd76e8d6f41a2aa253380f2eb299c
"Fix unselect"),
[4642d33](https://github.com/thoughtbot/capybara-webkit/commit/4642d338cc927bf71b86bac8cbc250fefb38d71d
"Session spec is working"), and
[81ad8fd](https://github.com/thoughtbot/capybara-webkit/commit/81ad8fd130437149d843191893550160cd6ec6c3
"Implement source and body. Evaluate javascript should return nil when empty")).
This means that the session object works exactly like any other capybara session
object.

## paperclip

Our file uploading gem, paperclip, got some love this week: Reinaldo de Souza
Junior ([juniorz](https://github.com/juniorz)) localized error messages by
default
([6fd2cf7](https://github.com/thoughtbot/paperclip/commit/6fd2cf7e93584b2ae905d495c31b2d28b774d466
"Makes the error message localized by default.")) while Matthew Schulkind
([mschulkind](https://github.com/mschulkind)) generalized the filename extension
then made it generate the correct one based on the content type
([fdbd7bf](https://github.com/thoughtbot/paperclip/commit/fdbd7bfa1033cf597d3d23432827d57f457f8e48
"Add a :content_type_extension interpolation to derive a file extension from the
content type.")).  ## paul_revere

We saw some bundler- and gem-related upgrades to paul_revere, the gem to add
quick announcements to Rails apps, thanks to Christopher Meiklejohn
([cmeiklejohn](https://github.com/cmeiklejohn))
([7d5eebc](https://github.com/thoughtbot/paul_revere/commit/7d5eebc85fbd689632ba59adc2e985513bc35635
"Allow rails 3.1 testing, remove explicit dep on redgreen."),
[334bb25](https://github.com/thoughtbot/paul_revere/commit/334bb25a449a4fc11026e178fdbb666d017c2f33
"Add gemfile and lockfile."),
[260db1a](https://github.com/thoughtbot/paul_revere/commit/260db1ac151bc08dca58e8d8c95d6cbda01df2cf
"Add Appraisals."),
[3039333](https://github.com/thoughtbot/paul_revere/commit/30393336efcbec75a3a556ca3fde30076fbda4d6
"Don"), and
[e217b85](https://github.com/thoughtbot/paul_revere/commit/e217b855661dd53bb4c04d8748f421c69ceab265
"Use the .up syntax, instead of migrate(:up) since that")).

## bourbon

Phil LaPier ([plapier](https://github.com/plapier)) continues on with bourbon,
cleaning up the README
([02900ae](https://github.com/thoughtbot/bourbon/commit/02900ae001eeb106d5d6512bb2824be8660bf9d8
"cleaned up button readme")) and fixing a bug in `linear-gradient`
([4802351](https://github.com/thoughtbot/bourbon/commit/4802351db71c03f75e6e9459505e11444c6f177c
"Fix linear-gradient css3 bug with background positioning")). He then pulled in
a documentation fix from Andrés Mejía ([andmej](https://github.com/andmej)) to
include `box-shadow` in the full list of mixins
([78cf621](https://github.com/thoughtbot/bourbon/commit/78cf621f1c679168b37c2374de4dd1be0c15fe13
"Adding box-shadow to full list.")) before releasing _version 0.1.3 of bourbon_
([09a875f](https://github.com/thoughtbot/bourbon/commit/09a875f7ae79af4b561368813520c3f1d79caef6
"Version bump to 0.1.3")).

## Continuous Integration

Nick Quaranto ([qrush](https://github.com/qrush)) went on a CI kick, trying
[Travis CI](http://travis-ci.org/) for our open source projects. He added it to
high_voltage
([1fcf319](https://github.com/thoughtbot/high_voltage/commit/1fcf319260e23e2a17982d1747adc027bc2db0f8
"add .travis.yml to test multiple rubies and build status image"),
[d21b037](https://github.com/thoughtbot/high_voltage/commit/d21b0377651cf8fd3f448c27a0abf4415889e766
"link to travis as well"), and
[cb4a53c](https://github.com/thoughtbot/high_voltage/commit/cb4a53c7c8c2aa91af3393d7b7b9c03de3b962e6
"Fix typo in travis url")), shoulda
([928311d](https://github.com/thoughtbot/shoulda/commit/928311d88233fa06ba5c185dcb5ceb564cf8d3da
"add travis config and image")), and paperclip
([8d95066](https://github.com/thoughtbot/paperclip/commit/8d95066d56a3347d94dfffdbfd68036fdf0c519f
"set gemfiles and test script for travis "),
[6c501ef](https://github.com/thoughtbot/paperclip/commit/6c501ef80c594794f89cdcb36b7a25186d8df052
"use the correct gemfiles"),
[6cef277](https://github.com/thoughtbot/paperclip/commit/6cef27743fb1ccf1d815b8bad467fc7fca399094
"add homebrew info to readme for test suite"),
[e02613d](https://github.com/thoughtbot/paperclip/commit/e02613d83fcd990b81b1a4f266986357e478a214
"add activerecord to gemfile "), and
[24cc278](https://github.com/thoughtbot/paperclip/commit/24cc278140354a329ae5f78f8aae5cc4170175fe
"Add travis image to readme ")).

Prem Sichanugrist ([sikachu](https://github.com/sikachu)) joined in on
paperclip, fixing the Gemfile
([e0bbebc](https://github.com/thoughtbot/paperclip/commit/e0bbebcc00551e308be766c4b83aa015434c2d1f
"Update Gemfile to make sure we can run the test locally, and also upgrade Rails
3.1 beta to latest version")) and adding JRuby support
([b08c6c6](https://github.com/thoughtbot/paperclip/commit/b08c6c6abe80c1e499bd9a5ae05275facb0ff543
"Update Travis to test on JRuby")).

[^1]: FactoryGirl was renamed to FactoryBot in 2017.
[Project name history can be found here.](https://github.com/thoughtbot/factory_bot/blob/master/NAME.md)
