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

## cocaine

The only user-visible change in [cocaine](https://github.com/thoughtbot/cocaine) this week was by Gabe Berke-Williams ([gabebw](http://github.com/gabebw)), who modified the public <abbr title="Application Programming Interface">API</abbr> for `CommandLine` to change `unix?` from a class method to an instance method ([4183c89](http://github.com/thoughtbot/cocaine/commit/4183c89526247e4626ac3142ea106c5b334eeea3 "Make unix? an instance method.")). Otherwise it was more of Gabe refactoring things ([ae8ae22](http://github.com/thoughtbot/cocaine/commit/ae8ae224f526cc23d17ae7b9b0b6f21844f34ca2 "Let") and [1b9742a](http://github.com/thoughtbot/cocaine/commit/1b9742ab33e1301a794b9056c7a132469660fc00 "Refactor OS stubbing in tests.")) and Prem Sichanugrist ([sikachu](http://github.com/sikachu)) playing with Travis CI ([4eb18d2](http://github.com/thoughtbot/cocaine/commit/4eb18d2527676ce849f89410f85dfa1ac691c31c "Update Travis CI configuration")).

## diesel

This week [diesel](https://github.com/thoughtbot/diesel), an abstraction and set of helpers for Rails engines, got a bug fix from Gabe Berke-Williams ([gabebw](http://github.com/gabebw)); Gabe fixed an issue where setting the `BUNDLE_GEMFILE` environment variable could sometimes cause it to be duplicated ([933d545](http://github.com/thoughtbot/diesel/commit/933d545758814c62a25e9d679e56d8bc39a121b3 "Fix doubly-prepended path to Gemfile.")). Along the way he and Prem Sichanugrist ([sikachu](http://github.com/sikachu)) played with Travis CI, Rails 3.2, and other dependencies ([1d19331](http://github.com/thoughtbot/diesel/commit/1d193313fb77ca2bcad31fa53ecd2dae5f830ef9 "Show build status."), [7496d91](http://github.com/thoughtbot/diesel/commit/7496d91e8c13d45afcfcd0b77635a214af1566d8 "Add Travis."), [39c84e2](http://github.com/thoughtbot/diesel/commit/39c84e20d7b1b68a001cebc9c6ce53ff073e48f8 "Test against Rails 3.2.0."), [821e1cd](http://github.com/thoughtbot/diesel/commit/821e1cd8d010bff925541c08bbc6326199b7f714 "Update dependencies."), [bb4e627](http://github.com/thoughtbot/diesel/commit/bb4e627efc6af1d79189073169debf3e3bc5e9d8 "Fixing broken tests and update Rails dependency")).

## paperclip

Version 2.6.0 of [paperclip](https://github.com/thoughtbot/paperclip) is out! It has a bug fix: files have `rewind` called on them after being called, thanks to Kelley Reynolds ([3b2b9bc](http://github.com/thoughtbot/paperclip/commit/3b2b9bcf8c1a8e56645c62aed0730883ba0d6364 "Added rewind to to_file where appropriate")). Justin Ko ([justinko](https://github.com/justinko)) made sure a non-Rails test suite can use Paperclip ([67d5c0b](https://github.com/justinko/paperclip/commit/67d5c0bfe65b4fd2e6328205a0387fbfde43ff1a "In the effort of decoupling Rails from unit specs, you can") and [b0cb54e](https://github.com/justinko/paperclip/commit/b0cb54ec9fd7eae82d6e66558bcd4a667521dae6 "Set logger to Rails.logger if Rails is available.")).

Internally, `has_attached_file` options are turned into an `AttachmentOptions` hash-like object ([7f948f8](http://github.com/thoughtbot/paperclip/commit/7f948f8257f9b5cca97a68391b9e904699a03838), [9eda1bb](http://github.com/thoughtbot/paperclip/commit/9eda1bbec7704f28f4c54a840de64c63adda43f9 "removed unused test/mocks directory and contents"), and [1f989ae](http://github.com/thoughtbot/paperclip/commit/1f989aef35e11268f357b2d3a2c5e0e3c0de8379 "responding to code review comments")), via Luke Griffiths ([Sporky023](http://github.com/Sporky023)). The afore mentioned Kelley Reynolds found a way to simplify the `Filesystem#flush_writes` code using `FileUtils.cp` ([f8c2444](http://github.com/thoughtbot/paperclip/commit/f8c244456d150c7b26440564feb085ce431d82c8 "Remove unnecessary mv/unlink from Filesystem#flush_writes, complicates some failure modes")). Prem Sichanugrist ([sikachu](http://github.com/sikachu)) played with Travis CI ([772c8e9](http://github.com/thoughtbot/paperclip/commit/772c8e96d8fdd8293e3745138287e3a4e9181e20 "Also test against rbx-19mode on Travis CI")) and Mike Burns ([mike-burns](http://github.com/mike-burns)) released version 2.6.0 ([71d3f46](http://github.com/thoughtbot/paperclip/commit/71d3f46ef52a942975369332af88e18a942fc076 "Bump to 2.6.0.")).

## factory_bot[^1]

Hear ye, hear ye, [factory_bot](https://github.com/thoughtbot/factory_bot) 2.5.1 is out ([13c58d2](http://github.com/thoughtbot/factory_bot/commit/13c58d27d00026e4049566bc353c0b1c7f29f780 "Bump version to 2.5.1")). With it Simone Carletti ([weppos](http://github.com/weppos)) gave us all the ability to pass traits to `built_list` and `create_list` ([13129b0](http://github.com/thoughtbot/factory_bot/commit/13129b04e1071c1fa00f50f8ab3c90cfcf602592 "Document build_list and create_list with runtime traits.") and [6482a64](http://github.com/thoughtbot/factory_bot/commit/6482a6477f569289826df15ada187a9aa5868fd7 "Add ability to pass traits at runtime to (build|create)_list")); Erik Ostrom ([eostrom](http://github.com/eostrom)) fixed the Cucumber step to use inherited associations ([34c1bf9](http://github.com/thoughtbot/factory_bot/commit/34c1bf9b707619cb4059111eeb2ea42292aaf021), [6cddb37](http://github.com/thoughtbot/factory_bot/commit/6cddb37ecbfcedea275d690c51f42ff2d76bb715), and [852eea8](http://github.com/thoughtbot/factory_bot/commit/852eea84fff19867ce16eadad464aed2f60b16be "Minor code cleanup")); Joshua Clayton ([joshuaclayton](http://github.com/joshuaclayton)) fixed [#279](https://github.com/thoughtbot/factory_bot/issues/279) and [#285](https://github.com/thoughtbot/factory_bot/issues/285) with some black magic around re-defining and undefining methods ([f50550c](http://github.com/thoughtbot/factory_bot/commit/f50550c1f01f608a88a6a5547b3ec8ee7f0e38e6)).

Elsewhere, Gabe Berke-Williams ([gabebw](http://github.com/gabebw)) found a way to re-write the entire gemspec ([6e7e4ee](http://github.com/thoughtbot/factory_bot/commit/6e7e4ee5b8815884cfc7ea4547e1cb74fe0f6062 "Clean up gemspec.")) and also found six extra characters in a file ([b63e389](http://github.com/thoughtbot/factory_bot/commit/b63e3896fcab77b22ac662c1ae29b770ebff75fa "Remove unnecessary call to #should.")). Joshua Clayton ([joshuaclayton](http://github.com/joshuaclayton)) moved some exception classes around ([98626c9](http://github.com/thoughtbot/factory_bot/commit/98626c9c73e289ee6539f4ecf08325204ebde374 "Move errors to separate file")) and set a minimum on the activesupport package ([c103ca1](http://github.com/thoughtbot/factory_bot/commit/c103ca1a6dc1593d44ee946e1a4d7d74e02a48d0 "Set minimum version required for activesupport")).

## capybara-webkit

As promised [last week](https://thoughtbot.com/blog/post/16991547467/this-week-in-open-source), version 0.9.0 of [capybara-webkit](https://github.com/thoughtbot/capybara-webkit) is released! Thanks go to Matthew Mongeau ([halogenandtoast](http://github.com/halogenandtoast)) for this ([bea4cbe](http://github.com/thoughtbot/capybara-webkit/commit/bea4cbeed7b52e11222141adfa048dfeef55cc6d "Update ChangeLog") and [a6fde0e](http://github.com/thoughtbot/capybara-webkit/commit/a6fde0e6f7ff00487278261a225cf9f28488c590 "Bump to version 0.9.0")).

## fake_braintree

Gabe Berke-Williams ([gabebw](http://github.com/gabebw)) found a way to re-write the README for [fake_braintree](https://github.com/thoughtbot/fake_braintree) this week ([7d10953](http://github.com/thoughtbot/fake_braintree/commit/7d10953823d1f7fa51b1f14b52ff456def2c141d "Fix up README.")).

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