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.
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