This Week in Open Source

Joe Ferris

The great bundler cleanup

We’ve been slowly transitioning all our gems to use Gemfiles and bundler’s gem tasks, but Gabe Berke-Williams (gabebw) is finally laying down the law. Welcome to the New Order: limerick_rake, paul_revere, cocaine, suspenders, pacecar, appraisal, shoulda-matchers, bourne, shoulda, high_voltage, flutie, paperclip, shoulda-context, and factory_bot_rails are now in line.

This provides a reliable and unified way for developers to check out, test, and release our gems:

bundle install && bundle exec rake && bundle exec rake release

Among other things, this keeps our CI clean and means we can’t forget to add Git tags for each release.


Bryan Ash (bryan-ash) fixed a kumade bug when trying to push to non-existent remotes: 397604d.


Vasiliy Ermolovich (nashby) fixed suspenders to correctly create the database in the context of the bundle: da63a014.


Tom Milewski (tmilewski) added a new matcher to shoulda’s matcher collection: should serialize, allowing you to quickly test serialized ActiveRecord fields. This was introduced in a3fa2f9.

Blake Thomson, Mike Burns (mike-burns), and Gabe Berke-Williams (gabebw) fixed some development and testing issues to get the shoulda builds passing in 7660061, d38edbd, and f9d5c63.


Gabe Berke-Williams (gabebw) cleaned up high_voltage a bit by removing some extra comments in 505f98a.


Gabe Berke-Williams (gabebw) updated the bourbon documentation (aaabf77) and switched from plain Ruby to Rake for generation: a647cff.

Matthias Schmidt (MSchmidt) removed font families from buttons to let the application’s fonts shine through (3d18d51) and Mark Sonnabaum (msonnabaum) restored a missing import to make column mixins available (9b826ac).


Gabe Berke-Williams (gabebw) fixed flutie to expose the running version: 7151672.


Gabe Berke-Williams (gabebw) updated the pacecar documentation: 84e1fe7.


Shinya Kasatani (kasatani) fixed paperclip to support more options in the styles hash: b66833e.

Mike Burns (mike-burns) merged mpd’s (xxx) fixes for handling files with question marks (ff48f68) and Daniel Vartanov’s (DanielVartanov) style optimizations: b09b05b.

Prem Sichanugrist (sikachu) fixed Paperclip rake tasks to ignore default_scope in ActiveRecord: 0e8b874.

Jon Yurek (jyurek) fixed an expiring URL bug (75a5dbc).


Mike Burns (mike-burns) merged Wojciech Wnętrzak’s (morgoth) factory_bot fixes for factory names with uppercase letters: 463028d

Joshua Clayton (joshuaclayton) fixed a bug concerning build classes: 845a76a

Harold (hgimenez) forgot to take his medicine and submitted 218d7bed but he stopped himself in time.


Gabe Berke-Williams (gabebw) and Joe Ferris (jferris) added support to our braintree fake for more of the Braintree API and changed behavior to be more realistic in 0dd6471, 3d758a1, c57cde3, 45b5e62, bab770a, 0c02a8e, 707b336, and 36f2b5e. They also cleaned up fake_braintree internals with a number of improvements in 1811656, e055191, 3ada7a3, 9304ea0, 210835c, 0a647db, ad3c6ab, 6c284b5, eab8d78, 7a7e153, 5970f68, ebab395, 58a1e89, d3097c5, 1 transaction.“>638a38b, ebeab46, and 47d00aa.

Ben Orenstein (r00k) came through with a documentation update: b6befa2.


This week, Gabe Berke-Williams (gabebw) earned the prestigious “Committed more than is reasonably plausible in a forty-hour work week” award for getting his name in this post more often than the word “the.”

Kudos to Mike Burns (mike-burns) for earning the “Pull Request Vacuum” award. How many merged pull requests does it take to get to the center of the Earth? Mike is well on his way to finding out.

Project name history can be found here.

  1. Looking for FactoryGirl? The library was renamed in 2017.