This week in open source

Mike Burns


The big changes to kumade this week: the rake task automatically works, and is properly tested too; the Less::More packager is gone; and the cucumber tests are more extensive and reusable. This is all in the 0.8.0 release of kumade.

All commits this week were from Gabe Berke-Williams (gabebw). He worked on the no-op asset packager, which is the useful for when you have no assets. It is never run (ccfa677 and e2e546e) but is tested (621698e). This came from tests that he refactored (c45df04, 6600abb, 9aa6230, 810a832, 5ef704b, 4a72bc0, a3a080f, c05b398, c34d796, 8e34e56, 4bffaa3, cf370c1, 13469e2, ef026fc, 40eb3a8, caeb62a, 7ca5108, 7e4eab3); a main theme of this refactoring is moving Cucumber step definitions into re-usable Ruby methods. He also noted that Rails is a dependency for the gem, but rake is not (1808c1e). Also included in this paragraph is the cleanup of the README he did (3eb743c).

In terms of awesome, kumade has grown so large that Gabe needed to generate a ctags file, and git-ignore it (41c261b). The More packager, which uses the Less::More gem, was undertested and unused and, thus, removed (594a6d0). The rake task, which has been in odd states in the past, now works, no setup needed (8d93837 and f2ee9f4). A bug where untracked asset files were not caught has been fixed (867594d). And all of this was released as version 0.8.0 of kumade (8de6c4c)!


Hot new things in our app-generating gem, suspenders: pass Rails generator arguments through from the command-line to the low-level generator, ActiveRecord attributes default to protected, Clearance is easier to test, the Procfile is copied for easier Heroku usage, and the gem itself is much easier to test.

Like kumade, all commits on suspenders this week were from one person: Harold Giménez (hgimenez). The Procfile is a Heroku-specific file that lets us state that we want to use thin instead of the default Web server. This is copied to the generated app now (4a5c154). Rails and cucumber were both upgraded to 3.1 and 1.1.0, respectively (44190e8, d99d7f3, and 07602fa). The database does not auto-migrate on app generation, giving you time to remove or change Clearance as needed (70887f8 and b4a74c9). The clearance/testing module is automatically required by the spec suite now (6436933). The default rake task runs specs and cucumber features (3131d45). The command-line interface was changed; instead of specifying a subcommand, you instead just say suspenders awesome-blog to create an awesome-blog project (c27af6f). Finally and most controversially, ActiveRecord objects require attribute whitelisting now with attr_accessible (fcbe87c and c3dd8ab).

Internally the lives of developers was made easier (so get your pull requests ready!). The trout gem was removed, along with all the functionality it brought and required (244b944, 2b2c6ec, 470e642, and 1969445). Aruba was added (518f4d8, bcfb05e, and f3dca30), which made is eaier to put Suspenders on bundler (064b1e6, 6f677b9, and e097c00), which also removed the REPO environment variable’s use (d7a74c2), and made the rake tasks easier (d900182). The Rails custom template was re-written to be an AppGenerator (517f0c3). Also, the word “miscellaneous” was spelled properly (ce1b191).

This all brought documentation changes, of course! The README no longer mentions the subcommands (1eec3cc) or trout (385dd5b), nor does it mention the REPO environment variable (01e76e5). It does, however, discuss the OS-level dependencies (713e714).

With all that done, Harold released version 0.3.1 of Suspenders (68f4a1c and a0225bd).


All documentation updates this week for high_voltage, our static page gem. Matt Jankowski (mjankowski) mentioned that static pages go under app/views/pages, at least by default (bfb6b4a). Jaime Iniesta (jaimeiniesta) mentioned how custom routes and custom controllers need to work (1450b15).


We saw one bug fix, some refactoring, and documentation updates on the paperclip file uploader gem. Prem Sichanugrist (sikachu) fixed the validates_attachment_presence validator to handle an :if and :unless as a symbol instead of a Proc (2583a27).

Prem also moved the storage tests into the test/storage directory (41f685f), which caused Mike Burns (mike-burns) to fix the tests (af689b4). Prem changed some words in the features (9fb5b74) and re-aligned some code (42d4199).

Gabe Berke-Williams (gabebw), who loves changing documentation, documented the geometry formats finally (093a14a) and fixed the Markdown formatting (227d6a4).


Also an internal improvement week for our factory_bot fixture replacment. Gabe Berke-Williams (gabebw) fixed the formatting in the contribution guidelines (cddfa92). GunioRobot (GunioRobot) cleaned up some excess whitespace for us (f41299e). Joshua Clayton (joshuaclayton) tested that the block passed to the factory runner is indeed called (93026a8, 73b9e41, and 4ede9f1).


Hot new stuff if you’re a git, vim, or shell enthusiast! Our dotfiles have new shell aliases for running a bundled rake and deploying to staging and production (9495c56), a new git log format and default push state (fdc8afc), and coffeescript support for vim (Coffeescript for vim">318b620 and 1a8d7cf). All of this is thanks to Dan Croak (croaky).


The Braintree test fake, fake_braintree, can now handle varies types of credit card verification (6bd119e) and missing subscriptions (9b812ed). Note that in the missing subscriptions commit Gabe Berke-Williams (gabebw) committed his generated ctags file.

Along with those features come code re-alignment (43099c4) and more helper methods (0e6f4f5) plus some README updates in the form of formatting (313d8fd), code escaping (1d667c6), and a quick-start tutorial (62feac8).

With those few things done Gabe released version 0.0.4 of fakebraintree_ (54130ae and e54e98d).

Project name history can be found here.

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