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

Another week of refactoring, bug fixes, and a bunch of new version releases. Vote for your favorite commit in the comments section!

## bourbon

More bug fixes and refactorings on [bourbon](https://github.com/thoughtbot/bourbon), our collection of Sass mixins. Phil LaPier ([plapier](http://github.com/plapier)) fixed the `background-image` mixin to work with Sass 3.1.8, promoted `render-gradients` to the document root ([d9d19a2](http://github.com/thoughtbot/bourbon/commit/d9d19a23e6cfa0ab51b9ebdfeed35bdf6b026385 "Fixed background-image mixin to work with sass-3.1.8. Moved render-gradients function to document root.")), refactored the `_background-image` mixin a tiny bit which helped with Sass 3.1.8 compatibility ([4e6f6b0](http://github.com/thoughtbot/bourbon/commit/4e6f6b0b9c54cd05f33ac114ec856bf30d100d8b "Refactored _background-image mixin. Fixes  issues. Works with Sass 3.1.8.")), and _released version 0.2.1 of bourbon_ ([56cb8fb](http://github.com/thoughtbot/bourbon/commit/56cb8fb33961b271f6f5abfce3bf2ac03f72a8e4 "Bourbon 0.2.1") and [fcb1a28](http://github.com/thoughtbot/bourbon/commit/fcb1a2869d9e04e87a73445e4c5252729c2c1863 "Bourbon Version bump to 0.2.0")).

## kumade

We sure love refactoring. In our Heroku deployment gem, [kumade](https://github.com/thoughtbot/kumade), Gabe Berke-Williams ([gabebw](http://github.com/gabebw)) made the tests a tiny bit easier to read by refactoring an internal method that adds and commits all assets in a directory ([82971ab](http://github.com/thoughtbot/kumade/commit/82971abb9af8b4d4bdcb4747e6159164736a6f88 "Refactor method.")). Marcos Tapajós ([tapajos](https://github.com/tapajos)) renamed the internal `sync_github` method to `sync_origin`, making it more explicitly clear what it does ([92a88b6](http://github.com/thoughtbot/kumade/commit/92a88b6cf0abfd448f4de2c007522f865e53bc66 "Merge branch ")).

## suspenders

We have a Rails template that we call [suspenders](https://github.com/thoughtbot/suspenders). Dan Croak ([croaky](http://github.com/croaky)) removed the superfluous mention of `prefilled_input.js` from the gemspec ([0f5f194](http://github.com/thoughtbot/suspenders/commit/0f5f1947be387120fed3c66e156650ec6cb41f55 "prefilled_input.js no longer in template, should not be in gemspec")), looked over all the fun that has gone into it for a while, and _released version 0.2.7 of suspenders_ ([d82e98f](http://github.com/thoughtbot/suspenders/commit/d82e98f0c00b1021e418d589d6988a6435fc4cfd "bump gem to 0.2.7")).

## high_voltage

The hilarious gem for making static pages in Rails, [high_voltage](https://github.com/thoughtbot/high_voltage), now has the ability to set the default layout and content path, thanks to Xavier Spriet ([loginx](https://github.com/loginx)). Thanks to his commits ([634cbbc](https://github.com/thoughtbot/high_voltage/commit/634cbbca97762c6f50f15a2a0826bf34be97fbad "Use HighVoltage::content_path for generated routes too"), [97b73f8](https://github.com/thoughtbot/high_voltage/commit/97b73f87bfc2e10c3d0e3b2a076e00019c64ed31 "Test description fix"), and [7a2fc9e](https://github.com/thoughtbot/high_voltage/commit/7a2fc9eb3be567e5d48d688ceab3777355898100 "Added support for HighVoltage::layout and HighVoltage::content_path configuration options.")) you can configure it like this, in a `config/initializer`:

HighVoltage.setup do |config|
config.layout = "signed_out"
config.content_path = "static"
end

For illumination, the default is:

HighVoltage.setup do |config|
config.layout = "application"
config.content_path = "pages"
end

Alex Heaton ([alexheaton](http://github.com/alexheaton)) saw this but noticed a severe lack of documentation! So he fixed that ([012a65b](http://github.com/thoughtbot/high_voltage/commit/012a65b372fcc014c308f0d98218e647442752a1 "Sticking it to them typos. ") and [f562a37](http://github.com/thoughtbot/high_voltage/commit/f562a3724db18e1042e7f50e9fd491363946cf31 "Updated to include an example of the new content_path. ")). Electric.

## flutie

Default stylesheets for a Rails app, known as [flutie](https://github.com/thoughtbot/flutie), saw two committers over the past week. From Matt Jankowski ([mjankowski](http://github.com/mjankowski)) we got an updated server that pushes the <abbr title="Cascading Style Sheets">CSS</abbr> directly through Sass ([5adafbd](http://github.com/thoughtbot/flutie/commit/5adafbd9012f920b2af6af8b67ccb9cfb23f1427 "update the server.rb dev example to serve flutie css directly via sass")), a `body_class` method that takes optional extra body classes ([ddb52a8](http://github.com/thoughtbot/flutie/commit/ddb52a814ede3307ee9dba58cda465bbae09eb34 "allow #body_class to take an optional argument of a symbol which it will use #content_for on to add more body classes, defaults to :extra_body_classes")), and a bunch of documentation and tests around those commits, including controversially git-ignoring Appraisal gem lock files ([db68f4c](http://github.com/thoughtbot/flutie/commit/db68f4c5ae818cbe8e7da8a2340f0e3e2faf587c "add test case for multiple content_for calls with body_class"), [9330ebd](http://github.com/thoughtbot/flutie/commit/9330ebde4ddc084a792db7008df7be3812c7c589 "misc readme clarifications"), [a871cec](http://github.com/thoughtbot/flutie/commit/a871cec373e85e0fce9a7d0df7e8ccf8e21bc29e "remove gemfile lock files"), [d5121e8](http://github.com/thoughtbot/flutie/commit/d5121e8e6d64b435003fbce1b5932a860a468914 "add section about helper method to the readme"), and [371ce9d](http://github.com/thoughtbot/flutie/commit/371ce9d0fdffec24fcb2b7ef5d6ff55dd61f3158 "remove gemfile lock files and add to gitignore")). Chad Pytel ([cpytel](http://github.com/cpytel)) updated the documentation to clarify the Rails 3.x and especially 3.1 usage ([d2308fb](http://github.com/thoughtbot/flutie/commit/d2308fb9258fc324ea1c25a3b32d78441b7fb938 "move custom styles documentation below helpers") and [d8b0f98](http://github.com/thoughtbot/flutie/commit/d8b0f98c76f90dbe4f14114986c2fe50671b3ad9 "correct/clarify Rails 3 and 3.1 usage")). To kick it all off Matt _released version 1.3.3 of flutie_ ([fc9fc01](http://github.com/thoughtbot/flutie/commit/fc9fc01f7a20d2c024c8a5222bb3073785d5a9a9 "bump version")).

## paperclip

One of the major file upload gems for Rails is [paperclip](https://github.com/thoughtbot/paperclip). Jon Yurek ([jyurek](http://github.com/jyurek)) fixed the `:log_command` option ([f7fdc9f](http://github.com/thoughtbot/paperclip/commit/f7fdc9f13e348a760ca6ad3b068a66ce3773cb83 "Respect :log_command again")), ignored Rubinius bytecode ([0df4b60](http://github.com/thoughtbot/paperclip/commit/0df4b6068fc1cb65e16027e86a88c6de6eee2c64 "More rbx ignoring")), and fixed a bug exposed by Ruby 1.8.7 ([600ef08](http://github.com/thoughtbot/paperclip/commit/600ef087fe9ca389790aa12251c7ed7e7c0f89cb "Make the setter detection in Options more robust") and [ec2c48b](http://github.com/thoughtbot/paperclip/commit/ec2c48b8c3bbe9a569f2c08767632c138324392c "Stringify the symbol for non-1.9.2")). Iain Beeston ([iainbeeston](http://github.com/iainbeeston)) escaped a string that the user can set in the interpolator which is passed through to a regexp  [cc89e4a](http://github.com/thoughtbot/paperclip/commit/cc89e4aaad1864dfc0ed78421cc523cea553782e "Escaped strings that are inserted into regexps during interpolation")).

Then Jon _released version 2.4.3 of paperclip_ ([eadf7e8](http://github.com/thoughtbot/paperclip/commit/eadf7e824aa6d7ac3fc4329497791d43f72f3205 "Version 2.4.3")).

## factory_bot[^1]

One small refactoring to the [factory_bot](https://github.com/thoughtbot/factory_bot) Rails fixture replacement: Joshua Clayton ([joshuaclayton](http://github.com/joshuaclayton)) shortened the internals of the `FactoryBot::Factory`, moving more logic into the private `parent` method, which also shortened the tests ([b4da075](http://github.com/thoughtbot/factory_bot/commit/b4da07532846b9278776c9c93ef1382755d98adc "Clean up FactoryBot::Factory and make tweak access scope to define a clearer API")).

## capybara-webkit

This week saw more excitement for our headless JavaScript integration tester, [capybara-webkit](https://github.com/thoughtbot/capybara-webkit). As I mentioned last week, Joe Ferris ([jferris](http://github.com/jferris)) worked with Jonas Nicklas ([jnicklas](https://github.com/jnicklas)) of capybara fame to get capybara-webkit working with capybara 1.1 ([2945587](http://github.com/thoughtbot/capybara-webkit/commit/29455873f6068400464f8c9c7eb40e389953303f "Bump to 0.7 for capybara 1.1 compatibility"), [8d3775d](http://github.com/thoughtbot/capybara-webkit/commit/8d3775dd7497c9b2df63c0348b7d718b16f9436b "Add appraisal to test across versions; fix support for capybara 1.0"), [8ee2f5c](http://github.com/thoughtbot/capybara-webkit/commit/8ee2f5ce237063ccf548feb30bb7ec6cf001fd95 "Move development dependencies into the gemspec"), [36e13f7](http://github.com/thoughtbot/capybara-webkit/commit/36e13f73c79e9f4b485fd80608e2589359371bdc "Only check for attached nodes when reloading is enabled"), and [5843e56](http://github.com/thoughtbot/capybara-webkit/commit/5843e56a8c78536b89b2be48e682ec84620ecc05 "Fixed for Capybara 1.1")). Along the week he also hardcoded the server as `127.0.0.1` instead of `localhost` ([57c6ebc](http://github.com/thoughtbot/capybara-webkit/commit/57c6ebc65ada0eebb43a8d7d818ef81baa092442 "Use 127.0.0.1 instead of localhost")) and added a note to the README about how to log errors better ([d3f344a](http://github.com/thoughtbot/capybara-webkit/commit/d3f344af442ee499dd3b041ba1dc32080652aeab "Added a note about crashes to the README")).

Brian Buchanan ([bwbuchanan](http://github.com/bwbuchanan)) fixed an issue with pages that reload themselves ([e746fea](http://github.com/thoughtbot/capybara-webkit/commit/e746feab5dc1864ea4fbe4fb483f04612e26b1a8 "Fix issue #39")), to which Joe contributed a test ([f3f1e93](http://github.com/thoughtbot/capybara-webkit/commit/f3f1e933cdb9f42aa28bbe9888ca54fb04c7ddfb "Test to verify fix for #39")).

To top it all off, Joe _released version 0.7.2 of capybara-webkit_ ([7e56285](http://github.com/thoughtbot/capybara-webkit/commit/7e5628569f3ffdccd29846fb2c8a605a64c483e5 "Bump to 0.7.2")).

[^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)
