Skip to content

machineghost/Underscore-Grease

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 

Repository files navigation

Underscore Grease

"Fun Underscore.js plugin that provides a cleaner way to do chaining … if chaining how you roll" - Jeremy Ashkenas, creator of Underscore.

###Making Underscore Chaining Slicker###

In jQuery, chaining is nice and simple:

$(someElement).css('color', 'red').show();

But while jQuery methods only rarely have return values, all Underscore methods do, which means that Underscore can't chain methods unless you tell it when to start/stop chaining. Because of this, Underscore's chaining syntax isn't as simple as jQuery's:

 _(foo).chain().without({foo:bar}).compact().value();

This mix-in solves that problem by providing an alternative chaining syntax:

_(foo).without_({foo:bar}).compact();

In other words, this mix-in adds new versions of every method in Underscore (except chain; that would be pointless), and each of those new versions has a "_" at the end of the original method name. When these "greased" versions of Underscore methods are called, they return an Underscore-wrapped version of whatever result their non-greased version would have returned.

This allows you to chain as many methods as you want, without ever having to invoke either chain or value:

_(foo).without_({foo:bar}).compact_().flatten_().items();

To use Underscore Grease simply download and add underscore.grease.js to your environment (or, for a production environment, use underscore.grease.min.js instead). It's that simple.

Underscore Grease was created by Jeremy Walker with feedback from GitHub user Nami-Doc. It is licensed under the MIT License.

For the historical origins of Underscore Grease see this GitHub issue thread

About

Making Underscore Chaining More Slick

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published