vulcan 0.1.6 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|