vulcan 0.6.1 → 0.7.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 (260) hide show
  1. data/lib/vulcan/cli.rb +20 -10
  2. data/lib/vulcan/version.rb +1 -1
  3. data/server/Procfile +1 -1
  4. data/server/bin/web +10 -0
  5. data/server/lib/cloudant.coffee +20 -0
  6. data/server/lib/logger.coffee +17 -0
  7. data/server/lib/on.coffee +10 -0
  8. data/server/lib/spawner.coffee +65 -0
  9. data/server/node_modules/coffee-script/CNAME +1 -0
  10. data/server/node_modules/coffee-script/LICENSE +22 -0
  11. data/server/node_modules/coffee-script/README +51 -0
  12. data/server/node_modules/coffee-script/Rakefile +78 -0
  13. data/server/node_modules/coffee-script/bin/cake +7 -0
  14. data/server/node_modules/coffee-script/bin/coffee +7 -0
  15. data/server/node_modules/coffee-script/extras/jsl.conf +44 -0
  16. data/server/node_modules/coffee-script/lib/coffee-script/browser.js +92 -0
  17. data/server/node_modules/coffee-script/lib/coffee-script/cake.js +111 -0
  18. data/server/node_modules/coffee-script/lib/coffee-script/coffee-script.js +167 -0
  19. data/server/node_modules/coffee-script/lib/coffee-script/command.js +500 -0
  20. data/server/node_modules/coffee-script/lib/coffee-script/grammar.js +606 -0
  21. data/server/node_modules/coffee-script/lib/coffee-script/helpers.js +77 -0
  22. data/server/node_modules/coffee-script/lib/coffee-script/index.js +11 -0
  23. data/server/node_modules/coffee-script/lib/coffee-script/lexer.js +788 -0
  24. data/server/node_modules/coffee-script/lib/coffee-script/nodes.js +2986 -0
  25. data/server/node_modules/coffee-script/lib/coffee-script/optparse.js +138 -0
  26. data/server/node_modules/coffee-script/lib/coffee-script/parser.js +683 -0
  27. data/server/node_modules/coffee-script/lib/coffee-script/repl.js +261 -0
  28. data/server/node_modules/coffee-script/lib/coffee-script/rewriter.js +349 -0
  29. data/server/node_modules/coffee-script/lib/coffee-script/scope.js +146 -0
  30. data/server/node_modules/coffee-script/package.json +55 -0
  31. data/server/node_modules/connect-form/History.md +0 -6
  32. data/server/node_modules/connect-form/lib/connect-form.js +2 -4
  33. data/server/node_modules/connect-form/node_modules/formidable/Readme.md +64 -36
  34. data/server/node_modules/connect-form/node_modules/formidable/lib/incoming_form.js +5 -1
  35. data/server/node_modules/connect-form/node_modules/formidable/package.json +20 -6
  36. data/server/node_modules/connect-form/node_modules/formidable/test/common.js +5 -6
  37. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/file/funkyfilename.txt +1 -0
  38. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/js/special-chars-in-filename.js +1 -1
  39. data/server/node_modules/connect-form/node_modules/formidable/test/{slow → integration}/test-fixtures.js +38 -33
  40. data/server/node_modules/connect-form/node_modules/formidable/test/legacy/simple/test-incoming-form.js +11 -0
  41. data/server/node_modules/connect-form/node_modules/formidable/test/run.js +1 -6
  42. data/server/node_modules/connect-form/node_modules/formidable/test/unit/test-incoming-form.js +63 -0
  43. data/server/node_modules/connect-form/package.json +27 -5
  44. data/server/node_modules/cradle/README.md +10 -10
  45. data/server/node_modules/cradle/lib/cradle.js +117 -523
  46. data/server/node_modules/cradle/lib/cradle/database/attachments.js +120 -0
  47. data/server/node_modules/cradle/lib/cradle/database/changes.js +56 -0
  48. data/server/node_modules/cradle/lib/cradle/database/documents.js +215 -0
  49. data/server/node_modules/cradle/lib/cradle/database/index.js +65 -0
  50. data/server/node_modules/cradle/lib/cradle/database/views.js +125 -0
  51. data/server/node_modules/cradle/node_modules/follow/LICENSE +202 -0
  52. data/server/node_modules/cradle/node_modules/follow/README.md +164 -0
  53. data/server/node_modules/cradle/node_modules/follow/Rakefile +54 -0
  54. data/server/node_modules/cradle/node_modules/follow/api.js +35 -0
  55. data/server/node_modules/cradle/node_modules/follow/browser/eventemitter2.js +453 -0
  56. data/server/node_modules/cradle/node_modules/follow/browser/export.js +78 -0
  57. data/server/node_modules/cradle/node_modules/follow/browser/index.html +14 -0
  58. data/server/node_modules/cradle/node_modules/follow/browser/jquery-1.6.1.min.js +18 -0
  59. data/server/node_modules/cradle/node_modules/follow/browser/log4js.js +46 -0
  60. data/server/node_modules/cradle/node_modules/follow/browser/main.js +92 -0
  61. data/server/node_modules/cradle/node_modules/follow/browser/querystring.js +28 -0
  62. data/server/node_modules/cradle/node_modules/follow/browser/request.jquery.js +237 -0
  63. data/server/node_modules/cradle/node_modules/follow/browser/require.js +33 -0
  64. data/server/node_modules/cradle/node_modules/follow/browser/util.js +28 -0
  65. data/server/node_modules/cradle/node_modules/follow/cli.js +101 -0
  66. data/server/node_modules/cradle/node_modules/follow/lib/feed.js +556 -0
  67. data/server/node_modules/cradle/node_modules/follow/lib/index.js +66 -0
  68. data/server/node_modules/cradle/node_modules/follow/lib/stream.js +305 -0
  69. data/server/node_modules/cradle/node_modules/follow/node_modules/request/LICENSE +55 -0
  70. data/server/node_modules/cradle/node_modules/follow/node_modules/request/README.md +285 -0
  71. data/server/node_modules/cradle/node_modules/follow/node_modules/request/main.js +618 -0
  72. data/server/node_modules/cradle/node_modules/follow/node_modules/request/mimetypes.js +146 -0
  73. data/server/node_modules/cradle/node_modules/follow/node_modules/request/oauth.js +34 -0
  74. data/server/node_modules/cradle/node_modules/follow/node_modules/request/package.json +42 -0
  75. data/server/node_modules/cradle/node_modules/follow/node_modules/request/tests/googledoodle.png +0 -0
  76. data/server/node_modules/cradle/node_modules/follow/node_modules/request/tests/run.sh +6 -0
  77. data/server/node_modules/cradle/node_modules/follow/node_modules/request/tests/server.js +57 -0
  78. data/server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-body.js +90 -0
  79. data/server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-cookie.js +29 -0
  80. data/server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-cookiejar.js +90 -0
  81. data/server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-errors.js +30 -0
  82. data/server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-oauth.js +109 -0
  83. data/server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-pipes.js +167 -0
  84. data/server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-proxy.js +39 -0
  85. data/server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-timeout.js +87 -0
  86. data/server/node_modules/cradle/node_modules/follow/node_modules/request/uuid.js +19 -0
  87. data/server/node_modules/cradle/node_modules/follow/node_modules/request/vendor/cookie/index.js +55 -0
  88. data/server/node_modules/cradle/node_modules/follow/node_modules/request/vendor/cookie/jar.js +72 -0
  89. data/server/node_modules/cradle/node_modules/follow/package.json +45 -0
  90. data/server/node_modules/cradle/node_modules/follow/test/couch.js +153 -0
  91. data/server/node_modules/cradle/node_modules/follow/test/follow.js +136 -0
  92. data/server/node_modules/cradle/node_modules/follow/test/issues.js +178 -0
  93. data/server/node_modules/cradle/node_modules/follow/test/issues/10.js +24 -0
  94. data/server/node_modules/cradle/node_modules/follow/test/stream.js +493 -0
  95. data/server/node_modules/cradle/node_modules/request/LICENSE +55 -0
  96. data/server/node_modules/cradle/node_modules/request/README.md +287 -0
  97. data/server/node_modules/cradle/node_modules/request/forever.js +103 -0
  98. data/server/node_modules/cradle/node_modules/request/main.js +913 -0
  99. data/server/node_modules/cradle/node_modules/request/mimetypes.js +152 -0
  100. data/server/node_modules/cradle/node_modules/request/oauth.js +34 -0
  101. data/server/node_modules/cradle/node_modules/request/package.json +42 -0
  102. data/server/node_modules/cradle/node_modules/request/tests/googledoodle.png +0 -0
  103. data/server/node_modules/cradle/node_modules/request/tests/run.js +38 -0
  104. data/server/node_modules/cradle/node_modules/request/tests/server.js +82 -0
  105. data/server/node_modules/cradle/node_modules/request/tests/squid.conf +77 -0
  106. data/server/node_modules/cradle/node_modules/request/tests/ssl/ca/ca.cnf +20 -0
  107. data/server/node_modules/cradle/node_modules/request/tests/ssl/ca/ca.crl +0 -0
  108. data/server/node_modules/cradle/node_modules/request/tests/ssl/ca/ca.crt +17 -0
  109. data/server/node_modules/cradle/node_modules/request/tests/ssl/ca/ca.csr +13 -0
  110. data/server/node_modules/cradle/node_modules/request/tests/ssl/ca/ca.key +18 -0
  111. data/server/node_modules/cradle/node_modules/request/tests/ssl/ca/ca.srl +1 -0
  112. data/server/node_modules/cradle/node_modules/request/tests/ssl/ca/server.cnf +19 -0
  113. data/server/node_modules/cradle/node_modules/request/tests/ssl/ca/server.crt +16 -0
  114. data/server/node_modules/cradle/node_modules/request/tests/ssl/ca/server.csr +11 -0
  115. data/server/node_modules/cradle/node_modules/request/tests/ssl/ca/server.js +28 -0
  116. data/server/node_modules/cradle/node_modules/request/tests/ssl/ca/server.key +9 -0
  117. data/server/node_modules/cradle/node_modules/request/tests/ssl/npm-ca.crt +16 -0
  118. data/server/node_modules/cradle/node_modules/request/tests/ssl/test.crt +15 -0
  119. data/server/node_modules/cradle/node_modules/request/tests/ssl/test.key +15 -0
  120. data/server/node_modules/cradle/node_modules/request/tests/test-body.js +95 -0
  121. data/server/node_modules/cradle/node_modules/request/tests/test-cookie.js +29 -0
  122. data/server/node_modules/cradle/node_modules/request/tests/test-cookiejar.js +90 -0
  123. data/server/node_modules/cradle/node_modules/request/tests/test-defaults.js +68 -0
  124. data/server/node_modules/cradle/node_modules/request/tests/test-errors.js +37 -0
  125. data/server/node_modules/cradle/node_modules/request/tests/test-headers.js +52 -0
  126. data/server/node_modules/cradle/node_modules/request/tests/test-httpModule.js +94 -0
  127. data/server/node_modules/cradle/node_modules/request/tests/test-https-strict.js +97 -0
  128. data/server/node_modules/cradle/node_modules/request/tests/test-https.js +86 -0
  129. data/server/node_modules/cradle/node_modules/request/tests/test-oauth.js +117 -0
  130. data/server/node_modules/cradle/node_modules/request/tests/test-params.js +92 -0
  131. data/server/node_modules/cradle/node_modules/request/tests/test-pipes.js +202 -0
  132. data/server/node_modules/cradle/node_modules/request/tests/test-proxy.js +39 -0
  133. data/server/node_modules/cradle/node_modules/request/tests/test-qs.js +28 -0
  134. data/server/node_modules/cradle/node_modules/request/tests/test-redirect.js +154 -0
  135. data/server/node_modules/cradle/node_modules/request/tests/test-timeout.js +87 -0
  136. data/server/node_modules/cradle/node_modules/request/tests/test-toJSON.js +14 -0
  137. data/server/node_modules/cradle/node_modules/request/tests/test-tunnel.js +61 -0
  138. data/server/node_modules/cradle/node_modules/request/tunnel.js +229 -0
  139. data/server/node_modules/cradle/node_modules/request/uuid.js +19 -0
  140. data/server/node_modules/cradle/node_modules/request/vendor/cookie/index.js +65 -0
  141. data/server/node_modules/cradle/node_modules/request/vendor/cookie/jar.js +72 -0
  142. data/server/node_modules/cradle/node_modules/vargs/package.json +33 -10
  143. data/server/node_modules/cradle/package.json +50 -12
  144. data/server/node_modules/cradle/test/cache-test.js +1 -4
  145. data/server/node_modules/cradle/test/connection-test.js +179 -0
  146. data/server/node_modules/cradle/test/database-attachment-test.js +344 -0
  147. data/server/node_modules/cradle/test/database-cache-test.js +132 -0
  148. data/server/node_modules/cradle/test/database-test.js +219 -0
  149. data/server/node_modules/cradle/test/database-view-test.js +141 -0
  150. data/server/node_modules/cradle/test/fixtures/databases.json +28 -1
  151. data/server/node_modules/cradle/test/helpers/seed.js +14 -5
  152. data/server/node_modules/cradle/test/response-test.js +1 -1
  153. data/server/node_modules/express/History.md +16 -0
  154. data/server/node_modules/express/bin/express +7 -6
  155. data/server/node_modules/express/lib-cov/application.js +510 -0
  156. data/server/node_modules/express/lib-cov/express.js +65 -0
  157. data/server/node_modules/express/lib-cov/middleware.js +54 -0
  158. data/server/node_modules/express/lib-cov/request.js +225 -0
  159. data/server/node_modules/express/lib-cov/response.js +611 -0
  160. data/server/node_modules/express/lib-cov/router/collection.js +40 -0
  161. data/server/node_modules/express/lib-cov/router/index.js +515 -0
  162. data/server/node_modules/express/lib-cov/router/methods.js +9 -0
  163. data/server/node_modules/express/lib-cov/router/route.js +68 -0
  164. data/server/node_modules/express/lib-cov/utils.js +151 -0
  165. data/server/node_modules/express/lib-cov/view.js +81 -0
  166. data/server/node_modules/express/lib/express.js +1 -1
  167. data/server/node_modules/express/lib/http.js +1 -2
  168. data/server/node_modules/express/lib/request.js +2 -2
  169. data/server/node_modules/express/lib/router/methods.js +10 -1
  170. data/server/node_modules/express/node_modules/connect/lib/connect.js +1 -1
  171. data/server/node_modules/express/node_modules/connect/lib/http.js +3 -2
  172. data/server/node_modules/express/node_modules/connect/lib/middleware/limit.js +0 -2
  173. data/server/node_modules/express/node_modules/connect/lib/middleware/session.js +1 -2
  174. data/server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md +42 -25
  175. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js +1 -0
  176. data/server/node_modules/express/node_modules/connect/node_modules/formidable/package.json +14 -3
  177. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js +11 -0
  178. data/server/node_modules/express/node_modules/connect/package.json +35 -7
  179. data/server/node_modules/express/node_modules/mime/package.json +30 -8
  180. data/server/node_modules/express/node_modules/mkdirp/README.markdown +35 -2
  181. data/server/node_modules/express/node_modules/mkdirp/examples/pow.js +1 -1
  182. data/server/node_modules/express/node_modules/mkdirp/index.js +72 -13
  183. data/server/node_modules/express/node_modules/mkdirp/package.json +39 -21
  184. data/server/node_modules/express/node_modules/mkdirp/test/chmod.js +38 -0
  185. data/server/node_modules/express/node_modules/mkdirp/test/clobber.js +37 -0
  186. data/server/node_modules/express/node_modules/mkdirp/test/perm.js +32 -0
  187. data/server/node_modules/express/node_modules/mkdirp/test/perm_sync.js +39 -0
  188. data/server/node_modules/express/node_modules/mkdirp/test/sync.js +27 -0
  189. data/server/node_modules/express/node_modules/mkdirp/test/umask.js +28 -0
  190. data/server/node_modules/express/node_modules/mkdirp/test/umask_sync.js +27 -0
  191. data/server/node_modules/express/node_modules/qs/History.md +10 -0
  192. data/server/node_modules/express/node_modules/qs/Readme.md +9 -2
  193. data/server/node_modules/express/node_modules/qs/examples.js +3 -0
  194. data/server/node_modules/express/node_modules/qs/lib/querystring.js +8 -6
  195. data/server/node_modules/express/node_modules/qs/package.json +26 -8
  196. data/server/node_modules/express/node_modules/qs/test/parse.js +13 -1
  197. data/server/node_modules/express/node_modules/qs/test/stringify.js +45 -37
  198. data/server/node_modules/express/package.json +55 -16
  199. data/server/node_modules/express/test.js +41 -0
  200. data/server/node_modules/knox/package.json +26 -4
  201. data/server/node_modules/node-uuid/package.json +40 -11
  202. data/server/node_modules/node-uuid/test/test.js +1 -1
  203. data/server/node_modules/nodemon/README.md +120 -0
  204. data/server/node_modules/nodemon/nodemon.js +518 -0
  205. data/server/node_modules/nodemon/nodemonignore.example +11 -0
  206. data/server/node_modules/nodemon/package.json +49 -0
  207. data/server/node_modules/restler/README.md +144 -94
  208. data/server/node_modules/restler/lib/multipartform.js +2 -0
  209. data/server/node_modules/restler/lib/restler.js +218 -61
  210. data/server/node_modules/restler/package.json +35 -8
  211. data/server/node_modules/restler/test/all.js +6 -1
  212. data/server/node_modules/restler/test/restler.js +624 -118
  213. data/server/package.json +14 -10
  214. data/server/web.coffee +64 -0
  215. data/server/web.js +15 -3
  216. metadata +170 -57
  217. data/server/index.js +0 -14
  218. data/server/node_modules/connect-form/LICENSE +0 -22
  219. data/server/node_modules/connect-form/index.js +0 -100
  220. data/server/node_modules/connect-form/node_modules/formidable/test/fast/test-incoming-form.js +0 -45
  221. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/no-filename/generic.http +0 -13
  222. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +0 -26
  223. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http +0 -24
  224. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http +0 -23
  225. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +0 -24
  226. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http +0 -22
  227. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http +0 -22
  228. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http +0 -22
  229. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/multi_video.upload +0 -0
  230. data/server/node_modules/cradle/Makefile +0 -10
  231. data/server/node_modules/cradle/test/cradle-test.js +0 -650
  232. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http +0 -13
  233. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +0 -26
  234. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http +0 -24
  235. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http +0 -23
  236. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +0 -24
  237. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http +0 -22
  238. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http +0 -22
  239. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http +0 -22
  240. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multi_video.upload +0 -0
  241. data/server/node_modules/express/node_modules/connect/test.js +0 -52
  242. data/server/node_modules/express/testing/foo/app.js +0 -35
  243. data/server/node_modules/express/testing/foo/package.json +0 -9
  244. data/server/node_modules/express/testing/foo/public/stylesheets/style.css +0 -8
  245. data/server/node_modules/express/testing/foo/routes/index.js +0 -10
  246. data/server/node_modules/express/testing/foo/views/index.jade +0 -2
  247. data/server/node_modules/express/testing/foo/views/layout.jade +0 -6
  248. data/server/node_modules/express/testing/index.js +0 -43
  249. data/server/node_modules/express/testing/public/test.txt +0 -2971
  250. data/server/node_modules/express/testing/views/page.html +0 -1
  251. data/server/node_modules/express/testing/views/page.jade +0 -3
  252. data/server/node_modules/express/testing/views/test.md +0 -1
  253. data/server/node_modules/express/testing/views/user/index.jade +0 -1
  254. data/server/node_modules/express/testing/views/user/list.jade +0 -1
  255. data/server/node_modules/knox/lib/knox/mime/index.js +0 -308
  256. data/server/node_modules/knox/lib/knox/mime/test.js +0 -59
  257. data/server/node_modules/node-uuid/test/benchmark-native +0 -0
  258. data/server/node_modules/on/index.js +0 -13
  259. data/server/node_modules/restler/test/test_helper.js +0 -163
  260. data/server/node_modules/spawner/index.js +0 -106
