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

## factory_bot[^1]

Version 2.6.4 of [factory_bot](https://github.com/thoughtbot/factory_bot) is out ([b7f3789](http://github.com/thoughtbot/factory_bot/commit/b7f378907227c2420da1aab65071a9f9d2815768 "Bump version to 2.6.4")), with a bug fix from Ian Duggan ([ijcd](http://github.com/ijcd)) such that you can use the name of a transient attribute when setting other attributes ([0d7520e](http://github.com/thoughtbot/factory_bot/commit/0d7520e825670aa31556645ce8a8bb3d9a762bb1 "Do not ignore alias names of transient attributes. (Fixes #311)

  https://github.com/thoughtbot/factory_bot/issues/311")), and Joshua Clayton ([joshuaclayton](http://github.com/joshuaclayton)) reduced the number of times a factory assigns to an object, just in case mutation matters ([f5d4db1](http://github.com/thoughtbot/factory_bot/commit/f5d4db10855978ee054687ba2e04882f65e76630 "Ensure attributes set on instance are calculated uniquely

This fixes a bug where assignment occurs multiple times; in the case of
nested attributes, assignment mutates the instance, meaning that it
occurring multiple times will cause issues.

Closes #314")).

## capybara-webkit

Version 0.11.0 of [capybara-webkit](https://github.com/thoughtbot/capybara-webkit) is out ([464a7bf](http://github.com/thoughtbot/capybara-webkit/commit/464a7bf4cdde52dff86eac1dda5068ca15d22b01 "Bump to 0.10.2") and [39be2c8](http://github.com/thoughtbot/capybara-webkit/commit/39be2c8474887f04f0fb9608544553e17091698f "Change from patch release to minor release 0.11.0")). From David Reese ([whatcould](http://github.com/whatcould)) we get support for the `oninput` trigger ([fc5cba3](http://github.com/thoughtbot/capybara-webkit/commit/fc5cba3ee0aad5acf07886e8899a7eca5c0f4f7a "Add support for HTML input event (aka oninput) on text fields.

The input event is like onchange, but on text fields, it is fired as soon as the value of the field changes, not when the field is blurred. It is a more appropriate event than ")); Moreno Carullo ([morenocarullo](http://github.com/morenocarullo)) fixed compilation on 23-bit Microsoft Windows ([f09ba15](http://github.com/thoughtbot/capybara-webkit/commit/f09ba1563793845db4b725ba36700bca70f78dbf "Support compiling on windows.") and [4b044cc](http://github.com/thoughtbot/capybara-webkit/commit/4b044ccf93d47dc96b341038f0c4cdcb2c79d044 "Added README info about Windows support.")); James Tucker ([raggi](http://github.com/raggi)) forced the server to bind straight to `localhost` instead of the free-for-all it was previously ([fc56a13](http://github.com/thoughtbot/capybara-webkit/commit/fc56a13a6bc11aada6637148061e1967c5a7fc06 "Make the server bind to localhost. We don")).

## clearance

[Clearance](https://github.com/thoughtbot/clearance) 0.16.0 is out ([4cacef5](http://github.com/thoughtbot/clearance/commit/4cacef52dbd153036eafee1b820c75670b81be08 "Bump to 0.16.0.") and [a01d81f](http://github.com/thoughtbot/clearance/commit/a01d81ff1909d9182613fdfb897c6b5edf5d42fa "The Appriasal gem keeps changing files on me")), in which Chris Dillon ([squarism](https://github.com/squarism)) added Blowfish password encryption ([1a779c8](https://github.com/thoughtbot/clearance/commit/1a779c84f161cff1a8e2e22ea8530bfc0a8d6352 "String test for 1.9 not needed for backwards compat. Tested fine in 1.8.7-p357.") and [40362e92](https://github.com/thoughtbot/clearance/commit/40362e92c81f2e5b9414f98ce85ff8f03fa83bd2 "Added blowfish password encryption strategy.")). Wild.

## shoulda and shoulda-matchers

Small stuff in [shoulda](https://github.com/thoughtbot/shoulda) [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) over the past week, as Steve Richert ([laserlemon](http://github.com/laserlemon)) fixed the little image on our README that shows that the build is always broken ([43a3cb7](http://github.com/thoughtbot/shoulda/commit/43a3cb71898e74ece830f79be366fd7a7e81c09d "Fix SSL Travis build status image")) and Gabe Berke-Williams ([gabebw](http://github.com/gabebw)) cleaned up the test suite, using `let` instead of instance variables ([f1a3dca](http://github.com/thoughtbot/shoulda-matchers/commit/f1a3dca5b903192c357f6d29b5bc29db01718b4a "Update to modern thoughtbot style."), [62207b4](http://github.com/thoughtbot/shoulda-matchers/commit/62207b4c509cf7b19270b4078dd17b267c5ec3c0 "Provide sane default in model builder."), [bb59b74](http://github.com/thoughtbot/shoulda-matchers/commit/bb59b74c913e588346f951e7084c366635a1c491 "Add rails to gemspec so that bundle exec works.")).

## cocaine

In [cocaine](https://github.com/thoughtbot/cocaine) news, Brian Durand ([bdurand](https://github.com/bdurand)) included an option to use the [posix-spawn](https://rubygems.org/gems/posix-spawn) gem, potentially improving performance ([aa36e45](https://github.com/bdurand/cocaine/commit/aa36e450615a5ebbc27fa4961ad0e970233177f4 "Add hooks to use posix-spawn gem if available."), [98dff3d](https://github.com/bdurand/cocaine/commit/98dff3de80ab316033875c5c5bf93e8fa7366139 "Call ` method on CommandLine instances instead of the CommandLine class to aid testing."), [2391d9f](http://github.com/thoughtbot/cocaine/commit/2391d9f3abc196573d0adff35b60588dfd671ace "Fix a failing spec that stubs CommandLine.` instead of CommandLine#`")). Mike Burns ([mike-burns](http://github.com/mike-burns)) removed Gabe's bundler config, 'cause really ([f77c1b5](http://github.com/thoughtbot/cocaine/commit/f77c1b51a116120a7c8f8e41d495b3793df07fa3 "Remove Gabe")).

## bourbon

While drinking [bourbon](https://github.com/thoughtbot/bourbon) this week, Kyle Fiedler documented [`flex-grid`](https://thoughtbot.com/blog/post/19233633869/bring-your-grid-to-yoga-class) ([a85ce35](http://github.com/thoughtbot/bourbon/commit/a85ce352567cf2cb8719d9950b70af239f63f5a8 "Added flex-grid to functions list")), Frank ([frankzilla](http://frankhq.io/)) added a `hide-text` mixin to make it easier to hide some text, e.g. `.image-to-be-replaced { @include hide-text }` ([3f736ea](http://github.com/thoughtbot/bourbon/commit/3f736eabfefbf53aa347362518d1c61f96589b7b "Merge branch ")). Dylan Lacey threw more Ruby at the installation rake task, which brought cross-platform compatibility to the world ([.>">281ed16](http://github.com/thoughtbot/bourbon/commit/281ed163b72b2d87d4fcbb822a6a0d560999cb9a "Meeting style requirements - variable, if statement Removed extraneous Basepath. Also forgot a comma.  Not required, but messy "), [ee78754](http://github.com/thoughtbot/bourbon/commit/ee78754cfce1c196e12462792ad63ced3f610456 "Right.  Windows editor smacked around, autocrlf on, should fix indenting issues."), [b853f14](http://github.com/thoughtbot/bourbon/commit/b853f1469822b7ead4c69ddbaf3904e2cd8edc17 "Merge branch "), [9b85a13](http://github.com/thoughtbot/bourbon/commit/9b85a13b7151f2df1c6dd2f58e2317c4f48d8595 "Spaced line indenting, how does it work?"), [8b7dec4](http://github.com/thoughtbot/bourbon/commit/8b7dec4f7c51c0a67b29024c2577877bdb260cf3 "Spaced line indenting, how does it work?"), [e4ed1b3](http://github.com/thoughtbot/bourbon/commit/e4ed1b3234c87110c05a2b94510f781d9d3b6ec9 "Changed install task to be pure ruby, allowing it to run on systems (Windows) without POSIX compliant shells")).

## paperclip

Performance gains in [paperclip](https://github.com/thoughtbot/paperclip) this week as Luke Griffiths ([Sporky023](http://github.com/Sporky023)) and Mathieu Martin ([webmat](http://github.com/webmat)) switched from `find` to `find_each` ([0c1e812](http://github.com/thoughtbot/paperclip/commit/0c1e812d636d3781ece14b7f0dfe349e33fa8c4f "Added test for webmat"), [32199e2](http://github.com/thoughtbot/paperclip/commit/32199e216b84c733c2638a9dc9d0c52d640c22ab "Make this yet dramatically faster when a lot of the models don"), [35052eb](http://github.com/thoughtbot/paperclip/commit/35052ebf9c52316a0d823e9d8382f6f46082e8d4 "Load models in batches, to make this more practical for large datasets.

Note: find_each doesn")). Mathieu also allowed in styles with numeric names ([8edccdc](http://github.com/thoughtbot/paperclip/commit/8edccdce415e0d556fc367e120f8b042cbe07bdd "Make sure Paperclip doesn")). Matthias Viehweger ([kronn](http://github.com/kronn)) fixed a typo; thanks, Matthias ([e927180](http://github.com/thoughtbot/paperclip/commit/e9271804d804cab3913a2539edd44ef7cd460521 "minor typo in explanatory rdoc-comment"))!

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