vulcan 0.1.6 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. data/lib/vulcan/cli.rb +3 -0
  2. data/lib/vulcan/version.rb +1 -1
  3. data/server/lib/spawner.js +9 -4
  4. data/server/node_modules/cradle/lib/cradle.js +0 -1
  5. data/server/node_modules/cradle/package.json +3 -3
  6. data/server/node_modules/cradle/test/cache-test.js +6 -7
  7. data/server/node_modules/cradle/test/cradle-test.js +4 -5
  8. data/server/node_modules/cradle/test/response-test.js +5 -6
  9. data/server/node_modules/express/History.md +40 -0
  10. data/server/node_modules/express/Makefile +3 -9
  11. data/server/node_modules/express/Readme.md +3 -1
  12. data/server/node_modules/express/bin/express +61 -63
  13. data/server/node_modules/express/lib/express.js +1 -1
  14. data/server/node_modules/express/lib/request.js +9 -7
  15. data/server/node_modules/express/lib/view.js +19 -16
  16. data/server/node_modules/express/node_modules/connect/lib/connect.js +1 -1
  17. data/server/node_modules/express/node_modules/connect/lib/http.js +2 -0
  18. data/server/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js +135 -31
  19. data/server/node_modules/express/node_modules/connect/lib/middleware/limit.js +5 -1
  20. data/server/node_modules/express/node_modules/connect/lib/middleware/session.js +2 -2
  21. data/server/node_modules/express/node_modules/connect/lib/middleware/static.js +26 -21
  22. data/server/node_modules/express/node_modules/connect/lib/middleware/staticCache.js +91 -38
  23. data/server/node_modules/express/node_modules/connect/lib/middleware/vhost.js +1 -1
  24. data/server/node_modules/express/node_modules/connect/lib/utils.js +11 -4
  25. data/server/node_modules/express/node_modules/connect/node_modules/formidable/Makefile +14 -0
  26. data/server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md +286 -0
  27. data/server/node_modules/express/node_modules/connect/node_modules/formidable/TODO +3 -0
  28. data/server/node_modules/express/node_modules/connect/node_modules/formidable/benchmark/bench-multipart-parser.js +70 -0
  29. data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/post.js +43 -0
  30. data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/upload.js +48 -0
  31. data/server/node_modules/express/node_modules/connect/node_modules/formidable/index.js +1 -0
  32. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/file.js +61 -0
  33. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js +377 -0
  34. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/index.js +3 -0
  35. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/multipart_parser.js +312 -0
  36. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/querystring_parser.js +25 -0
  37. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/util.js +6 -0
  38. data/server/node_modules/express/node_modules/connect/node_modules/formidable/package.json +22 -0
  39. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/common.js +19 -0
  40. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/funkyfilename.txt +1 -0
  41. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/plain.txt +1 -0
  42. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http +13 -0
  43. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/info.md +3 -0
  44. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +26 -0
  45. 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
  46. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http +23 -0
  47. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +24 -0
  48. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http +22 -0
  49. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http +22 -0
  50. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http +22 -0
  51. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/no-filename.js +3 -0
  52. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/special-chars-in-filename.js +21 -0
  53. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multi_video.upload +0 -0
  54. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multipart.js +72 -0
  55. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/integration/test-fixtures.js +89 -0
  56. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/common.js +24 -0
  57. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/integration/test-multipart-parser.js +80 -0
  58. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-file.js +104 -0
  59. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js +715 -0
  60. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-multipart-parser.js +50 -0
  61. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-querystring-parser.js +45 -0
  62. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/system/test-multi-video-upload.js +72 -0
  63. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/run.js +2 -0
  64. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/unit/test-incoming-form.js +63 -0
  65. data/server/node_modules/express/node_modules/connect/node_modules/formidable/tool/record.js +47 -0
  66. data/server/node_modules/express/node_modules/connect/package.json +7 -6
  67. data/server/node_modules/express/node_modules/connect/test.js +44 -31
  68. data/server/node_modules/express/node_modules/qs/History.md +11 -0
  69. data/server/node_modules/express/node_modules/qs/Makefile +1 -3
  70. data/server/node_modules/express/node_modules/qs/Readme.md +2 -4
  71. data/server/node_modules/express/node_modules/qs/lib/querystring.js +100 -74
  72. data/server/node_modules/express/node_modules/qs/package.json +9 -2
  73. data/server/node_modules/express/node_modules/qs/test/mocha.opts +2 -0
  74. data/server/node_modules/express/node_modules/qs/test/{parse.test.js → parse.js} +1 -2
  75. data/server/node_modules/express/node_modules/qs/test/{stringify.test.js → stringify.js} +0 -0
  76. data/server/node_modules/express/package.json +7 -7
  77. data/server/node_modules/express/testing/foo/app.js +35 -0
  78. data/server/node_modules/express/testing/foo/package.json +9 -0
  79. data/server/node_modules/express/testing/foo/public/stylesheets/style.css +8 -0
  80. data/server/node_modules/express/testing/foo/routes/index.js +10 -0
  81. data/server/node_modules/express/testing/foo/views/index.jade +2 -0
  82. data/server/node_modules/express/testing/foo/views/layout.jade +6 -0
  83. data/server/node_modules/express/testing/index.js +31 -5
  84. data/server/node_modules/express/testing/public/test.txt +2971 -0
  85. data/server/node_modules/express/testing/views/page.html +1 -0
  86. data/server/node_modules/express/testing/views/page.jade +3 -0
  87. data/server/node_modules/express/testing/views/test.md +1 -0
  88. data/server/node_modules/express/testing/views/user/index.jade +1 -0
  89. data/server/node_modules/express/testing/views/user/list.jade +1 -0
  90. data/server/node_modules/node-uuid/README.md +166 -67
  91. data/server/node_modules/node-uuid/benchmark/README.md +53 -0
  92. data/server/node_modules/node-uuid/benchmark/bench.gnu +174 -0
  93. data/server/node_modules/node-uuid/benchmark/bench.sh +34 -0
  94. data/server/node_modules/node-uuid/{test → benchmark}/benchmark-native.c +0 -0
  95. data/server/node_modules/node-uuid/benchmark/benchmark.js +84 -0
  96. data/server/node_modules/node-uuid/package.json +5 -3
  97. data/server/node_modules/node-uuid/test/benchmark-native +0 -0
  98. data/server/node_modules/node-uuid/test/compare_v1.js +63 -0
  99. data/server/node_modules/node-uuid/test/test.html +3 -0
  100. data/server/node_modules/node-uuid/test/test.js +214 -57
  101. data/server/node_modules/node-uuid/uuid.js +225 -56
  102. data/server/node_modules/restler/README.md +20 -7
  103. data/server/node_modules/restler/bin/restler +1 -1
  104. data/server/node_modules/restler/lib/multipartform.js +9 -8
  105. data/server/node_modules/restler/lib/restler.js +64 -22
  106. data/server/node_modules/restler/package.json +2 -2
  107. data/server/node_modules/restler/test/restler.js +22 -2
  108. data/server/node_modules/restler/test/test_helper.js +20 -1
  109. data/server/package.json +8 -8
  110. data/server/web.js +22 -6
  111. metadata +72 -82
  112. data/server/node_modules/cradle/node_modules/vows/LICENSE +0 -20
  113. data/server/node_modules/cradle/node_modules/vows/Makefile +0 -7
  114. data/server/node_modules/cradle/node_modules/vows/README.md +0 -39
  115. data/server/node_modules/cradle/node_modules/vows/bin/vows +0 -515
  116. data/server/node_modules/cradle/node_modules/vows/lib/assert/error.js +0 -27
  117. data/server/node_modules/cradle/node_modules/vows/lib/assert/macros.js +0 -215
  118. data/server/node_modules/cradle/node_modules/vows/lib/assert/utils.js +0 -77
  119. data/server/node_modules/cradle/node_modules/vows/lib/vows.js +0 -193
  120. data/server/node_modules/cradle/node_modules/vows/lib/vows/console.js +0 -131
  121. data/server/node_modules/cradle/node_modules/vows/lib/vows/context.js +0 -55
  122. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/file.js +0 -29
  123. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-foot.html +0 -2
  124. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-head.html +0 -61
  125. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-html.js +0 -54
  126. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-json.js +0 -54
  127. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-plain.js +0 -38
  128. data/server/node_modules/cradle/node_modules/vows/lib/vows/extras.js +0 -28
  129. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/dot-matrix.js +0 -67
  130. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/json.js +0 -16
  131. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/silent.js +0 -8
  132. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/spec.js +0 -44
  133. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/watch.js +0 -39
  134. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/xunit.js +0 -90
  135. data/server/node_modules/cradle/node_modules/vows/lib/vows/suite.js +0 -319
  136. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/LICENSE +0 -20
  137. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/Makefile +0 -4
  138. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/README.md +0 -72
  139. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/lib/eyes.js +0 -233
  140. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/package.json +0 -14
  141. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/test/eyes-test.js +0 -55
  142. data/server/node_modules/cradle/node_modules/vows/package.json +0 -14
  143. data/server/node_modules/cradle/node_modules/vows/test/assert-test.js +0 -135
  144. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/failing.js +0 -18
  145. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/log.js +0 -18
  146. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/passing.js +0 -17
  147. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/stderr.js +0 -18
  148. data/server/node_modules/cradle/node_modules/vows/test/isolate-test.js +0 -140
  149. data/server/node_modules/cradle/node_modules/vows/test/testInherit.js +0 -133
  150. data/server/node_modules/cradle/node_modules/vows/test/vows-error-test.js +0 -51
  151. data/server/node_modules/cradle/node_modules/vows/test/vows-test.js +0 -374
  152. data/server/node_modules/express/node_modules/qs/support/expresso/History.md +0 -128
  153. data/server/node_modules/express/node_modules/qs/support/expresso/Makefile +0 -53
  154. data/server/node_modules/express/node_modules/qs/support/expresso/Readme.md +0 -61
  155. data/server/node_modules/express/node_modules/qs/support/expresso/bin/expresso +0 -856
  156. data/server/node_modules/express/node_modules/qs/support/expresso/docs/api.html +0 -1080
  157. data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.html +0 -377
  158. data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.md +0 -290
  159. data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/foot.html +0 -3
  160. data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/head.html +0 -42
  161. data/server/node_modules/express/node_modules/qs/support/expresso/lib/bar.js +0 -4
  162. data/server/node_modules/express/node_modules/qs/support/expresso/lib/foo.js +0 -16
  163. data/server/node_modules/express/node_modules/qs/support/expresso/package.json +0 -12
  164. data/server/node_modules/express/node_modules/qs/support/expresso/test/assert.test.js +0 -91
  165. data/server/node_modules/express/node_modules/qs/support/expresso/test/async.test.js +0 -12
  166. data/server/node_modules/express/node_modules/qs/support/expresso/test/bar.test.js +0 -13
  167. data/server/node_modules/express/node_modules/qs/support/expresso/test/foo.test.js +0 -14
  168. data/server/node_modules/express/node_modules/qs/support/expresso/test/http.test.js +0 -146
  169. data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/async.test.js +0 -39
  170. data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/http.test.js +0 -48
  171. data/server/node_modules/express/node_modules/qs/support/should/History.md +0 -22
  172. data/server/node_modules/express/node_modules/qs/support/should/Makefile +0 -6
  173. data/server/node_modules/express/node_modules/qs/support/should/Readme.md +0 -248
  174. data/server/node_modules/express/node_modules/qs/support/should/examples/runner.js +0 -53
  175. data/server/node_modules/express/node_modules/qs/support/should/index.js +0 -2
  176. data/server/node_modules/express/node_modules/qs/support/should/lib/eql.js +0 -91
  177. data/server/node_modules/express/node_modules/qs/support/should/lib/should.js +0 -548
  178. data/server/node_modules/express/node_modules/qs/support/should/package.json +0 -8
  179. data/server/node_modules/express/node_modules/qs/support/should/test/should.test.js +0 -358
  180. data/server/node_modules/express/testing/views/users.jade +0 -1
  181. 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