data/lib/vulcan/cli.rb CHANGED
@@ -37,13 +37,13 @@ if no COMMAND is specified, a sensible default will be chosen for you
37
37
  prefix = options[:prefix] || "/app/vendor/#{name}"
38
38
  command = options[:command] || "./configure --prefix #{prefix} && make install"
39
39
  deps = options[:deps] || []
40
- server = URI.parse(ENV["MAKE_SERVER"] || "http://#{app}.herokuapp.com")
40
+ server = URI.parse(ENV["VULCAN_HOST"] || "http://#{app}.herokuapp.com")
41
41
 
42
42
  Dir.mktmpdir do |dir|
43
- puts ">> Packaging local directory"
44
- %x{ cd #{source} && tar czvf #{dir}/input.tgz . 2>&1 }
43
+ action "Packaging local directory" do
44
+ %x{ cd #{source} && tar czvf #{dir}/input.tgz . 2>&1 }
45
+ end
45
46
 
46
- puts ">> Uploading code for build"
47
47
  File.open("#{dir}/input.tgz", "r") do |input|
48
48
  request = Net::HTTP::Post::Multipart.new "/make",
49
49
  "code" => UploadIO.new(input, "application/octet-stream", "input.tgz"),
@@ -52,11 +52,13 @@ if no COMMAND is specified, a sensible default will be chosen for you
52
52
  "secret" => config[:secret],
53
53
  "deps" => deps
54
54
 
55
- puts ">> Building with: #{command}"
55
+ print "Uploading source package... "
56
56
  response = Net::HTTP.start(server.host, server.port) do |http|
57
57
  http.request(request) do |response|
58
58
  response.read_body do |chunk|
59
- print chunk if options[:verbose]
59
+ unless chunk == 0.chr + "\n"
60
+ print chunk if options[:verbose]
61
+ end
60
62
  end
61
63
  end
62
64
  end
@@ -125,20 +127,28 @@ update the build server
125
127
  file.puts ".env"
126
128
  end
127
129
 
128
- %x{ env BUNDLE_GEMFILE= heroku config:remove BUILDPACK_URL 2>&1 }
129
-
130
130
  system "git add . >/dev/null"
131
131
  system "git commit -m commit >/dev/null"
132
132
  system "git push heroku -f master"
133
133
 
134
- %x{ env BUNDLE_GEMFILE= heroku config:add SECRET=#{config[:secret]} SPAWN_ENV=heroku HEROKU_APP=#{config[:app]} HEROKU_API_KEY=#{api_key} NODE_PATH=lib 2>&1 }
135
- %x{ env BUNDLE_GEMFILE= heroku addons:add cloudant:oxygen }
134
+ heroku "config:add SECRET=#{config[:secret]} SPAWN_ENV=heroku HEROKU_APP=#{config[:app]} HEROKU_API_KEY=#{api_key} NODE_PATH=lib"
135
+ heroku "addons:add cloudant:oxygen"
136
136
  end
137
137
  end
138
138
  end
139
139
 
140
140
  private
141
141
 
142
+ def action(message)
143
+ print "#{message}... "
144
+ yield
145
+ puts "done"
146
+ end
147
+
148
+ def heroku(command)
149
+ %x{ env BUNDLE_GEMFILE= heroku #{command} 2>&1 }
150
+ end
151
+
142
152
  def config_file
143
153
  File.expand_path("~/.vulcan")
144
154
  end
@@ -1,5 +1,5 @@
1
1
  module Vulcan
2
2
 
3
- VERSION = "0.6.1"
3
+ VERSION = "0.7.0"
4
4
 
5
5
  end
data/server/Procfile CHANGED
@@ -1 +1 @@
1
- web: node web.js
1
+ web: bin/web
data/server/bin/web ADDED
@@ -0,0 +1,10 @@
1
+ #!/bin/bash
2
+
3
+ ROOT=$(dirname $(dirname $0))
4
+ PATH="node_modules/.bin:$PATH"
5
+
6
+ if [ "${NODE_ENV}" == "production" ]; then
7
+ exec coffee web.coffee
8
+ else
9
+ exec nodemon -w . web.coffee
10
+ fi
@@ -0,0 +1,20 @@
1
+ cradle = require("cradle")
2
+ url = require("url")
3
+
4
+ module.exports.connect = (database, cb) ->
5
+
6
+ if parsed = url.parse(process.env.CLOUDANT_URL)
7
+ if parsed.auth
8
+ options =
9
+ auth:
10
+ username: parsed.auth.split(":")[0]
11
+ password: parsed.auth.split(":")[1]
12
+ else
13
+ options = {}
14
+ else
15
+ options = {}
16
+
17
+ db = new (cradle.Connection)(parsed.hostname, parsed.port or 5984, options).database(database)
18
+ db.create ->
19
+ cb(db) if cb
20
+ db
@@ -0,0 +1,17 @@
1
+ class Logger
2
+
3
+ constructor: (@response, @next, @id) ->
4
+
5
+ info: (subject) ->
6
+ console.log "[#{@id}] #{subject}"
7
+
8
+ error: (subject) ->
9
+ console.log "[#{@id}] ERROR: #{subject}"
10
+ if @next
11
+ @next(subject)
12
+ else
13
+ @response.write(subject)
14
+ @response.send(500)
15
+
16
+ module.exports.init = (response, next, id) ->
17
+ new Logger(response, next, id)
@@ -0,0 +1,10 @@
1
+ events = require("events")
2
+
3
+ module.exports.inject = (object) ->
4
+ object.emitter = events.EventEmitter()
5
+
6
+ object.on = (key, handler) ->
7
+ object.emitter.on key, handler
8
+
9
+ object.emit = ->
10
+ object.emitter.emit arguments
@@ -0,0 +1,65 @@
1
+ events = require("events")
2
+ https = require("https")
3
+ net = require("net")
4
+ qs = require("querystring")
5
+ restler = require("restler")
6
+ spawn = require("child_process").spawn
7
+ tls = require("tls")
8
+
9
+ class Spawner
10
+
11
+ constructor: (env) ->
12
+ @env = env or process.env.SPAWN_ENV or "local"
13
+
14
+ spawn: (command, options) ->
15
+ spawner = this["spawn_#{@env}"]
16
+ spawner command, options
17
+
18
+ spawn_local: (command, options) ->
19
+ args = command.match(/("[^"]*"|[^"]+)(\s+|$)/g)
20
+ command = args.shift().replace(/\s+$/g, "")
21
+ args = args.map (arg) -> arg.match(/"?([^"]*)"?/)[1]
22
+ proc = spawn command, args, env:(options.env || {})
23
+ emitter = new events.EventEmitter()
24
+
25
+ proc.stdout.on "data", (data) -> emitter.emit("data", data)
26
+ proc.stderr.on "data", (data) -> emitter.emit("data", data)
27
+ proc.on "exit", (code) -> emitter.emit("end", code)
28
+ emitter
29
+
30
+ spawn_heroku: (command, options) ->
31
+ api_key = process.env.HEROKU_API_KEY
32
+ app = process.env.HEROKU_APP
33
+ emitter = new events.EventEmitter()
34
+
35
+ data = {}
36
+ data["ps_env[#{key}]"] = "" for key, val of process.env # nullify parent env
37
+ data["ps_env[#{key}]"] = val for key, val of options.env # only add desired env
38
+ data["attach"] = "true"
39
+ data["command"] = command
40
+
41
+ request = restler.post "https://api.heroku.com/apps/#{app}/ps",
42
+ headers:
43
+ "Authorization": new Buffer(":" + api_key).toString("base64")
44
+ "Accept": "application/json"
45
+ "User-Agent": "heroku-gem/2.5"
46
+ data: data
47
+
48
+ request.on "success", (data) ->
49
+ url = require("url").parse(data.rendezvous_url)
50
+ rendezvous = tls.connect url.port, url.hostname, ->
51
+ if rendezvous.authorized
52
+ console.log "valid socket"
53
+ rendezvous.write url.pathname.substring(1) + "\n"
54
+ else
55
+ console.log "invalid socket"
56
+ rendezvous.on "data", (data) -> emitter.emit("data", data) unless data.toString() is "rendezvous\r\n"
57
+ rendezvous.on "end", -> emitter.emit "end"
58
+
59
+ request.on "error", (error) ->
60
+ emitter.emit "error", error
61
+
62
+ emitter
63
+
64
+ module.exports.init = (env) ->
65
+ new Spawner(env)
@@ -0,0 +1 @@
1
+ coffeescript.org
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2009-2012 Jeremy Ashkenas
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,51 @@
1
+
2
+ {
3
+ } } {
4
+ { { } }
5
+ } }{ {
6
+ { }{ } } _____ __ __
7
+ ( }{ }{ { ) / ____| / _|/ _|
8
+ .- { { } { }} -. | | ___ | |_| |_ ___ ___
9
+ ( ( } { } { } } ) | | / _ \| _| _/ _ \/ _ \
10
+ |`-..________ ..-'| | |___| (_) | | | || __/ __/
11
+ | | \_____\___/|_| |_| \___|\___|
12
+ | ;--.
13
+ | (__ \ _____ _ _
14
+ | | ) ) / ____| (_) | |
15
+ | |/ / | (___ ___ _ __ _ _ __ | |_
16
+ | ( / \___ \ / __| '__| | '_ \| __|
17
+ | |/ ____) | (__| | | | |_) | |_
18
+ | | |_____/ \___|_| |_| .__/ \__|
19
+ `-.._________..-' | |
20
+ |_|
21
+
22
+
23
+ CoffeeScript is a little language that compiles into JavaScript.
24
+
25
+ Install Node.js, and then the CoffeeScript compiler:
26
+ sudo bin/cake install
27
+
28
+ Or, if you have the Node Package Manager installed:
29
+ npm install -g coffee-script
30
+ (Leave off the -g if you don't wish to install globally.)
31
+
32
+ Execute a script:
33
+ coffee /path/to/script.coffee
34
+
35
+ Compile a script:
36
+ coffee -c /path/to/script.coffee
37
+
38
+ For documentation, usage, and examples, see:
39
+ http://coffeescript.org/
40
+
41
+ To suggest a feature, report a bug, or general discussion:
42
+ http://github.com/jashkenas/coffee-script/issues/
43
+
44
+ If you'd like to chat, drop by #coffeescript on Freenode IRC,
45
+ or on webchat.freenode.net.
46
+
47
+ The source repository:
48
+ git://github.com/jashkenas/coffee-script.git
49
+
50
+ All contributors are listed here:
51
+ http://github.com/jashkenas/coffee-script/contributors
@@ -0,0 +1,78 @@
1
+ require 'rubygems'
2
+ require 'erb'
3
+ require 'fileutils'
4
+ require 'rake/testtask'
5
+ require 'json'
6
+
7
+ desc "Build the documentation page"
8
+ task :doc do
9
+ source = 'documentation/index.html.erb'
10
+ child = fork { exec "bin/coffee -bcw -o documentation/js documentation/coffee/*.coffee" }
11
+ at_exit { Process.kill("INT", child) }
12
+ Signal.trap("INT") { exit }
13
+ loop do
14
+ mtime = File.stat(source).mtime
15
+ if !@mtime || mtime > @mtime
16
+ rendered = ERB.new(File.read(source)).result(binding)
17
+ File.open('index.html', 'w+') {|f| f.write(rendered) }
18
+ end
19
+ @mtime = mtime
20
+ sleep 1
21
+ end
22
+ end
23
+
24
+ desc "Build coffee-script-source gem"
25
+ task :gem do
26
+ require 'rubygems'
27
+ require 'rubygems/package'
28
+
29
+ gemspec = Gem::Specification.new do |s|
30
+ s.name = 'coffee-script-source'
31
+ s.version = JSON.parse(File.read('package.json'))["version"]
32
+ s.date = Time.now.strftime("%Y-%m-%d")
33
+
34
+ s.homepage = "http://jashkenas.github.com/coffee-script/"
35
+ s.summary = "The CoffeeScript Compiler"
36
+ s.description = <<-EOS
37
+ CoffeeScript is a little language that compiles into JavaScript.
38
+ Underneath all of those embarrassing braces and semicolons,
39
+ JavaScript has always had a gorgeous object model at its heart.
40
+ CoffeeScript is an attempt to expose the good parts of JavaScript
41
+ in a simple way.
42
+ EOS
43
+
44
+ s.files = [
45
+ 'lib/coffee_script/coffee-script.js',
46
+ 'lib/coffee_script/source.rb'
47
+ ]
48
+
49
+ s.authors = ['Jeremy Ashkenas']
50
+ s.email = 'jashkenas@gmail.com'
51
+ s.rubyforge_project = 'coffee-script-source'
52
+ end
53
+
54
+ file = File.open("coffee-script-source.gem", "w")
55
+ Gem::Package.open(file, 'w') do |pkg|
56
+ pkg.metadata = gemspec.to_yaml
57
+
58
+ path = "lib/coffee_script/source.rb"
59
+ contents = <<-ERUBY
60
+ module CoffeeScript
61
+ module Source
62
+ def self.bundled_path
63
+ File.expand_path("../coffee-script.js", __FILE__)
64
+ end
65
+ end
66
+ end
67
+ ERUBY
68
+ pkg.add_file_simple(path, 0644, contents.size) do |tar_io|
69
+ tar_io.write(contents)
70
+ end
71
+
72
+ contents = File.read("extras/coffee-script.js")
73
+ path = "lib/coffee_script/coffee-script.js"
74
+ pkg.add_file_simple(path, 0644, contents.size) do |tar_io|
75
+ tar_io.write(contents)
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+
3
+ var path = require('path');
4
+ var fs = require('fs');
5
+ var lib = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');
6
+
7
+ require(lib + '/coffee-script/cake').run();
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+
3
+ var path = require('path');
4
+ var fs = require('fs');
5
+ var lib = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');
6
+
7
+ require(lib + '/coffee-script/command').run();
@@ -0,0 +1,44 @@
1
+ # JavaScriptLint configuration file for CoffeeScript.
2
+
3
+ +no_return_value # function {0} does not always return a value
4
+ +duplicate_formal # duplicate formal argument {0}
5
+ -equal_as_assign # test for equality (==) mistyped as assignment (=)?{0}
6
+ +var_hides_arg # variable {0} hides argument
7
+ +redeclared_var # redeclaration of {0} {1}
8
+ -anon_no_return_value # anonymous function does not always return a value
9
+ +missing_semicolon # missing semicolon
10
+ +meaningless_block # meaningless block; curly braces have no impact
11
+ -comma_separated_stmts # multiple statements separated by commas (use semicolons?)
12
+ +unreachable_code # unreachable code
13
+ +missing_break # missing break statement
14
+ -missing_break_for_last_case # missing break statement for last case in switch
15
+ -comparison_type_conv # comparisons against null, 0, true, false, or an empty string allowing implicit type conversion (use === or !==)
16
+ -inc_dec_within_stmt # increment (++) and decrement (--) operators used as part of greater statement
17
+ -useless_void # use of the void type may be unnecessary (void is always undefined)
18
+ +multiple_plus_minus # unknown order of operations for successive plus (e.g. x+++y) or minus (e.g. x---y) signs
19
+ +use_of_label # use of label
20
+ -block_without_braces # block statement without curly braces
21
+ +leading_decimal_point # leading decimal point may indicate a number or an object member
22
+ +trailing_decimal_point # trailing decimal point may indicate a number or an object member
23
+ +octal_number # leading zeros make an octal number
24
+ +nested_comment # nested comment
25
+ +misplaced_regex # regular expressions should be preceded by a left parenthesis, assignment, colon, or comma
26
+ +ambiguous_newline # unexpected end of line; it is ambiguous whether these lines are part of the same statement
27
+ +empty_statement # empty statement or extra semicolon
28
+ -missing_option_explicit # the "option explicit" control comment is missing
29
+ +partial_option_explicit # the "option explicit" control comment, if used, must be in the first script tag
30
+ +dup_option_explicit # duplicate "option explicit" control comment
31
+ +useless_assign # useless assignment
32
+ +ambiguous_nested_stmt # block statements containing block statements should use curly braces to resolve ambiguity
33
+ +ambiguous_else_stmt # the else statement could be matched with one of multiple if statements (use curly braces to indicate intent)
34
+ -missing_default_case # missing default case in switch statement
35
+ +duplicate_case_in_switch # duplicate case in switch statements
36
+ +default_not_at_end # the default case is not at the end of the switch statement
37
+ +legacy_cc_not_understood # couldn't understand control comment using /*@keyword@*/ syntax
38
+ +jsl_cc_not_understood # couldn't understand control comment using /*jsl:keyword*/ syntax
39
+ +useless_comparison # useless comparison; comparing identical expressions
40
+ +with_statement # with statement hides undeclared variables; use temporary variable instead
41
+ +trailing_comma_in_array # extra comma is not recommended in array initializers
42
+ +assign_to_function_call # assignment to a function call
43
+ +parseint_missing_radix # parseInt missing radix parameter
44
+ +lambda_assign_requires_semicolon
@@ -0,0 +1,92 @@
1
+ // Generated by CoffeeScript 1.3.3
2
+ (function() {
3
+ var CoffeeScript, runScripts;
4
+
5
+ CoffeeScript = require('./coffee-script');
6
+
7
+ CoffeeScript.require = require;
8
+
9
+ CoffeeScript["eval"] = function(code, options) {
10
+ var _ref;
11
+ if (options == null) {
12
+ options = {};
13
+ }
14
+ if ((_ref = options.bare) == null) {
15
+ options.bare = true;
16
+ }
17
+ return eval(CoffeeScript.compile(code, options));
18
+ };
19
+
20
+ CoffeeScript.run = function(code, options) {
21
+ if (options == null) {
22
+ options = {};
23
+ }
24
+ options.bare = true;
25
+ return Function(CoffeeScript.compile(code, options))();
26
+ };
27
+
28
+ if (typeof window === "undefined" || window === null) {
29
+ return;
30
+ }
31
+
32
+ CoffeeScript.load = function(url, callback) {
33
+ var xhr;
34
+ xhr = new (window.ActiveXObject || XMLHttpRequest)('Microsoft.XMLHTTP');
35
+ xhr.open('GET', url, true);
36
+ if ('overrideMimeType' in xhr) {
37
+ xhr.overrideMimeType('text/plain');
38
+ }
39
+ xhr.onreadystatechange = function() {
40
+ var _ref;
41
+ if (xhr.readyState === 4) {
42
+ if ((_ref = xhr.status) === 0 || _ref === 200) {
43
+ CoffeeScript.run(xhr.responseText);
44
+ } else {
45
+ throw new Error("Could not load " + url);
46
+ }
47
+ if (callback) {
48
+ return callback();
49
+ }
50
+ }
51
+ };
52
+ return xhr.send(null);
53
+ };
54
+
55
+ runScripts = function() {
56
+ var coffees, execute, index, length, s, scripts;
57
+ scripts = document.getElementsByTagName('script');
58
+ coffees = (function() {
59
+ var _i, _len, _results;
60
+ _results = [];
61
+ for (_i = 0, _len = scripts.length; _i < _len; _i++) {
62
+ s = scripts[_i];
63
+ if (s.type === 'text/coffeescript') {
64
+ _results.push(s);
65
+ }
66
+ }
67
+ return _results;
68
+ })();
69
+ index = 0;
70
+ length = coffees.length;
71
+ (execute = function() {
72
+ var script;
73
+ script = coffees[index++];
74
+ if ((script != null ? script.type : void 0) === 'text/coffeescript') {
75
+ if (script.src) {
76
+ return CoffeeScript.load(script.src, execute);
77
+ } else {
78
+ CoffeeScript.run(script.innerHTML);
79
+ return execute();
80
+ }
81
+ }
82
+ })();
83
+ return null;
84
+ };
85
+
86
+ if (window.addEventListener) {
87
+ addEventListener('DOMContentLoaded', runScripts, false);
88
+ } else {
89
+ attachEvent('onload', runScripts);
90
+ }
91
+
92
+ }).call(this);