vulcan 0.2.5 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -80
- data/lib/vulcan/cli.rb +12 -33
- data/lib/vulcan/version.rb +1 -1
- data/server/bin/make +3 -1
- data/server/lib/spawner.js +4 -9
- data/server/node_modules/connect-form/node_modules/formidable/Readme.md +2 -13
- data/server/node_modules/connect-form/node_modules/formidable/lib/incoming_form.js +7 -19
- data/server/node_modules/connect-form/node_modules/formidable/lib/multipart_parser.js +1 -12
- data/server/node_modules/connect-form/node_modules/formidable/package.json +1 -1
- data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +10 -0
- data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +9 -0
- data/server/node_modules/connect-form/node_modules/formidable/test/legacy/simple/test-multipart-parser.js +1 -1
- data/server/node_modules/cradle/lib/cradle.js +1 -0
- data/server/node_modules/cradle/node_modules/vows/LICENSE +20 -0
- data/server/node_modules/cradle/node_modules/vows/Makefile +7 -0
- data/server/node_modules/cradle/node_modules/vows/README.md +39 -0
- data/server/node_modules/cradle/node_modules/vows/bin/vows +515 -0
- data/server/node_modules/cradle/node_modules/vows/lib/assert/error.js +27 -0
- data/server/node_modules/cradle/node_modules/vows/lib/assert/macros.js +215 -0
- data/server/node_modules/cradle/node_modules/vows/lib/assert/utils.js +77 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows.js +193 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/console.js +131 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/context.js +55 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/file.js +29 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-foot.html +2 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-head.html +61 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-html.js +54 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-json.js +54 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-plain.js +38 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/extras.js +28 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/dot-matrix.js +67 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/json.js +16 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/silent.js +8 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/spec.js +44 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/watch.js +39 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/xunit.js +90 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/suite.js +319 -0
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/LICENSE +20 -0
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/Makefile +4 -0
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/README.md +72 -0
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/lib/eyes.js +233 -0
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/package.json +14 -0
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/test/eyes-test.js +55 -0
- data/server/node_modules/cradle/node_modules/vows/package.json +14 -0
- data/server/node_modules/cradle/node_modules/vows/test/assert-test.js +135 -0
- data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/failing.js +18 -0
- data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/log.js +18 -0
- data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/passing.js +17 -0
- data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/stderr.js +18 -0
- data/server/node_modules/cradle/node_modules/vows/test/isolate-test.js +140 -0
- data/server/node_modules/cradle/node_modules/vows/test/testInherit.js +133 -0
- data/server/node_modules/cradle/node_modules/vows/test/vows-error-test.js +51 -0
- data/server/node_modules/cradle/node_modules/vows/test/vows-test.js +374 -0
- data/server/node_modules/cradle/package.json +3 -3
- data/server/node_modules/cradle/test/cache-test.js +7 -6
- data/server/node_modules/cradle/test/cradle-test.js +5 -4
- data/server/node_modules/cradle/test/response-test.js +6 -5
- data/server/node_modules/express/History.md +1 -53
- data/server/node_modules/express/Makefile +9 -3
- data/server/node_modules/express/Readme.md +1 -3
- data/server/node_modules/express/bin/express +66 -65
- data/server/node_modules/express/lib/express.js +1 -1
- data/server/node_modules/express/lib/request.js +9 -23
- data/server/node_modules/express/lib/response.js +2 -3
- data/server/node_modules/express/lib/utils.js +0 -13
- data/server/node_modules/express/lib/view.js +16 -19
- data/server/node_modules/express/lib/view/view.js +1 -2
- data/server/node_modules/express/node_modules/connect/lib/connect.js +1 -1
- data/server/node_modules/express/node_modules/connect/lib/http.js +0 -2
- data/server/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js +31 -135
- data/server/node_modules/express/node_modules/connect/lib/middleware/limit.js +1 -5
- data/server/node_modules/express/node_modules/connect/lib/middleware/session.js +2 -2
- data/server/node_modules/express/node_modules/connect/lib/middleware/static.js +21 -26
- data/server/node_modules/express/node_modules/connect/lib/middleware/staticCache.js +38 -91
- data/server/node_modules/express/node_modules/connect/lib/middleware/vhost.js +1 -1
- data/server/node_modules/express/node_modules/connect/lib/utils.js +4 -11
- data/server/node_modules/express/node_modules/connect/package.json +6 -7
- data/server/node_modules/express/node_modules/connect/test.js +31 -44
- data/server/node_modules/express/node_modules/mime/index.js +1 -0
- data/server/node_modules/express/node_modules/mime/mime.js +3 -3
- data/server/node_modules/express/node_modules/mime/{types/mime.types → mime.types} +0 -0
- data/server/node_modules/express/node_modules/mime/{types/node.types → node.types} +0 -17
- data/server/node_modules/express/node_modules/mime/package.json +10 -21
- data/server/node_modules/express/node_modules/mime/test.js +3 -2
- data/server/node_modules/express/node_modules/qs/History.md +0 -11
- data/server/node_modules/express/node_modules/qs/Makefile +3 -1
- data/server/node_modules/express/node_modules/qs/Readme.md +4 -2
- data/server/node_modules/express/node_modules/qs/lib/querystring.js +74 -100
- data/server/node_modules/express/node_modules/qs/package.json +2 -9
- data/server/node_modules/express/node_modules/qs/support/expresso/History.md +128 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/Makefile +53 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/Readme.md +61 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/bin/expresso +856 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/api.html +1080 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.html +377 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.md +290 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/foot.html +3 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/head.html +42 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/lib/bar.js +4 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/lib/foo.js +16 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/package.json +12 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/assert.test.js +91 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/async.test.js +12 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/bar.test.js +13 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/foo.test.js +14 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/http.test.js +146 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/async.test.js +39 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/http.test.js +48 -0
- data/server/node_modules/express/node_modules/qs/support/should/History.md +22 -0
- data/server/node_modules/express/node_modules/qs/support/should/Makefile +6 -0
- data/server/node_modules/express/node_modules/qs/support/should/Readme.md +248 -0
- data/server/node_modules/express/node_modules/qs/support/should/examples/runner.js +53 -0
- data/server/node_modules/express/node_modules/qs/support/should/index.js +2 -0
- data/server/node_modules/express/node_modules/qs/support/should/lib/eql.js +91 -0
- data/server/node_modules/express/node_modules/qs/support/should/lib/should.js +548 -0
- data/server/node_modules/express/node_modules/qs/support/should/package.json +8 -0
- data/server/node_modules/express/node_modules/qs/support/should/test/should.test.js +358 -0
- data/server/node_modules/express/node_modules/qs/test/{parse.js → parse.test.js} +2 -1
- data/server/node_modules/express/node_modules/qs/test/{stringify.js → stringify.test.js} +0 -0
- data/server/node_modules/express/package.json +8 -9
- data/server/node_modules/node-uuid/README.md +67 -166
- data/server/node_modules/node-uuid/package.json +3 -5
- data/server/node_modules/node-uuid/{benchmark → test}/benchmark-native.c +0 -0
- data/server/node_modules/node-uuid/test/benchmark.js +27 -0
- data/server/node_modules/node-uuid/test/test.html +0 -3
- data/server/node_modules/node-uuid/test/test.js +57 -214
- data/server/node_modules/node-uuid/uuid.js +56 -225
- data/server/node_modules/restler/README.md +7 -20
- data/server/node_modules/restler/bin/restler +1 -1
- data/server/node_modules/restler/lib/multipartform.js +8 -9
- data/server/node_modules/restler/lib/restler.js +22 -64
- data/server/node_modules/restler/package.json +2 -2
- data/server/node_modules/restler/test/restler.js +2 -22
- data/server/node_modules/restler/test/test_helper.js +1 -20
- data/server/package.json +10 -10
- data/server/web.js +7 -30
- metadata +96 -89
- data/server/node_modules/connect-form/node_modules/formidable/test/fixture/file/plain.txt +0 -1
- data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/no-filename/generic.http +0 -13
- data/server/node_modules/connect-form/node_modules/formidable/test/fixture/js/no-filename.js +0 -3
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/Makefile +0 -14
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md +0 -286
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/TODO +0 -3
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/benchmark/bench-multipart-parser.js +0 -70
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/post.js +0 -43
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/upload.js +0 -48
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/index.js +0 -1
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/file.js +0 -61
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js +0 -377
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/index.js +0 -3
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/multipart_parser.js +0 -312
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/querystring_parser.js +0 -25
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/util.js +0 -6
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/package.json +0 -22
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/common.js +0 -19
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/funkyfilename.txt +0 -1
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/plain.txt +0 -1
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http +0 -13
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/info.md +0 -3
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +0 -26
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http +0 -24
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http +0 -23
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +0 -24
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http +0 -22
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http +0 -22
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http +0 -22
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/no-filename.js +0 -3
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/special-chars-in-filename.js +0 -21
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multi_video.upload +0 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multipart.js +0 -72
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/integration/test-fixtures.js +0 -89
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/common.js +0 -24
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/integration/test-multipart-parser.js +0 -80
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-file.js +0 -104
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js +0 -715
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-multipart-parser.js +0 -50
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-querystring-parser.js +0 -45
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/system/test-multi-video-upload.js +0 -72
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/run.js +0 -2
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/unit/test-incoming-form.js +0 -63
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/tool/record.js +0 -47
- data/server/node_modules/express/node_modules/mkdirp/LICENSE +0 -21
- data/server/node_modules/express/node_modules/mkdirp/README.markdown +0 -21
- data/server/node_modules/express/node_modules/mkdirp/examples/pow.js +0 -6
- data/server/node_modules/express/node_modules/mkdirp/examples/pow.js.orig +0 -6
- data/server/node_modules/express/node_modules/mkdirp/examples/pow.js.rej +0 -19
- data/server/node_modules/express/node_modules/mkdirp/index.js +0 -20
- data/server/node_modules/express/node_modules/mkdirp/package.json +0 -23
- data/server/node_modules/express/node_modules/mkdirp/test/mkdirp.js +0 -28
- data/server/node_modules/express/node_modules/mkdirp/test/race.js +0 -41
- data/server/node_modules/express/node_modules/mkdirp/test/rel.js +0 -32
- data/server/node_modules/express/node_modules/qs/test/mocha.opts +0 -2
- data/server/node_modules/express/testing/foo/app.js +0 -35
- data/server/node_modules/express/testing/foo/package.json +0 -9
- data/server/node_modules/express/testing/foo/public/stylesheets/style.css +0 -8
- data/server/node_modules/express/testing/foo/routes/index.js +0 -10
- data/server/node_modules/express/testing/foo/views/index.jade +0 -2
- data/server/node_modules/express/testing/foo/views/layout.jade +0 -6
- data/server/node_modules/express/testing/index.js +0 -43
- data/server/node_modules/express/testing/public/test.txt +0 -2971
- data/server/node_modules/express/testing/views/page.html +0 -1
- data/server/node_modules/express/testing/views/page.jade +0 -3
- data/server/node_modules/express/testing/views/test.md +0 -1
- data/server/node_modules/express/testing/views/user/index.jade +0 -1
- data/server/node_modules/express/testing/views/user/list.jade +0 -1
- data/server/node_modules/node-uuid/benchmark/README.md +0 -53
- data/server/node_modules/node-uuid/benchmark/bench.gnu +0 -174
- data/server/node_modules/node-uuid/benchmark/bench.sh +0 -34
- data/server/node_modules/node-uuid/benchmark/benchmark.js +0 -84
- data/server/node_modules/node-uuid/test/benchmark-native +0 -0
- data/server/node_modules/node-uuid/test/compare_v1.js +0 -63
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 cloudhead
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,72 @@
|
|
1
|
+
eyes
|
2
|
+
====
|
3
|
+
|
4
|
+
a customizable value inspector for Node.js
|
5
|
+
|
6
|
+
synopsis
|
7
|
+
--------
|
8
|
+
|
9
|
+
I was tired of looking at cluttered output in the console -- something needed to be done,
|
10
|
+
`sys.inspect()` didn't display regexps correctly, and was too verbose, and I had an hour or two to spare.
|
11
|
+
So I decided to have some fun. _eyes_ were born.
|
12
|
+
|
13
|
+
![eyes-ss](http://dl.dropbox.com/u/251849/eyes-js-ss.gif)
|
14
|
+
|
15
|
+
_example of the output of a user-customized eyes.js inspector_
|
16
|
+
|
17
|
+
*eyes* also deals with circular objects in an intelligent way, and can pretty-print object literals.
|
18
|
+
|
19
|
+
usage
|
20
|
+
-----
|
21
|
+
|
22
|
+
var inspect = require('eyes').inspector({styles: {all: 'magenta'}});
|
23
|
+
|
24
|
+
inspect(something); // inspect with the settings passed to `inspector`
|
25
|
+
|
26
|
+
or
|
27
|
+
|
28
|
+
var eyes = require('eyes');
|
29
|
+
|
30
|
+
eyes.inspect(something); // inspect with the default settings
|
31
|
+
|
32
|
+
you can pass a _label_ to `inspect()`, to keep track of your inspections:
|
33
|
+
|
34
|
+
eyes.inspect(something, "a random value");
|
35
|
+
|
36
|
+
If you want to return the output of eyes without printing it, you can set it up this way:
|
37
|
+
|
38
|
+
var inspect = require('eyes').inspector({ stream: null });
|
39
|
+
|
40
|
+
sys.puts(inspect({ something: 42 }));
|
41
|
+
|
42
|
+
customization
|
43
|
+
-------------
|
44
|
+
|
45
|
+
These are the default styles and settings used by _eyes_.
|
46
|
+
styles: { // Styles applied to stdout
|
47
|
+
all: 'cyan', // Overall style applied to everything
|
48
|
+
label: 'underline', // Inspection labels, like 'array' in `array: [1, 2, 3]`
|
49
|
+
other: 'inverted', // Objects which don't have a literal representation, such as functions
|
50
|
+
key: 'bold', // The keys in object literals, like 'a' in `{a: 1}`
|
51
|
+
|
52
|
+
special: 'grey', // null, undefined...
|
53
|
+
string: 'green',
|
54
|
+
number: 'magenta',
|
55
|
+
bool: 'blue', // true false
|
56
|
+
regexp: 'green', // /\d+/
|
57
|
+
},
|
58
|
+
pretty: true, // Indent object literals
|
59
|
+
hideFunctions: false, // Don't output functions at all
|
60
|
+
stream: process.stdout, // Stream to write to, or null
|
61
|
+
maxLength: 2048 // Truncate output if longer
|
62
|
+
|
63
|
+
You can overwrite them with your own, by passing a similar object to `inspector()` or `inspect()`.
|
64
|
+
|
65
|
+
var inspect = require('eyes').inspector({
|
66
|
+
styles: {
|
67
|
+
all: 'magenta',
|
68
|
+
special: 'bold'
|
69
|
+
},
|
70
|
+
maxLength: 512
|
71
|
+
});
|
72
|
+
|
@@ -0,0 +1,233 @@
|
|
1
|
+
//
|
2
|
+
// Eyes.js - a customizable value inspector for Node.js
|
3
|
+
//
|
4
|
+
// usage:
|
5
|
+
//
|
6
|
+
// var inspect = require('eyes').inspector({styles: {all: 'magenta'}});
|
7
|
+
// inspect(something); // inspect with the settings passed to `inspector`
|
8
|
+
//
|
9
|
+
// or
|
10
|
+
//
|
11
|
+
// var eyes = require('eyes');
|
12
|
+
// eyes.inspect(something); // inspect with the default settings
|
13
|
+
//
|
14
|
+
var eyes = exports,
|
15
|
+
stack = [];
|
16
|
+
|
17
|
+
eyes.defaults = {
|
18
|
+
styles: { // Styles applied to stdout
|
19
|
+
all: 'cyan', // Overall style applied to everything
|
20
|
+
label: 'underline', // Inspection labels, like 'array' in `array: [1, 2, 3]`
|
21
|
+
other: 'inverted', // Objects which don't have a literal representation, such as functions
|
22
|
+
key: 'bold', // The keys in object literals, like 'a' in `{a: 1}`
|
23
|
+
special: 'grey', // null, undefined...
|
24
|
+
string: 'green',
|
25
|
+
number: 'magenta',
|
26
|
+
bool: 'blue', // true false
|
27
|
+
regexp: 'green', // /\d+/
|
28
|
+
},
|
29
|
+
pretty: true, // Indent object literals
|
30
|
+
hideFunctions: false,
|
31
|
+
stream: process.stdout,
|
32
|
+
maxLength: 2048 // Truncate output if longer
|
33
|
+
};
|
34
|
+
|
35
|
+
// Return a curried inspect() function, with the `options` argument filled in.
|
36
|
+
eyes.inspector = function (options) {
|
37
|
+
var that = this;
|
38
|
+
return function (obj, label, opts) {
|
39
|
+
return that.inspect.call(that, obj, label,
|
40
|
+
merge(options || {}, opts || {}));
|
41
|
+
};
|
42
|
+
};
|
43
|
+
|
44
|
+
// If we have a `stream` defined, use it to print a styled string,
|
45
|
+
// if not, we just return the stringified object.
|
46
|
+
eyes.inspect = function (obj, label, options) {
|
47
|
+
options = merge(this.defaults, options || {});
|
48
|
+
|
49
|
+
if (options.stream) {
|
50
|
+
return this.print(stringify(obj, options), label, options);
|
51
|
+
} else {
|
52
|
+
return stringify(obj, options) + (options.styles ? '\033[39m' : '');
|
53
|
+
}
|
54
|
+
};
|
55
|
+
|
56
|
+
// Output using the 'stream', and an optional label
|
57
|
+
// Loop through `str`, and truncate it after `options.maxLength` has been reached.
|
58
|
+
// Because escape sequences are, at this point embeded within
|
59
|
+
// the output string, we can't measure the length of the string
|
60
|
+
// in a useful way, without separating what is an escape sequence,
|
61
|
+
// versus a printable character (`c`). So we resort to counting the
|
62
|
+
// length manually.
|
63
|
+
eyes.print = function (str, label, options) {
|
64
|
+
for (var c = 0, i = 0; i < str.length; i++) {
|
65
|
+
if (str.charAt(i) === '\033') { i += 4 } // `4` because '\033[25m'.length + 1 == 5
|
66
|
+
else if (c === options.maxLength) {
|
67
|
+
str = str.slice(0, i - 1) + '…';
|
68
|
+
break;
|
69
|
+
} else { c++ }
|
70
|
+
}
|
71
|
+
return options.stream.write.call(options.stream, (label ?
|
72
|
+
this.stylize(label, options.styles.label, options.styles) + ': ' : '') +
|
73
|
+
this.stylize(str, options.styles.all, options.styles) + '\033[0m' + "\n");
|
74
|
+
};
|
75
|
+
|
76
|
+
// Apply a style to a string, eventually,
|
77
|
+
// I'd like this to support passing multiple
|
78
|
+
// styles.
|
79
|
+
eyes.stylize = function (str, style, styles) {
|
80
|
+
var codes = {
|
81
|
+
'bold' : [1, 22],
|
82
|
+
'underline' : [4, 24],
|
83
|
+
'inverse' : [7, 27],
|
84
|
+
'cyan' : [36, 39],
|
85
|
+
'magenta' : [35, 39],
|
86
|
+
'blue' : [34, 39],
|
87
|
+
'yellow' : [33, 39],
|
88
|
+
'green' : [32, 39],
|
89
|
+
'red' : [31, 39],
|
90
|
+
'grey' : [90, 39]
|
91
|
+
}, endCode;
|
92
|
+
|
93
|
+
if (style && codes[style]) {
|
94
|
+
endCode = (codes[style][1] === 39 && styles.all) ? codes[styles.all][0]
|
95
|
+
: codes[style][1];
|
96
|
+
return '\033[' + codes[style][0] + 'm' + str +
|
97
|
+
'\033[' + endCode + 'm';
|
98
|
+
} else { return str }
|
99
|
+
};
|
100
|
+
|
101
|
+
// Convert any object to a string, ready for output.
|
102
|
+
// When an 'array' or an 'object' are encountered, they are
|
103
|
+
// passed to specialized functions, which can then recursively call
|
104
|
+
// stringify().
|
105
|
+
function stringify(obj, options) {
|
106
|
+
var that = this, stylize = function (str, style) {
|
107
|
+
return eyes.stylize(str, options.styles[style], options.styles)
|
108
|
+
}, index, result;
|
109
|
+
|
110
|
+
if ((index = stack.indexOf(obj)) !== -1) {
|
111
|
+
return stylize(new(Array)(stack.length - index + 1).join('.'), 'special');
|
112
|
+
}
|
113
|
+
stack.push(obj);
|
114
|
+
|
115
|
+
result = (function (obj) {
|
116
|
+
switch (typeOf(obj)) {
|
117
|
+
case "string" : obj = stringifyString(obj.indexOf("'") === -1 ? "'" + obj + "'"
|
118
|
+
: '"' + obj + '"');
|
119
|
+
return stylize(obj, 'string');
|
120
|
+
case "regexp" : return stylize('/' + obj.source + '/', 'regexp');
|
121
|
+
case "number" : return stylize(obj + '', 'number');
|
122
|
+
case "function" : return options.stream ? stylize("Function", 'other') : '[Function]';
|
123
|
+
case "null" : return stylize("null", 'special');
|
124
|
+
case "undefined": return stylize("undefined", 'special');
|
125
|
+
case "boolean" : return stylize(obj + '', 'bool');
|
126
|
+
case "date" : return stylize(obj.toUTCString());
|
127
|
+
case "array" : return stringifyArray(obj, options, stack.length);
|
128
|
+
case "object" : return stringifyObject(obj, options, stack.length);
|
129
|
+
}
|
130
|
+
})(obj);
|
131
|
+
|
132
|
+
stack.pop();
|
133
|
+
return result;
|
134
|
+
};
|
135
|
+
|
136
|
+
// Escape invisible characters in a string
|
137
|
+
function stringifyString (str, options) {
|
138
|
+
return str.replace(/\\/g, '\\\\')
|
139
|
+
.replace(/\n/g, '\\n')
|
140
|
+
.replace(/[\u0001-\u001F]/g, function (match) {
|
141
|
+
return '\\0' + match[0].charCodeAt(0).toString(8);
|
142
|
+
});
|
143
|
+
}
|
144
|
+
|
145
|
+
// Convert an array to a string, such as [1, 2, 3].
|
146
|
+
// This function calls stringify() for each of the elements
|
147
|
+
// in the array.
|
148
|
+
function stringifyArray(ary, options, level) {
|
149
|
+
var out = [];
|
150
|
+
var pretty = options.pretty && (ary.length > 4 || ary.some(function (o) {
|
151
|
+
return (typeof(o) === 'object' && Object.keys(o).length > 0) ||
|
152
|
+
(Array.isArray(o) && o.length > 0);
|
153
|
+
}));
|
154
|
+
var ws = pretty ? '\n' + new(Array)(level * 4 + 1).join(' ') : ' ';
|
155
|
+
|
156
|
+
for (var i = 0; i < ary.length; i++) {
|
157
|
+
out.push(stringify(ary[i], options));
|
158
|
+
}
|
159
|
+
|
160
|
+
if (out.length === 0) {
|
161
|
+
return '[]';
|
162
|
+
} else {
|
163
|
+
return '[' + ws
|
164
|
+
+ out.join(',' + (pretty ? ws : ' '))
|
165
|
+
+ (pretty ? ws.slice(0, -4) : ws) +
|
166
|
+
']';
|
167
|
+
}
|
168
|
+
};
|
169
|
+
|
170
|
+
// Convert an object to a string, such as {a: 1}.
|
171
|
+
// This function calls stringify() for each of its values,
|
172
|
+
// and does not output functions or prototype values.
|
173
|
+
function stringifyObject(obj, options, level) {
|
174
|
+
var out = [];
|
175
|
+
var pretty = options.pretty && (Object.keys(obj).length > 2 ||
|
176
|
+
Object.keys(obj).some(function (k) { return typeof(obj[k]) === 'object' }));
|
177
|
+
var ws = pretty ? '\n' + new(Array)(level * 4 + 1).join(' ') : ' ';
|
178
|
+
|
179
|
+
Object.keys(obj).forEach(function (k) {
|
180
|
+
if (obj.hasOwnProperty(k) && !(obj[k] instanceof Function && options.hideFunctions)) {
|
181
|
+
out.push(eyes.stylize(k, options.styles.key, options.styles) + ': ' +
|
182
|
+
stringify(obj[k], options));
|
183
|
+
}
|
184
|
+
});
|
185
|
+
|
186
|
+
if (out.length === 0) {
|
187
|
+
return '{}';
|
188
|
+
} else {
|
189
|
+
return "{" + ws
|
190
|
+
+ out.join(',' + (pretty ? ws : ' '))
|
191
|
+
+ (pretty ? ws.slice(0, -4) : ws) +
|
192
|
+
"}";
|
193
|
+
}
|
194
|
+
};
|
195
|
+
|
196
|
+
// A better `typeof`
|
197
|
+
function typeOf(value) {
|
198
|
+
var s = typeof(value),
|
199
|
+
types = [Object, Array, String, RegExp, Number, Function, Boolean, Date];
|
200
|
+
|
201
|
+
if (s === 'object' || s === 'function') {
|
202
|
+
if (value) {
|
203
|
+
types.forEach(function (t) {
|
204
|
+
if (value instanceof t) { s = t.name.toLowerCase() }
|
205
|
+
});
|
206
|
+
} else { s = 'null' }
|
207
|
+
}
|
208
|
+
return s;
|
209
|
+
}
|
210
|
+
|
211
|
+
function merge(/* variable args */) {
|
212
|
+
var objs = Array.prototype.slice.call(arguments);
|
213
|
+
var target = {};
|
214
|
+
|
215
|
+
objs.forEach(function (o) {
|
216
|
+
Object.keys(o).forEach(function (k) {
|
217
|
+
if (k === 'styles') {
|
218
|
+
if (! o.styles) {
|
219
|
+
target.styles = false;
|
220
|
+
} else {
|
221
|
+
target.styles = {}
|
222
|
+
for (var s in o.styles) {
|
223
|
+
target.styles[s] = o.styles[s];
|
224
|
+
}
|
225
|
+
}
|
226
|
+
} else {
|
227
|
+
target[k] = o[k];
|
228
|
+
}
|
229
|
+
});
|
230
|
+
});
|
231
|
+
return target;
|
232
|
+
}
|
233
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
{
|
2
|
+
"name" : "eyes",
|
3
|
+
"description" : "a customizable value inspector",
|
4
|
+
"url" : "http://github.com/cloudhead/eyes.js",
|
5
|
+
"keywords" : ["inspector", "debug", "inspect", "print"],
|
6
|
+
"author" : "Alexis Sellier <self@cloudhead.net>",
|
7
|
+
"contributors" : [],
|
8
|
+
"licenses" : ["MIT"],
|
9
|
+
"dependencies" : [],
|
10
|
+
"main" : "./lib/eyes",
|
11
|
+
"version" : "0.1.6",
|
12
|
+
"directories" : { "lib": "./lib", "test": "./test" },
|
13
|
+
"engines" : { "node": "> 0.1.90" }
|
14
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
var sys = require('sys');
|
2
|
+
var eyes = require('../lib/eyes');
|
3
|
+
|
4
|
+
eyes.inspect({
|
5
|
+
number: 42,
|
6
|
+
string: "John Galt",
|
7
|
+
regexp: /[a-z]+/,
|
8
|
+
array: [99, 168, 'x', {}],
|
9
|
+
func: function () {},
|
10
|
+
bool: false,
|
11
|
+
nil: null,
|
12
|
+
undef: undefined,
|
13
|
+
object: {attr: []}
|
14
|
+
}, "native types");
|
15
|
+
|
16
|
+
eyes.inspect({
|
17
|
+
number: new(Number)(42),
|
18
|
+
string: new(String)("John Galt"),
|
19
|
+
regexp: new(RegExp)(/[a-z]+/),
|
20
|
+
array: new(Array)(99, 168, 'x', {}),
|
21
|
+
bool: new(Boolean)(false),
|
22
|
+
object: new(Object)({attr: []}),
|
23
|
+
date: new(Date)
|
24
|
+
}, "wrapped types");
|
25
|
+
|
26
|
+
var obj = {};
|
27
|
+
obj.that = { self: obj };
|
28
|
+
obj.self = obj;
|
29
|
+
|
30
|
+
eyes.inspect(obj, "circular object");
|
31
|
+
eyes.inspect({hello: 'moto'}, "small object");
|
32
|
+
eyes.inspect({hello: new(Array)(6) }, "big object");
|
33
|
+
eyes.inspect(["hello 'world'", 'hello "world"'], "quotes");
|
34
|
+
eyes.inspect({
|
35
|
+
recommendations: [{
|
36
|
+
id: 'a7a6576c2c822c8e2bd81a27e41437d8',
|
37
|
+
key: [ 'spree', 3.764316258020699 ],
|
38
|
+
value: {
|
39
|
+
_id: 'a7a6576c2c822c8e2bd81a27e41437d8',
|
40
|
+
_rev: '1-2e2d2f7fd858c4a5984bcf809d22ed98',
|
41
|
+
type: 'domain',
|
42
|
+
domain: 'spree',
|
43
|
+
weight: 3.764316258020699,
|
44
|
+
product_id: 30
|
45
|
+
}
|
46
|
+
}]
|
47
|
+
}, 'complex');
|
48
|
+
|
49
|
+
|
50
|
+
var inspect = eyes.inspector({ stream: null });
|
51
|
+
|
52
|
+
sys.puts(inspect('something', "something"));
|
53
|
+
sys.puts(inspect("something else"));
|
54
|
+
|
55
|
+
sys.puts(inspect(["no color"], null, { styles: false }));
|
@@ -0,0 +1,14 @@
|
|
1
|
+
{
|
2
|
+
"name" : "vows",
|
3
|
+
"description" : "Asynchronous BDD & continuous integration for node.js",
|
4
|
+
"url" : "http://vowsjs.org",
|
5
|
+
"keywords" : ["testing", "spec", "test", "BDD"],
|
6
|
+
"author" : "Alexis Sellier <self@cloudhead.net>",
|
7
|
+
"contributors" : [{ "name": "Charlie Robbins", "email": "charlie.robbins@gmail.com" }],
|
8
|
+
"dependencies" : {"eyes": ">=0.1.6"},
|
9
|
+
"main" : "./lib/vows",
|
10
|
+
"bin" : { "vows": "./bin/vows" },
|
11
|
+
"directories" : { "test": "./test", "bin": "./bin" },
|
12
|
+
"version" : "0.5.11",
|
13
|
+
"engines" : {"node": ">=0.2.6"}
|
14
|
+
}
|
@@ -0,0 +1,135 @@
|
|
1
|
+
var vows = require('../lib/vows');
|
2
|
+
var assert = require('assert');
|
3
|
+
|
4
|
+
vows.describe('vows/assert').addBatch({
|
5
|
+
"The Assertion module": {
|
6
|
+
topic: require('assert'),
|
7
|
+
|
8
|
+
"`equal`": function (assert) {
|
9
|
+
assert.equal("hello world", "hello world");
|
10
|
+
assert.equal(1, true);
|
11
|
+
},
|
12
|
+
"`match`": function (assert) {
|
13
|
+
assert.match("hello world", /^[a-z]+ [a-z]+$/);
|
14
|
+
},
|
15
|
+
"`length`": function (assert) {
|
16
|
+
assert.length("hello world", 11);
|
17
|
+
assert.length([1, 2, 3], 3);
|
18
|
+
},
|
19
|
+
"`isDefined`": function (assert) {
|
20
|
+
assert.isDefined(null);
|
21
|
+
assertError(assert.isDefined, undefined);
|
22
|
+
},
|
23
|
+
"`include`": function (assert) {
|
24
|
+
assert.include("hello world", "world");
|
25
|
+
assert.include([0, 42, 0], 42);
|
26
|
+
assert.include({goo:true}, 'goo');
|
27
|
+
},
|
28
|
+
"`deepInclude`": function (assert) {
|
29
|
+
assert.deepInclude([{a:'b'},{c:'d'}], {a:'b'});
|
30
|
+
assert.deepInclude("hello world", "world");
|
31
|
+
assert.deepInclude({goo:true}, 'goo');
|
32
|
+
},
|
33
|
+
"`typeOf`": function (assert) {
|
34
|
+
assert.typeOf('goo', 'string');
|
35
|
+
assert.typeOf(42, 'number');
|
36
|
+
assert.typeOf([], 'array');
|
37
|
+
assert.typeOf({}, 'object');
|
38
|
+
assert.typeOf(false, 'boolean');
|
39
|
+
},
|
40
|
+
"`instanceOf`": function (assert) {
|
41
|
+
assert.instanceOf([], Array);
|
42
|
+
assert.instanceOf(function () {}, Function);
|
43
|
+
},
|
44
|
+
"`isArray`": function (assert) {
|
45
|
+
assert.isArray([]);
|
46
|
+
assertError(assert.isArray, {});
|
47
|
+
},
|
48
|
+
"`isString`": function (assert) {
|
49
|
+
assert.isString("");
|
50
|
+
},
|
51
|
+
"`isObject`": function (assert) {
|
52
|
+
assert.isObject({});
|
53
|
+
assertError(assert.isObject, []);
|
54
|
+
},
|
55
|
+
"`isNumber`": function (assert) {
|
56
|
+
assert.isNumber(0);
|
57
|
+
},
|
58
|
+
"`isBoolean`": function (assert){
|
59
|
+
assert.isBoolean(true);
|
60
|
+
assert.isBoolean(false);
|
61
|
+
assertError(assert.isBoolean, 0);
|
62
|
+
},
|
63
|
+
"`isNan`": function (assert) {
|
64
|
+
assert.isNaN(0/0);
|
65
|
+
},
|
66
|
+
"`isTrue`": function (assert) {
|
67
|
+
assert.isTrue(true);
|
68
|
+
assertError(assert.isTrue, 1);
|
69
|
+
},
|
70
|
+
"`isFalse`": function (assert) {
|
71
|
+
assert.isFalse(false);
|
72
|
+
assertError(assert.isFalse, 0);
|
73
|
+
},
|
74
|
+
"`isZero`": function (assert) {
|
75
|
+
assert.isZero(0);
|
76
|
+
assertError(assert.isZero, null);
|
77
|
+
},
|
78
|
+
"`isNotZero`": function (assert) {
|
79
|
+
assert.isNotZero(1);
|
80
|
+
},
|
81
|
+
"`isUndefined`": function (assert) {
|
82
|
+
assert.isUndefined(undefined);
|
83
|
+
assertError(assert.isUndefined, null);
|
84
|
+
},
|
85
|
+
"`isDefined`": function (assert) {
|
86
|
+
assert.isDefined(null);
|
87
|
+
assertError(assert.isDefined, undefined);
|
88
|
+
},
|
89
|
+
"`isNull`": function (assert) {
|
90
|
+
assert.isNull(null);
|
91
|
+
assertError(assert.isNull, 0);
|
92
|
+
assertError(assert.isNull, undefined);
|
93
|
+
},
|
94
|
+
"`isNotNull`": function (assert) {
|
95
|
+
assert.isNotNull(0);
|
96
|
+
},
|
97
|
+
"`greater` and `lesser`": function (assert) {
|
98
|
+
assert.greater(5, 4);
|
99
|
+
assert.lesser(4, 5);
|
100
|
+
},
|
101
|
+
"`inDelta`": function (assert) {
|
102
|
+
assert.inDelta(42, 40, 5);
|
103
|
+
assert.inDelta(42, 40, 2);
|
104
|
+
assert.inDelta(42, 42, 0);
|
105
|
+
assert.inDelta(3.1, 3.0, 0.2);
|
106
|
+
assertError(assert.inDelta, [42, 40, 1]);
|
107
|
+
},
|
108
|
+
"`isEmpty`": function (assert) {
|
109
|
+
assert.isEmpty({});
|
110
|
+
assert.isEmpty([]);
|
111
|
+
assert.isEmpty("");
|
112
|
+
},
|
113
|
+
"`isNotEmpty`": function (assert) {
|
114
|
+
assert.isNotEmpty({goo:true});
|
115
|
+
assert.isNotEmpty([1]);
|
116
|
+
assert.isNotEmpty(" ");
|
117
|
+
assertError(assert.isNotEmpty, {});
|
118
|
+
assertError(assert.isNotEmpty, []);
|
119
|
+
assertError(assert.isNotEmpty, "");
|
120
|
+
}
|
121
|
+
}
|
122
|
+
}).export(module);
|
123
|
+
|
124
|
+
function assertError(assertion, args, fail) {
|
125
|
+
if (!Array.isArray(args)) { args = [args]; }
|
126
|
+
try {
|
127
|
+
assertion.apply(null, args);
|
128
|
+
fail = true;
|
129
|
+
} catch (e) {/* Success */}
|
130
|
+
|
131
|
+
fail && assert.fail(args.join(' '), assert.AssertionError,
|
132
|
+
"expected an AssertionError for {actual}",
|
133
|
+
"assertError", assertError);
|
134
|
+
}
|
135
|
+
|