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

Holy pull requests, Batman!

## capybara-webkit

Lots of churn on the backend of [capybara-webkit](https://github.com/thoughtbot/capybara-webkit). Matthew Mongeau ([halogenandtoast](https://github.com/halogenandtoast)) added status codes ([558c58b](https://github.com/thoughtbot/capybara-webkit/commit/558c58babc60f7213586fe879289e99aef7633ea "Status codes")), which meant that the gem now passes another capybara spec ([7ea51d5](https://github.com/thoughtbot/capybara-webkit/commit/7ea51d57dea448819e7465d5d8b7872523e4abe5 "Passes capybara driver spec") and [71ca80d](https://github.com/thoughtbot/capybara-webkit/commit/71ca80d29f634ff5937bbb0d446c97ee19a80327 "wip")). Hongli Lai ([FooBarWidget](https://github.com/FooBarWidget)) gave us a working `console.log` ([dc49e5f](https://github.com/thoughtbot/capybara-webkit/commit/dc49e5f87587a8f735beebca26ec5800c92fb88c "Forward webkit_server")).

Hongli Lai ([FooBarWidget](https://github.com/FooBarWidget)) and Trevor Smith ([trevorsmith](https://github.com/trevorsmith)) attempted to uncover memory and process issues. Hongli started with a patch to use `Process#spawn` if available ([922d197](https://github.com/thoughtbot/capybara-webkit/commit/922d197adfe5bb636f381ecae250744c3e8475cc "Use Process.spawn to spawn webkit_server whenever possible. This allows one to close all unnecessary file descriptors in the child process so they don")). Trevor then claimed that `IO.popen` is actually what we need ([d8abcbc](https://github.com/thoughtbot/capybara-webkit/commit/d8abcbcb0f935d1446c9c41b734dded9e940219b "Use IO.popen to spawn webkit_server instead of fork and exec. This makes capybara-webkit compatible with DRb (which replaces $stdout with an object that does not support #reopen). Also, by default, popen closes all nonstandard file descriptors in the spawned process, fixing problems related to #132.") and [c362098](https://github.com/thoughtbot/capybara-webkit/commit/c36209844db332707ef91c886a5b9d5c9ba85bbc "Merge the IO.popen patch, too.")). I tried to merge all this in but broke it. Please _voice some knowledge on issue [#137](https://github.com/thoughtbot/capybara-webkit/issues/137)_ so we can move this forward!

## laptop

The Linux side of our [laptop](https://github.com/thoughtbot/laptop/) script got some attention from Ma Yiu Ming Patrick ([PatrickMa](https://github.com/PatrickMa)), who fixed the README to contain accurate instructions ([7fa6ede](https://github.com/thoughtbot/laptop/commit/7fa6ede9e9566c276dfb7ffc6beff8664e719322 "Updated link to Ubuntu script in the readme.")).

## flutie

Continuing on the doc fixes theme, [flutie](https://github.com/thoughtbot/flutie) saw a typo fix ([application.css">6f28f4d](https://github.com/thoughtbot/flutie/commit/6f28f4d7afd53f08bb79fda840c9a10d8dbb4988 "appliation.css -")) from Emilien Taque ([etaque](https://github.com/etaque)) and a markup fix ([26896b2](https://github.com/thoughtbot/flutie/commit/26896b256b19c6b79c9546610d1de53a58c37f27 "Edited README.md via GitHub")) from Matt Jankowski ([mjankowski](https://github.com/mjankowski)).

## factory_bot[^1]

Some small updates to [factory_bot](https://github.com/thoughtbot/factory_bot) this week, as Brandon Keepers ([bkeepers](https://github.com/bkeepers)) removed ye olde `find(:first)`, replacing it with just `first` ([d56125d](https://github.com/thoughtbot/factory_bot/commit/d56125db95dafd29c7a4e9e533637a002a89098e "Use #first instead of the soon-to-be deprecated #find(:first)")), Jeff Duti ([jdutil](https://github.com/jdutil)) fixed a copy/paste issue in the docs ([6bc3b87](https://github.com/thoughtbot/factory_bot/commit/6bc3b874217a35c6e8707cca18b4fc069e897aab "Fixes documentation for association on create.")), and Joshua Clayton ([joshuaclayton](https://github.com/joshuaclayton)) configured the Travis-CI tests to hit the latest stable patch of each major version of Ruby ([17d47bd](https://github.com/thoughtbot/factory_bot/commit/17d47bd40b90cf065527eb9db05168830fa80d68 "Travis-CI tests against sane versions of Ruby") and [5e501e8](https://github.com/thoughtbot/factory_bot/commit/5e501e83a57a8ad1acd0cc66165992243e038473 "Latest stable of each ruby")).

## bourbon

The [bourbon](https://github.com/thoughtbot/bourbon) Sass plugin continues to improve. Chad Mazzola ([ubuwaits](https://github.com/ubuwaits)) tried it on a new app and submitted his documentation changes based on that ([2da2b19](https://github.com/thoughtbot/bourbon/commit/2da2b19112ea903d75dc42e5f502fe88f78eb094 "Fix name of file in comments.")). Phil LaPier ([plapier](https://github.com/plapier)) updated the README based on some feedback from Chad ([62bbcb2](https://github.com/thoughtbot/bourbon/commit/62bbcb2cc88ae37bd1daf4cd42d4eae72f4d18e1 "Updated readme about rake task")), added a `transform-origin` property ([0943d14](https://github.com/thoughtbot/bourbon/commit/0943d14f5d68585f1e5dacb6da45fe2d93ac35dd "Addded transform-origin to transforms")), added some amazing CSS3 timing functions ([081dd3d](https://github.com/thoughtbot/bourbon/commit/081dd3d0d3dba3518a7bccf9146174bf78a265ae "Added CSS3 timing functions")), and then _released version 0.1.5 of bourbon_ ([ad4dbdc](https://github.com/thoughtbot/bourbon/commit/ad4dbdcae26e36247e47fb08a52d5170fcfd71ae "Version Bump to 0.1.5")).

## kumade

The simple Heroku deployer grows in complexity. [kumade](https://github.com/thoughtbot/kumade) got a whitespace fix from its maintainer&mdash;remember to leave no trailing whitespace, people! ([680fc82](https://github.com/thoughtbot/kumade/commit/680fc82c05efbafb1c2db77c4848af10f9974e5b "Whitespace")). The fantastic Marcos Tapajós ([tapajos](https://github.com/tapajos)) took care of a few issues by making a deploy branch if it doesn't already exist ([988f9b3](https://github.com/thoughtbot/kumade/commit/988f9b37acd3db13663559b3129ff577029784c9 "Fixing issue #2")) and making a `rake` task for consistency ([11366db](https://github.com/thoughtbot/kumade/commit/11366dbdf11df11dd2bd2167037eeb7f20361753 "Creating rake task. Issue #6")). He also updated the docs to mention `bundle exec` ([f7afe03](https://github.com/thoughtbot/kumade/commit/f7afe0359864268ea4eee7384cad6f3d495b7b2a "Using bundle exec kumade instead of kumade")).

Nick Quaranto ([qrush](https://github.com/qrush)) ran with the `rake` task and gave us an overridable `kumade:before_asset_compilation` task ([9dda7ee](https://github.com/thoughtbot/kumade/commit/9dda7eee7e5c39c154c127733bfec419735f9553 "invoke deploy:assets rake task if it exists on deploy before committing assets"), [691e456](https://github.com/thoughtbot/kumade/commit/691e456bdd3e7d54180d9e34423a07c6b0163311 "rename task to kumade:before_asset_compilation"), and [e613c29](https://github.com/thoughtbot/kumade/commit/e613c2987c8f4fbcdd2dfa2e75860fb5e536acfe "invoke custom task before jammit")). He needs to do special processing before packaging assets, so this helped him out.

Nick then added the Japanese characters for "kumade" to the README before releasing _version 0.2.2 of kumade_.

## cocaine

Our command runner, [cocaine](https://github.com/thoughtbot/cocaine), got some mingw32, logger, and doc love: alextk ([alextk](https://github.com/alextk)) gave us more precise unix detection that can better differentiate unix from mingw32 ([73c2cb3](https://github.com/thoughtbot/cocaine/commit/73c2cb37745e5a758a4a6bca747cca89adaa67fd "detect unix in a more precise way, so it won")). Jon Yurek ([jyurek](https://github.com/jyurek)) refactored atop that ([4df6592](https://github.com/thoughtbot/cocaine/commit/4df65929c14ef62d04b5a1ac3129df1221e0f635 "Abstract windows detection a little in the tests") and [8478ed2](https://github.com/thoughtbot/cocaine/commit/8478ed249e90ad460cac54bb88b604a387487733 "Cleaning test names and some indentation")) before adding a logger ([44332c4](https://github.com/thoughtbot/cocaine/commit/44332c42041443de9b7758e37906e95976e2641f "Log commands if a logger is available.")). He and Marcos Tapajós ([tapajos](https://github.com/tapajos)) updated the README ([6fb2bf1](https://github.com/thoughtbot/cocaine/commit/6fb2bf15af248f4fee5e0ac783ebdef5030b7f9c "Update the README") and [accbc4f](https://github.com/thoughtbot/cocaine/commit/accbc4fe6051898577158d34b919455c08916cce "Just a small fix. It is an important fix because is the first example!")) before Jon _released version 0.2.0 of cocaine_ ([fb39757](https://github.com/thoughtbot/cocaine/commit/fb3975785b0681dc3478cd4740a0e5c4b7d00d5e "Version 0.2.0")).

## paperclip

Attaching files just got more tested and documented! [paperclip](https://github.com/thoughtbot/paperclip) saw a commit from Prem Sichanugrist ([sikachu](https://github.com/sikachu)) adding REE to Travis-CI ([ab7db5a](https://github.com/thoughtbot/paperclip/commit/ab7db5a5d09a494866dc08fbf3fd83d3b44c107f "Stop testing with JRuby, but start testing with REE. It seems like that JRuby on travis-ci is broken, so we shouldn")) and from Chris Harper ([chrisharper](https://github.com/chrisharper)) adding Rubinius ([aca668b](https://github.com/thoughtbot/paperclip/commit/aca668b7d2ad45fa437ecb12f11300073f42d972 "Add rubinius. Bump rails 3_1 version to rc6")).

Hold on, it would be a mistake to overlook [Chris Harper's pull request</](https://github.com/thoughtbot/paperclip/pull/562). Ladies and gentlemen, the most surefire way to have us take a pull request, even if it causes the tests to break or is something we are not particularly interested in, is to submit a picture of yourself in a monkey suit:

![Chris Harper](http://p.twimg.com/AXONT58CEAE_-q-.jpg:large)

![Chris Harper makes an aggressive stance in a monkey suit.](http://p.twimg.com/AXOQRmVCAAIB0dc.jpg:large)

So anyway, Harold Giménez ([hgimenez](https://github.com/hgmnz)) added a note on how to detach a file ([b2a370e](https://github.com/thoughtbot/paperclip/commit/b2a370e0ca13ed74d167aad50cd7e5b6462afd9b "Detaching a file"), [0a55c41](https://github.com/thoughtbot/paperclip/commit/0a55c41f20637b768cf02e770e8770ab55c91752 "Typo"), and [e365326](https://github.com/thoughtbot/paperclip/commit/e3653269d21d0b8f1c9af339361db139ee459ce4 "Follow the example with #avatar")).

And Marcin Urbański ([murbanski](https://github.com/murbanski)) rounded it off with a new feature: by specifying the `:source_file_options` you can control the options to `convert` for input processing ([eab19f8](https://github.com/thoughtbot/paperclip/commit/eab19f82aa1f0e1ba175736a7462c65f53191b99 "Interface for providing :source_file_options")).

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