---
title: This Week in Open Source
teaser:
tags: news,open source
author: Gabe Berke-Williams
published_on: 2011-09-09
---

## kumade

Lots and lots of changes to [kumade](https://github.com/thoughtbot/kumade) this week!

Gabe Berke-Williams ([gabebw](http://github.com/gabebw) - that's me!) cleaned up the code a bit
([afb29cf](http://github.com/thoughtbot/kumade/commit/afb29cf91457b1dd45e425ccd54ea7b3acc87ca7 "More cleanup"),
[fda26ee](http://github.com/thoughtbot/kumade/commit/fda26ee661dfbb1d9a854ae37fe7c385e6fe9616 "Cleanup and whitespace."),
[39c0a32](http://github.com/thoughtbot/kumade/commit/39c0a322a2b522836bbb0cacbc201cb3bf054ecd "Refactor method."),
[7e255bf](http://github.com/thoughtbot/kumade/commit/7e255bfe1877142e723c80939a9d2ddde9d543a0 "Whitespace and parentheses."), and
[75403a7](http://github.com/thoughtbot/kumade/commit/75403a79975a9509527e5e4fca20dae75dd52de4 "Clean up spec_helper")).

I switched the order of arguments to `Git#initialize` to match the rest of the gem
([62e9202](http://github.com/thoughtbot/kumade/commit/62e9202c7306f2819ad33623300f5efb9486d732 "Switch the order of arguments to Git#initialize")).
I made a couple of minor changes to the specs
([8949cdc](http://github.com/thoughtbot/kumade/commit/8949cdc9d84ef6cc7773db54951246ff9971651a "Clean up spec so it doesn"),
[f1d82ed](http://github.com/thoughtbot/kumade/commit/f1d82edd08bbff414d7ca2e74d1e82d94f3bb6c4 "Include Rake::DSL. Explicitly require rake in specs since kumade autoloads."), and
[7b5e6ea](http://github.com/thoughtbot/kumade/commit/7b5e6ea8acaa64948a7421b875366f529a68751b "Colorful RSpec")).
And, of course, some README fixes ([1d40e91](http://github.com/thoughtbot/kumade/commit/1d40e9174c711ddf9b256c1296bfced1db0c9295 "Explain the autogenerated Rake tasks a bit more") and
[2e66cb2](http://github.com/thoughtbot/kumade/commit/2e66cb2380e611e9636c513ada2e5041964f3e7f "kumade auto-detects Cedar.")).

I merged Marcos Tapajós' ([tapajos](http://github.com/tapajos)) pull request removing sample output, since it's rapidly outdated ([4d2b13e](http://github.com/thoughtbot/kumade/commit/4d2b13e38eb7369133ef94b836d9578aa4d83172 "Remove sample output. ")).

Marcos also fixed an issue where the deploy branch wasn't deleted if the deploy failed ([ba8a264](http://github.com/thoughtbot/kumade/commit/ba8a26400a9e0ebac99d599f8911039ffcfeade1 "Closes issue #20")).
He also added [Cocaine](https://github.com/thoughtbot/cocaine), thoughtbot's<abbr title="Command Line Interface">CLI</abbr>wrapper, to fix the problem of printing output to the terminal ([866f946](http://github.com/thoughtbot/kumade/commit/866f9467045aeb57f92589451a1bd16875941d60 "Fix issue 37 using Cocaine")).

Harold Giménez ([hgimenez](http://github.com/hgmnz)) _ensured_ good code quality and removed some mocks
([bdbb486](http://github.com/thoughtbot/kumade/commit/bdbb48680940f26e80faf94b4c553f0390d84350 "Use ensure") and [28f79b2](http://github.com/thoughtbot/kumade/commit/28f79b261afc7a7120e80eac661f4a0b8c2b069b "Use ensure and don")).
I learned that begin/ensure will re-raise an error after the ensure block runs, while begin/rescue/end will swallow the error. Harold always brings the knowledge.

Jon Yurek ([jyurek](http://github.com/jyurek)) added an awesome feature: automatic detection of an application's stack
([6bd53af](http://github.com/thoughtbot/kumade/commit/6bd53af25329fdbb125d9ab8d3ee8ef82cd11361 "Remove the --cedar option, detect cedar automatically") and
[b65ca45](http://github.com/thoughtbot/kumade/commit/b65ca4594b7665876707be9121725a5023ed0140 "Cache the cedar check, because checking is slow")).
As of [version 0.3.0](http://github.com/thoughtbot/kumade/commit/fb1746ef31aa16c2252074b25e86ab51ef7605c1 "Bumped version to 0.3.0"),
Marcos Tapajós ([tapajos](http://github.com/tapajos)) removed the -c option ([fbdb609](http://github.com/thoughtbot/kumade/commit/fbdb6090f7c6715332a599965bdc5b61d7ae9b7e "Remove -c option.")) since kumade now autodetects the current stack.
Jon also noticed that [Travis CI](http://travis-ci.org/) doesn't have 1.8.7-p249 and removed it ([8e94343](http://github.com/thoughtbot/kumade/commit/8e94343a3b671db2f5f2d591a59a708b613bedc6 "Don")).

Joshua Clayton ([joshuaclayton](http://github.com/joshuaclayton)) sprang into action and renamed `Runner` to `CLI`
([e222538](http://github.com/thoughtbot/kumade/commit/e22253879564e34fdd1c5adff1a528083d7a9b82 "Runner didn")).
He also made kumade use autoload ([c01085e](http://github.com/thoughtbot/kumade/commit/c01085eada355c1e5a3336bb4c08bf1c778a2b93 "Clean up requires and use autoload")). You can read more about autoload [here](http://www.rubyinside.com/ruby-techniques-revealed-autoload-1652.html).

Kumade development is happening _fast_, but that doesn't mean you shouldn't contribute! The fast pace means that most pull requests will get a response within a day, so whether it's documentation or a new module, send in your changes!

## suspenders

Mike Burns ([mike-burns](http://github.com/mike-burns)) updated [suspenders](https://github.com/thoughtbot/suspenders) for Rails 3.1.0 this week.
jQuery is part of Rails 3.1.0, so he removed it ([be26211](http://github.com/thoughtbot/suspenders/commit/be2621136d5ab7817dc12e1ead8208091be36ced "jQuery is part of Rails 3.1.0 already.")).
Suspenders now uses the `--database` option to generate a Postgres database.yml ([94010c2](http://github.com/thoughtbot/suspenders/commit/94010c2e254ad1dfa5f04eb46bd138c4f747dd05 "Use Postgres by default.")).
You can read more about the `--database` option at the [Rails command line guide](http://guides.rubyonrails.org/command_line.html#rails-with-databases-and-scm).
And finally, with Rails 3.1.0 in the Gemfile ([3f06a65](http://github.com/thoughtbot/suspenders/commit/3f06a6525b7840da3fee1cca2a1ad244fb325b5c "Rails 3.1.0")), we're all set for Rails 3.1.0!

## paul_revere

Matt Jankowski ([mjankowski](http://github.com/mjankowski)) worked on [paul_revere](https://github.com/thoughtbot/paul_revere), our one off announcement plugin.
It's now tested against Rails 3.0.10 and 3.1.0 ([31bdfdd](http://github.com/thoughtbot/paul_revere/commit/31bdfdda5032d45bfc0ff63f2e15c793a8f7e259 "use 3.1.0 and 3.0.10 for appraisal")).
He also converted the tests from Test::Unit to RSpec in commit [447808d](http://github.com/thoughtbot/paul_revere/commit/447808d5e963272868051055763436db977e5454 "use rspec for tests"), certainly a welcome change.

## shoulda-matchers

Mike Burns ([mike-burns](http://github.com/mike-burns)) told [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) bug reporters where to stick it ([0a70502](http://github.com/thoughtbot/shoulda-matchers/commit/0a70502057220481dfe35860c3a1116a0db72166 "Where to stick it.")).

## bourbon

[bourbon](https://github.com/thoughtbot/bourbon), our set of vanilla Sass mixins, got some love this week.

Chris Lloyd ([chrislloyd](http://github.com/chrislloyd)) removed some Bourbon mixins that wrote Sass into files, which also fixed some @import problems with Rails 3.1 ([3c3ffcd](http://github.com/thoughtbot/bourbon/commit/3c3ffcd23cdf44dfd08f517d90c6fd3c234e1bd2 "Removed animation keyframes (fade-in/out). Also fixes @import problems with Rails 3.1. Fixes #9.")).

Jeremy Raines ([jraines](http://github.com/jraines)) added documentation on using Bourbon outside of rails ([5e005b9](http://github.com/thoughtbot/bourbon/commit/5e005b96452367dfbd84fc3f304f18648d8ad45f "fixes #13 by making the docs for using outside Rails a bit more explicit.  ")).

Our very own Phil LaPier ([plapier](http://github.com/plapier)) released version 0.1.6 ([da56992](http://github.com/thoughtbot/bourbon/commit/da56992520af0b7d89271f9d4685203f32abe29d "Version bump to 0.1.6")) and then version 0.1.7 the next day ([7afb43c](http://github.com/thoughtbot/bourbon/commit/7afb43c47477ae3c4119fa96198023b34d73063e "Bump 0.1.7")).
He also updated the readme.md (a lowercase filename, in a bold departure from the thoughtbot standard) ([ea553ba](http://github.com/thoughtbot/bourbon/commit/ea553baad78bcf4c2feb5118b5ee424bd8587e42 "Updates to readme for rails 3.1 carification")).

And Matt Jankowski ([mjankowski](http://github.com/mjankowski)) has zero tolerance for made-up words ([74b4450](https://github.com/thoughtbot/bourbon/commit/74b4450956a68049d93699aed538ccd2d5543fe9)).

## high_voltage

Matt Jankowski ([mjankowski](http://github.com/mjankowski)) converted [high_voltage](https://github.com/thoughtbot/high_voltage)'s test to RSpec ([4925fd5](http://github.com/thoughtbot/high_voltage/commit/4925fd526e714ea74560859b59d9d59c5a291a32 "switch to use rspec for tests")).
([cdfa644](http://github.com/thoughtbot/high_voltage/commit/cdfa6447690b7987791ebac5856dcaa59695a098 "version bump for rails 3.1 routes/format extension fix"))
He updated the gem authors as well ([7a110f5](http://github.com/thoughtbot/high_voltage/commit/7a110f573dd99b4b5c7450f0e42f4ddcad3bc6f3 "update authors based on git shortlog")).
The tests now run using an in-memory SQLite database ([a689718](http://github.com/thoughtbot/high_voltage/commit/a6897182d37e05efd902536b129f5b847ab8e72c "try in-memory sqlite")). And the Rails 3.1 love continues with 3.1 tests using appraisal  [4dd575d](http://github.com/thoughtbot/high_voltage/commit/4dd575d8ad3eb32749c1ec608f70c411450ad778 "use appraisal to test against both rails 3.1.0 and 3.0.10")) and a version bump to 1.0.

## pacecar

Matt Jankowski ([mjankowski](http://github.com/mjankowski)) updated [pacecar](https://github.com/thoughtbot/pacecar) for Rails 3.1 ([commit list](https://github.com/thoughtbot/pacecar/compare/7f75f62...b3c474f)) and updated the factories to use Factory Bot 2.0's hot new syntax ([f9ce3e5](http://github.com/thoughtbot/pacecar/commit/f9ce3e5dd82be04471e34c9f49fecdff302de36f "use newer FG syntax in factories defs")).

## flutie

Matt Jankowski ([mjankowski](http://github.com/mjankowski)) did a bunch of work on [flutie](https://github.com/thoughtbot/flutie). He added [appraisal](https://github.com/thoughtbot/appraisal) ([90aad4a](http://github.com/thoughtbot/flutie/commit/90aad4a020b90a93380672a5f03a476561882ac0 "use appraisal to test 3.1.0 and 3.0.10")) and body_class and page_title helpers ([commit list](https://github.com/thoughtbot/flutie/compare/53d093b...4ae8fd1)).
He also added a fix for Rails 3.1 stylesheet expansions ([92718a0](http://github.com/thoughtbot/flutie/commit/92718a0fa18ff4c1333c157ec3ebbaaf3d8ac7e8 "rails 3.1 stores the stylesheet expansions elsewhere")), and followed that up with a version bump to 1.2.5 ([f70068e](http://github.com/thoughtbot/flutie/commit/f70068efc33bb04dd355254648bbc19603449029 "bump version")).

Matt also fixed flutie to run on Rails 3.1.0 this week. It now correctly uses the Rails 3.1 asset pipeline ([commit list](https://github.com/thoughtbot/flutie/compare/2bc2c03...b82529202b)). Get version 1.3.1 while it's hot!

## paperclip

[paperclip](https://github.com/thoughtbot/paperclip) had a good amount of activity this week.

Gabe Berke-Williams ([gabebw](http://github.com/gabebw) - me again!) fixed a typo ([ae781ac](http://github.com/thoughtbot/paperclip/commit/ae781ac8181441eb9f8dbb37f1691cbcf0edb9f7 "Typo, as per usual.")).

Prem Sichanugrist ([sikachu](http://github.com/sikachu)) bumped the version to
[2.4.1](http://github.com/thoughtbot/paperclip/commit/9c83611ba757e56f143e34d90a36217ac036d4cf "Bump to 2.4.1"). This version brings a basic integration test ([3131601](http://github.com/thoughtbot/paperclip/commit/3131601f2724814efc00718443db7a9ef1b7fb26 "Add basic integration test using Cucumber.")),
interoperability with Factory Bot 2.0 ([d639d5e](http://github.com/thoughtbot/paperclip/commit/d639d5eaefc237d79199dd745c4257cdaefd4063 "Fix problem with the newer version of Factory Bot")),
removal of a duplicate test ([cb6efaa](http://github.com/thoughtbot/paperclip/commit/cb6efaa5861f9f83f8232fed2da21edc5173bd4e "Remove duplicate test case")), and
set the logger to a Railsy logger if in Rails ([37385dd](http://github.com/thoughtbot/paperclip/commit/37385ddb5b992769a0992ce26576b1992bee3bba "Set the logger to be `AR::Base.logger` or `Rails.logger` when the gem is included to Rails.")).

Chris Oliver and Prem Sichanugrist fixed an incorrect option that was being passed to ``file`` ([23cd662](http://github.com/thoughtbot/paperclip/commit/23cd662e438fd9a44c09c2ac75cccc4a6673858d "Use --mime instead of --mime-type for `file` command")).

## factory_bot[^1]

Gabe Berke-Williams ([gabebw](http://github.com/gabebw) - me again!) made some documentation fixes to [factory_bot](https://github.com/thoughtbot/factory_bot)
([4d4b5d9](http://github.com/thoughtbot/factory_bot/commit/4d4b5d9cfd93c2bf2a58cfb26641d0bd87ba87f1 "typo") and
[db82ccc](http://github.com/thoughtbot/factory_bot/commit/db82ccc74c451bb89de4f2d5d1b64d03c8208169 "factory_bot_rails 1.1 isn")).

Stephan Eckardt and Josh Clayton added `FactoryBot.modify`, which allows you to re-open defined Factories
([14b8245](http://github.com/thoughtbot/factory_bot/commit/14b8245371f08373bd31035725c938737789c94a "Allow factories to be modified after they")). This can be helpful when dealing with vendor-supplied factories, like from a gem.

Joshua Clayton ([joshuaclayton](http://github.com/joshuaclayton)) bumped FactoryBot to 2.1.0 ([386848d](http://github.com/thoughtbot/factory_bot/commit/386848d6e58b4bb09b524e24160db6f4375595c3 "Bump version to 2.1.0")).
He also committed code to assign created_at for stubbed models ([00503ee](http://github.com/thoughtbot/factory_bot/commit/00503eec6c11c87e842abf1c1a96a185d8c0e1d2 "When creating a stubbed model, assign created_at

Closes issue 32 from factory_bot_rails")).

One very nice addition is `FactoryBot.reload`, which clears all
defined factories and then reloads definitions ([3798144](http://github.com/thoughtbot/factory_bot/commit/3798144bd1728e818bbb34c37921f430f3dc27a8 "FactoryBot.reload clears all registries and loads all known definitions")).

Finally, Josh fixed up the documentation
([661e8ff](http://github.com/thoughtbot/factory_bot/commit/661e8ffde52d43b839fe869101a6dac8f43e0e51 "Clarify factory modification in the context of traits"),
[370d8a6](http://github.com/thoughtbot/factory_bot/commit/370d8a6816b9d72674b2dda37d604912d5340893 "Update Getting Started to reflect recent version bumps"),
[7fd7d95](http://github.com/thoughtbot/factory_bot/commit/7fd7d95e071a1fa1f0fea8f0e6af4539d427d4f0 "Use git to manage files contained in the gemspec"),
[1f0e2eb](http://github.com/thoughtbot/factory_bot/commit/1f0e2eb3011d2809b89c6963be30cd467e20ddbb "Attribution"),
[9bacd0c](http://github.com/thoughtbot/factory_bot/commit/9bacd0cb310dc9e297c8c951adb2ec707b08b44d "Report Travis status from master branch"), and
[0529a87](http://github.com/thoughtbot/factory_bot/commit/0529a879d90c0352f0e3f8822fcb959cefe61478 "Update gemspec to reflect proper dependencies and add Rails 3.1 coverage"))

## dotfiles

Dan Croak ([croaky](http://github.com/croaky)) fixed up the thoughtbot [dotfiles](https://github.com/thoughtbot/dotfiles) and made tmux announce itself as a 256-color terminal so that Vim color schemes look breathtakingly vibrant ([dc4c65e](http://github.com/thoughtbot/dotfiles/commit/dc4c65e7ca52ddebf4600cbb296ab239a4fb7bee "use screen-256-color for tmux so that certain color schemes in vim look breathtakingly vibrant")).

## clearance

Our own Dan Croak ([croaky](http://github.com/croaky)) changed [clearance](https://github.com/thoughtbot/clearance) to put more dependencies in the gemspec
([90ca670](http://github.com/thoughtbot/clearance/commit/90ca670f6830714431ddbf1629970f90baf944d0 "testing clearance against rails 3.1. also moving towards ")).

## appraisal

Mike Burns ([mike-burns](http://github.com/mike-burns)) added `group` support to [appraisal](https://github.com/thoughtbot/appraisal) ([1df64a1](http://github.com/thoughtbot/appraisal/commit/1df64a1268a928580ac400019593eaad6a3e2d1f "Support Gemspec groups, briefly.")).

## factory_bot_rails[^1]

Joshua Clayton ([joshuaclayton](http://github.com/joshuaclayton)) worked on [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails), bumping the version to 1.2.0
([c7d54d2](http://github.com/thoughtbot/factory_bot_rails/commit/c7d54d2c31b49a27e7b303acee854a0788475aea "Bump version to 1.2.0")) and updating its dependency to factory_bot 2.1.0
([5518b91](http://github.com/thoughtbot/factory_bot_rails/commit/5518b915ecab13203e674f68020b4231d7560430 "Update dependency to factory_bot 2.1.0")).

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