This week in open source


Version 2.6.4 of factory_bot is out (b7f3789), with a bug fix from Ian Duggan (ijcd) such that you can use the name of a transient attribute when setting other attributes ([0d7520e]( “Do not ignore alias names of transient attributes. (Fixes #311)”)), and Joshua Clayton (joshuaclayton) reduced the number of times a factory assigns to an object, just in case mutation matters ([f5d4db1]( “Ensure attributes set on instance are calculated uniquely

This fixes a bug where assignment occurs multiple times; in the case of nested attributes, assignment mutates the instance, meaning that it occurring multiple times will cause issues.

Closes #314”)).


Version 0.11.0 of capybara-webkit is out (464a7bf and 39be2c8). From David Reese (whatcould) we get support for the oninput trigger ([fc5cba3]( “Add support for HTML input event (aka oninput) on text fields.

The input event is like onchange, but on text fields, it is fired as soon as the value of the field changes, not when the field is blurred. It is a more appropriate event than ”)); Moreno Carullo (morenocarullo) fixed compilation on 23-bit Microsoft Windows (f09ba15 and 4b044cc); James Tucker (raggi) forced the server to bind straight to localhost instead of the free-for-all it was previously (fc56a13).


Clearance 0.16.0 is out (4cacef5 and a01d81f), in which Chris Dillon (squarism) added Blowfish password encryption (1a779c8 and 40362e92). Wild.

shoulda and shoulda-matchers

Small stuff in shoulda shoulda-matchers over the past week, as Steve Richert (laserlemon) fixed the little image on our README that shows that the build is always broken (43a3cb7) and Gabe Berke-Williams (gabebw) cleaned up the test suite, using let instead of instance variables (f1a3dca, 62207b4, bb59b74).


In cocaine news, Brian Durand (bdurand) included an option to use the posix-spawn gem, potentially improving performance (aa36e45, 98dff3d, 2391d9f). Mike Burns (mike-burns) removed Gabe’s bundler config, ‘cause really (f77c1b5).


While drinking bourbon this week, Kyle Fiedler documented flex-grid (a85ce35), Frank (frankzilla) added a hide-text mixin to make it easier to hide some text, e.g. .image-to-be-replaced { @include hide-text } (3f736ea). Dylan Lacey threw more Ruby at the installation rake task, which brought cross-platform compatibility to the world (.>“>281ed16, ee78754, b853f14, 9b85a13, 8b7dec4, e4ed1b3).


Performance gains in paperclip this week as Luke Griffiths (Sporky023) and Mathieu Martin (webmat) switched from find to find_each (0c1e812, 32199e2, [35052eb]( "Load models in batches, to make this more practical for large datasets.

Note: find_each doesn”)). Mathieu also allowed in styles with numeric names (8edccdc). Matthias Viehweger (kronn) fixed a typo; thanks, Matthias (e927180)!

Project name history can be found here.

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