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,159 +0,0 @@
1
- # ==========================================================================
2
- # Project: Spade - CommonJS Runtime
3
- # Copyright: ©2010 Strobe Inc. All rights reserved.
4
- # License: Licened under MIT license (see LICENSE)
5
- # ==========================================================================
6
-
7
- require 'eventmachine'
8
-
9
- module Spade
10
-
11
- # The reactor exposes some API
12
- class Reactor
13
-
14
- attr_reader :timers, :running, :holds, :stopped
15
-
16
- def initialize(ctx)
17
- @timers = []
18
- @running = false
19
- @stopped = false
20
- @holds = 0
21
- end
22
-
23
- # Starts the event loop
24
- def start
25
- return if @running
26
-
27
- @running = true
28
- add_hold # release when finish is called
29
-
30
- EventMachine.run do
31
- @running = true
32
- @timers.each { |t| t.start unless t.running }
33
-
34
- yield if block_given?
35
-
36
- @stopped = true
37
- release_hold
38
- end
39
-
40
- end
41
-
42
- def exit(status=0)
43
- stop_loop
44
- Kernel.exit(status)
45
- end
46
-
47
- def next_tick(&block)
48
- if @running
49
- add_hold
50
- EventMachine.next_tick do
51
- yield
52
- release_hold
53
- end
54
- else
55
- add_timer(0) { yield }
56
- end
57
- end
58
-
59
- ######################################################
60
- ## Holds
61
- ##
62
- ## Prevents the loop from exiting
63
-
64
- def add_hold
65
- @holds = @holds + 1
66
- end
67
-
68
- def release_hold
69
- @holds = @holds - 1
70
- stop_loop if @stopped && @holds <= 0
71
- end
72
-
73
- def stop_loop
74
- @running = false
75
- EventMachine.stop_event_loop
76
- end
77
-
78
-
79
- ######################################################
80
- ## Timers
81
- ##
82
-
83
- def add_timer(interval, periodic = false, &block)
84
- add_hold
85
- Timer.new(self).tap do |timer|
86
- timer.periodic = periodic
87
- timer.interval = interval
88
- timer.callback = block
89
- @timers << timer
90
- timer.start if @running
91
- end
92
- end
93
-
94
- def remove_timer(timer)
95
- 'remove_timer'
96
- release_hold if @timers.delete(timer)
97
- end
98
-
99
- def set_timeout(callback, interval)
100
- add_timer interval, false do
101
- callback.methodcall(self)
102
- end
103
- end
104
-
105
- def set_interval(callback, interval)
106
- add_timer interval, true do
107
- callback.methodcall(self)
108
- end
109
- end
110
-
111
- def clear_timeout(timer)
112
- timer.cancel
113
- end
114
-
115
- def clear_interval(timer)
116
- timer.cancel
117
- end
118
-
119
- class Timer
120
-
121
- attr_accessor :periodic, :interval, :callback
122
- attr_reader :running
123
-
124
- def initialize(reactor)
125
- @interval = 0
126
- @periodic = false
127
- @callback = nil
128
- @reactor = reactor
129
- @running = false
130
- end
131
-
132
- def start
133
- @running = true
134
- if @periodic
135
- @timer = EventMachine.add_periodic_timer(@interval.to_f / 1000) do
136
- @callback.call
137
- end
138
- else
139
- @timer = EventMachine.add_timer(@interval.to_f / 1000) do
140
- @callback.call
141
- @timer = nil
142
- @reactor.remove_timer(self)
143
- end
144
- end
145
- end
146
-
147
- def cancel
148
- EventMachine.cancel_timer(@timer) if @timer
149
- @timer = nil
150
- @reactor.remove_timer(self)
151
- end
152
- end
153
-
154
-
155
-
156
- end
157
-
158
- end
159
-
@@ -1,99 +0,0 @@
1
- require 'spade/dependency_installer'
2
-
3
- module Spade
4
- class Remote < Repository
5
- include Gem::UserInteraction
6
-
7
- def login(email, password)
8
- response = raw_request :get, "api/v1/api_key" do |req|
9
- req.basic_auth email, password
10
- end
11
-
12
- case response
13
- when Net::HTTPSuccess
14
- creds.save(email, response.body)
15
- true
16
- else
17
- false
18
- end
19
- end
20
-
21
- def push(package)
22
- begin
23
- body = Gem.read_binary package
24
- Gem::Format.from_file_by_path(package)
25
- rescue Exception => ex
26
- return "There was a problem opening your package.\n#{ex.class}: #{ex.to_s}"
27
- end
28
-
29
- request :post, "api/v1/gems" do |req|
30
- req.body = body
31
- req.add_field "Content-Length", body.size
32
- req.add_field "Content-Type", "application/octet-stream"
33
- req.add_field "Authorization", creds.api_key
34
- end
35
- end
36
-
37
- def yank(package, version)
38
- request :delete, "api/v1/gems/yank" do |req|
39
- req.set_form_data 'gem_name' => package, 'version' => version
40
- req.add_field "Authorization", creds.api_key
41
- end
42
- end
43
-
44
- def unyank(package, version)
45
- request :put, "api/v1/gems/unyank" do |req|
46
- req.set_form_data 'gem_name' => package, 'version' => version
47
- req.add_field "Authorization", creds.api_key
48
- end
49
- end
50
-
51
- def add_owner(package, email)
52
- request :post, "api/v1/gems/#{package}/owners" do |req|
53
- req.set_form_data 'email' => email
54
- req.add_field "Authorization", creds.api_key
55
- end
56
- end
57
-
58
- def remove_owner(package, email)
59
- request :delete, "api/v1/gems/#{package}/owners" do |req|
60
- req.set_form_data 'email' => email
61
- req.add_field "Authorization", creds.api_key
62
- end
63
- end
64
-
65
- def list_owners(package)
66
- request :get, "api/v1/gems/#{package}/owners.yaml" do |req|
67
- req.add_field "Authorization", creds.api_key
68
- end
69
- end
70
-
71
- def list_packages(packages, all, prerelease)
72
- fetcher = Gem::SpecFetcher.fetcher
73
- fetcher.find_matching(dependency_for(packages), all, false, prerelease).map(&:first)
74
- end
75
-
76
- def install(package, version, prerelease)
77
- inst = Spade::DependencyInstaller.new(:prerelease => prerelease)
78
- inst.install package, Gem::Requirement.new([version])
79
- inst.installed_gems
80
- end
81
-
82
- private
83
-
84
- def raw_request(method, path, &block)
85
- require 'net/http'
86
- host = ENV['RUBYGEMS_HOST'] || Gem.host
87
- uri = URI.parse "#{host}/#{path}"
88
-
89
- request_method = Net::HTTP.const_get method.to_s.capitalize
90
-
91
- Gem::RemoteFetcher.fetcher.request(uri, request_method, &block)
92
- end
93
-
94
- def request(method, path, &block)
95
- response = raw_request(method, path, &block)
96
- response.body
97
- end
98
- end
99
- end
@@ -1,18 +0,0 @@
1
- module Spade
2
- class Repository
3
- attr_accessor :env, :creds
4
-
5
- def initialize
6
- self.env = Environment.new
7
- self.creds = Credentials.new(@env)
8
- end
9
-
10
- def logged_in?
11
- !self.creds.api_key.nil?
12
- end
13
-
14
- def dependency_for(packages)
15
- Gem::Dependency.new(/(#{packages.join('|')})/, Gem::Requirement.default)
16
- end
17
- end
18
- end
@@ -1,66 +0,0 @@
1
- require 'rack'
2
- require 'rack/static'
3
- require 'tempfile'
4
- require 'child_labor'
5
-
6
- module Spade
7
- module Server
8
- def self.run(working, port)
9
- rootdir = Spade.discover_root(working)
10
- static = Rack::Static.new(nil, :urls => ['/'], :root => rootdir)
11
- static = CommandRunner.new(static)
12
- static = Rack::ShowStatus.new(Rack::ShowExceptions.new(Rack::Chunked.new(Rack::ContentLength.new(static))))
13
-
14
- Rack::Handler::WEBrick.run static, :Port => port.to_i
15
- end
16
-
17
- def self.shutdown
18
- Rack::Handler::WEBrick.shutdown
19
- end
20
-
21
- class CommandRunner
22
- def initialize(app)
23
- @app = app
24
- end
25
-
26
- #FIXME: This is not very safe, we should have some restrictions
27
- def call(env)
28
- if env['PATH_INFO'] == '/_spade/command'
29
- rack_input = env["rack.input"].read
30
- params = Rack::Utils.parse_query(rack_input, "&")
31
-
32
- command_path = params['command']
33
- return [500, {}, "command required"] if command_path.nil? || command_path.empty?
34
-
35
- if ((root = params['pkgRoot']) && !root.nil?)
36
- command_path = File.expand_path(File.join(command_path), root)
37
- end
38
-
39
- tempfile = Tempfile.new('spade-server')
40
- tempfile.write(params['code'])
41
- tempfile.close
42
-
43
-
44
- puts "Running: #{command_path}"
45
-
46
- output, error = nil
47
- process = ChildLabor.subprocess("#{command_path} < #{tempfile.path}") do |p|
48
- output = p.read
49
- error = p.read_stderr
50
- end
51
-
52
- tempfile.delete
53
-
54
- if process.exit_status == 0
55
- [200, {}, output]
56
- else
57
- [500, {}, error]
58
- end
59
- else
60
- env['PATH_INFO'] == '/index.html' if env['PATH_INFO'] == '/'
61
- @app.call(env)
62
- end
63
- end
64
- end
65
- end
66
- end
@@ -1,36 +0,0 @@
1
- # ==========================================================================
2
- # Project: Spade - CommonJS Runtime
3
- # Copyright: ©2010 Strobe Inc. All rights reserved.
4
- # License: Licened under MIT license (see LICENSE)
5
- # ==========================================================================
6
-
7
- # Global object used for the shell.
8
- module Spade
9
- class Shell
10
- attr_accessor :ctx
11
-
12
- def to_s
13
- "[object Shell]"
14
- end
15
-
16
- def exit(status=0)
17
- ctx.reactor.exit(status)
18
- end
19
-
20
- alias_method :quit, :exit
21
-
22
- def help(*args)
23
- <<-HELP
24
- print(msg)
25
- print msg to STDOUT
26
-
27
- exit(status = 0)
28
- exit the shell
29
- also: quit()
30
-
31
- evalrb(source)
32
- evaluate some ruby source
33
- HELP
34
- end
35
- end
36
- end
@@ -1,19 +0,0 @@
1
- Copyright (c) <%= current_year %> YOUR NAME
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy
4
- of this software and associated documentation files (the "Software"), to deal
5
- in the Software without restriction, including without limitation the rights
6
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- copies of the Software, and to permit persons to whom the Software is
8
- furnished to do so, subject to the following conditions:
9
-
10
- The above copyright notice and this permission notice shall be included in
11
- all copies or substantial portions of the Software.
12
-
13
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- THE SOFTWARE.
@@ -1,21 +0,0 @@
1
- # <%= name %>
2
-
3
- ### Description:
4
-
5
- FIX (describe your package)
6
-
7
- ### Features / Problems:
8
-
9
- * FIX (list of features or problems)
10
-
11
- ### Synopsis:
12
-
13
- FIX (code sample of usage)
14
-
15
- ### Requirements:
16
-
17
- * FIX (list of requirements)
18
-
19
- ### Install:
20
-
21
- * FIX (describe how to install)
@@ -1,9 +0,0 @@
1
- <%= app_const %> = {
2
-
3
- // TODO: Write amazing code...
4
- replaceMe: function() {
5
- return "OMG you're so awesome!!!";
6
- }
7
- }
8
-
9
- return <%= app_const %>;
@@ -1,31 +0,0 @@
1
- {
2
- "name": "<%= name %>",
3
- "description": "DESCRIPTION HERE",
4
- "summary": "SUMMARY HERE",
5
- "keywords": ["javascript"],
6
- "author": "YOUR NAME HERE",
7
- "homepage": "URL",
8
- "version": "0.0.1",
9
- "licenses": [{
10
- "type": "MIT",
11
- "url": "http://www.opensource.org/licenses/mit-license.php"
12
- }],
13
-
14
- "engines": ["browser", "all"],
15
-
16
- "directories": {
17
- "lib": "./lib",
18
- "test": "./tests"
19
- },
20
-
21
- "main": "./lib/main",
22
-
23
- "bin": {
24
- "cot": "./bin/cot"
25
- },
26
-
27
- "dependencies": {
28
- "ivory": "= 0.0.1",
29
- "optparse": "= 1.0.1"
30
- }
31
- }