vulcan 0.1.6 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/vulcan/cli.rb +3 -0
- data/lib/vulcan/version.rb +1 -1
- data/server/lib/spawner.js +9 -4
- data/server/node_modules/cradle/lib/cradle.js +0 -1
- data/server/node_modules/cradle/package.json +3 -3
- data/server/node_modules/cradle/test/cache-test.js +6 -7
- data/server/node_modules/cradle/test/cradle-test.js +4 -5
- data/server/node_modules/cradle/test/response-test.js +5 -6
- data/server/node_modules/express/History.md +40 -0
- data/server/node_modules/express/Makefile +3 -9
- data/server/node_modules/express/Readme.md +3 -1
- data/server/node_modules/express/bin/express +61 -63
- data/server/node_modules/express/lib/express.js +1 -1
- data/server/node_modules/express/lib/request.js +9 -7
- data/server/node_modules/express/lib/view.js +19 -16
- data/server/node_modules/express/node_modules/connect/lib/connect.js +1 -1
- data/server/node_modules/express/node_modules/connect/lib/http.js +2 -0
- data/server/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js +135 -31
- data/server/node_modules/express/node_modules/connect/lib/middleware/limit.js +5 -1
- 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 +26 -21
- data/server/node_modules/express/node_modules/connect/lib/middleware/staticCache.js +91 -38
- 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 +11 -4
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/Makefile +14 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md +286 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/TODO +3 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/benchmark/bench-multipart-parser.js +70 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/post.js +43 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/upload.js +48 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/index.js +1 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/file.js +61 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js +377 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/index.js +3 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/multipart_parser.js +312 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/querystring_parser.js +25 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/util.js +6 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/package.json +22 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/common.js +19 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/funkyfilename.txt +1 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/plain.txt +1 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http +13 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/info.md +3 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +26 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http +24 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http +23 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +24 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http +22 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http +22 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http +22 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/no-filename.js +3 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/special-chars-in-filename.js +21 -0
- 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 +72 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/integration/test-fixtures.js +89 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/common.js +24 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/integration/test-multipart-parser.js +80 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-file.js +104 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js +715 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-multipart-parser.js +50 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-querystring-parser.js +45 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/system/test-multi-video-upload.js +72 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/run.js +2 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/unit/test-incoming-form.js +63 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/tool/record.js +47 -0
- data/server/node_modules/express/node_modules/connect/package.json +7 -6
- data/server/node_modules/express/node_modules/connect/test.js +44 -31
- data/server/node_modules/express/node_modules/qs/History.md +11 -0
- data/server/node_modules/express/node_modules/qs/Makefile +1 -3
- data/server/node_modules/express/node_modules/qs/Readme.md +2 -4
- data/server/node_modules/express/node_modules/qs/lib/querystring.js +100 -74
- data/server/node_modules/express/node_modules/qs/package.json +9 -2
- data/server/node_modules/express/node_modules/qs/test/mocha.opts +2 -0
- data/server/node_modules/express/node_modules/qs/test/{parse.test.js → parse.js} +1 -2
- data/server/node_modules/express/node_modules/qs/test/{stringify.test.js → stringify.js} +0 -0
- data/server/node_modules/express/package.json +7 -7
- data/server/node_modules/express/testing/foo/app.js +35 -0
- data/server/node_modules/express/testing/foo/package.json +9 -0
- data/server/node_modules/express/testing/foo/public/stylesheets/style.css +8 -0
- data/server/node_modules/express/testing/foo/routes/index.js +10 -0
- data/server/node_modules/express/testing/foo/views/index.jade +2 -0
- data/server/node_modules/express/testing/foo/views/layout.jade +6 -0
- data/server/node_modules/express/testing/index.js +31 -5
- data/server/node_modules/express/testing/public/test.txt +2971 -0
- data/server/node_modules/express/testing/views/page.html +1 -0
- data/server/node_modules/express/testing/views/page.jade +3 -0
- data/server/node_modules/express/testing/views/test.md +1 -0
- data/server/node_modules/express/testing/views/user/index.jade +1 -0
- data/server/node_modules/express/testing/views/user/list.jade +1 -0
- data/server/node_modules/node-uuid/README.md +166 -67
- data/server/node_modules/node-uuid/benchmark/README.md +53 -0
- data/server/node_modules/node-uuid/benchmark/bench.gnu +174 -0
- data/server/node_modules/node-uuid/benchmark/bench.sh +34 -0
- data/server/node_modules/node-uuid/{test → benchmark}/benchmark-native.c +0 -0
- data/server/node_modules/node-uuid/benchmark/benchmark.js +84 -0
- data/server/node_modules/node-uuid/package.json +5 -3
- data/server/node_modules/node-uuid/test/benchmark-native +0 -0
- data/server/node_modules/node-uuid/test/compare_v1.js +63 -0
- data/server/node_modules/node-uuid/test/test.html +3 -0
- data/server/node_modules/node-uuid/test/test.js +214 -57
- data/server/node_modules/node-uuid/uuid.js +225 -56
- data/server/node_modules/restler/README.md +20 -7
- data/server/node_modules/restler/bin/restler +1 -1
- data/server/node_modules/restler/lib/multipartform.js +9 -8
- data/server/node_modules/restler/lib/restler.js +64 -22
- data/server/node_modules/restler/package.json +2 -2
- data/server/node_modules/restler/test/restler.js +22 -2
- data/server/node_modules/restler/test/test_helper.js +20 -1
- data/server/package.json +8 -8
- data/server/web.js +22 -6
- metadata +72 -82
- data/server/node_modules/cradle/node_modules/vows/LICENSE +0 -20
- data/server/node_modules/cradle/node_modules/vows/Makefile +0 -7
- data/server/node_modules/cradle/node_modules/vows/README.md +0 -39
- data/server/node_modules/cradle/node_modules/vows/bin/vows +0 -515
- data/server/node_modules/cradle/node_modules/vows/lib/assert/error.js +0 -27
- data/server/node_modules/cradle/node_modules/vows/lib/assert/macros.js +0 -215
- data/server/node_modules/cradle/node_modules/vows/lib/assert/utils.js +0 -77
- data/server/node_modules/cradle/node_modules/vows/lib/vows.js +0 -193
- data/server/node_modules/cradle/node_modules/vows/lib/vows/console.js +0 -131
- data/server/node_modules/cradle/node_modules/vows/lib/vows/context.js +0 -55
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/file.js +0 -29
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-foot.html +0 -2
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-head.html +0 -61
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-html.js +0 -54
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-json.js +0 -54
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-plain.js +0 -38
- data/server/node_modules/cradle/node_modules/vows/lib/vows/extras.js +0 -28
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/dot-matrix.js +0 -67
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/json.js +0 -16
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/silent.js +0 -8
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/spec.js +0 -44
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/watch.js +0 -39
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/xunit.js +0 -90
- data/server/node_modules/cradle/node_modules/vows/lib/vows/suite.js +0 -319
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/LICENSE +0 -20
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/Makefile +0 -4
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/README.md +0 -72
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/lib/eyes.js +0 -233
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/package.json +0 -14
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/test/eyes-test.js +0 -55
- data/server/node_modules/cradle/node_modules/vows/package.json +0 -14
- data/server/node_modules/cradle/node_modules/vows/test/assert-test.js +0 -135
- data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/failing.js +0 -18
- data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/log.js +0 -18
- data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/passing.js +0 -17
- data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/stderr.js +0 -18
- data/server/node_modules/cradle/node_modules/vows/test/isolate-test.js +0 -140
- data/server/node_modules/cradle/node_modules/vows/test/testInherit.js +0 -133
- data/server/node_modules/cradle/node_modules/vows/test/vows-error-test.js +0 -51
- data/server/node_modules/cradle/node_modules/vows/test/vows-test.js +0 -374
- data/server/node_modules/express/node_modules/qs/support/expresso/History.md +0 -128
- data/server/node_modules/express/node_modules/qs/support/expresso/Makefile +0 -53
- data/server/node_modules/express/node_modules/qs/support/expresso/Readme.md +0 -61
- data/server/node_modules/express/node_modules/qs/support/expresso/bin/expresso +0 -856
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/api.html +0 -1080
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.html +0 -377
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.md +0 -290
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/foot.html +0 -3
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/head.html +0 -42
- data/server/node_modules/express/node_modules/qs/support/expresso/lib/bar.js +0 -4
- data/server/node_modules/express/node_modules/qs/support/expresso/lib/foo.js +0 -16
- data/server/node_modules/express/node_modules/qs/support/expresso/package.json +0 -12
- data/server/node_modules/express/node_modules/qs/support/expresso/test/assert.test.js +0 -91
- data/server/node_modules/express/node_modules/qs/support/expresso/test/async.test.js +0 -12
- data/server/node_modules/express/node_modules/qs/support/expresso/test/bar.test.js +0 -13
- data/server/node_modules/express/node_modules/qs/support/expresso/test/foo.test.js +0 -14
- data/server/node_modules/express/node_modules/qs/support/expresso/test/http.test.js +0 -146
- data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/async.test.js +0 -39
- data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/http.test.js +0 -48
- data/server/node_modules/express/node_modules/qs/support/should/History.md +0 -22
- data/server/node_modules/express/node_modules/qs/support/should/Makefile +0 -6
- data/server/node_modules/express/node_modules/qs/support/should/Readme.md +0 -248
- data/server/node_modules/express/node_modules/qs/support/should/examples/runner.js +0 -53
- data/server/node_modules/express/node_modules/qs/support/should/index.js +0 -2
- data/server/node_modules/express/node_modules/qs/support/should/lib/eql.js +0 -91
- data/server/node_modules/express/node_modules/qs/support/should/lib/should.js +0 -548
- data/server/node_modules/express/node_modules/qs/support/should/package.json +0 -8
- data/server/node_modules/express/node_modules/qs/support/should/test/should.test.js +0 -358
- data/server/node_modules/express/testing/views/users.jade +0 -1
- data/server/node_modules/node-uuid/test/benchmark.js +0 -27
data/lib/vulcan/cli.rb
CHANGED
|
@@ -66,6 +66,8 @@ if no COMMAND is specified, a sensible default will be chosen for you
|
|
|
66
66
|
end
|
|
67
67
|
end
|
|
68
68
|
end
|
|
69
|
+
rescue Interrupt
|
|
70
|
+
error "Aborted by user"
|
|
69
71
|
rescue Errno::EPIPE
|
|
70
72
|
error "Could not connect to build server: #{server}"
|
|
71
73
|
end
|
|
@@ -135,6 +137,7 @@ update the build server
|
|
|
135
137
|
system "git push heroku -f master"
|
|
136
138
|
|
|
137
139
|
%x{ env BUNDLE_GEMFILE= heroku config:add SECRET=#{config[:secret]} SPAWN_ENV=heroku HEROKU_APP=#{config[:app]} HEROKU_API_KEY=#{api_key} 2>&1 }
|
|
140
|
+
%x{ env BUNDLE_GEMFILE= heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-nodejs.git#versions 2>&1 }
|
|
138
141
|
%x{ env BUNDLE_GEMFILE= heroku addons:add cloudant:oxygen }
|
|
139
142
|
end
|
|
140
143
|
end
|
data/lib/vulcan/version.rb
CHANGED
data/server/lib/spawner.js
CHANGED
|
@@ -62,7 +62,8 @@ var Spawner = function(env) {
|
|
|
62
62
|
restler.post('https://api.heroku.com/apps/' + app + '/ps', {
|
|
63
63
|
headers: {
|
|
64
64
|
'Authorization': auth,
|
|
65
|
-
'Accept': 'application/json'
|
|
65
|
+
'Accept': 'application/json',
|
|
66
|
+
'User-Agent': 'heroku-gem/2.5'
|
|
66
67
|
},
|
|
67
68
|
data: {
|
|
68
69
|
attach: true,
|
|
@@ -72,10 +73,14 @@ var Spawner = function(env) {
|
|
|
72
73
|
}).on('success', function(data) {
|
|
73
74
|
|
|
74
75
|
var url = require('url').parse(data.rendezvous_url);
|
|
75
|
-
var rendezvous = new net.Socket();
|
|
76
76
|
|
|
77
|
-
rendezvous.connect(url.port, url.hostname, function() {
|
|
78
|
-
rendezvous.
|
|
77
|
+
var rendezvous = tls.connect(url.port, url.hostname, function() {
|
|
78
|
+
if (rendezvous.authorized) {
|
|
79
|
+
console.log('valid socket');
|
|
80
|
+
rendezvous.write(url.pathname.substring(1) + '\n');
|
|
81
|
+
} else {
|
|
82
|
+
console.log('invalid socket');
|
|
83
|
+
}
|
|
79
84
|
});
|
|
80
85
|
|
|
81
86
|
rendezvous.on('data', function(data) {
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
"keywords" : ["couchdb", "database", "couch"],
|
|
6
6
|
"author" : "Alexis Sellier <self@cloudhead.net>",
|
|
7
7
|
"contributors" : [],
|
|
8
|
-
"dependencies" : { "vargs": ">=0.1.0"
|
|
9
|
-
"devDependencies" : { "async": "
|
|
10
|
-
"version" : "0.5.
|
|
8
|
+
"dependencies" : { "vargs": ">=0.1.0" },
|
|
9
|
+
"devDependencies" : { "async": "0.1.x", "request": "2.2.x", "vows": "0.6.x" },
|
|
10
|
+
"version" : "0.5.8",
|
|
11
11
|
"main" : "./lib/cradle",
|
|
12
12
|
"directories" : { "test": "./test" },
|
|
13
13
|
"engines" : { "node": ">=0.3.6" }
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
var path = require('path'),
|
|
2
|
-
sys = require('sys'),
|
|
3
2
|
assert = require('assert'),
|
|
4
3
|
events = require('events'),
|
|
5
4
|
vows = require('vows');
|
|
@@ -19,7 +18,7 @@ vows.describe('cradle/Cache').addBatch({
|
|
|
19
18
|
|
|
20
19
|
'should be able to store 8 keys': function (topic) {
|
|
21
20
|
for (var i = 0; i < 8; i++) { topic.save(i.toString(), {}) }
|
|
22
|
-
assert.
|
|
21
|
+
assert.lengthOf (Object.keys(topic.store), 8);
|
|
23
22
|
},
|
|
24
23
|
'if more than 8 keys are set': {
|
|
25
24
|
topic: function (cache) {
|
|
@@ -30,7 +29,7 @@ vows.describe('cradle/Cache').addBatch({
|
|
|
30
29
|
});
|
|
31
30
|
},
|
|
32
31
|
'there should still be 8 keys in the store': function (cache) {
|
|
33
|
-
assert.
|
|
32
|
+
assert.lengthOf (Object.keys(cache.store), 8);
|
|
34
33
|
}
|
|
35
34
|
},
|
|
36
35
|
'if an extra 8 keys are set': {
|
|
@@ -67,10 +66,10 @@ vows.describe('cradle/Cache').addBatch({
|
|
|
67
66
|
}, 10);
|
|
68
67
|
},
|
|
69
68
|
'it should have the 3 accessed ones, with the 5 new ones': function (cache) {
|
|
70
|
-
assert.
|
|
71
|
-
assert.isTrue
|
|
72
|
-
assert.isTrue
|
|
73
|
-
assert.isTrue
|
|
69
|
+
assert.lengthOf (Object.keys(cache.store), 8);
|
|
70
|
+
assert.isTrue (cache.has('2'));
|
|
71
|
+
assert.isTrue (cache.has('5'));
|
|
72
|
+
assert.isTrue (cache.has('1'));
|
|
74
73
|
for (var i = 8; i < 13; i++) { cache.has(i.toString()) }
|
|
75
74
|
}
|
|
76
75
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
var path = require('path'),
|
|
2
|
-
sys = require('sys'),
|
|
3
2
|
assert = require('assert'),
|
|
4
3
|
events = require('events'),
|
|
5
4
|
http = require('http'),
|
|
@@ -278,7 +277,7 @@ vows.describe("cradle").addBatch(seed.requireSeed()).addBatch({
|
|
|
278
277
|
"returns a 200": status(200),
|
|
279
278
|
"returns an array of UUIDs": function (uuids) {
|
|
280
279
|
assert.isArray(uuids);
|
|
281
|
-
assert.
|
|
280
|
+
assert.lengthOf(uuids, 42);
|
|
282
281
|
}
|
|
283
282
|
},
|
|
284
283
|
"without count": {
|
|
@@ -287,7 +286,7 @@ vows.describe("cradle").addBatch(seed.requireSeed()).addBatch({
|
|
|
287
286
|
"returns a 200": status(200),
|
|
288
287
|
"returns an array of UUIDs": function (uuids) {
|
|
289
288
|
assert.isArray(uuids);
|
|
290
|
-
assert.
|
|
289
|
+
assert.lengthOf(uuids, 1);
|
|
291
290
|
}
|
|
292
291
|
}
|
|
293
292
|
},
|
|
@@ -497,7 +496,7 @@ vows.describe("cradle").addBatch(seed.requireSeed()).addBatch({
|
|
|
497
496
|
},
|
|
498
497
|
"returns an iterable object with key/val pairs": function (res) {
|
|
499
498
|
assert.isArray(res);
|
|
500
|
-
assert.
|
|
499
|
+
assert.lengthOf(res, 2);
|
|
501
500
|
res.forEach(function (k, v) {
|
|
502
501
|
assert.isObject(v);
|
|
503
502
|
assert.isString(k);
|
|
@@ -528,7 +527,7 @@ vows.describe("cradle").addBatch(seed.requireSeed()).addBatch({
|
|
|
528
527
|
},
|
|
529
528
|
"returns an iterable object with key/val pairs": function (res) {
|
|
530
529
|
assert.isArray(res);
|
|
531
|
-
assert.
|
|
530
|
+
assert.lengthOf(res, 2);
|
|
532
531
|
res.forEach(function (k, v) {
|
|
533
532
|
assert.isObject(v);
|
|
534
533
|
assert.isString(k);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
var path = require('path'),
|
|
2
|
-
sys = require('sys'),
|
|
3
2
|
assert = require('assert'),
|
|
4
3
|
events = require('events'),
|
|
5
4
|
http = require('http'),
|
|
@@ -15,7 +14,7 @@ vows.describe('cradle/Response').addBatch({
|
|
|
15
14
|
topic: new(cradle.Response)(document),
|
|
16
15
|
|
|
17
16
|
'should only have the original keys': function (topic) {
|
|
18
|
-
assert.
|
|
17
|
+
assert.lengthOf (Object.keys(topic), 4);
|
|
19
18
|
assert.equal (topic.name, 'buzz');
|
|
20
19
|
assert.equal (topic.age, 99);
|
|
21
20
|
assert.deepEqual (document, topic);
|
|
@@ -29,15 +28,15 @@ vows.describe('cradle/Response').addBatch({
|
|
|
29
28
|
assert.deepEqual (topic.json, document);
|
|
30
29
|
assert.isUndefined (topic.json.json);
|
|
31
30
|
assert.isUndefined (topic.headers);
|
|
32
|
-
assert.
|
|
31
|
+
assert.lengthOf (Object.keys(topic.json), 4);
|
|
33
32
|
},
|
|
34
33
|
'when using a `for .. in` loop, should only return the original keys': function (topic) {
|
|
35
34
|
var keys = [];
|
|
36
35
|
for (var k in topic) { keys.push(k) }
|
|
37
36
|
|
|
38
|
-
assert.
|
|
39
|
-
assert.include
|
|
40
|
-
assert.include
|
|
37
|
+
assert.lengthOf (keys, 4);
|
|
38
|
+
assert.include (keys, 'name');
|
|
39
|
+
assert.include (keys, 'age');
|
|
41
40
|
},
|
|
42
41
|
'should stringify': function (topic) {
|
|
43
42
|
var expected = JSON.stringify(document);
|
|
@@ -1,4 +1,44 @@
|
|
|
1
1
|
|
|
2
|
+
2.5.6 / 2012-01-13
|
|
3
|
+
==================
|
|
4
|
+
|
|
5
|
+
* Updated hamljs dev dep. Closes #953
|
|
6
|
+
|
|
7
|
+
2.5.5 / 2012-01-08
|
|
8
|
+
==================
|
|
9
|
+
|
|
10
|
+
* Fixed: set `filename` on cached templates [matthewleon]
|
|
11
|
+
|
|
12
|
+
2.5.4 / 2012-01-02
|
|
13
|
+
==================
|
|
14
|
+
|
|
15
|
+
* Fixed `express(1)` eol on 0.4.x. Closes #947
|
|
16
|
+
|
|
17
|
+
2.5.3 / 2011-12-30
|
|
18
|
+
==================
|
|
19
|
+
|
|
20
|
+
* Fixed `req.is()` when a charset is present
|
|
21
|
+
|
|
22
|
+
2.5.2 / 2011-12-10
|
|
23
|
+
==================
|
|
24
|
+
|
|
25
|
+
* Fixed: express(1) LF -> CRLF for windows
|
|
26
|
+
|
|
27
|
+
2.5.1 / 2011-11-17
|
|
28
|
+
==================
|
|
29
|
+
|
|
30
|
+
* Changed: updated connect to 1.8.x
|
|
31
|
+
* Removed sass.js support from express(1)
|
|
32
|
+
|
|
33
|
+
2.5.0 / 2011-10-24
|
|
34
|
+
==================
|
|
35
|
+
|
|
36
|
+
* Added ./routes dir for generated app by default
|
|
37
|
+
* Added npm install reminder to express(1) app gen
|
|
38
|
+
* Added 0.5.x support
|
|
39
|
+
* Removed `make test-cov` since it wont work with node 0.5.x
|
|
40
|
+
* Fixed express(1) public dir for windows. Closes #866
|
|
41
|
+
|
|
2
42
|
2.4.7 / 2011-10-05
|
|
3
43
|
==================
|
|
4
44
|
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
|
|
2
2
|
DOCS = $(shell find docs/*.md)
|
|
3
|
-
HTMLDOCS
|
|
3
|
+
HTMLDOCS = $(DOCS:.md=.html)
|
|
4
4
|
TESTS = $(shell find test/*.test.js)
|
|
5
5
|
|
|
6
6
|
test:
|
|
7
|
-
@NODE_ENV=test ./node_modules/.bin/expresso
|
|
8
|
-
-I lib \
|
|
9
|
-
$(TESTFLAGS) \
|
|
10
|
-
$(TESTS)
|
|
11
|
-
|
|
12
|
-
test-cov:
|
|
13
|
-
@TESTFLAGS=--cov $(MAKE) test
|
|
7
|
+
@NODE_ENV=test ./node_modules/.bin/expresso $(TESTS)
|
|
14
8
|
|
|
15
9
|
docs: $(HTMLDOCS)
|
|
16
10
|
@ echo "... generating TOC"
|
|
@@ -32,4 +26,4 @@ site:
|
|
|
32
26
|
docclean:
|
|
33
27
|
rm -f docs/*.{1,html}
|
|
34
28
|
|
|
35
|
-
.PHONY: site test
|
|
29
|
+
.PHONY: site test docs docclean
|
|
@@ -95,7 +95,9 @@ The following are the major contributors of Express (in no specific order).
|
|
|
95
95
|
|
|
96
96
|
Express 1.x is compatible with node 0.2.x and connect < 1.0.
|
|
97
97
|
|
|
98
|
-
Express 2.x is compatible with node 0.4.x and connect 1.x
|
|
98
|
+
Express 2.x is compatible with node 0.4.x or 0.6.x, and connect 1.x
|
|
99
|
+
|
|
100
|
+
Express 3.x (master) will be compatible with node 0.6.x and connect 2.x
|
|
99
101
|
|
|
100
102
|
## Viewing Examples
|
|
101
103
|
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
var fs = require('fs')
|
|
8
|
+
, os = require('os')
|
|
8
9
|
, exec = require('child_process').exec
|
|
9
10
|
, mkdirp = require('mkdirp');
|
|
10
11
|
|
|
@@ -12,7 +13,7 @@ var fs = require('fs')
|
|
|
12
13
|
* Framework version.
|
|
13
14
|
*/
|
|
14
15
|
|
|
15
|
-
var version = '2.
|
|
16
|
+
var version = '2.5.5';
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* Add session support.
|
|
@@ -26,6 +27,14 @@ var sessions = false;
|
|
|
26
27
|
|
|
27
28
|
var cssEngine;
|
|
28
29
|
|
|
30
|
+
/**
|
|
31
|
+
* End-of-line code.
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
var eol = os.platform
|
|
35
|
+
? ('win32' == os.platform() ? '\r\n' : '\n')
|
|
36
|
+
: '\n';
|
|
37
|
+
|
|
29
38
|
/**
|
|
30
39
|
* Template engine to utilize.
|
|
31
40
|
*/
|
|
@@ -43,11 +52,26 @@ var usage = ''
|
|
|
43
52
|
+ ' Options:\n'
|
|
44
53
|
+ ' -s, --sessions add session support\n'
|
|
45
54
|
+ ' -t, --template <engine> add template <engine> support (jade|ejs). default=jade\n'
|
|
46
|
-
+ ' -c, --css <engine> add stylesheet <engine> support (
|
|
55
|
+
+ ' -c, --css <engine> add stylesheet <engine> support (stylus). default=plain css\n'
|
|
47
56
|
+ ' -v, --version output framework version\n'
|
|
48
57
|
+ ' -h, --help output help information\n'
|
|
49
58
|
;
|
|
50
59
|
|
|
60
|
+
/**
|
|
61
|
+
* Routes index template.
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
var index = [
|
|
65
|
+
''
|
|
66
|
+
, '/*'
|
|
67
|
+
, ' * GET home page.'
|
|
68
|
+
, ' */'
|
|
69
|
+
, ''
|
|
70
|
+
, 'exports.index = function(req, res){'
|
|
71
|
+
, ' res.render(\'index\', { title: \'Express\' })'
|
|
72
|
+
, '};'
|
|
73
|
+
].join(eol);
|
|
74
|
+
|
|
51
75
|
/**
|
|
52
76
|
* Jade layout template.
|
|
53
77
|
*/
|
|
@@ -59,7 +83,7 @@ var jadeLayout = [
|
|
|
59
83
|
, ' title= title'
|
|
60
84
|
, ' link(rel=\'stylesheet\', href=\'/stylesheets/style.css\')'
|
|
61
85
|
, ' body!= body'
|
|
62
|
-
].join(
|
|
86
|
+
].join(eol);
|
|
63
87
|
|
|
64
88
|
/**
|
|
65
89
|
* Jade index template.
|
|
@@ -68,7 +92,7 @@ var jadeLayout = [
|
|
|
68
92
|
var jadeIndex = [
|
|
69
93
|
'h1= title'
|
|
70
94
|
, 'p Welcome to #{title}'
|
|
71
|
-
].join(
|
|
95
|
+
].join(eol);
|
|
72
96
|
|
|
73
97
|
/**
|
|
74
98
|
* EJS layout template.
|
|
@@ -85,7 +109,7 @@ var ejsLayout = [
|
|
|
85
109
|
, ' <%- body %>'
|
|
86
110
|
, ' </body>'
|
|
87
111
|
, '</html>'
|
|
88
|
-
].join(
|
|
112
|
+
].join(eol);
|
|
89
113
|
|
|
90
114
|
/**
|
|
91
115
|
* EJS index template.
|
|
@@ -94,7 +118,7 @@ var ejsLayout = [
|
|
|
94
118
|
var ejsIndex = [
|
|
95
119
|
'<h1><%= title %></h1>'
|
|
96
120
|
, '<p>Welcome to <%= title %></p>'
|
|
97
|
-
].join(
|
|
121
|
+
].join(eol);
|
|
98
122
|
|
|
99
123
|
/**
|
|
100
124
|
* Default css template.
|
|
@@ -109,34 +133,7 @@ var css = [
|
|
|
109
133
|
, 'a {'
|
|
110
134
|
, ' color: #00B7FF;'
|
|
111
135
|
, '}'
|
|
112
|
-
].join(
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Default less template.
|
|
116
|
-
*/
|
|
117
|
-
|
|
118
|
-
var less = [
|
|
119
|
-
'body {'
|
|
120
|
-
, ' padding: 50px;'
|
|
121
|
-
, ' font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;'
|
|
122
|
-
, '}'
|
|
123
|
-
, ''
|
|
124
|
-
, 'a {'
|
|
125
|
-
, ' color: #00B7FF;'
|
|
126
|
-
, '}'
|
|
127
|
-
].join('\n');
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Default sass template.
|
|
131
|
-
*/
|
|
132
|
-
|
|
133
|
-
var sass = [
|
|
134
|
-
'body'
|
|
135
|
-
, ' :padding 50px'
|
|
136
|
-
, ' :font 14px "Lucida Grande", Helvetica, Arial, sans-serif'
|
|
137
|
-
, 'a'
|
|
138
|
-
, ' :color #00B7FF'
|
|
139
|
-
].join('\n');
|
|
136
|
+
].join(eol);
|
|
140
137
|
|
|
141
138
|
/**
|
|
142
139
|
* Default stylus template.
|
|
@@ -148,7 +145,7 @@ var stylus = [
|
|
|
148
145
|
, ' font: 14px "Lucida Grande", Helvetica, Arial, sans-serif'
|
|
149
146
|
, 'a'
|
|
150
147
|
, ' color: #00B7FF'
|
|
151
|
-
].join(
|
|
148
|
+
].join(eol);
|
|
152
149
|
|
|
153
150
|
/**
|
|
154
151
|
* App template.
|
|
@@ -160,7 +157,8 @@ var app = [
|
|
|
160
157
|
, ' * Module dependencies.'
|
|
161
158
|
, ' */'
|
|
162
159
|
, ''
|
|
163
|
-
, 'var express = require(\'express\')
|
|
160
|
+
, 'var express = require(\'express\')'
|
|
161
|
+
, ' , routes = require(\'./routes\')'
|
|
164
162
|
, ''
|
|
165
163
|
, 'var app = module.exports = express.createServer();'
|
|
166
164
|
, ''
|
|
@@ -185,16 +183,12 @@ var app = [
|
|
|
185
183
|
, ''
|
|
186
184
|
, '// Routes'
|
|
187
185
|
, ''
|
|
188
|
-
, 'app.get(\'/\',
|
|
189
|
-
, ' res.render(\'index\', {'
|
|
190
|
-
, ' title: \'Express\''
|
|
191
|
-
, ' });'
|
|
192
|
-
, '});'
|
|
186
|
+
, 'app.get(\'/\', routes.index);'
|
|
193
187
|
, ''
|
|
194
188
|
, 'app.listen(3000);'
|
|
195
189
|
, 'console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);'
|
|
196
190
|
, ''
|
|
197
|
-
].join(
|
|
191
|
+
].join(eol);
|
|
198
192
|
|
|
199
193
|
// Parse arguments
|
|
200
194
|
|
|
@@ -260,7 +254,16 @@ while (args.length) {
|
|
|
260
254
|
*/
|
|
261
255
|
|
|
262
256
|
function createApplicationAt(path) {
|
|
257
|
+
console.log();
|
|
258
|
+
process.on('exit', function(){
|
|
259
|
+
console.log();
|
|
260
|
+
console.log(' dont forget to install dependencies:');
|
|
261
|
+
console.log(' $ cd %s && npm install', path);
|
|
262
|
+
console.log();
|
|
263
|
+
});
|
|
264
|
+
|
|
263
265
|
mkdir(path, function(){
|
|
266
|
+
mkdir(path + '/public');
|
|
264
267
|
mkdir(path + '/public/javascripts');
|
|
265
268
|
mkdir(path + '/public/images');
|
|
266
269
|
mkdir(path + '/public/stylesheets', function(){
|
|
@@ -268,16 +271,15 @@ function createApplicationAt(path) {
|
|
|
268
271
|
case 'stylus':
|
|
269
272
|
write(path + '/public/stylesheets/style.styl', stylus);
|
|
270
273
|
break;
|
|
271
|
-
case 'less':
|
|
272
|
-
write(path + '/public/stylesheets/style.less', less);
|
|
273
|
-
break;
|
|
274
|
-
case 'sass':
|
|
275
|
-
write(path + '/public/stylesheets/style.sass', sass);
|
|
276
|
-
break;
|
|
277
274
|
default:
|
|
278
275
|
write(path + '/public/stylesheets/style.css', css);
|
|
279
276
|
}
|
|
280
277
|
});
|
|
278
|
+
|
|
279
|
+
mkdir(path + '/routes', function(){
|
|
280
|
+
write(path + '/routes/index.js', index);
|
|
281
|
+
});
|
|
282
|
+
|
|
281
283
|
mkdir(path + '/views', function(){
|
|
282
284
|
switch (templateEngine) {
|
|
283
285
|
case 'ejs':
|
|
@@ -293,12 +295,8 @@ function createApplicationAt(path) {
|
|
|
293
295
|
|
|
294
296
|
// CSS Engine support
|
|
295
297
|
switch (cssEngine) {
|
|
296
|
-
case 'sass':
|
|
297
|
-
case 'less':
|
|
298
|
-
app = app.replace('{css}', '\n app.use(express.compiler({ src: __dirname + \'/public\', enable: [\'' + cssEngine + '\'] }));');
|
|
299
|
-
break;
|
|
300
298
|
case 'stylus':
|
|
301
|
-
app = app.replace('{css}', '
|
|
299
|
+
app = app.replace('{css}', eol + ' app.use(require(\'stylus\').middleware({ src: __dirname + \'/public\' }));');
|
|
302
300
|
break;
|
|
303
301
|
default:
|
|
304
302
|
app = app.replace('{css}', '');
|
|
@@ -306,22 +304,22 @@ function createApplicationAt(path) {
|
|
|
306
304
|
|
|
307
305
|
// Session support
|
|
308
306
|
app = app.replace('{sess}', sessions
|
|
309
|
-
? '
|
|
307
|
+
? eol + ' app.use(express.cookieParser());' + eol + ' app.use(express.session({ secret: \'your secret here\' }));'
|
|
310
308
|
: '');
|
|
311
309
|
|
|
312
310
|
// Template support
|
|
313
311
|
app = app.replace(':TEMPLATE', templateEngine);
|
|
314
312
|
|
|
315
313
|
// package.json
|
|
316
|
-
var json = '{
|
|
317
|
-
json += ' "name": "application-name"
|
|
318
|
-
json += ' , "version": "0.0.1"
|
|
319
|
-
json += ' , "private": true
|
|
320
|
-
json += ' , "dependencies": {
|
|
321
|
-
json += ' "express": "' + version + '"
|
|
322
|
-
if (cssEngine) json += ' , "' + cssEngine + '": ">= 0.0.1"
|
|
323
|
-
if (templateEngine) json += ' , "' + templateEngine + '": ">= 0.0.1"
|
|
324
|
-
json += ' }
|
|
314
|
+
var json = '{' + eol;
|
|
315
|
+
json += ' "name": "application-name"' + eol;
|
|
316
|
+
json += ' , "version": "0.0.1"' + eol;
|
|
317
|
+
json += ' , "private": true' + eol;
|
|
318
|
+
json += ' , "dependencies": {' + eol;
|
|
319
|
+
json += ' "express": "' + version + '"' + eol;
|
|
320
|
+
if (cssEngine) json += ' , "' + cssEngine + '": ">= 0.0.1"' + eol;
|
|
321
|
+
if (templateEngine) json += ' , "' + templateEngine + '": ">= 0.0.1"' + eol;
|
|
322
|
+
json += ' }' + eol;
|
|
325
323
|
json += '}';
|
|
326
324
|
|
|
327
325
|
|