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

## shoulda-context

Hey! [shoulda-context](https://github.com/thoughtbot/shoulda-context) has a
maintainer! His name is Travis Jeffery
([travisjeffery](http://github.com/travisjeffery)) and he's got commit rights
and everything! Thank you, Travis.

Yeah!

## cocaine

One feature was added to [cocaine](https://github.com/thoughtbot/cocaine) over
the past week: Daniel Mircea ([viseztrance](http://github.com/viseztrance)) made
it such that you can now pass blank argument values
([a2d01c4](http://github.com/thoughtbot/cocaine/commit/a2d01c4532290b7267c1d99bfdd7165413d2dbf3
"Quote blank command line values.")). For example, this now works:

```ruby
command_line = Cocaine::CommandLine.new(
  "curl",
  "-X POST -d :data :url",
  :data => "",           # Hey note this!
  :url => "http://localhost:9000",
  :swallow_stderr => false)

puts command_line.command
```

&hellip;which will produce:

    curl -X POST -d '' 'http://localhost:9000'

## paperclip

The [paperclip](https://github.com/thoughtbot/paperclip) project saw a few neat
commits this week. Jeremy McNevin ([jmcnevin](http://github.com/jmcnevin)) and
ralph ([ralph](http://github.com/ralph)) pass the file type to Fog now, always
([839b98c](http://github.com/thoughtbot/paperclip/commit/839b98c612d5bebdfb369a58b130f13e38915c3a
"Provide content type of file to fog.") and
[201f02e](http://github.com/thoughtbot/paperclip/commit/201f02e324a5577b888d7b3ee8c8fbacff9966ae
"save content type of the file with fog storage engine")). Luke Griffiths
([Sporky023](http://github.com/Sporky023)), one of our new
[apprentices](http://apprentice.io/), got his first open source contribution in:
you can pass an `:s3_encrypted` option for controlling which encryption type S3
should use ([true is now s3_server_side_encryption =>
:aes256">65e0338](http://github.com/thoughtbot/paperclip/commit/65e0338f3ed07ddf95958ce71265a0ba76e9c1c6
"s3_encryption =") and [true
option">af6d343](http://github.com/thoughtbot/paperclip/commit/af6d343e25c81ceb4bc460916a5ef8628114dab5
"Can encrypt files on s3 with :s3_encrypted =")). And Jon Yurek
([jyurek](http://github.com/jyurek)) fixed mixing Paperclip with
non-ActiveRecord codebases
([bc6ed16](http://github.com/thoughtbot/paperclip/commit/bc6ed16bc8abe3c983dca54556a662ddae8ac252
"Hide ActiveRecord-specific stuff in the Railtie")).

## factory_bot[^1]

The fixture replacement gem,
[factory_bot](https://github.com/thoughtbot/factory_bot), is now at version
2.4.2
([845578c](http://github.com/thoughtbot/factory_bot/commit/845578c0f2ef17927362593c0d71accecfcf1c7c
"Bump to 2.4.2")). It includes bug fixes, a deprecation, and more Rails support.
All commits were by Joshua Clayton
([joshuaclayton](http://github.com/joshuaclayton)).

There was [an issue where using an inline trait would cause it not to be
reset](https://github.com/thoughtbot/factory_bot/issues/268)
([70a80fd](http://github.com/thoughtbot/factory_bot/commit/70a80fde5845749ae8404bd70b81c5d6183f68fd
"Reset evaluator class when cloning a FactoryBot::Factory Applying traits
inline modifies the evaluator class, so it needs to be reset when cloning in
order to ensure that the attributes are correct. Closes #268")), and [an issue
with the precedence of inline
traits](https://github.com/thoughtbot/factory_bot/issues/242)
([065c6c1](http://github.com/thoughtbot/factory_bot/commit/065c6c17895e13e6a4ba5debfd8d4d1ed500cd74
"Fix issues with inline traits not taking precedence Closes #242")).

Josh also deprecated the `attributes_for` class method, which once upon a time
produced all the attributes that a factory would set
([a883315](http://github.com/thoughtbot/factory_bot/commit/a883315bc4775f5b9996a378d6c4ebe0ebf44a5e
"Deprecate attributes_for and build_stubbed")). He provided no reliable
workaround.

Today, [Rails
3.2](http://weblog.rubyonrails.org/2012/1/20/rails-3-2-0-faster-dev-mode-routing-explain-queries-tagged-logger-store)
was released, so we made sure to test against that&mdash;and it works!
([5555f14](http://github.com/thoughtbot/factory_bot/commit/5555f14db7261e47e407de1cee9ad9ebdade5e46
"Update appraisal to test against Rails 3.2"))

## capybara-webkit

A new release for
[capybara-webkit](https://github.com/thoughtbot/capybara-webkit), yeay! Joe
Ferris ([jferris](http://github.com/jferris)) cut the release
([59ba861](http://github.com/thoughtbot/capybara-webkit/commit/59ba8611ba6388cf5262eb31ec06cea34fa66698
"Bump to 0.8.0; add json as a dependency")), first removing a long-standing
debugging print statement
([0bac05e](http://github.com/thoughtbot/capybara-webkit/commit/0bac05ebc4a5c916a9189b37e6d72cf4045ecaac
"Remove debugging statement")).

Sweet features, bro: Yuri Gadow ([ylg](http://github.com/ylg)) added support for
the fancy text inputs in HTML5 like email, number, search, and so on
([7e5e99b](http://github.com/thoughtbot/capybara-webkit/commit/7e5e99b01fa81110c49597ad5880a46f96584894
"Trigger text input events with HTML5 text-like fields: email, number, search,
tel, text, and url.")).

John Barker ([excepttheweasel](http://github.com/excepttheweasel)) updated the
README to point out that capybara-webkit does not, in fact, listen on port 8200
([2285621](http://github.com/thoughtbot/capybara-webkit/commit/228562173698f78ab28696cc9078c7c317eb08fa
"Capybara webkit doesn")).

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