spade 0.0.8.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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}"