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,181 +0,0 @@
1
- # Conditionals
2
- # ------------
3
-
4
- # shared identity function
5
- id = (_) -> if arguments.length is 1 then _ else Array::slice.call(arguments)
6
-
7
- #### Basic Conditionals
8
-
9
- test "basic conditionals", ->
10
- if false
11
- ok false
12
- else if false
13
- ok false
14
- else
15
- ok true
16
-
17
- if true
18
- ok true
19
- else if true
20
- ok false
21
- else
22
- ok true
23
-
24
- unless true
25
- ok false
26
- else unless true
27
- ok false
28
- else
29
- ok true
30
-
31
- unless false
32
- ok true
33
- else unless false
34
- ok false
35
- else
36
- ok true
37
-
38
- test "single-line conditional", ->
39
- if false then ok false else ok true
40
- unless false then ok true else ok false
41
-
42
- test "nested conditionals", ->
43
- nonce = {}
44
- eq nonce, (if true
45
- unless false
46
- if false then false else
47
- if true
48
- nonce)
49
-
50
- test "nested single-line conditionals", ->
51
- nonce = {}
52
-
53
- a = if false then undefined else b = if 0 then undefined else nonce
54
- eq nonce, a
55
- eq nonce, b
56
-
57
- c = if false then undefined else (if 0 then undefined else nonce)
58
- eq nonce, c
59
-
60
- d = if true then id(if false then undefined else nonce)
61
- eq nonce, d
62
-
63
- test "empty conditional bodies", ->
64
- eq undefined, (if false
65
- else if false
66
- else)
67
-
68
- test "conditional bodies containing only comments", ->
69
- eq undefined, (if true
70
- ###
71
- block comment
72
- ###
73
- else
74
- # comment
75
- )
76
-
77
- eq undefined, (if false
78
- # comment
79
- else if true
80
- ###
81
- block comment
82
- ###
83
- else)
84
-
85
- test "return value of if-else is from the proper body", ->
86
- nonce = {}
87
- eq nonce, if false then undefined else nonce
88
-
89
- test "return value of unless-else is from the proper body", ->
90
- nonce = {}
91
- eq nonce, unless true then undefined else nonce
92
-
93
-
94
- #### Interactions With Functions
95
-
96
- test "single-line function definition with single-line conditional", ->
97
- fn = -> if 1 < 0.5 then 1 else -1
98
- ok fn() is -1
99
-
100
- test "function resturns conditional value with no `else`", ->
101
- fn = ->
102
- return if false then true
103
- eq undefined, fn()
104
-
105
- test "function returns a conditional value", ->
106
- a = {}
107
- fnA = ->
108
- return if false then undefined else a
109
- eq a, fnA()
110
-
111
- b = {}
112
- fnB = ->
113
- return unless false then b else undefined
114
- eq b, fnB()
115
-
116
- test "passing a conditional value to a function", ->
117
- nonce = {}
118
- eq nonce, id if false then undefined else nonce
119
-
120
- test "unmatched `then` should catch implicit calls", ->
121
- a = 0
122
- trueFn = -> true
123
- if trueFn undefined then a += 1
124
- eq 1, a
125
-
126
-
127
- #### if-to-ternary
128
-
129
- test "if-to-ternary with instanceof requires parentheses", ->
130
- nonce = {}
131
- eq nonce, (if {} instanceof Object
132
- nonce
133
- else
134
- undefined)
135
-
136
- test "if-to-ternary as part of a larger operation requires parentheses", ->
137
- ok 2, 1 + if false then 0 else 1
138
-
139
-
140
- #### Odd Formatting
141
-
142
- test "if-else indented within an assignment", ->
143
- nonce = {}
144
- result =
145
- if false
146
- undefined
147
- else
148
- nonce
149
- eq nonce, result
150
-
151
- test "suppressed indentation via assignment", ->
152
- nonce = {}
153
- result =
154
- if false then undefined
155
- else if no then undefined
156
- else if 0 then undefined
157
- else if 1 < 0 then undefined
158
- else id(
159
- if false then undefined
160
- else nonce
161
- )
162
- eq nonce, result
163
-
164
- test "tight formatting with leading `then`", ->
165
- nonce = {}
166
- eq nonce,
167
- if true
168
- then nonce
169
- else undefined
170
-
171
- test "#738", ->
172
- nonce = {}
173
- fn = if true then -> nonce
174
- eq nonce, fn()
175
-
176
- test "#748: trailing reserved identifiers", ->
177
- nonce = {}
178
- obj = delete: true
179
- result = if obj.delete
180
- nonce
181
- eq nonce, result
@@ -1,90 +0,0 @@
1
- # Exceptions
2
- # ----------
3
-
4
- # shared nonce
5
- nonce = {}
6
-
7
-
8
- #### Throw
9
-
10
- test "basic exception throwing", ->
11
- throws (-> throw 'error'), 'error'
12
-
13
-
14
- #### Empty Try/Catch/Finally
15
-
16
- test "try can exist alone", ->
17
- try
18
-
19
- test "try/catch with empty try, empty catch", ->
20
- try
21
- # nothing
22
- catch err
23
- # nothing
24
-
25
- test "single-line try/catch with empty try, empty catch", ->
26
- try catch err
27
-
28
- test "try/finally with empty try, empty finally", ->
29
- try
30
- # nothing
31
- finally
32
- # nothing
33
-
34
- test "single-line try/finally with empty try, empty finally", ->
35
- try finally
36
-
37
- test "try/catch/finally with empty try, empty catch, empty finally", ->
38
- try
39
- catch err
40
- finally
41
-
42
- test "single-line try/catch/finally with empty try, empty catch, empty finally", ->
43
- try catch err then finally
44
-
45
-
46
- #### Try/Catch/Finally as an Expression
47
-
48
- test "return the result of try when no exception is thrown", ->
49
- result = try
50
- nonce
51
- catch err
52
- undefined
53
- finally
54
- undefined
55
- eq nonce, result
56
-
57
- test "single-line result of try when no exception is thrown", ->
58
- result = try nonce catch err then undefined
59
- eq nonce, result
60
-
61
- test "return the result of catch when an exception is thrown", ->
62
- fn = ->
63
- try
64
- throw ->
65
- catch err
66
- nonce
67
- doesNotThrow fn
68
- eq nonce, fn()
69
-
70
- test "single-line result of catch when an exception is thrown", ->
71
- fn = ->
72
- try throw (->) catch err then nonce
73
- doesNotThrow fn
74
- eq nonce, fn()
75
-
76
- test "optional catch", ->
77
- fn = ->
78
- try throw ->
79
- nonce
80
- doesNotThrow fn
81
- eq nonce, fn()
82
-
83
-
84
- #### Try/Catch/Finally Interaction With Other Constructs
85
-
86
- test "try/catch with empty catch as last statement in a function body", ->
87
- fn = ->
88
- try nonce
89
- catch err
90
- eq nonce, fn()
@@ -1,96 +0,0 @@
1
- # Helpers
2
- # -------
3
-
4
- # pull the helpers from `CoffeeScript.helpers` into local variables
5
- {starts, ends, compact, count, merge, extend, flatten, del, last} = CoffeeScript.helpers
6
-
7
-
8
- #### `starts`
9
-
10
- test "the `starts` helper tests if a string starts with another string", ->
11
- ok starts('01234', '012')
12
- ok not starts('01234', '123')
13
-
14
- test "the `starts` helper can take an optional offset", ->
15
- ok starts('01234', '34', 3)
16
- ok not starts('01234', '01', 1)
17
-
18
-
19
- #### `ends`
20
-
21
- test "the `ends` helper tests if a string ends with another string", ->
22
- ok ends('01234', '234')
23
- ok not ends('01234', '012')
24
-
25
- test "the `ends` helper can take an optional offset", ->
26
- ok ends('01234', '012', 2)
27
- ok not ends('01234', '234', 6)
28
-
29
-
30
- #### `compact`
31
-
32
- test "the `compact` helper removes falsey values from an array, preserves truthy ones", ->
33
- allValues = [1, 0, false, obj={}, [], '', ' ', -1, null, undefined, true]
34
- truthyValues = [1, obj, [], ' ', -1, true]
35
- arrayEq truthyValues, compact(allValues)
36
-
37
-
38
- #### `count`
39
-
40
- test "the `count` helper counts the number of occurances of a string in another string", ->
41
- eq 1/0, count('abc', '')
42
- eq 0, count('abc', 'z')
43
- eq 1, count('abc', 'a')
44
- eq 1, count('abc', 'b')
45
- eq 2, count('abcdc', 'c')
46
- eq 2, count('abcdabcd','abc')
47
-
48
-
49
- #### `merge`
50
-
51
- test "the `merge` helper makes a new object with all properties of the objects given as its arguments", ->
52
- ary = [0, 1, 2, 3, 4]
53
- obj = {}
54
- merged = merge obj, ary
55
- ok merged isnt obj
56
- ok merged isnt ary
57
- for own key, val of ary
58
- eq val, merged[key]
59
-
60
-
61
- #### `extend`
62
-
63
- test "the `extend` helper performs a shallow copy", ->
64
- ary = [0, 1, 2, 3]
65
- obj = {}
66
- # should return the object being extended
67
- eq obj, extend(obj, ary)
68
- # should copy the other object's properties as well (obviously)
69
- eq 2, obj[2]
70
-
71
-
72
- #### `flatten`
73
-
74
- test "the `flatten` helper flattens an array", ->
75
- success = yes
76
- (success and= typeof n is 'number') for n in flatten [0, [[[1]], 2], 3, [4]]
77
- ok success
78
-
79
-
80
- #### `del`
81
-
82
- test "the `del` helper deletes a property from an object and returns the deleted value", ->
83
- obj = [0, 1, 2]
84
- eq 1, del(obj, 1)
85
- ok 1 not of obj
86
-
87
-
88
- #### `last`
89
-
90
- test "the `last` helper returns the last item of an array-like object", ->
91
- ary = [0, 1, 2, 3, 4]
92
- eq 4, last(ary)
93
-
94
- test "the `last` helper allows one to specify an optional offset", ->
95
- ary = [0, 1, 2, 3, 4]
96
- eq 2, last(ary, 2)
@@ -1,18 +0,0 @@
1
- # Importing
2
- # ---------
3
-
4
- unless window? or testingBrowser?
5
- test "coffeescript modules can be imported and executed", ->
6
-
7
- magicKey = __filename
8
- magicValue = 0xFFFF
9
-
10
- if global[magicKey]?
11
- if exports?
12
- local = magicValue
13
- exports.method = -> local
14
- else
15
- global[magicKey] = {}
16
- if require?.extensions? or require?.registerExtension?
17
- ok require(__filename).method() is magicValue
18
- delete global[magicKey]
@@ -1,225 +0,0 @@
1
- # Operators
2
- # ---------
3
-
4
- test "binary (2-ary) math operators do not require spaces", ->
5
- a = 1
6
- b = -1
7
- eq +1, a*-b
8
- eq -1, a*+b
9
- eq +1, a/-b
10
- eq -1, a/+b
11
-
12
- test "operators should respect new lines as spaced", ->
13
- a = 123 +
14
- 456
15
- eq 579, a
16
-
17
- b = "1#{2}3" +
18
- "456"
19
- eq '123456', b
20
-
21
- test "multiple operators should space themselves", ->
22
- eq (+ +1), (- -1)
23
-
24
- test "bitwise operators", ->
25
- eq 2, (10 & 3)
26
- eq 11, (10 | 3)
27
- eq 9, (10 ^ 3)
28
- eq 80, (10 << 3)
29
- eq 1, (10 >> 3)
30
- eq 1, (10 >>> 3)
31
- num = 10; eq 2, (num &= 3)
32
- num = 10; eq 11, (num |= 3)
33
- num = 10; eq 9, (num ^= 3)
34
- num = 10; eq 80, (num <<= 3)
35
- num = 10; eq 1, (num >>= 3)
36
- num = 10; eq 1, (num >>>= 3)
37
-
38
- test "`instanceof`", ->
39
- ok new String instanceof String
40
- ok new Boolean instanceof Boolean
41
- # `instanceof` supports negation by prefixing the operator with `not`
42
- ok new Number not instanceof String
43
- ok new Array not instanceof Boolean
44
-
45
-
46
- #### Compound Assignment Operators
47
-
48
- test "boolean operators", ->
49
- nonce = {}
50
-
51
- a = 0
52
- a or= nonce
53
- eq nonce, a
54
-
55
- b = 1
56
- b or= nonce
57
- eq 1, b
58
-
59
- c = 0
60
- c and= nonce
61
- eq 0, c
62
-
63
- d = 1
64
- d and= nonce
65
- eq nonce, d
66
-
67
- # ensure that RHS is treated as a group
68
- e = f = false
69
- e and= f or true
70
- eq false, e
71
-
72
- test "compound assignment as a sub expression", ->
73
- [a, b, c] = [1, 2, 3]
74
- eq 6, (a + b += c)
75
- eq 1, a
76
- eq 5, b
77
- eq 3, c
78
-
79
- # *note: this test could still use refactoring*
80
- test "compound assignment should be careful about caching variables", ->
81
- count = 0
82
- list = []
83
-
84
- list[++count] or= 1
85
- eq 1, list[1]
86
- eq 1, count
87
-
88
- list[++count] ?= 2
89
- eq 2, list[2]
90
- eq 2, count
91
-
92
- list[count++] and= 6
93
- eq 6, list[2]
94
- eq 3, count
95
-
96
- base = ->
97
- ++count
98
- base
99
-
100
- base().four or= 4
101
- eq 4, base.four
102
- eq 4, count
103
-
104
- base().five ?= 5
105
- eq 5, base.five
106
- eq 5, count
107
-
108
- test "compound assignment with implicit objects", ->
109
- obj = undefined
110
- obj ?=
111
- one: 1
112
-
113
- eq 1, obj.one
114
-
115
- obj and=
116
- two: 2
117
-
118
- eq undefined, obj.one
119
- eq 2, obj.two
120
-
121
-
122
- #### `is`,`isnt`,`==`,`!=`
123
-
124
- test "`==` and `is` should be interchangeable", ->
125
- a = b = 1
126
- ok a is 1 and b == 1
127
- ok a == b
128
- ok a is b
129
-
130
- test "`!=` and `isnt` should be interchangeable", ->
131
- a = 0
132
- b = 1
133
- ok a isnt 1 and b != 0
134
- ok a != b
135
- ok a isnt b
136
-
137
-
138
- #### `in`, `of`
139
-
140
- # - `in` should check if an array contains a value using `indexOf`
141
- # - `of` should check if a property is defined on an object using `in`
142
- test "in, of", ->
143
- arr = [1]
144
- ok 0 of arr
145
- ok 1 in arr
146
- # prefixing `not` to `in and `of` should negate them
147
- ok 1 not of arr
148
- ok 0 not in arr
149
-
150
- test "`in` should be able to operate on an array literal", ->
151
- ok 2 in [0, 1, 2, 3]
152
- ok 4 not in [0, 1, 2, 3]
153
- arr = [0, 1, 2, 3]
154
- ok 2 in arr
155
- ok 4 not in arr
156
- # should cache the value used to test the array
157
- arr = [0]
158
- val = 0
159
- ok val++ in arr
160
- ok val++ not in arr
161
- val = 0
162
- ok val++ of arr
163
- ok val++ not of arr
164
-
165
- test "`of` and `in` should be able to operate on instance variables", ->
166
- obj = {
167
- list: [2,3]
168
- in_list: (value) -> value in @list
169
- not_in_list: (value) -> value not in @list
170
- of_list: (value) -> value of @list
171
- not_of_list: (value) -> value not of @list
172
- }
173
- ok obj.in_list 3
174
- ok obj.not_in_list 1
175
- ok obj.of_list 0
176
- ok obj.not_of_list 2
177
-
178
- test "#???: `in` with cache and `__indexOf` should work in argument lists", ->
179
- eq 1, [Object() in Array()].length
180
-
181
- test "#737: `in` should have higher precedence than logical operators", ->
182
- eq 1, 1 in [1] and 1
183
-
184
- test "#768: `in` should preserve evaluation order", ->
185
- share = 0
186
- a = -> share++ if share is 0
187
- b = -> share++ if share is 1
188
- c = -> share++ if share is 2
189
- ok a() not in [b(),c()]
190
- eq 3, share
191
-
192
-
193
- #### Chainable Operators
194
-
195
- test "chainable operators", ->
196
- ok 100 > 10 > 1 > 0 > -1
197
- ok -1 < 0 < 1 < 10 < 100
198
-
199
- test "`is` and `isnt` may be chained", ->
200
- ok true is not false is true is not false
201
- ok 0 is 0 isnt 1 is 1
202
-
203
- test "different comparison operators (`>`,`<`,`is`,etc.) may be combined", ->
204
- ok 1 < 2 > 1
205
- ok 10 < 20 > 2+3 is 5
206
-
207
- test "some chainable operators can be negated by `unless`", ->
208
- ok (true unless 0==10!=100)
209
-
210
- test "operator precedence: `|` lower than `<`", ->
211
- eq 1, 1 | 2 < 3 < 4
212
-
213
- test "preserve references", ->
214
- a = b = c = 1
215
- # `a == b <= c` should become `a === b && b <= c`
216
- # (this test does not seem to test for this)
217
- ok a == b <= c
218
-
219
- test "chained operations should evaluate each value only once", ->
220
- a = 0
221
- ok 1 > a++ < 1
222
-
223
- test "#891: incorrect inversion of chained comparisons", ->
224
- ok (true unless 0 > 1 > 2)
225
- ok (true unless (NaN = 0/0) < 0/0 < NaN)