spade 0.0.8.1 → 0.1.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 (346) hide show
  1. data/.gitignore +0 -1
  2. data/.gitmodules +4 -4
  3. data/README.md +4 -0
  4. data/bin/spade +1 -1
  5. data/lib/spade.rb +0 -51
  6. data/lib/spade/cli.rb +10 -4
  7. data/lib/spade/version.rb +1 -1
  8. data/spade.gemspec +4 -21
  9. metadata +13 -482
  10. data/Gemfile +0 -3
  11. data/Gemfile.lock +0 -40
  12. data/lib/index.js +0 -14
  13. data/lib/node/loader.js +0 -146
  14. data/lib/node/sandbox.js +0 -44
  15. data/lib/spade.js +0 -1130
  16. data/lib/spade/bundle.rb +0 -171
  17. data/lib/spade/cli/base.rb +0 -354
  18. data/lib/spade/cli/owner.rb +0 -45
  19. data/lib/spade/cli/project_generator.rb +0 -58
  20. data/lib/spade/compiler.rb +0 -34
  21. data/lib/spade/console.rb +0 -39
  22. data/lib/spade/context.rb +0 -116
  23. data/lib/spade/credentials.rb +0 -36
  24. data/lib/spade/dependency_installer.rb +0 -103
  25. data/lib/spade/environment.rb +0 -35
  26. data/lib/spade/exports.rb +0 -71
  27. data/lib/spade/installer.rb +0 -40
  28. data/lib/spade/loader.rb +0 -238
  29. data/lib/spade/local.rb +0 -46
  30. data/lib/spade/package.rb +0 -157
  31. data/lib/spade/reactor.rb +0 -159
  32. data/lib/spade/remote.rb +0 -99
  33. data/lib/spade/repository.rb +0 -18
  34. data/lib/spade/server.rb +0 -66
  35. data/lib/spade/shell.rb +0 -36
  36. data/lib/spade/templates/project/LICENSE +0 -19
  37. data/lib/spade/templates/project/README.md +0 -21
  38. data/lib/spade/templates/project/lib/main.js +0 -9
  39. data/lib/spade/templates/project/project.json +0 -31
  40. data/lib/spade/templates/project/tests/main-test.js +0 -8
  41. data/package.json +0 -27
  42. data/packages/coffee-script/.gitignore +0 -8
  43. data/packages/coffee-script/.npmignore +0 -11
  44. data/packages/coffee-script/Cakefile +0 -229
  45. data/packages/coffee-script/LICENSE +0 -22
  46. data/packages/coffee-script/README +0 -47
  47. data/packages/coffee-script/Rakefile +0 -78
  48. data/packages/coffee-script/bin/cake +0 -7
  49. data/packages/coffee-script/bin/coffee +0 -7
  50. data/packages/coffee-script/documentation/coffee/aliases.coffee +0 -11
  51. data/packages/coffee-script/documentation/coffee/array_comprehensions.coffee +0 -2
  52. data/packages/coffee-script/documentation/coffee/block_comment.coffee +0 -6
  53. data/packages/coffee-script/documentation/coffee/cake_tasks.coffee +0 -9
  54. data/packages/coffee-script/documentation/coffee/classes.coffee +0 -25
  55. data/packages/coffee-script/documentation/coffee/comparisons.coffee +0 -5
  56. data/packages/coffee-script/documentation/coffee/conditionals.coffee +0 -13
  57. data/packages/coffee-script/documentation/coffee/default_args.coffee +0 -8
  58. data/packages/coffee-script/documentation/coffee/do.coffee +0 -4
  59. data/packages/coffee-script/documentation/coffee/embedded.coffee +0 -5
  60. data/packages/coffee-script/documentation/coffee/existence.coffee +0 -10
  61. data/packages/coffee-script/documentation/coffee/expressions.coffee +0 -9
  62. data/packages/coffee-script/documentation/coffee/expressions_assignment.coffee +0 -3
  63. data/packages/coffee-script/documentation/coffee/expressions_comprehension.coffee +0 -3
  64. data/packages/coffee-script/documentation/coffee/expressions_try.coffee +0 -7
  65. data/packages/coffee-script/documentation/coffee/fat_arrow.coffee +0 -6
  66. data/packages/coffee-script/documentation/coffee/functions.coffee +0 -2
  67. data/packages/coffee-script/documentation/coffee/heredocs.coffee +0 -7
  68. data/packages/coffee-script/documentation/coffee/heregexes.coffee +0 -11
  69. data/packages/coffee-script/documentation/coffee/interpolation.coffee +0 -6
  70. data/packages/coffee-script/documentation/coffee/multiple_return_values.coffee +0 -7
  71. data/packages/coffee-script/documentation/coffee/object_comprehensions.coffee +0 -4
  72. data/packages/coffee-script/documentation/coffee/object_extraction.coffee +0 -13
  73. data/packages/coffee-script/documentation/coffee/objects_and_arrays.coffee +0 -19
  74. data/packages/coffee-script/documentation/coffee/objects_reserved.coffee +0 -5
  75. data/packages/coffee-script/documentation/coffee/overview.coffee +0 -28
  76. data/packages/coffee-script/documentation/coffee/parallel_assignment.coffee +0 -6
  77. data/packages/coffee-script/documentation/coffee/patterns_and_splats.coffee +0 -7
  78. data/packages/coffee-script/documentation/coffee/prototypes.coffee +0 -3
  79. data/packages/coffee-script/documentation/coffee/range_comprehensions.coffee +0 -2
  80. data/packages/coffee-script/documentation/coffee/scope.coffee +0 -5
  81. data/packages/coffee-script/documentation/coffee/slices.coffee +0 -7
  82. data/packages/coffee-script/documentation/coffee/soaks.coffee +0 -1
  83. data/packages/coffee-script/documentation/coffee/splats.coffee +0 -27
  84. data/packages/coffee-script/documentation/coffee/splices.coffee +0 -5
  85. data/packages/coffee-script/documentation/coffee/strings.coffee +0 -8
  86. data/packages/coffee-script/documentation/coffee/switch.coffee +0 -10
  87. data/packages/coffee-script/documentation/coffee/try.coffee +0 -8
  88. data/packages/coffee-script/documentation/coffee/while.coffee +0 -10
  89. data/packages/coffee-script/documentation/css/docs.css +0 -374
  90. data/packages/coffee-script/documentation/css/idle.css +0 -64
  91. data/packages/coffee-script/documentation/docs/browser.html +0 -25
  92. data/packages/coffee-script/documentation/docs/cake.html +0 -43
  93. data/packages/coffee-script/documentation/docs/coffee-script.html +0 -51
  94. data/packages/coffee-script/documentation/docs/command.html +0 -161
  95. data/packages/coffee-script/documentation/docs/docco.css +0 -186
  96. data/packages/coffee-script/documentation/docs/grammar.html +0 -399
  97. data/packages/coffee-script/documentation/docs/helpers.html +0 -31
  98. data/packages/coffee-script/documentation/docs/index.html +0 -3
  99. data/packages/coffee-script/documentation/docs/lexer.html +0 -490
  100. data/packages/coffee-script/documentation/docs/nodes.html +0 -1338
  101. data/packages/coffee-script/documentation/docs/optparse.html +0 -78
  102. data/packages/coffee-script/documentation/docs/repl.html +0 -24
  103. data/packages/coffee-script/documentation/docs/rewriter.html +0 -251
  104. data/packages/coffee-script/documentation/docs/scope.html +0 -54
  105. data/packages/coffee-script/documentation/docs/underscore.html +0 -295
  106. data/packages/coffee-script/documentation/images/background.png +0 -0
  107. data/packages/coffee-script/documentation/images/banding.png +0 -0
  108. data/packages/coffee-script/documentation/images/button_bg.png +0 -0
  109. data/packages/coffee-script/documentation/images/button_bg_dark.gif +0 -0
  110. data/packages/coffee-script/documentation/images/button_bg_green.gif +0 -0
  111. data/packages/coffee-script/documentation/images/favicon.ico +0 -0
  112. data/packages/coffee-script/documentation/images/logo.png +0 -0
  113. data/packages/coffee-script/documentation/images/screenshadow.png +0 -0
  114. data/packages/coffee-script/documentation/index.html.erb +0 -1607
  115. data/packages/coffee-script/documentation/js/aliases.js +0 -17
  116. data/packages/coffee-script/documentation/js/array_comprehensions.js +0 -6
  117. data/packages/coffee-script/documentation/js/block_comment.js +0 -4
  118. data/packages/coffee-script/documentation/js/cake_tasks.js +0 -10
  119. data/packages/coffee-script/documentation/js/classes.js +0 -44
  120. data/packages/coffee-script/documentation/js/comparisons.js +0 -3
  121. data/packages/coffee-script/documentation/js/conditionals.js +0 -12
  122. data/packages/coffee-script/documentation/js/default_args.js +0 -7
  123. data/packages/coffee-script/documentation/js/do.js +0 -10
  124. data/packages/coffee-script/documentation/js/embedded.js +0 -4
  125. data/packages/coffee-script/documentation/js/existence.js +0 -6
  126. data/packages/coffee-script/documentation/js/expressions.js +0 -15
  127. data/packages/coffee-script/documentation/js/expressions_assignment.js +0 -2
  128. data/packages/coffee-script/documentation/js/expressions_comprehension.js +0 -9
  129. data/packages/coffee-script/documentation/js/expressions_try.js +0 -7
  130. data/packages/coffee-script/documentation/js/fat_arrow.js +0 -9
  131. data/packages/coffee-script/documentation/js/functions.js +0 -7
  132. data/packages/coffee-script/documentation/js/heredocs.js +0 -2
  133. data/packages/coffee-script/documentation/js/heregexes.js +0 -2
  134. data/packages/coffee-script/documentation/js/interpolation.js +0 -4
  135. data/packages/coffee-script/documentation/js/multiple_return_values.js +0 -5
  136. data/packages/coffee-script/documentation/js/object_comprehensions.js +0 -15
  137. data/packages/coffee-script/documentation/js/object_extraction.js +0 -10
  138. data/packages/coffee-script/documentation/js/objects_and_arrays.js +0 -17
  139. data/packages/coffee-script/documentation/js/objects_reserved.js +0 -4
  140. data/packages/coffee-script/documentation/js/overview.js +0 -35
  141. data/packages/coffee-script/documentation/js/parallel_assignment.js +0 -4
  142. data/packages/coffee-script/documentation/js/patterns_and_splats.js +0 -4
  143. data/packages/coffee-script/documentation/js/prototypes.js +0 -3
  144. data/packages/coffee-script/documentation/js/range_comprehensions.js +0 -9
  145. data/packages/coffee-script/documentation/js/scope.js +0 -8
  146. data/packages/coffee-script/documentation/js/slices.js +0 -4
  147. data/packages/coffee-script/documentation/js/soaks.js +0 -2
  148. data/packages/coffee-script/documentation/js/splats.js +0 -15
  149. data/packages/coffee-script/documentation/js/splices.js +0 -3
  150. data/packages/coffee-script/documentation/js/strings.js +0 -2
  151. data/packages/coffee-script/documentation/js/switch.js +0 -23
  152. data/packages/coffee-script/documentation/js/try.js +0 -8
  153. data/packages/coffee-script/documentation/js/while.js +0 -18
  154. data/packages/coffee-script/documentation/vendor/jquery-1.4.2.js +0 -6240
  155. data/packages/coffee-script/examples/beautiful_code/binary_search.coffee +0 -16
  156. data/packages/coffee-script/examples/beautiful_code/quicksort_runtime.coffee +0 -13
  157. data/packages/coffee-script/examples/beautiful_code/regular_expression_matcher.coffee +0 -34
  158. data/packages/coffee-script/examples/blocks.coffee +0 -54
  159. data/packages/coffee-script/examples/code.coffee +0 -167
  160. data/packages/coffee-script/examples/computer_science/README +0 -4
  161. data/packages/coffee-script/examples/computer_science/binary_search.coffee +0 -25
  162. data/packages/coffee-script/examples/computer_science/bubble_sort.coffee +0 -11
  163. data/packages/coffee-script/examples/computer_science/linked_list.coffee +0 -108
  164. data/packages/coffee-script/examples/computer_science/luhn_algorithm.coffee +0 -36
  165. data/packages/coffee-script/examples/computer_science/merge_sort.coffee +0 -19
  166. data/packages/coffee-script/examples/computer_science/selection_sort.coffee +0 -23
  167. data/packages/coffee-script/examples/poignant.coffee +0 -181
  168. data/packages/coffee-script/examples/potion.coffee +0 -206
  169. data/packages/coffee-script/examples/underscore.coffee +0 -682
  170. data/packages/coffee-script/examples/web_server.coffee +0 -12
  171. data/packages/coffee-script/extras/EXTRAS +0 -7
  172. data/packages/coffee-script/extras/coffee-script.js +0 -8
  173. data/packages/coffee-script/extras/jsl.conf +0 -44
  174. data/packages/coffee-script/index.html +0 -2515
  175. data/packages/coffee-script/lib/browser.js +0 -52
  176. data/packages/coffee-script/lib/cake.js +0 -76
  177. data/packages/coffee-script/lib/coffee-script.js +0 -82
  178. data/packages/coffee-script/lib/command.js +0 -263
  179. data/packages/coffee-script/lib/grammar.js +0 -581
  180. data/packages/coffee-script/lib/helpers.js +0 -66
  181. data/packages/coffee-script/lib/index.js +0 -8
  182. data/packages/coffee-script/lib/lexer.js +0 -633
  183. data/packages/coffee-script/lib/nodes.js +0 -2165
  184. data/packages/coffee-script/lib/optparse.js +0 -111
  185. data/packages/coffee-script/lib/parser.js +0 -649
  186. data/packages/coffee-script/lib/repl.js +0 -42
  187. data/packages/coffee-script/lib/rewriter.js +0 -353
  188. data/packages/coffee-script/lib/scope.js +0 -120
  189. data/packages/coffee-script/lib/spade-format.js +0 -45
  190. data/packages/coffee-script/package.json +0 -26
  191. data/packages/coffee-script/src/browser.coffee +0 -43
  192. data/packages/coffee-script/src/cake.coffee +0 -69
  193. data/packages/coffee-script/src/coffee-script.coffee +0 -92
  194. data/packages/coffee-script/src/command.coffee +0 -214
  195. data/packages/coffee-script/src/grammar.coffee +0 -590
  196. data/packages/coffee-script/src/helpers.coffee +0 -56
  197. data/packages/coffee-script/src/index.coffee +0 -2
  198. data/packages/coffee-script/src/lexer.coffee +0 -653
  199. data/packages/coffee-script/src/nodes.coffee +0 -1754
  200. data/packages/coffee-script/src/optparse.coffee +0 -99
  201. data/packages/coffee-script/src/repl.coffee +0 -42
  202. data/packages/coffee-script/src/rewriter.coffee +0 -326
  203. data/packages/coffee-script/src/scope.coffee +0 -94
  204. data/packages/coffee-script/test/arguments.coffee +0 -127
  205. data/packages/coffee-script/test/assignment.coffee +0 -98
  206. data/packages/coffee-script/test/break.coffee +0 -18
  207. data/packages/coffee-script/test/comments.coffee +0 -201
  208. data/packages/coffee-script/test/conditionals.coffee +0 -181
  209. data/packages/coffee-script/test/exception_handling.coffee +0 -90
  210. data/packages/coffee-script/test/helpers.coffee +0 -96
  211. data/packages/coffee-script/test/importing.coffee +0 -18
  212. data/packages/coffee-script/test/operators.coffee +0 -225
  213. data/packages/coffee-script/test/ranges_slices_and_splices.coffee +0 -186
  214. data/packages/coffee-script/test/regular_expressions.coffee +0 -56
  215. data/packages/coffee-script/test/test.html +0 -123
  216. data/packages/coffee-script/test/test_chaining.coffee +0 -77
  217. data/packages/coffee-script/test/test_classes.coffee +0 -372
  218. data/packages/coffee-script/test/test_compilation.coffee +0 -26
  219. data/packages/coffee-script/test/test_comprehensions.coffee +0 -318
  220. data/packages/coffee-script/test/test_existence.coffee +0 -165
  221. data/packages/coffee-script/test/test_functions.coffee +0 -379
  222. data/packages/coffee-script/test/test_heredocs.coffee +0 -111
  223. data/packages/coffee-script/test/test_literals.coffee +0 -270
  224. data/packages/coffee-script/test/test_option_parser.coffee +0 -27
  225. data/packages/coffee-script/test/test_pattern_matching.coffee +0 -162
  226. data/packages/coffee-script/test/test_returns.coffee +0 -63
  227. data/packages/coffee-script/test/test_splats.coffee +0 -102
  228. data/packages/coffee-script/test/test_strings.coffee +0 -118
  229. data/packages/coffee-script/test/test_switch.coffee +0 -103
  230. data/packages/coffee-script/test/test_while.coffee +0 -71
  231. data/packages/ivory/LICENSE.txt +0 -1
  232. data/packages/ivory/README.md +0 -19
  233. data/packages/ivory/lib/buffer.js +0 -111
  234. data/packages/ivory/lib/events.js +0 -137
  235. data/packages/ivory/lib/fs.js +0 -266
  236. data/packages/ivory/lib/main.js +0 -13
  237. data/packages/ivory/lib/path.js +0 -158
  238. data/packages/ivory/lib/ruby/buffer.rb +0 -145
  239. data/packages/ivory/lib/ruby/constants.rb +0 -585
  240. data/packages/ivory/lib/ruby/events.rb +0 -32
  241. data/packages/ivory/lib/ruby/fs.rb +0 -245
  242. data/packages/ivory/lib/ruby/process.rb +0 -28
  243. data/packages/ivory/lib/stream.js +0 -115
  244. data/packages/ivory/lib/util.js +0 -414
  245. data/packages/ivory/package.json +0 -11
  246. data/packages/jquery/main.js +0 -7179
  247. data/packages/jquery/package.json +0 -10
  248. data/packages/json/lib/main.js +0 -14
  249. data/packages/json/package.json +0 -8
  250. data/packages/lproj/README.md +0 -77
  251. data/packages/lproj/examples/demo-app/en.lproj/localized.strings +0 -2
  252. data/packages/lproj/examples/demo-app/fr.lproj/localized.strings +0 -3
  253. data/packages/lproj/examples/demo-app/index.html +0 -8
  254. data/packages/lproj/examples/demo-app/lib/main.js +0 -7
  255. data/packages/lproj/examples/demo-app/package.json +0 -9
  256. data/packages/lproj/lib/main.js +0 -78
  257. data/packages/lproj/lib/strings-format.js +0 -6
  258. data/packages/lproj/package.json +0 -9
  259. data/packages/optparse/README.md +0 -161
  260. data/packages/optparse/TODO +0 -1
  261. data/packages/optparse/examples/browser-test.html +0 -75
  262. data/packages/optparse/examples/nodejs-test.js +0 -90
  263. data/packages/optparse/lib/optparse.js +0 -309
  264. data/packages/optparse/package.json +0 -13
  265. data/packages/optparse/seed.yml +0 -5
  266. data/packages/text/lib/main.js +0 -8
  267. data/packages/text/package.json +0 -9
  268. data/packages/web-file/README.md +0 -7
  269. data/packages/web-file/lib/errors.js +0 -32
  270. data/packages/web-file/lib/file-reader.js +0 -10
  271. data/packages/web-file/lib/file-system.js +0 -234
  272. data/packages/web-file/lib/file-writer.js +0 -10
  273. data/packages/web-file/lib/file.js +0 -9
  274. data/packages/web-file/lib/main.js +0 -34
  275. data/packages/web-file/lib/platform.js +0 -25
  276. data/packages/web-file/lib/ruby/file.rb +0 -252
  277. data/packages/web-file/lib/ruby/file_reader.rb +0 -69
  278. data/packages/web-file/lib/ruby/file_system.rb +0 -134
  279. data/packages/web-file/lib/ruby/file_writer.rb +0 -78
  280. data/packages/web-file/package.json +0 -12
  281. data/packages/web-typed-array/README.md +0 -7
  282. data/packages/web-typed-array/lib/array-buffer-view.js +0 -9
  283. data/packages/web-typed-array/lib/array-buffer.js +0 -7
  284. data/packages/web-typed-array/lib/main.js +0 -33
  285. data/packages/web-typed-array/lib/platform.js +0 -20
  286. data/packages/web-typed-array/lib/ruby/array_buffer.rb +0 -31
  287. data/packages/web-typed-array/lib/ruby/array_buffer_view.rb +0 -130
  288. data/packages/web-typed-array/lib/ruby/typed_array.rb +0 -133
  289. data/packages/web-typed-array/lib/typed-array.js +0 -26
  290. data/packages/web-typed-array/package.json +0 -9
  291. data/spec/cli/build_spec.rb +0 -59
  292. data/spec/cli/install_spec.rb +0 -120
  293. data/spec/cli/installed_spec.rb +0 -55
  294. data/spec/cli/list_spec.rb +0 -75
  295. data/spec/cli/login_spec.rb +0 -76
  296. data/spec/cli/new_spec.rb +0 -5
  297. data/spec/cli/owner_spec.rb +0 -115
  298. data/spec/cli/push_spec.rb +0 -74
  299. data/spec/cli/uninstall_spec.rb +0 -58
  300. data/spec/cli/unpack_spec.rb +0 -73
  301. data/spec/cli/unyank_spec.rb +0 -74
  302. data/spec/cli/update_spec.rb +0 -8
  303. data/spec/cli/yank_spec.rb +0 -74
  304. data/spec/credentials_spec.rb +0 -24
  305. data/spec/fixtures/coffee-1.0.1.pre.spd +0 -0
  306. data/spec/fixtures/core-test-0.4.3.spd +0 -0
  307. data/spec/fixtures/core-test/bin/cot +0 -3
  308. data/spec/fixtures/core-test/lib/main.js +0 -1
  309. data/spec/fixtures/core-test/resources/runner.css +0 -0
  310. data/spec/fixtures/core-test/tests/test.js +0 -1
  311. data/spec/fixtures/ivory-0.0.1.spd +0 -0
  312. data/spec/fixtures/jquery-1.4.3.spd +0 -0
  313. data/spec/fixtures/optparse-1.0.1.spd +0 -0
  314. data/spec/fixtures/package.json +0 -30
  315. data/spec/gauntlet_spec.rb +0 -27
  316. data/spec/javascript/async-test.js +0 -123
  317. data/spec/javascript/compiler/javascript.js +0 -13
  318. data/spec/javascript/compiler/ruby.js +0 -14
  319. data/spec/javascript/loader-test.js +0 -64
  320. data/spec/javascript/normalize-test.js +0 -73
  321. data/spec/javascript/packages-test.js +0 -44
  322. data/spec/javascript/relative-require-test.js +0 -72
  323. data/spec/javascript/require-test.js +0 -117
  324. data/spec/javascript/sandbox/compile.js +0 -37
  325. data/spec/javascript/sandbox/creation.js +0 -44
  326. data/spec/javascript/sandbox/format.js +0 -79
  327. data/spec/javascript/sandbox/misc.js +0 -57
  328. data/spec/javascript/sandbox/preprocessor.js +0 -81
  329. data/spec/javascript/sandbox/require.js +0 -48
  330. data/spec/javascript/sandbox/run-command.js +0 -21
  331. data/spec/javascript/spade/externs.js +0 -14
  332. data/spec/javascript/spade/load-factory.js +0 -15
  333. data/spec/javascript/spade/misc.js +0 -23
  334. data/spec/javascript/spade/ready.js +0 -12
  335. data/spec/javascript/spade/register.js +0 -13
  336. data/spec/javascript_spec.rb +0 -7
  337. data/spec/package_spec.rb +0 -267
  338. data/spec/spec_helper.rb +0 -30
  339. data/spec/support/cli.rb +0 -94
  340. data/spec/support/core_test.rb +0 -59
  341. data/spec/support/fake.rb +0 -44
  342. data/spec/support/fake_gem_server.rb +0 -66
  343. data/spec/support/fake_gemcutter.rb +0 -49
  344. data/spec/support/matchers.rb +0 -31
  345. data/spec/support/path.rb +0 -54
  346. data/test-spade.html +0 -8
