This week in open source

Mike Burns


Version 1.1.2 of bourne is out (fba748b), without a NEWS file describing the changes! However, the history indicates that it is compatible with a more recent version of mocha and it presents better error messages now.


We’re trying out version 2.0.0, release candidate 1, of bourbon (0ec0115). So please, try it out and let us know what’s broken.

Out of nowhere, Gabe Berke-Williams (gabebw) changed the formatting of something (7ec8959).

But Phil LaPier (plapier) removed animation-basic (316f2a7), cleaned up the default padding for buttons (2a46225), changed the radial-gradient in a way I don’t totally understand (94506ea), added some shorthands for transition (3342577), removed the position mixin (4621347), and updated the README (5f1176d and f5cdfad).


Version 3.0.0 of factory_bot is out: read the blog post to know more. In summary: goodbye five-year-old Ruby 1.8, goodbye two-year-old Rails 2, goodbye four-year-old FactoryBot syntax!


Minor cleanups to suspenders this week: Gabe Berke-Williams (gabebw) fixed some markdown (107b103) and Andy Waite (andyw8) removed some annoying whitespace probably left by someone using TextMate (32104f9) and noted the fact that you must be running Postgres while suspending (de20630).


In paul_revere news this week, Cameron Desautels (camdez) pointed out that controller helpers need to use the helper class method (3b74d84).


The shoulda gem got taken care of by Gabe Berke-Williams (gabebw) this week: the Rails test helpers use the installed shoulda-matchers and shoulda-context gems instead of the GitHub ones (6f3b7b4); the dependencies are updated to more recent versions, and the tests require the user of bundler now (34d9f4a); the Rakefile doesn’t present a clobber action, whatever that did (058724b); and the contribution guidelines now reflect the fact that we’ve wanted pull requests for the past three years (f75da74).


This week, Gabe decided to take all pull requests on shoulda-matchers over the past few…years. Gabe Berke-Williams (gabebw) also did a bunch of cleanup and maintainance (c10cf34, 31b140f, c27de41, 7d70805, 7950d00, 3d6b8a8, ff0d364, ca6d428, ba78ed0, 8724cd2, c493c40, f841805, 0746b79, 963a293, 65d6d1c, afaf72b, and 76127ea).

Norway’s own Håkon Lerring (Hakon) added as_instance_of to the serialize matcher (9b5e972, 3b891cf, and d9906d8). Hey Håkon, I’m moving to your neighboring country soon!

Matthew Daubert (MDaubs) added an odd query_the_database matcher, which could be useful for making sure a n+1 is good and dead (0ecb774, 93cd34e, [56de191]( “Test that exception is thrown in Rails < 3.1

AbstractAdapter doesn”), 8e7fbc5, 558d1df, and 00a9a68).

Frank Luithle (sigi) extended the allow_value matcher to handle multiple values ([cab62a1]( “allow multiple values for AllowValueMatcher

With the deprecation of "shouldallowvalues_for” there is currently no clean way to specify multiple allowed (or forbidden) values for an attribute in a single assertion. This can make test cases unnecessarily verbose.

This patch gives AllowValueMatcher the ability to take multiple values. The new matcher is fully downward compatible (i.e. given a single argument it behaves identically to the old matcher).

This matcher will stop checking for bad values when the first bad value is encountered.“), c86d8e2, and 026927b).

Luca Guidi (jodosha) updated our dependencies. Sweet. (1956736)

And last but not least, Mike Bloy (bloy) extended the association matchers to understand inverse relations and to check the correct class (a4cb684, 5c173bf, and [ :User)

corrected by having haveone and havemany association tests check for an :inverseof on their association, and use the inverse relationship’s foreign key info if it can be found”>c863f7e]( “associationmatcher foreign_key refinement

hasmany and hasone tests failed with the reverse association has a nonstandard name, (eg "belongsto :author, :classname =”)).


The capybara-webkit gem got a fix for the RSpec matcher from Chris Nicola (lucisferre), possibly due to an API change elsewhere ([8fb7ccd]( “Fixes problem with RSpec matcher. Probably the RSpec API changed recently.

Changes are based on the documentation provided here:”)); Will Ryan added keyCode and which to the keypress, keydown, and keyup triggers (c6103e7 and fb97fe8); and Joe Ferris (jferris) refactored everything (1ed54b1, 3ebe0fa, 67d5e3d, 354180a, 85dcc72, and 5b57eee), plus stopped clearing the page on the URL about:blank (b3b1adf).


A bug fix to dotfiles this week as Claudio Ortolina (cloud8421) changed the .vimrc to load the local configs from the homedir instead of just about anywhere (9dc7f9c).


A feature in appraisal this week: Gregory Ostermayr (gregors) exposed the bundle command that Appraisal uses to install the Gemfile-specific gems (6b41d07 and 8023273). Gabe Berke-Williams (gabebw) stopped the tests from loading shoulda; instead it loads rake, which is already installed (beaee3b).


The contribution guidelines were written for fake_braintree by Gabe Berke-Williams (gabebw), which are mostly the same as our others (bd5220a). Namely, we love tests and pull requests.


Mostly quiet on the paperclip front, except Dmitry Polushkin (dmitry) snuck a backward-incompatible change into the generated migration (b7bfdec).