The brass buckles on Underscore's utility belt
JavaScript CSS HTML
Latest commit 1492ffb Jun 2, 2015 @fogus fogus Merge pull request #163 from jacobpurcell/conjoin-disjoin-single-elem
Support conjoin and disjoin methods for single elements
Failed to load latest commit information.
dist Bump to 0.3.0 May 7, 2014
docs Merge pull request #190 from codelahoma/docs Jun 3, 2015
examples Complete the parse tree example. Oct 13, 2013
test Merge pull request #163 from jacobpurcell/conjoin-disjoin-single-elem Jun 3, 2015
.gitignore Added bower_components contents to .gitignore. Sep 10, 2014
.jshintrc Change underscore import/export boiler plate (#186) Nov 29, 2014
.travis.yml Configuration for Travis CI. Jan 2, 2014
CHANGELOG.md Bump to 0.3.0 May 7, 2014
CONTRIBUTING.md Restructure contributor's guide. Fixes #165. Aug 28, 2014
Gruntfile.js Change underscore import/export boiler plate (#186) Nov 29, 2014
LICENSE Updating license files. Apr 29, 2013
README.md Update README.md with info on purpose and use. Aug 29, 2013
bower.json Bump to 0.3.0 May 7, 2014
index.html Expose _.keysFromPath. Fixes #178. Nov 21, 2014
index.js _.attempt(object, 'method', [*arguments]) Aug 2, 2013
package.json Merge pull request #174 from chyld/master Jun 3, 2015
tocdoc.css Added tocdoc and improved documentation intro. Nov 16, 2013
underscore.array.builders.js Change underscore import/export boiler plate (#186) Nov 29, 2014
underscore.array.selectors.js Change underscore import/export boiler plate (#186) Nov 29, 2014
underscore.collections.walk.js Change underscore import/export boiler plate (#186) Nov 29, 2014
underscore.function.arity.js Change underscore import/export boiler plate (#186) Nov 29, 2014
underscore.function.combinators.js Merge pull request #163 from jacobpurcell/conjoin-disjoin-single-elem Jun 3, 2015
underscore.function.dispatch.js Change underscore import/export boiler plate (#186) Nov 29, 2014
underscore.function.iterators.js Change underscore import/export boiler plate (#186) Nov 29, 2014
underscore.function.predicates.js Change underscore import/export boiler plate (#186) Nov 29, 2014
underscore.object.builders.js Change underscore import/export boiler plate (#186) Nov 29, 2014
underscore.object.selectors.js Update hasPath Dec 14, 2014
underscore.util.existential.js Change underscore import/export boiler plate (#186) Nov 29, 2014
underscore.util.operators.js Change underscore import/export boiler plate (#186) Nov 29, 2014
underscore.util.strings.js Change underscore import/export boiler plate (#186) Nov 29, 2014
underscore.util.trampolines.js Change underscore import/export boiler plate (#186) Nov 29, 2014

README.md

underscore-contrib

The brass buckles on Underscore's utility belt -- a contributors' library for Underscore.

Links

Why underscore-contrib?

While Underscore provides a bevy of useful tools to support functional programming in JavaScript, it can't (and shouldn't) be everything to everyone. Underscore-contrib is intended as a home for functions that, for various reasons, don't belong in Underscore proper. In particular, it aims to be:

  • a home for functions that are limited in scope, but solve certain point problems, and
  • a proving ground for features that belong in Underscore proper, but need some advocacy and/or evolution (or devolution) to get them there.

Use

First, you’ll need Underscore. Then you can grab the relevant underscore-contrib libraries and simply add something like the following to your pages:

<script type="text/javascript" src="underscore.js"></script>
<script type="text/javascript" src="underscore.object.builders.js"></script>

At the moment there are no cross-contrib dependencies (i.e. each library can stand by itself), but that may change in the future.

Contributing

There is still a lot of work to do around perf, documentation, examples, testing and distribution so any help in those areas is welcomed. Pull requests are accepted, but please search the issues before proposing a new sub-contrib or addition. Additionally, all patches and proposals should have strong documentation, motivating cases and tests. It would be nice if we could not only provide useful tools built on Underscore, but also provide an educational experience for why and how one might use them.

Other (potentially) useful sub-contribs include the following:

  • String utilities
  • Date/time utilities
  • Validators
  • Iterators
  • Generators
  • Promises
  • Monads
  • Currying
  • Laziness
  • Multimethods

What do these mean? Well, that’s up for discussion. :-)