@@ -1,45 +0,0 @@
1
- var _ref = require('./lexer'), Lexer = _ref.Lexer, RESERVED = _ref.RESERVED;
2
- var parser = require('./parser').parser, lexer;
3
-
4
- lexer = new Lexer();
5
-
6
- parser.lexer = {
7
- lex: function() {
8
- var tag, _ref;
9
- _ref = this.tokens[this.pos++] || [''];
10
- tag = _ref[0];
11
- this.yytext = _ref[1];
12
- this.yylineno = _ref[2];
13
- return tag;
14
- },
15
- setInput: function(tokens) {
16
- this.tokens = tokens;
17
- this.pos = 0;
18
- return 0;
19
- },
20
- upcomingInput: function() {
21
- return "";
22
- }
23
- };
24
-
25
- parser.yy = require('./nodes');
26
-
27
-
28
- exports.compile = function(code, options) {
29
- if (options === null) {
30
- options = {};
31
- }
32
- try {
33
- return parser.parse(lexer.tokenize(code)).compile(options);
34
- } catch (err) {
35
- if (options.fileName) {
36
- err.message = "In " + options.fileName + ", " + err.message;
37
- }
38
- throw err;
39
- }
40
- };
41
-
42
- exports.compileFormat = function(code) {
43
- return exports.compile(code, {});
44
- };
45
-
@@ -1,26 +0,0 @@
1
- {
2
- "name": "coffee-script",
3
- "description": "Unfancy JavaScript",
4
- "keywords": ["javascript", "language", "coffeescript", "compiler"],
5
- "author": "Jeremy Ashkenas",
6
- "version": "1.0.1-pre",
7
- "licenses": [{
8
- "type": "MIT",
9
- "url": "http://github.com/jashkenas/coffee-script/raw/master/LICENSE"
10
- }],
11
- "engines": {
12
- "node": ">=0.2.5"
13
- },
14
- "directories" : {
15
- "lib" : "./lib"
16
- },
17
- "main" : "./lib/coffee-script",
18
- "bin": {
19
- "coffee": "./bin/coffee",
20
- "cake": "./bin/cake"
21
- },
22
-
23
- "plugin:formats": {
24
- "coffee": "coffee-script/spade-format"
25
- }
26
- }
@@ -1,43 +0,0 @@
1
- # Override exported methods for non-Node.js engines.
2
-
3
- CoffeeScript = require './coffee-script'
4
- CoffeeScript.require = require
5
-
6
- # Use standard JavaScript `eval` to eval code.
7
- CoffeeScript.eval = (code, options) ->
8
- eval CoffeeScript.compile code, options
9
-
10
- # Running code does not provide access to this scope.
11
- CoffeeScript.run = (code, options = {}) ->
12
- options.bare = on
13
- Function(CoffeeScript.compile code, options)()
14
-
15
- # If we're not in a browser environment, we're finished with the public API.
16
- return unless window?
17
-
18
- # Load a remote script from the current domain via XHR.
19
- CoffeeScript.load = (url, options) ->
20
- xhr = new (window.ActiveXObject or XMLHttpRequest)('Microsoft.XMLHTTP')
21
- xhr.open 'GET', url, true
22
- xhr.overrideMimeType 'text/plain' if 'overrideMimeType' of xhr
23
- xhr.onreadystatechange = ->
24
- CoffeeScript.run xhr.responseText, options if xhr.readyState is 4
25
- xhr.send null
26
-
27
- # Activate CoffeeScript in the browser by having it compile and evaluate
28
- # all script tags with a content-type of `text/coffeescript`.
29
- # This happens on page load.
30
- runScripts = ->
31
- for script in document.getElementsByTagName 'script'
32
- if script.type is 'text/coffeescript'
33
- if script.src
34
- CoffeeScript.load script.src
35
- else
36
- CoffeeScript.run script.innerHTML
37
- null
38
-
39
- # Listen for window load, both in browsers and in IE.
40
- if window.addEventListener
41
- addEventListener 'DOMContentLoaded', runScripts, no
42
- else
43
- attachEvent 'onload', runScripts
@@ -1,69 +0,0 @@
1
- # `cake` is a simplified version of [Make](http://www.gnu.org/software/make/)
2
- # ([Rake](http://rake.rubyforge.org/), [Jake](http://github.com/280north/jake))
3
- # for CoffeeScript. You define tasks with names and descriptions in a Cakefile,
4
- # and can call them from the command line, or invoke them from other tasks.
5
- #
6
- # Running `cake` with no arguments will print out a list of all the tasks in the
7
- # current directory's Cakefile.
8
-
9
- # External dependencies.
10
- fs = require 'fs'
11
- path = require 'path'
12
- helpers = require './helpers'
13
- optparse = require './optparse'
14
- CoffeeScript = require './coffee-script'
15
-
16
- # Keep track of the list of defined tasks, the accepted options, and so on.
17
- tasks = {}
18
- options = {}
19
- switches = []
20
- oparse = null
21
-
22
- # Mixin the top-level Cake functions for Cakefiles to use directly.
23
- helpers.extend global,
24
-
25
- # Define a Cake task with a short name, an optional sentence description,
26
- # and the function to run as the action itself.
27
- task: (name, description, action) ->
28
- [action, description] = [description, action] unless action
29
- tasks[name] = {name, description, action}
30
-
31
- # Define an option that the Cakefile accepts. The parsed options hash,
32
- # containing all of the command-line options passed, will be made available
33
- # as the first argument to the action.
34
- option: (letter, flag, description) ->
35
- switches.push [letter, flag, description]
36
-
37
- # Invoke another task in the current Cakefile.
38
- invoke: (name) ->
39
- missingTask name unless tasks[name]
40
- tasks[name].action options
41
-
42
-
43
- # Run `cake`. Executes all of the tasks you pass, in order. Note that Node's
44
- # asynchrony may cause tasks to execute in a different order than you'd expect.
45
- # If no tasks are passed, print the help screen.
46
- exports.run = ->
47
- path.exists 'Cakefile', (exists) ->
48
- throw new Error("Cakefile not found in #{process.cwd()}") unless exists
49
- args = process.argv.slice 2
50
- CoffeeScript.run fs.readFileSync('Cakefile').toString(), fileName: 'Cakefile'
51
- oparse = new optparse.OptionParser switches
52
- return printTasks() unless args.length
53
- options = oparse.parse(args)
54
- invoke arg for arg in options.arguments
55
-
56
- # Display the list of Cake tasks in a format similar to `rake -T`
57
- printTasks = ->
58
- console.log ''
59
- for name, task of tasks
60
- spaces = 20 - name.length
61
- spaces = if spaces > 0 then Array(spaces + 1).join(' ') else ''
62
- desc = if task.description then "# #{task.description}" else ''
63
- console.log "cake #{name}#{spaces} #{desc}"
64
- console.log oparse.help() if switches.length
65
-
66
- # Print an error and exit when attempting to all an undefined task.
67
- missingTask = (task) ->
68
- console.log "No such task: \"#{task}\""
69
- process.exit 1
@@ -1,92 +0,0 @@
1
- # CoffeeScript can be used both on the server, as a command-line compiler based
2
- # on Node.js/V8, or to run CoffeeScripts directly in the browser. This module
3
- # contains the main entry functions for tokenizing, parsing, and compiling
4
- # source CoffeeScript into JavaScript.
5
- #
6
- # If included on a webpage, it will automatically sniff out, compile, and
7
- # execute all scripts present in `text/coffeescript` tags.
8
-
9
- fs = require 'fs'
10
- path = require 'path'
11
- {Lexer,RESERVED} = require './lexer'
12
- {parser} = require './parser'
13
-
14
- # TODO: Remove registerExtension when fully deprecated.
15
- if require.extensions
16
- require.extensions['.coffee'] = (module, filename) ->
17
- content = compile fs.readFileSync filename, 'utf8'
18
- module._compile content, filename
19
- else if require.registerExtension
20
- require.registerExtension '.coffee', (content) -> compile content
21
-
22
- # The current CoffeeScript version number.
23
- exports.VERSION = '1.0.1-pre'
24
-
25
- # Words that cannot be used as identifiers in CoffeeScript code
26
- exports.RESERVED = RESERVED
27
-
28
- # Expose helpers for testing.
29
- exports.helpers = require './helpers'
30
-
31
- # Compile a string of CoffeeScript code to JavaScript, using the Coffee/Jison
32
- # compiler.
33
- exports.compile = compile = (code, options = {}) ->
34
- try
35
- (parser.parse lexer.tokenize code).compile options
36
- catch err
37
- err.message = "In #{options.fileName}, #{err.message}" if options.fileName
38
- throw err
39
-
40
- # Tokenize a string of CoffeeScript code, and return the array of tokens.
41
- exports.tokens = (code, options) ->
42
- lexer.tokenize code, options
43
-
44
- # Parse a string of CoffeeScript code or an array of lexed tokens, and
45
- # return the AST. You can then compile it by calling `.compile()` on the root,
46
- # or traverse it by using `.traverse()` with a callback.
47
- exports.nodes = (source, options) ->
48
- if typeof source is 'string'
49
- parser.parse lexer.tokenize source, options
50
- else
51
- parser.parse source
52
-
53
- # Compile and execute a string of CoffeeScript (on the server), correctly
54
- # setting `__filename`, `__dirname`, and relative `require()`.
55
- exports.run = (code, options) ->
56
- # We want the root module.
57
- root = module
58
- while root.parent
59
- root = root.parent
60
- # Set the filename.
61
- root.filename = fs.realpathSync options.fileName or '.'
62
- # Clear the module cache.
63
- root.moduleCache = {} if root.moduleCache
64
- # Compile.
65
- if path.extname(root.filename) isnt '.coffee' or require.extensions
66
- root._compile compile(code, options), root.filename
67
- else
68
- root._compile code, root.filename
69
-
70
- # Compile and evaluate a string of CoffeeScript (in a Node.js-like environment).
71
- # The CoffeeScript REPL uses this to run the input.
72
- exports.eval = (code, options) ->
73
- __filename = options.fileName
74
- __dirname = path.dirname __filename
75
- eval compile code, options
76
-
77
- # Instantiate a Lexer for our use here.
78
- lexer = new Lexer
79
-
80
- # The real Lexer produces a generic stream of tokens. This object provides a
81
- # thin wrapper around it, compatible with the Jison API. We can then pass it
82
- # directly as a "Jison lexer".
83
- parser.lexer =
84
- lex: ->
85
- [tag, @yytext, @yylineno] = @tokens[@pos++] or ['']
86
- tag
87
- setInput: (@tokens) ->
88
- @pos = 0
89
- upcomingInput: ->
90
- ""
91
-
92
- parser.yy = require './nodes'
@@ -1,214 +0,0 @@
1
- # The `coffee` utility. Handles command-line compilation of CoffeeScript
2
- # into various forms: saved into `.js` files or printed to stdout, piped to
3
- # [JSLint](http://javascriptlint.com/) or recompiled every time the source is
4
- # saved, printed as a token stream or as the syntax tree, or launch an
5
- # interactive REPL.
6
-
7
- # External dependencies.
8
- fs = require 'fs'
9
- path = require 'path'
10
- util = require 'util'
11
- helpers = require './helpers'
12
- optparse = require './optparse'
13
- CoffeeScript = require './coffee-script'
14
- {spawn, exec} = require 'child_process'
15
- {EventEmitter} = require 'events'
16
-
17
- # Allow CoffeeScript to emit Node.js events.
18
- helpers.extend CoffeeScript, new EventEmitter
19
-
20
- printLine = (line) -> process.stdout.write line + '\n'
21
- printWarn = (line) -> process.binding('stdio').writeError line + '\n'
22
-
23
- # The help banner that is printed when `coffee` is called without arguments.
24
- BANNER = '''
25
- Usage: coffee [options] path/to/script.coffee
26
- '''
27
-
28
- # The list of all the valid option flags that `coffee` knows how to handle.
29
- SWITCHES = [
30
- ['-c', '--compile', 'compile to JavaScript and save as .js files']
31
- ['-i', '--interactive', 'run an interactive CoffeeScript REPL']
32
- ['-o', '--output [DIR]', 'set the directory for compiled JavaScript']
33
- ['-j', '--join', 'concatenate the scripts before compiling']
34
- ['-w', '--watch', 'watch scripts for changes, and recompile']
35
- ['-p', '--print', 'print the compiled JavaScript to stdout']
36
- ['-l', '--lint', 'pipe the compiled JavaScript through JSLint']
37
- ['-s', '--stdio', 'listen for and compile scripts over stdio']
38
- ['-e', '--eval', 'compile a string from the command line']
39
- ['-r', '--require [FILE*]', 'require a library before executing your script']
40
- ['-b', '--bare', 'compile without the top-level function wrapper']
41
- ['-t', '--tokens', 'print the tokens that the lexer produces']
42
- ['-n', '--nodes', 'print the parse tree that Jison produces']
43
- [ '--nodejs [ARGS]', 'pass options through to the "node" binary']
44
- ['-v', '--version', 'display CoffeeScript version']
45
- ['-h', '--help', 'display this help message']
46
- ]
47
-
48
- # Top-level objects shared by all the functions.
49
- opts = {}
50
- sources = []
51
- contents = []
52
- optionParser = null
53
-
54
- # Run `coffee` by parsing passed options and determining what action to take.
55
- # Many flags cause us to divert before compiling anything. Flags passed after
56
- # `--` will be passed verbatim to your script as arguments in `process.argv`
57
- exports.run = ->
58
- parseOptions()
59
- return forkNode() if opts.nodejs
60
- return usage() if opts.help
61
- return version() if opts.version
62
- return require './repl' if opts.interactive
63
- return compileStdio() if opts.stdio
64
- return compileScript null, sources[0] if opts.eval
65
- return require './repl' unless sources.length
66
- if opts.run
67
- opts.literals = sources.splice(1).concat opts.literals
68
- process.ARGV = process.argv = process.argv.slice(0, 2).concat opts.literals
69
- compileScripts()
70
-
71
- # Asynchronously read in each CoffeeScript in a list of source files and
72
- # compile them. If a directory is passed, recursively compile all
73
- # '.coffee' extension source files in it and all subdirectories.
74
- compileScripts = ->
75
- for source in sources
76
- base = path.join(source)
77
- compile = (source, topLevel) ->
78
- path.exists source, (exists) ->
79
- throw new Error "File not found: #{source}" unless exists
80
- fs.stat source, (err, stats) ->
81
- if stats.isDirectory()
82
- fs.readdir source, (err, files) ->
83
- for file in files
84
- compile path.join(source, file)
85
- else if topLevel or path.extname(source) is '.coffee'
86
- fs.readFile source, (err, code) ->
87
- if opts.join
88
- contents[sources.indexOf source] = code.toString()
89
- compileJoin() if helpers.compact(contents).length is sources.length
90
- else
91
- compileScript(source, code.toString(), base)
92
- watch source, base if opts.watch and not opts.join
93
- compile source, true
94
-
95
- # Compile a single source script, containing the given code, according to the
96
- # requested options. If evaluating the script directly sets `__filename`,
97
- # `__dirname` and `module.filename` to be correct relative to the script's path.
98
- compileScript = (file, input, base) ->
99
- o = opts
100
- options = compileOptions file
101
- if o.require
102
- require(if helpers.starts(req, '.') then fs.realpathSync(req) else req) for req in o.require
103
- try
104
- t = task = {file, input, options}
105
- CoffeeScript.emit 'compile', task
106
- if o.tokens then printTokens CoffeeScript.tokens t.input
107
- else if o.nodes then printLine CoffeeScript.nodes(t.input).toString().trim()
108
- else if o.run then CoffeeScript.run t.input, t.options
109
- else
110
- t.output = CoffeeScript.compile t.input, t.options
111
- CoffeeScript.emit 'success', task
112
- if o.print then printLine t.output.trim()
113
- else if o.compile then writeJs t.file, t.output, base
114
- else if o.lint then lint t.file, t.output
115
- catch err
116
- CoffeeScript.emit 'failure', err, task
117
- return if CoffeeScript.listeners('failure').length
118
- return printLine err.message if o.watch
119
- printWarn err.stack
120
- process.exit 1
121
-
122
- # Attach the appropriate listeners to compile scripts incoming over **stdin**,
123
- # and write them back to **stdout**.
124
- compileStdio = ->
125
- code = ''
126
- stdin = process.openStdin()
127
- stdin.on 'data', (buffer) ->
128
- code += buffer.toString() if buffer
129
- stdin.on 'end', ->
130
- compileScript null, code
131
-
132
- # After all of the source files are done being read, concatenate and compile
133
- # them together.
134
- compileJoin = ->
135
- code = contents.join '\n'
136
- compileScript "concatenation", code, "concatenation"
137
-
138
- # Watch a source CoffeeScript file using `fs.watchFile`, recompiling it every
139
- # time the file is updated. May be used in combination with other options,
140
- # such as `--lint` or `--print`.
141
- watch = (source, base) ->
142
- fs.watchFile source, {persistent: true, interval: 500}, (curr, prev) ->
143
- return if curr.size is prev.size and curr.mtime.getTime() is prev.mtime.getTime()
144
- fs.readFile source, (err, code) ->
145
- throw err if err
146
- compileScript(source, code.toString(), base)
147
-
148
- # Write out a JavaScript source file with the compiled code. By default, files
149
- # are written out in `cwd` as `.js` files with the same name, but the output
150
- # directory can be customized with `--output`.
151
- writeJs = (source, js, base) ->
152
- filename = path.basename(source, path.extname(source)) + '.js'
153
- srcDir = path.dirname source
154
- baseDir = if base is '.' then srcDir else srcDir.substring base.length
155
- dir = if opts.output then path.join opts.output, baseDir else srcDir
156
- jsPath = path.join dir, filename
157
- compile = ->
158
- js = ' ' if js.length <= 0
159
- fs.writeFile jsPath, js, (err) ->
160
- if err then printLine err.message
161
- else if opts.compile and opts.watch then util.log "compiled #{source}"
162
- path.exists dir, (exists) ->
163
- if exists then compile() else exec "mkdir -p #{dir}", compile
164
-
165
- # Pipe compiled JS through JSLint (requires a working `jsl` command), printing
166
- # any errors or warnings that arise.
167
- lint = (file, js) ->
168
- printIt = (buffer) -> printLine file + ':\t' + buffer.toString().trim()
169
- conf = __dirname + '/../extras/jsl.conf'
170
- jsl = spawn 'jsl', ['-nologo', '-stdin', '-conf', conf]
171
- jsl.stdout.on 'data', printIt
172
- jsl.stderr.on 'data', printIt
173
- jsl.stdin.write js
174
- jsl.stdin.end()
175
-
176
- # Pretty-print a stream of tokens.
177
- printTokens = (tokens) ->
178
- strings = for token in tokens
179
- [tag, value] = [token[0], token[1].toString().replace(/\n/, '\\n')]
180
- "[#{tag} #{value}]"
181
- printLine strings.join(' ')
182
-
183
- # Use the [OptionParser module](optparse.html) to extract all options from
184
- # `process.argv` that are specified in `SWITCHES`.
185
- parseOptions = ->
186
- optionParser = new optparse.OptionParser SWITCHES, BANNER
187
- o = opts = optionParser.parse process.argv.slice 2
188
- o.compile or= !!o.output
189
- o.run = not (o.compile or o.print or o.lint)
190
- o.print = !! (o.print or (o.eval or o.stdio and o.compile))
191
- sources = o.arguments
192
-
193
- # The compile-time options to pass to the CoffeeScript compiler.
194
- compileOptions = (fileName) -> {fileName, bare: opts.bare}
195
-
196
- # Start up a new Node.js instance with the arguments in `--nodejs` passed to
197
- # the `node` binary, preserving the other options.
198
- forkNode = ->
199
- nodeArgs = opts.nodejs.split /\s+/
200
- args = process.argv[1..]
201
- args.splice args.indexOf('--nodejs'), 2
202
- spawn process.execPath, nodeArgs.concat(args),
203
- cwd: process.cwd()
204
- env: process.env
205
- customFds: [0, 1, 2]
206
-
207
- # Print the `--help` usage message and exit. Deprecated switches are not
208
- # shown.
209
- usage = ->
210
- printLine (new optparse.OptionParser SWITCHES, BANNER).help()
211
-
212
- # Print the `--version` message and exit.
213
- version = ->
214
- printLine "CoffeeScript version #{CoffeeScript.VERSION}"