{"_id":"utile","_rev":"117996","name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","dist-tags":{"latest":"0.3.0"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"time":{"modified":"2021-06-03T10:52:24.000Z","created":"2011-10-31T21:22:39.264Z","0.3.0":"2014-12-07T23:07:24.301Z","0.2.1":"2013-12-02T06:33:58.185Z","0.2.0":"2013-03-17T11:30:46.384Z","0.1.7":"2013-01-13T13:35:50.069Z","0.1.6":"2012-11-12T17:12:28.172Z","0.1.5":"2012-09-21T07:29:51.400Z","0.1.3":"2012-07-25T07:44:09.589Z","0.1.2":"2012-06-26T23:15:43.519Z","0.1.1":"2012-06-07T19:44:09.573Z","0.1.0":"2012-05-23T14:04:33.987Z","0.0.10":"2011-12-08T23:46:38.402Z","0.0.9":"2011-11-29T23:59:23.542Z","0.0.8":"2011-11-26T00:50:46.574Z","0.0.6":"2011-11-13T00:18:43.028Z","0.0.5":"2011-11-09T12:44:51.865Z","0.0.4":"2011-11-09T01:26:32.712Z","0.0.3":"2011-11-01T08:51:33.164Z","0.0.2":"2011-10-31T21:32:41.377Z","0.0.1":"2011-10-31T21:22:39.264Z"},"users":{"blakmatrix":true,"fgribreau":true,"pid":true,"brentonhouse":true,"bojand":true,"dm7":true},"author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"repository":{"type":"git","url":"http://github.com/flatiron/utile.git"},"versions":{"0.3.0":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.3.0","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"repository":{"type":"git","url":"http://github.com/flatiron/utile.git"},"dependencies":{"async":"~0.9.0","deep-equal":"~0.2.1","i":"0.3.x","mkdirp":"0.x.x","ncp":"1.0.x","rimraf":"2.x.x"},"devDependencies":{"vows":"0.8.x"},"scripts":{"test":"vows --spec"},"main":"./lib/index","engines":{"node":">= 0.8.0"},"gitHead":"6aafee124fb76d92f9c56d46b8574d6b7606ac4b","bugs":{"url":"https://github.com/flatiron/utile/issues"},"homepage":"https://github.com/flatiron/utile","_id":"utile@0.3.0","_shasum":"1352c340eb820e4d8ddba039a4fbfaa32ed4ef3a","_from":".","_npmVersion":"2.1.9","_nodeVersion":"0.10.33","_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"dist":{"shasum":"1352c340eb820e4d8ddba039a4fbfaa32ed4ef3a","size":9499,"noattachment":false,"key":"/utile/-/utile-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.3.0.tgz"},"directories":{},"publish_time":1417993644301,"_cnpm_publish_time":1417993644301,"_hasShrinkwrap":false},"0.2.1":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.2.1","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"repository":{"type":"git","url":"http://github.com/flatiron/utile.git"},"dependencies":{"async":"~0.2.9","deep-equal":"*","i":"0.3.x","mkdirp":"0.x.x","ncp":"0.4.x","rimraf":"2.x.x"},"devDependencies":{"vows":"0.7.x"},"scripts":{"test":"vows --spec"},"main":"./lib/index","engines":{"node":">= 0.6.4"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/flatiron/utile/issues"},"_id":"utile@0.2.1","dist":{"shasum":"930c88e99098d6220834c356cbd9a770522d90d7","size":9475,"noattachment":false,"key":"/utile/-/utile-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.2.1.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"jcrugzz","email":"jcrugzz@gmail.com"},"directories":{},"publish_time":1385966038185,"_hasShrinkwrap":false,"_cnpm_publish_time":1385966038185},"0.2.0":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.2.0","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"repository":{"type":"git","url":"http://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","deep-equal":"*","i":"0.3.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"2.x.x"},"devDependencies":{"vows":"0.6.x"},"scripts":{"test":"vows --spec"},"main":"./lib/index","engines":{"node":">= 0.6.4"},"readmeFilename":"README.md","_id":"utile@0.2.0","dist":{"shasum":"91a2423ca2eb3322390e211ee3d71cf4fa193aea","size":9491,"noattachment":false,"key":"/utile/-/utile-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.2.0.tgz"},"_from":".","_npmVersion":"1.2.13","_npmUser":{"name":"mmalecki","email":"me@mmalecki.com"},"directories":{},"publish_time":1363519846384,"_hasShrinkwrap":false,"_cnpm_publish_time":1363519846384},"0.1.7":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.1.7","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"repository":{"type":"git","url":"http://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","deep-equal":"*","i":"0.3.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.6.x"},"scripts":{"test":"vows --spec"},"main":"./lib/index","engines":{"node":">= 0.6.4"},"readmeFilename":"README.md","_id":"utile@0.1.7","dist":{"shasum":"55db180d54475339fd6dd9e2d14a4c0b52624b69","size":9475,"noattachment":false,"key":"/utile/-/utile-0.1.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.1.7.tgz"},"_npmVersion":"1.1.70","_npmUser":{"name":"mmalecki","email":"me@mmalecki.com"},"directories":{},"publish_time":1358084150069,"_hasShrinkwrap":false,"_cnpm_publish_time":1358084150069},"0.1.6":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.1.6","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"repository":{"type":"git","url":"http://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","deep-equal":"*","i":"0.3.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.6.x"},"scripts":{"test":"vows --spec"},"main":"./lib/index","engines":{"node":">= 0.6.4"},"_id":"utile@0.1.6","dist":{"shasum":"9ae4e796a96311463abe6b1890e4c6ef7aa8053e","size":9422,"noattachment":false,"key":"/utile/-/utile-0.1.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.1.6.tgz"},"_npmVersion":"1.1.63","_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"directories":{},"publish_time":1352740348172,"_hasShrinkwrap":false,"_cnpm_publish_time":1352740348172},"0.1.5":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.1.5","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"repository":{"type":"git","url":"http://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","deep-equal":"*","i":"0.3.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.6.x"},"scripts":{"test":"vows --spec"},"main":"./lib/index","engines":{"node":">= 0.6.4"},"_id":"utile@0.1.5","dist":{"shasum":"3762399a9304cb966b9166f48edc01dd61cdf6a8","size":8798,"noattachment":false,"key":"/utile/-/utile-0.1.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.1.5.tgz"},"_npmVersion":"1.1.59","_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"directories":{},"publish_time":1348212591400,"_hasShrinkwrap":false,"_cnpm_publish_time":1348212591400},"0.1.3":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.1.3","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","deep-equal":"*","i":"0.3.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.6.x"},"scripts":{"test":"vows --spec"},"main":"./lib/index","engines":{"node":">= 0.6.4"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"utile@0.1.3","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.2","_nodeVersion":"v0.8.1","_defaultsLoaded":true,"dist":{"shasum":"12595deb17434645d79b04cf6878567e1ae29a46","size":9062,"noattachment":false,"key":"/utile/-/utile-0.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.1.3.tgz"},"directories":{},"publish_time":1343202249589,"_hasShrinkwrap":false,"_cnpm_publish_time":1343202249589},"0.1.2":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.1.2","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","deep-equal":"*","i":"0.3.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.6.x"},"scripts":{"test":"vows --spec"},"main":"./lib/index","engines":{"node":">= 0.6.4"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"utile@0.1.2","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.2","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"fbad3181778608325172e16ffbbbafd125704441","size":8574,"noattachment":false,"key":"/utile/-/utile-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.1.2.tgz"},"directories":{},"publish_time":1340752543519,"_hasShrinkwrap":false,"_cnpm_publish_time":1340752543519},"0.1.1":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.1.1","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","i":"0.3.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.6.x"},"scripts":{"test":"vows --spec --isolate"},"main":"./lib/index","engines":{"node":">= 0.6.4"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"utile@0.1.1","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.2","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"fd6c8c20541053bc43fe8b36e5098043de3d45ba","size":8130,"noattachment":false,"key":"/utile/-/utile-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.1.1.tgz"},"directories":{},"publish_time":1339098249573,"_hasShrinkwrap":false,"_cnpm_publish_time":1339098249573},"0.1.0":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.1.0","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.6.x"},"scripts":{"test":"vows --spec --isolate"},"main":"./lib/index","engines":{"node":">= 0.6.4"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"utile@0.1.0","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.2","_nodeVersion":"v0.6.10","_defaultsLoaded":true,"dist":{"shasum":"6aea68476399168de42153f36636077edc78f158","size":8006,"noattachment":false,"key":"/utile/-/utile-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.1.0.tgz"},"directories":{},"publish_time":1337781873987,"_hasShrinkwrap":false,"_cnpm_publish_time":1337781873987},"0.0.10":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.0.10","author":{"name":"Nodejitsu Inc","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"},{"name":"Dominic Tarr","email":"dominic@nodejitsu.com"},{"name":"Maciej Malecki","email":"maciej@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.6.x"},"scripts":{"test":"vows --spec --isolate"},"main":"./lib/index","engines":{"node":">= 0.4.0"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"utile@0.0.10","_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"a45345b6e90d679c48c8d215ab724e3ee3dafc18","size":10240,"noattachment":false,"key":"/utile/-/utile-0.0.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.0.10.tgz"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"directories":{},"publish_time":1323387998402,"_hasShrinkwrap":false,"_cnpm_publish_time":1323387998402},"0.0.9":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.0.9","author":{"name":"Nodejitsu Inc","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"},{"name":"Dominic Tarr","email":"dominic@nodejitsu.com"},{"name":"Maciej Malecki","email":"maciej@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.5.x"},"scripts":{"test":"vows --spec --isolate"},"main":"./lib/index","engines":{"node":">= 0.4.0"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"utile@0.0.9","_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"8212910c45f45b9412a2562c214bb2211146d81e","size":10240,"noattachment":false,"key":"/utile/-/utile-0.0.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.0.9.tgz"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"directories":{},"publish_time":1322611163542,"_hasShrinkwrap":false,"_cnpm_publish_time":1322611163542},"0.0.8":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.0.8","author":{"name":"Nodejitsu Inc","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"},{"name":"Dominic Tarr","email":"dominic@nodejitsu.com"},{"name":"Maciej Malecki","email":"maciej@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.5.x"},"scripts":{"test":"vows --spec --isolate"},"main":"./lib/index","engines":{"node":">= 0.4.0"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"utile@0.0.8","_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"edddb801ceeb16a25461e0c16b1fc16c668b1234","size":10240,"noattachment":false,"key":"/utile/-/utile-0.0.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.0.8.tgz"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"directories":{},"publish_time":1322268646574,"_hasShrinkwrap":false,"_cnpm_publish_time":1322268646574},"0.0.6":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.0.6","author":{"name":"Nodejitsu Inc","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"},{"name":"Dominic Tarr","email":"dominic@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.5.x"},"main":"./lib/index","engines":{"node":">= 0.4.0"},"_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"_id":"utile@0.0.6","_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"f7b39d920cee957b64773ee41f979328431883f3","size":5094,"noattachment":false,"key":"/utile/-/utile-0.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.0.6.tgz"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"directories":{},"publish_time":1321143523028,"_hasShrinkwrap":false,"_cnpm_publish_time":1321143523028},"0.0.5":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.0.5","author":{"name":"Nodejitsu Inc","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"},{"name":"Dominic Tarr","email":"dominic@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.5.x"},"main":"./lib/index","engines":{"node":">= 0.4.0"},"_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"_id":"utile@0.0.5","_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"e054818913263e4b29ebbff071bad3440dadb8f9","size":4891,"noattachment":false,"key":"/utile/-/utile-0.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.0.5.tgz"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"directories":{},"publish_time":1320842691865,"_hasShrinkwrap":false,"_cnpm_publish_time":1320842691865},"0.0.4":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.0.4","author":{"name":"Nodejitsu Inc","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"},{"name":"Dominic Tarr","email":"dominic@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.5.x"},"main":"./lib/index","engines":{"node":">= 0.4.0"},"_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"_id":"utile@0.0.4","_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"f4761e345ef0c5778d81cf8fd118c5da47b19a52","size":4669,"noattachment":false,"key":"/utile/-/utile-0.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.0.4.tgz"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"directories":{},"publish_time":1320801992712,"_hasShrinkwrap":false,"_cnpm_publish_time":1320801992712},"0.0.3":{"name":"utile","description":"A drop-in replacement for `util` with some additional advantageous functions","version":"0.0.3","author":{"name":"Nodejitsu Inc","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.5.x"},"main":"./lib/index","engines":{"node":">= 0.4.0"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"utile@0.0.3","_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"c89a7a1e9bb64dd77defd5ff33aa08043a98474e","size":10240,"noattachment":false,"key":"/utile/-/utile-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.0.3.tgz"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"directories":{},"publish_time":1320137493164,"_hasShrinkwrap":false,"_cnpm_publish_time":1320137493164},"0.0.2":{"name":"utile","description":"Advantageous functions for programming in javascript and node.js","version":"0.0.2","author":{"name":"Nodejitsu Inc","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.5.x"},"main":"./lib/index","engines":{"node":">= 0.4.0"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"utile@0.0.2","_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"bc0017ea9b28d2c6b08c311c793ff4174048778f","size":10240,"noattachment":false,"key":"/utile/-/utile-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.0.2.tgz"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"directories":{},"publish_time":1320096761377,"_hasShrinkwrap":false,"_cnpm_publish_time":1320096761377},"0.0.1":{"name":"utile","description":"Advantageous functions for programming in javascript and node.js","version":"0.0.1","author":{"name":"Nodejitsu Inc","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/utile.git"},"dependencies":{"async":"0.1.x","mkdirp":"0.x.x","ncp":"0.2.x","rimraf":"1.x.x"},"devDependencies":{"vows":"0.5.x"},"main":"./lib/index","engines":{"node":">= 0.4.0"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"utile@0.0.1","_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"b7694fd2ac4a799dc0d9612c499a04a5eda92632","size":10240,"noattachment":false,"key":"/utile/-/utile-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/utile/download/utile-0.0.1.tgz"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"},{"name":"jcrugzz","email":"jcrugzz@gmail.com"}],"directories":{},"publish_time":1320096159264,"_hasShrinkwrap":false,"_cnpm_publish_time":1320096159264}},"readme":"# utile [![Build Status](https://secure.travis-ci.org/flatiron/utile.png)](http://travis-ci.org/flatiron/utile)\n\nA drop-in replacement for `util` with some additional advantageous functions\n\n## Motivation\nJavascript is definitely a \"batteries not included language\" when compared to languages like Ruby or Python. Node.js has a simple utility library which exposes some basic (but important) functionality:\n\n```\n$ node\n> var util = require('util');\n> util.\n(...)\n\nutil.debug                 util.error                 util.exec                  util.inherits              util.inspect\nutil.log                   util.p                     util.print                 util.pump                  util.puts\n```\n\nWhen one considers their own utility library, why ever bother requiring `util` again? That is the approach taken by this module. To compare:\n\n```\n$ node\n> var utile = require('./lib')\n> utile.\n(...)\n\nutile.async                 utile.capitalize            utile.clone                 utile.cpr                   utile.createPath            utile.debug\nutile.each                  utile.error                 utile.exec                  utile.file                  utile.filter                utile.find\nutile.inherits              utile.log                   utile.mixin                 utile.mkdirp                utile.p                     utile.path\nutile.print                 utile.pump                  utile.puts                  utile.randomString          utile.requireDir            uile.requireDirLazy\nutile.rimraf\n```\n\nAs you can see all of the original methods from `util` are there, but there are several new methods specific to `utile`. A note about implementation: _no node.js native modules are modified by utile, it simply copies those methods._\n\n## Methods\nThe `utile` modules exposes some simple utility methods:\n\n* `.each(obj, iterator)`: Iterate over the keys of an object.\n* `.mixin(target [source0, source1, ...])`: Copies enumerable properties from `source0 ... sourceN` onto `target` and returns the resulting object.\n* `.clone(obj)`: Shallow clones the specified object.\n* `.capitalize(str)`: Capitalizes the specified `str`.\n* `.randomString(length)`: randomString returns a pseudo-random ASCII string (subset) the return value is a string of length ⌈bits/6⌉ of characters from the base64 alphabet.\n* `.filter(obj, test)`: return an object with the properties that `test` returns true on.\n* `.args(arguments)`: Converts function arguments into actual array with special `callback`, `cb`, `array`, and `last` properties. Also supports *optional* argument contracts. See [the example](https://github.com/flatiron/utile/blob/master/examples/utile-args.js) for more details.\n* `.requireDir(directory)`: Requires all files and directories from `directory`, returning an object with keys being filenames (without trailing `.js`) and respective values being return values of `require(filename)`.\n* `.requireDirLazy(directory)`: Lazily requires all files and directories from `directory`, returning an object with keys being filenames (without trailing `.js`) and respective values (getters) being return values of `require(filename)`.\n* `.format([string] text, [array] formats, [array] replacements)`: Replace `formats` in `text` with `replacements`. This will fall back to the original `util.format` command if it is called improperly.\n\n## Packaged Dependencies\nIn addition to the methods that are built-in, utile includes a number of commonly used dependencies to reduce the number of includes in your package.json. These modules _are not eagerly loaded to be respectful of startup time,_ but instead are lazy-loaded getters on the `utile` object\n\n* `.async`: [Async utilities for node and the browser][0]\n* `.inflect`: [Customizable inflections for node.js][6]\n* `.mkdirp`: [Recursively mkdir, like mkdir -p, but in node.js][1]\n* `.rimraf`: [A rm -rf util for nodejs][2]\n* `.cpr`: [Asynchronous recursive file copying with Node.js][3]\n\n## Installation\n\n### Installing npm (node package manager)\n```\n  curl http://npmjs.org/install.sh | sh\n```\n\n### Installing utile\n```\n  [sudo] npm install utile\n```\n\n## Tests\nAll tests are written with [vows][4] and should be run with [npm][5]:\n\n``` bash\n  $ npm test\n```\n\n#### Author: [Charlie Robbins](http://github.com/indexzero)\n#### Contributors: [Dominic Tarr](http://github.com/dominictarr), [Marak Squires](https://github.com/marak)\n#### License: MIT\n\n[0]: https://github.com/caolan/async\n[1]: https://github.com/substack/node-mkdirp\n[2]: https://github.com/isaacs/rimraf\n[3]: https://github.com/avianflu/ncp\n[4]: https://vowsjs.org\n[5]: https://npmjs.org\n[6]: https://github.com/pksunkara/inflect\n","_attachments":{},"homepage":"https://github.com/flatiron/utile","bugs":{"url":"https://github.com/flatiron/utile/issues"}}