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 (<a href="http://github.com/thoughtbot/suspenders/commit/01e76e5c798934df81dd12c6c530902638a485c5" title="Revert "Reminder about REPO variable")
This reverts commit 40250296ef87c83392f78d623c2d48758b024098,
because we no longer need the REPO variable.">01e76e5). It does, however, discuss the OS-level dependencies (713e714).
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
: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).
Also an internal improvement week for our factory_girl 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, <a href="http://github.com/thoughtbot/factory_girl/commit/73b9e4196a96ab1181060b4428bdd45214e8b20f" title="Revert "Ensure the block called to Factory#run is actually called" This reverts commit 4ede9f1b1b8f44439d61aa99eee3587727779577.">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 (<a href="http://github.com/thoughtbot/dotfiles/commit/9495c56e81fb6294bd46f6ddc1186f963574c6e2" title="Some new aliases: "bake" for bundle exec rake, "staging" for getting into a Heroku cedar staging console, "production" for same thing, diff env">9495c56), a new git log format and default push state (fdc8afc), and coffeescript support for vim (<a href="http://github.com/thoughtbot/dotfiles/commit/318b6202fb66214e32e625dc62ccbc6bc1c52ec2" 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).