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,63 +0,0 @@
1
- # Expression conversion under explicit returns.
2
- first = ->
3
- return ('do' for x in [1,2,3])
4
-
5
- second = ->
6
- return ['re' for x in [1,2,3]]
7
-
8
- third = ->
9
- return ('mi' for x in [1,2,3])
10
-
11
- ok first().join(' ') is 'do do do'
12
- ok second()[0].join(' ') is 're re re'
13
- ok third().join(' ') is 'mi mi mi'
14
-
15
-
16
- # Testing returns with multiple branches.
17
- func = ->
18
- if false
19
- for a in b
20
- return c if d
21
- else
22
- "word"
23
-
24
- ok func() is 'word'
25
-
26
-
27
- # And with switches.
28
- func = ->
29
- switch 'a'
30
- when 'a' then 42
31
- else return 23
32
-
33
- eq func(), 42
34
-
35
- # Ensure that we don't wrap Nodes that are "pureStatement" in a closure.
36
- items = [1, 2, 3, "bacon", 4, 5]
37
-
38
- findit = (items) ->
39
- for item in items
40
- return item if item is "bacon"
41
-
42
- ok findit(items) is "bacon"
43
-
44
-
45
- # When a closure wrapper is generated for expression conversion, make sure
46
- # that references to "this" within the wrapper are safely converted as well.
47
- obj =
48
- num: 5
49
- func: ->
50
- this.result = if false
51
- 10
52
- else
53
- "a"
54
- "b"
55
- this.num
56
-
57
- eq obj.num, obj.func()
58
- eq obj.num, obj.result
59
-
60
-
61
- # Multiple semicolon-separated statements in parentheticals.
62
- eq 3, (1; 2; 3)
63
- eq 3, (-> return (1; 2; 3))()
@@ -1,102 +0,0 @@
1
- # Splats
2
- # ------
3
- # note: splats in parameter lists of function definitions are tested in `arguments.coffee`
4
-
5
- # shared identity function
6
- id = (_) -> if arguments.length is 1 then _ else Array::slice.call(arguments)
7
-
8
- test "passing splats to functions", ->
9
- arrayEq [0..4], id id [0..4]...
10
-
11
- fn = (a, b, c..., d) -> [a, b, c, d]
12
- [first, second, others, last] = fn [0..3]..., 4, [5...8]...
13
- eq 0, first
14
- eq 1, second
15
- arrayEq [2..6], others
16
- eq 7, last
17
-
18
-
19
- obj =
20
- name: 'moe'
21
- accessor: (args...) ->
22
- [@name].concat(args).join(' ')
23
- getNames: ->
24
- args = ['jane', 'ted']
25
- @accessor(args...)
26
- index: 0
27
- 0: {method: -> this is obj[0]}
28
-
29
- ok obj.getNames() is 'moe jane ted'
30
- ok obj[obj.index++].method([]...), 'should cache base value'
31
-
32
- #crowd = [
33
- # contenders...
34
- # "Mighty Mouse"
35
- #]
36
- #
37
- #bests = [
38
- # "Mighty Mouse"
39
- # contenders.slice(0, 4)...
40
- #]
41
- #
42
- #ok crowd[0] is contenders[0]
43
- #ok crowd[10] is "Mighty Mouse"
44
- #
45
- #ok bests[1] is contenders[0]
46
- #ok bests[4] is contenders[3]
47
-
48
-
49
- # Finally, splats with super() within classes.
50
-
51
- class Parent
52
- meth: (args...) ->
53
- args
54
-
55
- class Child extends Parent
56
- meth: ->
57
- nums = [3, 2, 1]
58
- super nums...
59
-
60
- ok (new Child).meth().join(' ') is '3 2 1'
61
-
62
-
63
- # Functions with splats being called with too few arguments.
64
- pen = null
65
- method = (first, variable..., penultimate, ultimate) ->
66
- pen = penultimate
67
-
68
- method 1, 2, 3, 4, 5, 6, 7, 8, 9
69
- ok pen is 8
70
-
71
- method 1, 2, 3
72
- ok pen is 2
73
-
74
- method 1, 2
75
- ok pen is 2
76
-
77
-
78
- # Array splat expansions with assigns.
79
- nums = [1, 2, 3]
80
- list = [a = 0, nums..., b = 4]
81
- ok a is 0
82
- ok b is 4
83
- ok list.join(' ') is '0 1 2 3 4'
84
-
85
-
86
- # Splat on a line by itself is invalid.
87
- failed = true
88
- try
89
- CoffeeScript.compile "x 'a'\n...\n"
90
- failed = false
91
- catch err
92
- ok failed
93
-
94
-
95
- # multiple generated references
96
- (->
97
- a = {b: []}
98
- a.b[true] = -> this == a.b
99
- c = 0
100
- d = []
101
- ok a.b[0<++c<2] d...
102
- )()
@@ -1,118 +0,0 @@
1
- eq '(((dollars)))', '\(\(\(dollars\)\)\)'
2
- eq 'one two three', "one
3
- two
4
- three"
5
- eq "four five", 'four
6
-
7
- five'
8
-
9
- #647
10
- eq "''Hello, World\\''", '''
11
- '\'Hello, World\\\''
12
- '''
13
- eq '""Hello, World\\""', """
14
- "\"Hello, World\\\""
15
- """
16
- eq 'Hello, World\n', '''
17
- Hello, World\
18
-
19
- '''
20
-
21
-
22
- hello = 'Hello'
23
- world = 'World'
24
- ok '#{hello} #{world}!' is '#{hello} #{world}!'
25
- ok "#{hello} #{world}!" is 'Hello World!'
26
- ok "[#{hello}#{world}]" is '[HelloWorld]'
27
- ok "#{hello}##{world}" is 'Hello#World'
28
- ok "Hello #{ 1 + 2 } World" is 'Hello 3 World'
29
- ok "#{hello} #{ 1 + 2 } #{world}" is "Hello 3 World"
30
-
31
-
32
- [s, t, r, i, n, g] = ['s', 't', 'r', 'i', 'n', 'g']
33
- ok "#{s}#{t}#{r}#{i}#{n}#{g}" is 'string'
34
- ok "\#{s}\#{t}\#{r}\#{i}\#{n}\#{g}" is '#{s}#{t}#{r}#{i}#{n}#{g}'
35
- ok "\#{string}" is '#{string}'
36
-
37
-
38
- ok "\#{Escaping} first" is '#{Escaping} first'
39
- ok "Escaping \#{in} middle" is 'Escaping #{in} middle'
40
- ok "Escaping \#{last}" is 'Escaping #{last}'
41
-
42
-
43
- ok "##" is '##'
44
- ok "#{}" is ''
45
- ok "#{}A#{} #{} #{}B#{}" is 'A B'
46
- ok "\\\#{}" is '\\#{}'
47
-
48
-
49
- ok "I won ##{20} last night." is 'I won #20 last night.'
50
- ok "I won ##{'#20'} last night." is 'I won ##20 last night.'
51
-
52
-
53
- ok "#{hello + world}" is 'HelloWorld'
54
- ok "#{hello + ' ' + world + '!'}" is 'Hello World!'
55
-
56
-
57
- list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
58
- ok "values: #{list.join(', ')}, length: #{list.length}." is 'values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, length: 10.'
59
- ok "values: #{list.join ' '}" is 'values: 0 1 2 3 4 5 6 7 8 9'
60
-
61
-
62
- obj = {
63
- name: 'Joe'
64
- hi: -> "Hello #{@name}."
65
- cya: -> "Hello #{@name}.".replace('Hello','Goodbye')
66
- }
67
- ok obj.hi() is "Hello Joe."
68
- ok obj.cya() is "Goodbye Joe."
69
-
70
-
71
- ok "With #{"quotes"}" is 'With quotes'
72
- ok 'With #{"quotes"}' is 'With #{"quotes"}'
73
-
74
- ok "Where is #{obj["name"] + '?'}" is 'Where is Joe?'
75
-
76
- ok "Where is #{"the nested #{obj["name"]}"}?" is 'Where is the nested Joe?'
77
- ok "Hello #{world ? "#{hello}"}" is 'Hello World'
78
-
79
- ok "Hello #{"#{"#{obj["name"]}" + '!'}"}" is 'Hello Joe!'
80
-
81
-
82
- a = """
83
- Hello #{ "Joe" }
84
- """
85
- ok a is "Hello Joe"
86
-
87
-
88
- a = 1
89
- b = 2
90
- c = 3
91
- ok "#{a}#{b}#{c}" is '123'
92
-
93
-
94
- result = null
95
- stash = (str) -> result = str
96
- stash "a #{ ('aa').replace /a/g, 'b' } c"
97
- ok result is 'a bb c'
98
-
99
-
100
- foo = "hello"
101
- ok "#{foo.replace("\"", "")}" is 'hello'
102
-
103
-
104
- eq 'multiline nested "interpolations" work', """multiline #{
105
- "nested #{
106
- ok true
107
- "\"interpolations\""
108
- }"
109
- } work"""
110
-
111
-
112
- # Issue #923: Tricky interpolation.
113
- eq "#{ "{" }", "{"
114
-
115
- eq "#{ '#{}}' } }", '#{}} }'
116
-
117
- eq "#{"'#{ ({a: "b#{1}"}['a']) }'"}", "'b1'"
118
-
@@ -1,103 +0,0 @@
1
- num = 10
2
-
3
- result = switch num
4
- when 5 then false
5
- when 'a'
6
- true
7
- true
8
- false
9
- when 10 then true
10
-
11
-
12
- # Mid-switch comment with whitespace
13
- # and multi line
14
- when 11 then false
15
- else false
16
-
17
- ok result
18
-
19
-
20
- func = (num) ->
21
- switch num
22
- when 2, 4, 6
23
- true
24
- when 1, 3, 5
25
- false
26
-
27
- ok func(2)
28
- ok func(6)
29
- ok !func(3)
30
- eq func(8), undefined
31
-
32
-
33
- # Ensure that trailing switch elses don't get rewritten.
34
- result = false
35
- switch "word"
36
- when "one thing"
37
- doSomething()
38
- else
39
- result = true unless false
40
-
41
- ok result
42
-
43
- result = false
44
- switch "word"
45
- when "one thing"
46
- doSomething()
47
- when "other thing"
48
- doSomething()
49
- else
50
- result = true unless false
51
-
52
- ok result
53
-
54
-
55
- # Should be able to handle switches sans-condition.
56
- result = switch
57
- when null then 0
58
- when !1 then 1
59
- when '' not of {''} then 2
60
- when [] not instanceof Array then 3
61
- when true is false then 4
62
- when 'x' < 'y' > 'z' then 5
63
- when 'a' in ['b', 'c'] then 6
64
- when 'd' in (['e', 'f']) then 7
65
- else ok
66
-
67
- eq result, ok
68
-
69
-
70
- # Should be able to use "@properties" within the switch clause.
71
- obj = {
72
- num: 101
73
- func: ->
74
- switch @num
75
- when 101 then '101!'
76
- else 'other'
77
- }
78
-
79
- ok obj.func() is '101!'
80
-
81
-
82
- # Should be able to use "@properties" within the switch cases.
83
- obj = {
84
- num: 101
85
- func: (yesOrNo) ->
86
- result = switch yesOrNo
87
- when yes then @num
88
- else 'other'
89
- result
90
- }
91
-
92
- ok obj.func(yes) is 101
93
-
94
-
95
- # Switch with break as the return value of a loop.
96
- i = 10
97
- results = while i > 0
98
- i--
99
- switch i % 2
100
- when 1 then i
101
- when 0 then break
102
-
103
- eq results.join(', '), '9, , 7, , 5, , 3, , 1, '
@@ -1,71 +0,0 @@
1
- i = 5
2
- list = while i -= 1
3
- i * 2
4
-
5
- ok list.join(' ') is "8 6 4 2"
6
-
7
-
8
- i = 5
9
- list = (i * 3 while i -= 1)
10
-
11
- ok list.join(' ') is "12 9 6 3"
12
-
13
-
14
- i = 5
15
- func = (num) -> i -= num
16
- assert = -> ok i < 5 > 0
17
-
18
- results = while func 1
19
- assert()
20
- i
21
-
22
- ok results.join(' ') is '4 3 2 1'
23
-
24
-
25
- i = 10
26
- results = while i -= 1 when i % 2 is 0
27
- i * 2
28
-
29
- ok results.join(' ') is '16 12 8 4'
30
-
31
-
32
- value = false
33
- i = 0
34
- results = until value
35
- value = true if i is 5
36
- i += 1
37
-
38
- ok i is 6
39
-
40
-
41
- # And, the loop form of while.
42
- i = 5
43
- list = []
44
- loop
45
- i -= 1
46
- break if i is 0
47
- list.push i * 2
48
-
49
- ok list.join(' ') is '8 6 4 2'
50
-
51
-
52
- #759: `if` within `while` condition
53
- 2 while if 1 then 0
54
-
55
-
56
- # While over break.
57
- i = 0
58
- result = while i < 10
59
- i++
60
- break
61
-
62
- arrayEq result, []
63
-
64
-
65
- # While over continue.
66
- i = 0
67
- result = while i < 10
68
- i++
69
- continue
70
-
71
- arrayEq result, []