This week in open source

Mike Burns

Another week of refactoring, bug fixes, and a bunch of new version releases. Vote for your favorite commit in the comments section!


More bug fixes and refactorings on bourbon, our collection of Sass mixins. Phil LaPier (plapier) fixed the background-image mixin to work with Sass 3.1.8, promoted render-gradients to the document root (d9d19a2), refactored the _background-image mixin a tiny bit which helped with Sass 3.1.8 compatibility (4e6f6b0), and released version 0.2.1 of bourbon (56cb8fb and fcb1a28).


We sure love refactoring. In our Heroku deployment gem, kumade, Gabe Berke-Williams (gabebw) made the tests a tiny bit easier to read by refactoring an internal method that adds and commits all assets in a directory (82971ab). Marcos Tapajós (tapajos) renamed the internal sync_github method to sync_origin, making it more explicitly clear what it does (92a88b6).


We have a Rails template that we call suspenders. Dan Croak (croaky) removed the superfluous mention of prefilled_input.js from the gemspec (0f5f194), looked over all the fun that has gone into it for a while, and released version 0.2.7 of suspenders (d82e98f).


The hilarious gem for making static pages in Rails, high_voltage, now has the ability to set the default layout and content path, thanks to Xavier Spriet (loginx). Thanks to his commits (634cbbc, 97b73f8, and 7a2fc9e) you can configure it like this, in a config/initializer:

HighVoltage.setup do |config| config.layout = “signedout” config.contentpath = “static” end

For illumination, the default is:

HighVoltage.setup do |config| config.layout = “application” config.content_path = “pages” end

Alex Heaton (alexheaton) saw this but noticed a severe lack of documentation! So he fixed that (012a65b and f562a37). Electric.


Default stylesheets for a Rails app, known as flutie, saw two committers over the past week. From Matt Jankowski (mjankowski) we got an updated server that pushes the CSS directly through Sass (5adafbd), a body_class method that takes optional extra body classes (ddb52a8), and a bunch of documentation and tests around those commits, including controversially git-ignoring Appraisal gem lock files (db68f4c, 9330ebd, a871cec, d5121e8, and 371ce9d). Chad Pytel (cpytel) updated the documentation to clarify the Rails 3.x and especially 3.1 usage (d2308fb and d8b0f98). To kick it all off Matt released version 1.3.3 of flutie (fc9fc01).


One of the major file upload gems for Rails is paperclip. Jon Yurek (jyurek) fixed the :log_command option (f7fdc9f), ignored Rubinius bytecode (0df4b60), and fixed a bug exposed by Ruby 1.8.7 (600ef08 and ec2c48b). Iain Beeston (iainbeeston) escaped a string that the user can set in the interpolator which is passed through to a regexp cc89e4a).

Then Jon released version 2.4.3 of paperclip (eadf7e8).


One small refactoring to the factory_bot Rails fixture replacement: Joshua Clayton (joshuaclayton) shortened the internals of the FactoryBot::Factory, moving more logic into the private parent method, which also shortened the tests (b4da075).


This week saw more excitement for our headless JavaScript integration tester, capybara-webkit. As I mentioned last week, Joe Ferris (jferris) worked with Jonas Nicklas (jnicklas) of capybara fame to get capybara-webkit working with capybara 1.1 (2945587, 8d3775d, 8ee2f5c, 36e13f7, and 5843e56). Along the week he also hardcoded the server as instead of localhost (57c6ebc) and added a note to the README about how to log errors better (d3f344a).

Brian Buchanan (bwbuchanan) fixed an issue with pages that reload themselves (e746fea), to which Joe contributed a test (f3f1e93).

To top it all off, Joe released version 0.7.2 of capybara-webkit (7e56285).

Project name history can be found here.

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