https://github.com/howardabrams/coughy
Simple project to add <ahem> all of Underscore into the <cough> global namespace.
https://github.com/howardabrams/coughy
Last synced: about 2 months ago
JSON representation
Simple project to add <ahem> all of Underscore into the <cough> global namespace.
- Host: GitHub
- URL: https://github.com/howardabrams/coughy
- Owner: howardabrams
- Created: 2013-11-04T09:52:44.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2014-01-18T05:54:58.000Z (over 12 years ago)
- Last Synced: 2025-12-29T06:23:42.148Z (6 months ago)
- Language: JavaScript
- Size: 121 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
Why Coughy? Well, CoffeeScript gives JavaScript a much more palatable
syntax. Of course, each of your projects include the lovely [[http://underscorejs.org/][Underscore]]
library, however, pre-pending =_.= makes your code look crummy.
Coughy is quite wrong in that it places the Underscore library
into the global name space. /WHAT!?/ Yes. Just look at this beautiful
code:
#+BEGIN_SRC coffee
# Sum the squares that are less than 25... right, it is 30.
reduce( map( range(5), (x) -> x * x ),
(total, cur) -> total + cur )
#+END_SRC
Why do this? This certainly isn't for everyone, or every project, but
for working on [[http://projecteuler.net/][Project Euler]], or teaching programming concepts, this
seems like an acceptable solution.
** Installation
As usual, you can take advantage of this project by adding this to
your normal Node-related project:
#+BEGIN_SRC sh
npm install coughy
#+END_SRC
Now, you can create scripts that use those functions directly:
#+BEGIN_SRC js
require('coughy');
#+END_SRC
*Note:* You do not need to assign the results of the coughy module
*because , it is already placed in the global namespace.
** REPL Sweetness
By using the [[http://danielgtaylor.github.io/nesh/][Nesh project]], we can make pre-load /coughy/ in order to
make a better REPL:
#+BEGIN_SRC sh
npm install -g nesh
#+END_SRC
Then, create a Shell function like this:
#+BEGIN_SRC sh
nesh --lang coffee --eval 'node_modules/coughy/coughy.js'
#+END_SRC
Where =coughy.js= needs to be the filename to the magic script
that provides this pleasing abomination.
** Futures
*Think of this...* An even more functional approach to development
is with something like the immutable data structures available from
[[http://swannodette.github.io/mori/][Mori]] ... However, since Mori's functions overlap with Underscore
(but seem to be more general), I may just swap it.