Another week of Sass mixins known as bourbon. Phil LaPier (plapier) gave the background-image mixin support for linear and radial gradients (f54da8f, 5e4cea2, b5d42a7, 36b678e, and a63dade). Sean Lynch fixed the webkit gradients on older devices (e46ba1e).
Matthew Burket (Mab879) fixed the README to point out that Rails 3.0.x is up to 3.0.10 now (098ef82). Matt Jankowski (mjankowski) added a bunch of people to the authors line of the gemspec (72cf1e7) and fixed an interpolation bug in the radial gradient (1fe6fce).
Phil and I had a talk about version numbers, after which Phil released version 1.0.4 of bourbon (1689cce, c994fcd, 07fe351, b67224f, and c6b2b73).
More pull requests and refactoring for capybara-webkit over the past week. Joe Ferris (jferris) simplified the Connection class by introducing a command factory and parser (b4708b2). Lake Denman (ldenman) spelled the word “version” correctly in the README (25ff48a). Stephen Delano (sdelano) added support for unsupported content response headers (62e0ec1 and 06a4e95).
Busy week for the clearance user auth engine! On the documentation side, Dan Croak (croaky) updated the copyright out to 2011 (8001a77), updated the CHANGELOG (644421f), mentioned all possible override points (26933c5), and got explict about the dependencies you need to integrate the Cucumber tests in your app (d4df728). Neil Parikh (neilparikh) rewrote history, claiming the Clearance was extracted from Airbrake instead of Hoptoad (ff404c8). Gabe “typo fixer” Berke-Williams (gabebw) fixed the word “dependent” in the README (bb2e919).
Dan also took note of Cucumber’s removal of web_steps.rb, which many people think is fantastic, and removed mention of any steps defined there (ece4b10, e01f366, and fef1fae). Keeping up with the rubygems gem he switched from rake/gempackagetask to rubygems/package_task (6759d6d). He also tried to start a fight over how appraisal functions by asking about ignoring appraised gemfile locks (8dde7b0). To finish it off, Dan released verion 0.13.0 of Clearance (b2995c8).
We had a Sprinkle script for setting up a continuous integration server, named continuous_sprinkles appropriately enough. We don’t use this, so Mike Burns (mike-burns) deprecated it (c7dab0a). Before doing so he pulled in a patch from Ezra Spier (ahhrrr) to update the RVM setup (2f1b8b).
There’s a whole blog post on factory_girl version 2.2 so I’ll be brief: Joshua Clayton (joshuaclayton) removed a bunch of unnecessary public methods such as #ignore (dc32fd6), #add_child (481ea09), #attributes (3bef858), #callbacks (7f42abe), and #attribute_defined? (39caed0). He refactored the #add_attribute method on a definition proxy (a50adda), standardized deprecation warnings (0c84876), moved the exception class definitions around (1153783), and allowed no block to be passed to the #ignore block (eb21a44). Justin Ko (justinko) rocked our faces with some test cleanups, including removing redundant “should”s in behavior descriptions (334b8a9), then followed up with the equally pleasing feature that removes the need to call #tap in order to modify your generated object with a block (f32651d). Vasiliy Ermolovich (nashby) updated the supplied step definitions to use FactoryGirl.create_list instead of Fixnum#times (9fcd0b6). Joe Ferris (jferris) attempted to fix the link to the getting started documentation (f4ee363). Jeff Dutil (jdutil) cleaned up whitespace made by the fixture generator (d364e83).
Anyway, that’s a bunch of stuff, but the point is Josh wrote a blog post and released version 2.2.0 of FactoryGirl (41f73b5).
Some sweet default styles, flutie, got a README update from Tom Crinson (MrJaba) mentioning the differences between Rails 3.1 and earlier versions (323026c).
Big refactoring on our Heroku deployer, kumade. Gabe Berke-Williams (gabebw) added an Outputter class, which knows how to output things. After much discussion he made this a part of the configuration and used the well-blogged-about dependency injection pattern to simplify tests. This outputter means that you could potentially add a GUI or Web outputter! Imagine the possibilities! JSON! AJAX! XMPP! BBQ! (342082a, bb95538, 3af22ce, 6d7c867, 92a4add). Along the way he fixed a failing spec (6359702), only deleted branches if they exist (f260e9e), and showed an error message when the deployment fails (c27f13f).
Matt Jankowski (mjankowski) updated the README’s copyright, license, and credits sections (acd2b6a) and then Gabe released version 0.5.0 of kumade (a28adea).
Our collection of ActiveRecord scopes is pacecar. Ryan Sonnek (wireframe) fixed deprecation warnings that appear when you leave space between a method and the open parenthesis (bdca580 and 199ad67). Matt Jankowski (mjankowski) tested it on Rails 3.1.1 (3be3ad5) and then released version 1.5.2 of pacecar (f838a84).
Ah paperclip, the file uploader gem for Rails. In the housekeeping area, Prem Sichanugrist (sikachu) fixed some stray whitespace (7ab5ba6) and regenerated the appraisal gemfiles (47a56c2); trafnar (trafnar) added more about URI obfuscation to the README (2b8526b); and Nick Quaranto (qrush) noted that #form_for needs <%= (d808aa6).
Feature-wise, Prem removed the Rails root from the default S3 storage (4ecd5b1) and added an InterpolatedString class to handle URL escaping (56e4135 and db60516).
I finally got our collection of RSpec matchers to pass on my laptop: shoulda-matchers. So from Håkon Lerring (Hakon) we have a matcher for the :conditions option for associations (293b8aa); from Jeff Dutil (jdutil) we have a documentation fix for the have_readonly_attribute matcher (ea477b8); from Light Year Software, LLC (lightyear) we got a fix for validations_uniqueness_of with a non-string value (21fa1f1); and from Shalva Usubov (shaliko) we got another documentation fix to remove some duplication for the route matcher (3ee5e5f).
The Rails template we use for starting new apps is suspenders. Harold Giménez (hgimenez) updated it to use Rails 3.1.1 (0504fa2) and along the way used the Ruby File class where possible to abstract out platform-dependent file path issues (45faf41), removed any explicit JavaScript caching (552c654), and no doubt noticed that the REPO command-line variable is undocumented so he added it himself to the CONTRIBUTING documentation (4025029).
Our set of sass mixins, bourbon, saw a quick fix from Travis Haynes (travishaynes), who moved the HTML5 input types into the addons directory (2c7c527). Phil LaPier (plapier) cleaned the input types mixin, removing seven needless lines and then released version 0.1.9 of bourbon (c7027db).
We have this test fixture gem named factory_girl. You might have heard of it. Joshua Clayton (joshuaclayton) sure has; he started with some nice refactoring to change from @options to individually-defined instance variables, removing the need for complex trait assignment (3749056 and c38bac9); he followed the principle of least surprise, allowing users to define parent factories after the children (e28bdb8 and da3af82). Whoa, indeed.
The headless JavaScript integration test driver, capybara-webkit, saw more features and improvements. Niklas Baumstark (niklasb) gave us a more diff-friendly list of C++ headers (dc5130c) as a set up for cookie support (fb119f6).
Nicolas Sanguinetti (foca) sent a non-backward-compatible pull request, renaming the capybara-webkit require to capybara/webkit, which some people who write weekly blog posts disagree with (eeeddbd). To top it off, Matthew Mongeau (halogenandtoast) fixed a bug with URLs with anchors (f75bc3d) and worked around a nuance of the Ruby parser (89bee3c).
Also, right now, the capybara lead and capybara-webkit lead are pairing. The magic of RubyConf.
paperclip may be the finest file uploading gem for Rails. Jon Yurek (jyurek) did some internal cleanups, extracting the options hash into its own object (3e6d933 and b948f96). Joost Baaij (tilsammans) added determinism to the rake task that refreshes thumbnails, ordering by the database ID, with the idea that a crashed refresh could be restarted more easily. Perhaps this is a bandage instead of a fix (0df5a96). Pavel Forkert (fxposter) continued with previous work on fixing a memory leak, passing strings instead of objects (7243015 and 7a2e2ed).