@@ -1,5 +1,5 @@
1
1
  module Vulcan
2
2
 
3
- VERSION = "0.1.6"
3
+ VERSION = "0.2.0"
4
4
 
5
5
  end
@@ -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.write(url.pathname.substring(1) + '\n');
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) {
@@ -1,5 +1,4 @@
1
1
  var path = require('path'),
2
- sys = require("sys"),
3
2
  http = require("http"),
4
3
  https = require("https"),
5
4
  events = require('events'),
@@ -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", "vows": ">=0.5.4" },
9
- "devDependencies" : { "async": "~0.1.x", "request": "~2.1.1" },
10
- "version" : "0.5.7",
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.length (Object.keys(topic.store), 8);
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.length (Object.keys(cache.store), 8);
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.length (Object.keys(cache.store), 8);
71
- assert.isTrue (cache.has('2'));
72
- assert.isTrue (cache.has('5'));
73
- assert.isTrue (cache.has('1'));
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.length(uuids, 42);
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.length(uuids, 1);
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.length(res, 2);
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.length(res, 2);
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.length (Object.keys(topic), 4);
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.length (Object.keys(topic.json), 4);
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.length (keys, 4);
39
- assert.include (keys, 'name');
40
- assert.include (keys, 'age');
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 =$(DOCS:.md=.html)
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 test-cov docs docclean
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.4.7';
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 (less|sass|stylus). default=plain css\n'
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('\n');
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('\n');
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('\n');
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('\n');
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('\n');
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('\n');
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(\'/\', function(req, res){'
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('\n');
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}', '\n app.use(require(\'stylus\').middleware({ src: __dirname + \'/public\' }));');
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
- ? '\n app.use(express.cookieParser());\n app.use(express.session({ secret: \'your secret here\' }));'
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 = '{\n';
317
- json += ' "name": "application-name"\n';
318
- json += ' , "version": "0.0.1"\n';
319
- json += ' , "private": true\n';
320
- json += ' , "dependencies": {\n';
321
- json += ' "express": "' + version + '"\n';
322
- if (cssEngine) json += ' , "' + cssEngine + '": ">= 0.0.1"\n';
323
- if (templateEngine) json += ' , "' + templateEngine + '": ">= 0.0.1"\n';
324
- json += ' }\n';
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