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

This week saw improvements to [suspenders](https://github.com/thoughtbot/suspenders), [fistface](https://github.com/thoughtbot/fistface), [factory_bot](https://github.com/thoughtbot/factory_bot), [capybara-webkit](https://github.com/thoughtbot/capybara-webkit), [bourbon](https://github.com/thoughtbot/bourbon), and [paperclip](https://github.com/thoughtbot/paperclip/). Contributions came from other thoughtbot devs but also pull requests from people like you. Thank you!

## Suspenders

Gabe Berke-Williams ([gabebw](https://github.com/gabebw)) improved the test infrastructure of [Suspenders](https://github.com/thoughtbot/suspenders) by making the default `REPO` the same as the base directory of the gem (in three commits: [397675a](https://github.com/thoughtbot/suspenders/commit/397675a24e88efbacffe306bde25c0c831a6dc81 "Refactor !blank? to present?"), [0932829](https://github.com/thoughtbot/suspenders/commit/09328299025f403d2a495ee6339e991d4a2f6f7c "REPO defaults to toplevel dir"), and [ae96481](https://github.com/thoughtbot/suspenders/commit/ae96481466eec15bd233e0d9cec356e78132df1f "Only add REPO= to command if it")). He also switched Suspenders to use PostgreSQL by default, which makes sense given how often we use Heroku and also given that PostgreSQL is obviously better than MySQL ([7bb5236](https://github.com/thoughtbot/suspenders/commit/7bb52368399c7da9e352ec05d4eedd6d48c631fc "Use pg in Gemfile"), [2cf556b](https://github.com/thoughtbot/suspenders/commit/2cf556b638839ca740c9628a9b83fbf670ab594f "Use postgres for database.yml")).

[Fork it](https://github.com/thoughtbot/suspenders) and submit your own pull request.

## Fistface

Gareth Rees dropped some great changes to [Fistface](https://github.com/thoughtbot/fistface/): gemification, so you can add it as a dependency ([ea096a3](https://github.com/thoughtbot/fistface/commit/ea096a3c37176634e66fb50f1cb9745396a940a9 "Tidy up gemspec as per Railscasts http://asciicasts.com/episodes/245-new-gem-with-bundler"), [1ff49d7](https://github.com/thoughtbot/fistface/commit/1ff49d7820ab52623f9e2d1d174464983f847116 "Added version file"), and [85e57cc](https://github.com/thoughtbot/fistface/commit/85e57cc5d80aecd5cb16f789701bce1ec0d88b91 "Move dependencies to gemspec.  Actually moved in to gemspec in commit ea096a3.  Could probably group them in to a separate environment")); modularization, so you can load individual components of it and unit test it ([d1a0175](https://github.com/thoughtbot/fistface/commit/d1a01750cb7b19b500bd646398e00c14afe83a06 "Use modular extension style") and [607eef9](https://github.com/thoughtbot/fistface/commit/607eef9fb491c27133bdf5e12d999cf1acdcf83c "Make tests work")); and an overall upgrade of the dependent gems ([afcb413](https://github.com/thoughtbot/fistface/commit/afcb413add2a75cc030471c81da8cd38c640d379 "Use latest gems")).

[Fork it](https://github.com/thoughtbot/fistface) and submit your own pull request.

## Factory Bot

No commit is too inconsequential! Gabe Berke-Williams ([gabebw](https://github.com/gabebw)) improved the README syntax highlighting for [factory_bot](https://github.com/thoughtbot/factory_bot "Fix syntax highlighting"). More highlighting in more places. ([8ad1cc6](https://github.com/thoughtbot/factory_bot/commit/8ad1cc6c14a2336de3fa3a257a369324010c7fc5))

At the last minute, as this post was about to be published, Josh Clayton ([joshuaclayton](https://github.com/joshuaclayton)) fixed `find_definitions` for Ruby 1.9.<var>x</var> when used on the `./script/rails console` ([8ef79aa](https://github.com/thoughtbot/factory_bot/commit/8ef79aad33202fbbe13bb3671d7465ba5f2f60ba "Ignore tmp dir "), [a51b970](https://github.com/thoughtbot/factory_bot/commit/a51b97010de58d3ee8c4bb9e50cd620cb6ff4e12 "Add dependency on aruba "), [c47affb](https://github.com/thoughtbot/factory_bot/commit/c47affb1aa0ab41c8433ee64a2f8937a79439d2b "Requiring factory definition files now works in 1.9 outside of tests"), and [17f3ef4](https://github.com/thoughtbot/factory_bot/commit/17f3ef408d14382d63ec2b64ee935be5bce284bd "Fix find_definitions to expand the path instead of always prepending .")).

Then Josh pulled out all the stops and released FactoryBot[^1] 2.0.1 ([d175bf4](https://github.com/thoughtbot/factory_bot/commit/d175bf4496d9582fc2798eac0e3662a37a197a84) and [ff1a019](https://github.com/thoughtbot/factory_bot/commit/ff1a019b5390916e67ccd83900a72db4358f28bf "Bump version to 2.0.1 ")). You heard it here first!

Perhaps you too want to submit a doc patch. [Fork it](https://github.com/thoughtbot/factory_bot) and submit a pull request.

## Capybara Webkit

A few excellent improvements were made to [capybara-webkit](https://github.com/thoughtbot/capybara-webkit). Marc Seeger ([rb2k](https://github.com/rb2k)) gave us a `#checked?`  method, which will make tests easier to read ([90e561b](https://github.com/thoughtbot/capybara-webkit/commit/90e561b296fc66689583de654d221773fab6eeea "added tests for checked?") and [2ad577f](https://github.com/thoughtbot/capybara-webkit/commit/2ad577fb0ca43852add6d2fc637eed235e2a19f7 "fixed error in ")). Hubert Łępicki ([hubertlepicki](https://github.com/hubertlepicki)) swooped in with file upload support, including HTML5's multiple file uploads ([a449008](https://github.com/thoughtbot/capybara-webkit/commit/a4490083b641266382879f9f07850ae368ece5a4 "allow uploading files with forms"), [0c8e347](https://github.com/thoughtbot/capybara-webkit/commit/0c8e347b61fa1d60c4222887b1364e99099705eb "support attaching file to HTML5 input with multiple attribute"), and [8cad037](https://github.com/thoughtbot/capybara-webkit/commit/8cad037afc034246d0d023786587c7c0c3ff517f "Include Capybara#attach_file tests")).

There is still a ton of room for active development and improvement so please [fork it](https://github.com/thoughtbot/capybara-webkit) and submit a pull request.

## Bourbon

Phil LaPier ([plapier](https://github.com/plapier)) continues to rock on the [Bourbon](https://github.com/thoughtbot/bourbon) gem with better abstraction and modularization for the `flex-box` mixin. ([0892222](https://github.com/thoughtbot/bourbon/commit/089222228882a836c06f24a5b3d512ebd8070efd "Updated flex-box mixin to be dry")), improved documentation for the `golden-ratio` function. ([b8ab7ce](https://github.com/thoughtbot/bourbon/commit/b8ab7ce77e534041aea9471206b56d6e1097c140 "Updated the readme golden-ratio example")), and a `grid-width` function in the base stylesheet. ([599825e](https://github.com/thoughtbot/bourbon/commit/599825ec52c100cebfa3c3ac31eda9169d41fc93 "Include the grid-width function in the base stylsheet"))

He also added two bug fixes: properly require the modules so it works with more versions of Rails ([5945475](https://github.com/thoughtbot/bourbon/commit/59454757533b17cbd94c1267251d3ab17f753096 "Updated ruby files to properly require files")) and remove the conflicting `linear-gradient` function name ([5d2452f](https://github.com/thoughtbot/bourbon/commit/5d2452f82b318dc073cf68cb98694c8ed1785239 "Fixed linear-gradient function conflict")).

Use it, [fork it](https://github.com/thoughtbot/bourbon); pull requests welcome.

## Paperclip

Improvements continue on [Paperclip](https://github.com/thoughtbot/paperclip/). Jeremy Walker ([ihid](https://github.com/ihid)) allowed for more freedom in naming storage modules by camel-casing instead of capitalizing; his example was `DelayedFog` ([cfe406b](https://github.com/thoughtbot/paperclip/commit/cfe406bfe011118b90cb13971f0d46143fd5e85a "Fixed bug in including paperclip storage modules with underscores.") and [camelcase for storage module names.">c8a271e](https://github.com/thoughtbot/paperclip/commit/c8a271ebeb6e637fac00bdc89c8deeb8c635d2c6 "Changed capitalize -")).

Prem Sichanugrist ([sikachu](https://github.com/sikachu)) improved the development process by using Travis CI ([56bb131](https://github.com/thoughtbot/paperclip/commit/56bb131c374101cd7e0d9558a795e0f648655a7b "Trying to add project to Travis CI"), [6d4252d](https://github.com/thoughtbot/paperclip/commit/6d4252d677c164eae76d85f86ae8602921e4bcbb "Only notify @sikachu for build result for now. Will turn this off after they add the Campfire notification"), and [45334fb](https://github.com/thoughtbot/paperclip/commit/45334fb0e3557b6b03a9e5f5360aa42400675a90 "Don")), forcing `rake appraisal:install` on the default `test` task ([cd10ba2](https://github.com/thoughtbot/paperclip/commit/cd10ba2727ed66cc90621b4d2c72a50177028469 "Also running `appraisal:install` when running vanilla `rake`")), and upgrading the version of Rails it tests against ([6cd951a](https://github.com/thoughtbot/paperclip/commit/6cd951a59a2b2ed7de0aaed6fbbdfed431e9e9bd "Bump all dependencies to the latest Rails version. This will fix the problem with Psych on the old version of Rails 2.x")).

As usual, pull requests are welcome so please do [fork it](https://github.com/thoughtbot/paperclip/).

[^1]: FactoryGirl was renamed to FactoryBot in 2017. [Project name history can be found here.](https://github.com/thoughtbot/factory_bot/blob/master/NAME.md)
