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

## bourbon

As a programmer I love the change that made it into version 1.3.6 ([10f978d](http://github.com/thoughtbot/bourbon/commit/10f978df88195c0f61fd49a6b4895c2b515b0710 "Version bump to 1.3.6")) of [bourbon](https://github.com/thoughtbot/bourbon): Phil LaPier ([plapier](http://github.com/plapier)) added to work done by Frank ([frankzilla](http://frankhq.io/)) to add a monospaced font family, `$monospace`&mdash;with support for Bitstream Vera Sans Mono, my favorite monospace typeface ([3467fe3](http://github.com/thoughtbot/bourbon/commit/3467fe3adb025786e4028d6be6572c365a65e83c "Added Consolas to the monospaced font-family") and [c86e5687](https://github.com/thoughtbot/bourbon/commit/c86e568733bbb056f751489c8e0ccf18b4906b56 "Add monospaced font-family")). Nice.

## paperclip

Friday saw a new release of [paperclip](https://github.com/thoughtbot/paperclip) ([1cb40e3](http://github.com/thoughtbot/paperclip/commit/1cb40e352eaa0f42560021c32705933f4d4eb46a "Bump to version 2.5.2")), [in accordance with the prophecy](https://thoughtbot.com/blog/post/16351438761/every-two-weeks). It contains Windows support, a bug fix, and two new features.

Prem Sichanugrist ([sikachu](http://github.com/sikachu)) has been working on handling characters that are not URL-safe; to this end he added a `:restricted_characters` option to `has_attached_file`, with a default value of `&$+,\/:;=?@<>\[\]\{\}\|\\\^~%# `, which specifies characters to replace with an underscore, `_` ([8353518](http://github.com/thoughtbot/paperclip/commit/83535184b0a40bb6b73987e210472f5457d15d79 "Add `:restricted_characters` default options

Introducing `:restricted_characters` in Paperclip::Attachment.default_options  so people can override their blacklist characters by override that setting.") and [604304e](http://github.com/thoughtbot/paperclip/commit/604304e3e824cddc37f183aafd848c0f7548542b "Replacing all special characters to underscore Fixes #703")). Benjamin Hüttinger ([maxigs](https://github.com/maxigs)) added the ability to pass a block, evaluated at runtime, for `:fog_host`, `:bucket_name`, and `:fog_credential` options ([e049ec5](https://github.com/thoughtbot/paperclip/commit/e049ec5337e9aa0ae904bf64d3ab38793d30f8cd "allow proc for fog_directory so its possible to call model methods to set the directory"), [2b562a9](https://github.com/thoughtbot/paperclip/commit/2b562a9be16d2398fec7f3d80685b8c8a199e655 "allow proc for fog_host"), [8742615](https://github.com/thoughtbot/paperclip/commit/87426153fead3f6555f33bccf41a623d330da9bc "allow proc for fog_credentials"), and [1c88a72](https://github.com/thoughtbot/paperclip/commit/1c88a72519ddd4566a628457489c6e4e5872ea06 "changed is_a?(Proc) to responds_to?(:call) for better flexibility")).

The gem itself had problems installing on Windows because a bundled test made sure that filenames with question marks were handled fine; turns out this simply breaks on Windows. Even though no actual programmers use Windows, we removed the offending file ([ed5cd9f](http://github.com/thoughtbot/paperclip/commit/ed5cd9f192953278a27efa82976c21d78cea9e8f "Remove the questionmark filename test for real file")). Jon Yurek ([jyurek](http://github.com/jyurek)) fixed a long-standing bug where the RSpec matchers (`validate_attachment_content_type`, `validate_attachment_presence`, and `validate_attachment_size`) didn't handle the `:if` argument they were supposed to handle ([5d4ba62](http://github.com/thoughtbot/paperclip/commit/5d4ba628dedc90cb035c874f0479985b7dc767a1 "Validation matchers respect conditionals on the validations")).

## capybara-webkit

A new release of [capybara-webkit](https://github.com/thoughtbot/capybara-webkit) is in the works, and this is what you'll see in it: Matthew Mongeau ([halogenandtoast](http://github.com/halogenandtoast)) added the ability to trigger `mousedown` and `mouseup` events ([51c4dfe](http://github.com/thoughtbot/capybara-webkit/commit/51c4dfe1414a9b1620dfb61db456646f51a782dd "Simulate browsers events more closely") and [16c1637](http://github.com/thoughtbot/capybara-webkit/commit/16c16372c86896b060cfa5c1741d95b0653cc3a4 "Trigger mousedown and mouseup events")) while Joe Ferris ([jferris](http://github.com/jferris)) has commands block until the page finishes loading ([18607d0](http://github.com/thoughtbot/capybara-webkit/commit/18607d0966580000bb04822809c225930ad556d5 "Try to detect when a command starts a page load and wait for it to finish")).

## clearance

Oh sweet, a new version of [clearance](https://github.com/thoughtbot/clearance) is out ([6c0c070](http://github.com/thoughtbot/clearance/commit/6c0c070b711f1bd2f08bdb496af4bd491d41f5c7 "Bump to 0.15.0."))! In it you'll find support for Rails 3.2 from Gabe Berke-Williams ([gabebw](http://github.com/gabebw)), mostly in following deprecation warnings ([6e57d10](http://github.com/thoughtbot/clearance/commit/6e57d10db5f1a91c5f199d2d1eec8b141077cb71 "Remove InstanceMethods module. It")). Some prodding from Matthew Daubert ([MDaubs](https://github.com/MDaubs)) prompted us to upgrade cucumber-rails to 1.1.1 ([691e867](https://github.com/thoughtbot/clearance/commit/691e867632d2c4f27a162dbf52ce14b215676e92 "`When` is deprecated in step definitions, changed to `step`.") and [91f4675](http://github.com/thoughtbot/clearance/commit/91f4675dde40c0735fb52601ab7ae89b4a28f3f1 "Upgrade cucumber-rails, which requires use of the #steps method.")). Dan Hodge ([danhodge](https://github.com/danhodge)) dropped a totally awesome change on us, abstracting out the `User` class into `Clearance.configuration.user_model`, which can be changed at runtime ([085a9b6](https://github.com/thoughtbot/clearance/commit/085a9b61dcf97ac8715edc0c16dc2705478832e0 "Find user via the configured user model class"), [a582eec](https://github.com/thoughtbot/clearance/commit/a582eec8d9a791051d9f16c5ef82ec539445af0c "Defer user_model load so it can be a constant"), and [fc6af70](https://github.com/thoughtbot/clearance/commit/fc6af70702b51fe0285f00c6efcaa228fcfc0e9d "Optional config param ")). Dude, that's awesome.

## fake_braintree

Holy cow it's version 0.2.0 of [fake_braintree](https://github.com/thoughtbot/fake_braintree) ([0be2aea](http://github.com/thoughtbot/fake_braintree/commit/0be2aea4fc9ee7a2ec1eaa00263fa8767c435249 "Prepare for 0.2.0 release.")). In this Gabe Berke-Williams ([gabebw](http://github.com/gabebw)) gave us the ability to specify a constant amount for a transaction ([783719c](http://github.com/thoughtbot/fake_braintree/commit/783719c655935eca6f4904f3ac498ed9f0ad98b1 "Set amount when generating a transaction.")), and mimics the behavior around customers with failing credit cards ([a2ceb58](http://github.com/thoughtbot/fake_braintree/commit/a2ceb5805bbb8f87133f0d3475713cd133d54f86 "Don")).

## factory_bot[^1]

No big news in [factory_bot](https://github.com/thoughtbot/factory_bot) this week. Carlos Antonio da Silva ([carlosantoniodasilva](http://github.com/carlosantoniodasilva)) updated the docs to mention that `.stub` is now `.build_stubbed` ([08018f6](http://github.com/thoughtbot/factory_bot/commit/08018f62a673d734b5cdd41deffa73f49f156f41 "Change getting started doc to remove old ")). Michael Klishin ([michaelklishin](http://github.com/michaelklishin)) fixed the build on Travis CI for Rails 3.2 by updating rubygems first ([850116d](http://github.com/thoughtbot/factory_bot/commit/850116da11077c56cacb065924eaa655a517c09c "Update rubygems on travis-ci.org before running dependency installation

REE will fail to install Rails 3.2 gems w/o rubygems update.")). Joshua Clayton ([joshuaclayton](http://github.com/joshuaclayton)) found a spec that was not appropriately named, and fixed it ([0d67a42](http://github.com/thoughtbot/factory_bot/commit/0d67a4235884c22b251ef9d0a3cf24484a573f4d "Ensure spec actually ends in _spec")).

## kumade

While [kumade](https://github.com/thoughtbot/kumade) did not see a deploy this week, it did see some feature improvements, some of which come with an <abbr title="Application Programming Interface">API</abbr> change.

The hook for running code just before deployment was originally `run_predeploy_task` but is now `run_pre_deploy_task` ([764aebe](http://github.com/thoughtbot/kumade/commit/764aebebee26b2dfe9f12f3ceacf6a339cde2aee "Renamed run_predeploy_task method.")). Chad Boyd ([hoverlover](http://github.com/hoverlover)) made this change so he could introduce the `run_post_deploy_task`, which is further exposed as `kumade:post_deploy` to Rake ([da74087](http://github.com/thoughtbot/kumade/commit/da74087db9a8adc69bd6c923da3700ddace3f1e7 "Renamed run_postdeploy_task method."), [f68a487](http://github.com/thoughtbot/kumade/commit/f68a487b4f01156bb2614c72b07dba8dce2b4569 "Copy/paste error."), and [9679018](http://github.com/thoughtbot/kumade/commit/967901842e22bbf94804b4ce8d00b6c74620bf24 "Run kumade:post_deploy if deployment succeeds.")).

Kumade now works with more stuff: Jammit 0.6.5 ([ec63310](http://github.com/thoughtbot/kumade/commit/ec633102f999d05e4e2e4832540025d9c7430e8a "Fixes public root bug with Jammit 0.6.5

The way Jammit defines the public root was changed in
https://github.com/documentcloud/jammit/commit/b6ff4f0d63ddf615874dc9ad023924e94a8e2da1")) thanks to Vesa Vänskä ([vesan](http://github.com/vesan)), and Ruby 1.9.3 ([8e73b90](http://github.com/thoughtbot/kumade/commit/8e73b90bc4eacc578927be6cf3d71875eb379800 "Test against 1.9.3 on Travis.")) thanks to Gabe Berke-Williams ([gabebw](http://github.com/gabebw)).

Gabe also fiddled with some source code ([7e0e11e](http://github.com/thoughtbot/kumade/commit/7e0e11e31cc7a8559f0a9651198730635fd6e5bc "Better wording."), [bb695b9](http://github.com/thoughtbot/kumade/commit/bb695b9d06acf3fa7de5fccc842c316deb500fe3 "Clean up test.") and [92aa8f4](http://github.com/thoughtbot/kumade/commit/92aa8f4028ee523258897401ffa3725668aef9b4 "Don")).

## copycopter_client

A small documentation update occured in [copycopter_client](https://github.com/copycopter/copycopter-ruby-client) by Joe Ferris ([jferris](http://github.com/jferris)), reminding us that you can leave the name of the controller or model off of the translation key _only_ when using `t` from a view ([6416897](https://github.com/copycopter/copycopter-ruby-client/commit/64168975a77d2d6a235e81c3ae00d6b25a31cfde "Note on preceding dots")).

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