---
title: This Week in Open Source
teaser:
tags: news,open source
author: Mike Burns
published_on: 2011-09-30
---

## bourbon

Our set of sass mixins, [bourbon](https://github.com/thoughtbot/bourbon), saw a quick fix from Travis Haynes ([travishaynes](http://github.com/travishaynes)), who moved the HTML5 input types into the `addons` directory ([2c7c527](http://github.com/thoughtbot/bourbon/commit/2c7c527c35e5c54f6538702236633e7a6fc6e564 "fixed html5-input-types dir")). Phil LaPier ([plapier](http://github.com/plapier)) cleaned the input types mixin, removing seven needless lines and then _released version 0.1.9 of bourbon_ ([c7027db](http://github.com/thoughtbot/bourbon/commit/c7027db88819393b6bcd58030dd65ad58ae4629c "Refactor html5-input-types. Version bump to 0.1.9")).

## factory_bot[^1]

We have this test fixture gem named [factory_bot](https://github.com/thoughtbot/factory_bot). You might have heard of it. Joshua Clayton ([joshuaclayton](http://github.com/joshuaclayton)) sure has; he started with some nice refactoring to change from `@options` to individually-defined instance variables, removing the need for complex trait assignment ([3749056](http://github.com/thoughtbot/factory_bot/commit/3749056b3a50d0f3e653c5a0dddab04e727ef452 "Simplify trait assignment when constructing a factory") and [c38bac9](http://github.com/thoughtbot/factory_bot/commit/c38bac9d67f470343d4cece9dfd726874c9916a1 "Remove @options from Factory")); he followed the principle of least surprise, allowing users to define parent factories after the children ([e28bdb8](http://github.com/thoughtbot/factory_bot/commit/e28bdb8e63200d6da7d2a147454800d236705714 "Fix factory definitions so parents can be defined AFTER child factories") and [da3af82](http://github.com/thoughtbot/factory_bot/commit/da3af825104bd9272ab5ee7482fc2b2893b82850 "Only update_children once, after all declarations have been defined")). Whoa, indeed.

## capybara-webkit

The headless JavaScript integration test driver, [capybara-webkit](https://github.com/thoughtbot/capybara-webkit), saw more features and improvements. Niklas Baumstark ([niklasb](http://github.com/niklasb)) gave us a more `diff`-friendly list of C++ headers ([dc5130c](http://github.com/thoughtbot/capybara-webkit/commit/dc5130ce6bc258d9438f776472aae78b2bec5159 "adapted format of webkit_server.pro to make it more version control friendly.")) as a set up for cookie support ([fb119f6](http://github.com/thoughtbot/capybara-webkit/commit/fb119f6ff81684a88c971e68a725c483bbf60769 "adds cookie management functions to Webkit::Browser")).

Nicolas Sanguinetti ([foca](http://github.com/foca)) sent a non-backward-compatible pull request, renaming the `capybara-webkit` require to `capybara/webkit`, which some people who write weekly blog posts disagree with ([eeeddbd](http://github.com/thoughtbot/capybara-webkit/commit/eeeddbd072410fa8c15d7e6afe640c1be1d47dda "Follow the expected gem name/require path")). To top it off, Matthew Mongeau ([halogenandtoast](http://github.com/halogenandtoast)) fixed a bug with URLs with anchors ([f75bc3d](http://github.com/thoughtbot/capybara-webkit/commit/f75bc3dbad9e4c9c2419d5b62ad0f639a47e3507 "Anchors don")) and worked around a nuance of the Ruby parser ([89bee3c](http://github.com/thoughtbot/capybara-webkit/commit/89bee3cf6525c583bfad1552d5a4892567cda352 "Fix syntax for ruby compatibility")).

Also, right now, the capybara lead and capybara-webkit lead are pairing. The magic of RubyConf.

## paperclip

[paperclip](https://github.com/thoughtbot/paperclip) may be the finest file uploading gem for Rails. Jon Yurek ([jyurek](http://github.com/jyurek)) did some internal cleanups, extracting the options hash into its own object ([3e6d933](http://github.com/thoughtbot/paperclip/commit/3e6d9333c095b514350bbddbce041008982b1494 "Flesh out the tests for the options class to ensure future refactorings") and [b948f96](http://github.com/thoughtbot/paperclip/commit/b948f968c494478da5dd18dcbae4f588a5a81eb5 "Extract options into a new class, so they can be toyed with")). Joost Baaij ([tilsammans](http://github.com/tilsammans)) added determinism to the rake task that refreshes thumbnails, ordering by the database ID, with the idea that a crashed refresh could be restarted more easily. Perhaps this is a bandage instead of a fix ([0df5a96](http://github.com/thoughtbot/paperclip/commit/0df5a960fbf463b169c4e085c529f1062b19c1f1 "Added comments and add explicit ordering to this method, which makes the result deterministic and resumeable should an error occur mid-way. ")). Pavel Forkert ([fxposter](http://github.com/fxposter)) continued with previous work on fixing a memory leak, passing strings instead of objects ([7243015](http://github.com/thoughtbot/paperclip/commit/72430159798983559a3ef1569c1d0524299ab04f "We don") and [7a2e2ed](http://github.com/thoughtbot/paperclip/commit/7a2e2ed8f2cedf407a818ab27f3ef3818a35d672 "Do not save class instances, save their names.
Saving instances causes memory leaks in development mode in rails.")).

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