spade 0.0.8.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. data/.gitignore +0 -1
  2. data/.gitmodules +4 -4
  3. data/README.md +4 -0
  4. data/bin/spade +1 -1
  5. data/lib/spade.rb +0 -51
  6. data/lib/spade/cli.rb +10 -4
  7. data/lib/spade/version.rb +1 -1
  8. data/spade.gemspec +4 -21
  9. metadata +13 -482
  10. data/Gemfile +0 -3
  11. data/Gemfile.lock +0 -40
  12. data/lib/index.js +0 -14
  13. data/lib/node/loader.js +0 -146
  14. data/lib/node/sandbox.js +0 -44
  15. data/lib/spade.js +0 -1130
  16. data/lib/spade/bundle.rb +0 -171
  17. data/lib/spade/cli/base.rb +0 -354
  18. data/lib/spade/cli/owner.rb +0 -45
  19. data/lib/spade/cli/project_generator.rb +0 -58
  20. data/lib/spade/compiler.rb +0 -34
  21. data/lib/spade/console.rb +0 -39
  22. data/lib/spade/context.rb +0 -116
  23. data/lib/spade/credentials.rb +0 -36
  24. data/lib/spade/dependency_installer.rb +0 -103
  25. data/lib/spade/environment.rb +0 -35
  26. data/lib/spade/exports.rb +0 -71
  27. data/lib/spade/installer.rb +0 -40
  28. data/lib/spade/loader.rb +0 -238
  29. data/lib/spade/local.rb +0 -46
  30. data/lib/spade/package.rb +0 -157
  31. data/lib/spade/reactor.rb +0 -159
  32. data/lib/spade/remote.rb +0 -99
  33. data/lib/spade/repository.rb +0 -18
  34. data/lib/spade/server.rb +0 -66
  35. data/lib/spade/shell.rb +0 -36
  36. data/lib/spade/templates/project/LICENSE +0 -19
  37. data/lib/spade/templates/project/README.md +0 -21
  38. data/lib/spade/templates/project/lib/main.js +0 -9
  39. data/lib/spade/templates/project/project.json +0 -31
  40. data/lib/spade/templates/project/tests/main-test.js +0 -8
  41. data/package.json +0 -27
  42. data/packages/coffee-script/.gitignore +0 -8
  43. data/packages/coffee-script/.npmignore +0 -11
  44. data/packages/coffee-script/Cakefile +0 -229
  45. data/packages/coffee-script/LICENSE +0 -22
  46. data/packages/coffee-script/README +0 -47
  47. data/packages/coffee-script/Rakefile +0 -78
  48. data/packages/coffee-script/bin/cake +0 -7
  49. data/packages/coffee-script/bin/coffee +0 -7
  50. data/packages/coffee-script/documentation/coffee/aliases.coffee +0 -11
  51. data/packages/coffee-script/documentation/coffee/array_comprehensions.coffee +0 -2
  52. data/packages/coffee-script/documentation/coffee/block_comment.coffee +0 -6
  53. data/packages/coffee-script/documentation/coffee/cake_tasks.coffee +0 -9
  54. data/packages/coffee-script/documentation/coffee/classes.coffee +0 -25
  55. data/packages/coffee-script/documentation/coffee/comparisons.coffee +0 -5
  56. data/packages/coffee-script/documentation/coffee/conditionals.coffee +0 -13
  57. data/packages/coffee-script/documentation/coffee/default_args.coffee +0 -8
  58. data/packages/coffee-script/documentation/coffee/do.coffee +0 -4
  59. data/packages/coffee-script/documentation/coffee/embedded.coffee +0 -5
  60. data/packages/coffee-script/documentation/coffee/existence.coffee +0 -10
  61. data/packages/coffee-script/documentation/coffee/expressions.coffee +0 -9
  62. data/packages/coffee-script/documentation/coffee/expressions_assignment.coffee +0 -3
  63. data/packages/coffee-script/documentation/coffee/expressions_comprehension.coffee +0 -3
  64. data/packages/coffee-script/documentation/coffee/expressions_try.coffee +0 -7
  65. data/packages/coffee-script/documentation/coffee/fat_arrow.coffee +0 -6
  66. data/packages/coffee-script/documentation/coffee/functions.coffee +0 -2
  67. data/packages/coffee-script/documentation/coffee/heredocs.coffee +0 -7
  68. data/packages/coffee-script/documentation/coffee/heregexes.coffee +0 -11
  69. data/packages/coffee-script/documentation/coffee/interpolation.coffee +0 -6
  70. data/packages/coffee-script/documentation/coffee/multiple_return_values.coffee +0 -7
  71. data/packages/coffee-script/documentation/coffee/object_comprehensions.coffee +0 -4
  72. data/packages/coffee-script/documentation/coffee/object_extraction.coffee +0 -13
  73. data/packages/coffee-script/documentation/coffee/objects_and_arrays.coffee +0 -19
  74. data/packages/coffee-script/documentation/coffee/objects_reserved.coffee +0 -5
  75. data/packages/coffee-script/documentation/coffee/overview.coffee +0 -28
  76. data/packages/coffee-script/documentation/coffee/parallel_assignment.coffee +0 -6
  77. data/packages/coffee-script/documentation/coffee/patterns_and_splats.coffee +0 -7
  78. data/packages/coffee-script/documentation/coffee/prototypes.coffee +0 -3
  79. data/packages/coffee-script/documentation/coffee/range_comprehensions.coffee +0 -2
  80. data/packages/coffee-script/documentation/coffee/scope.coffee +0 -5
  81. data/packages/coffee-script/documentation/coffee/slices.coffee +0 -7
  82. data/packages/coffee-script/documentation/coffee/soaks.coffee +0 -1
  83. data/packages/coffee-script/documentation/coffee/splats.coffee +0 -27
  84. data/packages/coffee-script/documentation/coffee/splices.coffee +0 -5
  85. data/packages/coffee-script/documentation/coffee/strings.coffee +0 -8
  86. data/packages/coffee-script/documentation/coffee/switch.coffee +0 -10
  87. data/packages/coffee-script/documentation/coffee/try.coffee +0 -8
  88. data/packages/coffee-script/documentation/coffee/while.coffee +0 -10
  89. data/packages/coffee-script/documentation/css/docs.css +0 -374
  90. data/packages/coffee-script/documentation/css/idle.css +0 -64
  91. data/packages/coffee-script/documentation/docs/browser.html +0 -25
  92. data/packages/coffee-script/documentation/docs/cake.html +0 -43
  93. data/packages/coffee-script/documentation/docs/coffee-script.html +0 -51
  94. data/packages/coffee-script/documentation/docs/command.html +0 -161
  95. data/packages/coffee-script/documentation/docs/docco.css +0 -186
  96. data/packages/coffee-script/documentation/docs/grammar.html +0 -399
  97. data/packages/coffee-script/documentation/docs/helpers.html +0 -31
  98. data/packages/coffee-script/documentation/docs/index.html +0 -3
  99. data/packages/coffee-script/documentation/docs/lexer.html +0 -490
  100. data/packages/coffee-script/documentation/docs/nodes.html +0 -1338
  101. data/packages/coffee-script/documentation/docs/optparse.html +0 -78
  102. data/packages/coffee-script/documentation/docs/repl.html +0 -24
  103. data/packages/coffee-script/documentation/docs/rewriter.html +0 -251
  104. data/packages/coffee-script/documentation/docs/scope.html +0 -54
  105. data/packages/coffee-script/documentation/docs/underscore.html +0 -295
  106. data/packages/coffee-script/documentation/images/background.png +0 -0
  107. data/packages/coffee-script/documentation/images/banding.png +0 -0
  108. data/packages/coffee-script/documentation/images/button_bg.png +0 -0
  109. data/packages/coffee-script/documentation/images/button_bg_dark.gif +0 -0
  110. data/packages/coffee-script/documentation/images/button_bg_green.gif +0 -0
  111. data/packages/coffee-script/documentation/images/favicon.ico +0 -0
  112. data/packages/coffee-script/documentation/images/logo.png +0 -0
  113. data/packages/coffee-script/documentation/images/screenshadow.png +0 -0
  114. data/packages/coffee-script/documentation/index.html.erb +0 -1607
  115. data/packages/coffee-script/documentation/js/aliases.js +0 -17
  116. data/packages/coffee-script/documentation/js/array_comprehensions.js +0 -6
  117. data/packages/coffee-script/documentation/js/block_comment.js +0 -4
  118. data/packages/coffee-script/documentation/js/cake_tasks.js +0 -10
  119. data/packages/coffee-script/documentation/js/classes.js +0 -44
  120. data/packages/coffee-script/documentation/js/comparisons.js +0 -3
  121. data/packages/coffee-script/documentation/js/conditionals.js +0 -12
  122. data/packages/coffee-script/documentation/js/default_args.js +0 -7
  123. data/packages/coffee-script/documentation/js/do.js +0 -10
  124. data/packages/coffee-script/documentation/js/embedded.js +0 -4
  125. data/packages/coffee-script/documentation/js/existence.js +0 -6
  126. data/packages/coffee-script/documentation/js/expressions.js +0 -15
  127. data/packages/coffee-script/documentation/js/expressions_assignment.js +0 -2
  128. data/packages/coffee-script/documentation/js/expressions_comprehension.js +0 -9
  129. data/packages/coffee-script/documentation/js/expressions_try.js +0 -7
  130. data/packages/coffee-script/documentation/js/fat_arrow.js +0 -9
  131. data/packages/coffee-script/documentation/js/functions.js +0 -7
  132. data/packages/coffee-script/documentation/js/heredocs.js +0 -2
  133. data/packages/coffee-script/documentation/js/heregexes.js +0 -2
  134. data/packages/coffee-script/documentation/js/interpolation.js +0 -4
  135. data/packages/coffee-script/documentation/js/multiple_return_values.js +0 -5
  136. data/packages/coffee-script/documentation/js/object_comprehensions.js +0 -15
  137. data/packages/coffee-script/documentation/js/object_extraction.js +0 -10
  138. data/packages/coffee-script/documentation/js/objects_and_arrays.js +0 -17
  139. data/packages/coffee-script/documentation/js/objects_reserved.js +0 -4
  140. data/packages/coffee-script/documentation/js/overview.js +0 -35
  141. data/packages/coffee-script/documentation/js/parallel_assignment.js +0 -4
  142. data/packages/coffee-script/documentation/js/patterns_and_splats.js +0 -4
  143. data/packages/coffee-script/documentation/js/prototypes.js +0 -3
  144. data/packages/coffee-script/documentation/js/range_comprehensions.js +0 -9
  145. data/packages/coffee-script/documentation/js/scope.js +0 -8
  146. data/packages/coffee-script/documentation/js/slices.js +0 -4
  147. data/packages/coffee-script/documentation/js/soaks.js +0 -2
  148. data/packages/coffee-script/documentation/js/splats.js +0 -15
  149. data/packages/coffee-script/documentation/js/splices.js +0 -3
  150. data/packages/coffee-script/documentation/js/strings.js +0 -2
  151. data/packages/coffee-script/documentation/js/switch.js +0 -23
  152. data/packages/coffee-script/documentation/js/try.js +0 -8
  153. data/packages/coffee-script/documentation/js/while.js +0 -18
  154. data/packages/coffee-script/documentation/vendor/jquery-1.4.2.js +0 -6240
  155. data/packages/coffee-script/examples/beautiful_code/binary_search.coffee +0 -16
  156. data/packages/coffee-script/examples/beautiful_code/quicksort_runtime.coffee +0 -13
  157. data/packages/coffee-script/examples/beautiful_code/regular_expression_matcher.coffee +0 -34
  158. data/packages/coffee-script/examples/blocks.coffee +0 -54
  159. data/packages/coffee-script/examples/code.coffee +0 -167
  160. data/packages/coffee-script/examples/computer_science/README +0 -4
  161. data/packages/coffee-script/examples/computer_science/binary_search.coffee +0 -25
  162. data/packages/coffee-script/examples/computer_science/bubble_sort.coffee +0 -11
  163. data/packages/coffee-script/examples/computer_science/linked_list.coffee +0 -108
  164. data/packages/coffee-script/examples/computer_science/luhn_algorithm.coffee +0 -36
  165. data/packages/coffee-script/examples/computer_science/merge_sort.coffee +0 -19
  166. data/packages/coffee-script/examples/computer_science/selection_sort.coffee +0 -23
  167. data/packages/coffee-script/examples/poignant.coffee +0 -181
  168. data/packages/coffee-script/examples/potion.coffee +0 -206
  169. data/packages/coffee-script/examples/underscore.coffee +0 -682
  170. data/packages/coffee-script/examples/web_server.coffee +0 -12
  171. data/packages/coffee-script/extras/EXTRAS +0 -7
  172. data/packages/coffee-script/extras/coffee-script.js +0 -8
  173. data/packages/coffee-script/extras/jsl.conf +0 -44
  174. data/packages/coffee-script/index.html +0 -2515
  175. data/packages/coffee-script/lib/browser.js +0 -52
  176. data/packages/coffee-script/lib/cake.js +0 -76
  177. data/packages/coffee-script/lib/coffee-script.js +0 -82
  178. data/packages/coffee-script/lib/command.js +0 -263
  179. data/packages/coffee-script/lib/grammar.js +0 -581
  180. data/packages/coffee-script/lib/helpers.js +0 -66
  181. data/packages/coffee-script/lib/index.js +0 -8
  182. data/packages/coffee-script/lib/lexer.js +0 -633
  183. data/packages/coffee-script/lib/nodes.js +0 -2165
  184. data/packages/coffee-script/lib/optparse.js +0 -111
  185. data/packages/coffee-script/lib/parser.js +0 -649
  186. data/packages/coffee-script/lib/repl.js +0 -42
  187. data/packages/coffee-script/lib/rewriter.js +0 -353
  188. data/packages/coffee-script/lib/scope.js +0 -120
  189. data/packages/coffee-script/lib/spade-format.js +0 -45
  190. data/packages/coffee-script/package.json +0 -26
  191. data/packages/coffee-script/src/browser.coffee +0 -43
  192. data/packages/coffee-script/src/cake.coffee +0 -69
  193. data/packages/coffee-script/src/coffee-script.coffee +0 -92
  194. data/packages/coffee-script/src/command.coffee +0 -214
  195. data/packages/coffee-script/src/grammar.coffee +0 -590
  196. data/packages/coffee-script/src/helpers.coffee +0 -56
  197. data/packages/coffee-script/src/index.coffee +0 -2
  198. data/packages/coffee-script/src/lexer.coffee +0 -653
  199. data/packages/coffee-script/src/nodes.coffee +0 -1754
  200. data/packages/coffee-script/src/optparse.coffee +0 -99
  201. data/packages/coffee-script/src/repl.coffee +0 -42
  202. data/packages/coffee-script/src/rewriter.coffee +0 -326
  203. data/packages/coffee-script/src/scope.coffee +0 -94
  204. data/packages/coffee-script/test/arguments.coffee +0 -127
  205. data/packages/coffee-script/test/assignment.coffee +0 -98
  206. data/packages/coffee-script/test/break.coffee +0 -18
  207. data/packages/coffee-script/test/comments.coffee +0 -201
  208. data/packages/coffee-script/test/conditionals.coffee +0 -181
  209. data/packages/coffee-script/test/exception_handling.coffee +0 -90
  210. data/packages/coffee-script/test/helpers.coffee +0 -96
  211. data/packages/coffee-script/test/importing.coffee +0 -18
  212. data/packages/coffee-script/test/operators.coffee +0 -225
  213. data/packages/coffee-script/test/ranges_slices_and_splices.coffee +0 -186
  214. data/packages/coffee-script/test/regular_expressions.coffee +0 -56
  215. data/packages/coffee-script/test/test.html +0 -123
  216. data/packages/coffee-script/test/test_chaining.coffee +0 -77
  217. data/packages/coffee-script/test/test_classes.coffee +0 -372
  218. data/packages/coffee-script/test/test_compilation.coffee +0 -26
  219. data/packages/coffee-script/test/test_comprehensions.coffee +0 -318
  220. data/packages/coffee-script/test/test_existence.coffee +0 -165
  221. data/packages/coffee-script/test/test_functions.coffee +0 -379
  222. data/packages/coffee-script/test/test_heredocs.coffee +0 -111
  223. data/packages/coffee-script/test/test_literals.coffee +0 -270
  224. data/packages/coffee-script/test/test_option_parser.coffee +0 -27
  225. data/packages/coffee-script/test/test_pattern_matching.coffee +0 -162
  226. data/packages/coffee-script/test/test_returns.coffee +0 -63
  227. data/packages/coffee-script/test/test_splats.coffee +0 -102
  228. data/packages/coffee-script/test/test_strings.coffee +0 -118
  229. data/packages/coffee-script/test/test_switch.coffee +0 -103
  230. data/packages/coffee-script/test/test_while.coffee +0 -71
  231. data/packages/ivory/LICENSE.txt +0 -1
  232. data/packages/ivory/README.md +0 -19
  233. data/packages/ivory/lib/buffer.js +0 -111
  234. data/packages/ivory/lib/events.js +0 -137
  235. data/packages/ivory/lib/fs.js +0 -266
  236. data/packages/ivory/lib/main.js +0 -13
  237. data/packages/ivory/lib/path.js +0 -158
  238. data/packages/ivory/lib/ruby/buffer.rb +0 -145
  239. data/packages/ivory/lib/ruby/constants.rb +0 -585
  240. data/packages/ivory/lib/ruby/events.rb +0 -32
  241. data/packages/ivory/lib/ruby/fs.rb +0 -245
  242. data/packages/ivory/lib/ruby/process.rb +0 -28
  243. data/packages/ivory/lib/stream.js +0 -115
  244. data/packages/ivory/lib/util.js +0 -414
  245. data/packages/ivory/package.json +0 -11
  246. data/packages/jquery/main.js +0 -7179
  247. data/packages/jquery/package.json +0 -10
  248. data/packages/json/lib/main.js +0 -14
  249. data/packages/json/package.json +0 -8
  250. data/packages/lproj/README.md +0 -77
  251. data/packages/lproj/examples/demo-app/en.lproj/localized.strings +0 -2
  252. data/packages/lproj/examples/demo-app/fr.lproj/localized.strings +0 -3
  253. data/packages/lproj/examples/demo-app/index.html +0 -8
  254. data/packages/lproj/examples/demo-app/lib/main.js +0 -7
  255. data/packages/lproj/examples/demo-app/package.json +0 -9
  256. data/packages/lproj/lib/main.js +0 -78
  257. data/packages/lproj/lib/strings-format.js +0 -6
  258. data/packages/lproj/package.json +0 -9
  259. data/packages/optparse/README.md +0 -161
  260. data/packages/optparse/TODO +0 -1
  261. data/packages/optparse/examples/browser-test.html +0 -75
  262. data/packages/optparse/examples/nodejs-test.js +0 -90
  263. data/packages/optparse/lib/optparse.js +0 -309
  264. data/packages/optparse/package.json +0 -13
  265. data/packages/optparse/seed.yml +0 -5
  266. data/packages/text/lib/main.js +0 -8
  267. data/packages/text/package.json +0 -9
  268. data/packages/web-file/README.md +0 -7
  269. data/packages/web-file/lib/errors.js +0 -32
  270. data/packages/web-file/lib/file-reader.js +0 -10
  271. data/packages/web-file/lib/file-system.js +0 -234
  272. data/packages/web-file/lib/file-writer.js +0 -10
  273. data/packages/web-file/lib/file.js +0 -9
  274. data/packages/web-file/lib/main.js +0 -34
  275. data/packages/web-file/lib/platform.js +0 -25
  276. data/packages/web-file/lib/ruby/file.rb +0 -252
  277. data/packages/web-file/lib/ruby/file_reader.rb +0 -69
  278. data/packages/web-file/lib/ruby/file_system.rb +0 -134
  279. data/packages/web-file/lib/ruby/file_writer.rb +0 -78
  280. data/packages/web-file/package.json +0 -12
  281. data/packages/web-typed-array/README.md +0 -7
  282. data/packages/web-typed-array/lib/array-buffer-view.js +0 -9
  283. data/packages/web-typed-array/lib/array-buffer.js +0 -7
  284. data/packages/web-typed-array/lib/main.js +0 -33
  285. data/packages/web-typed-array/lib/platform.js +0 -20
  286. data/packages/web-typed-array/lib/ruby/array_buffer.rb +0 -31
  287. data/packages/web-typed-array/lib/ruby/array_buffer_view.rb +0 -130
  288. data/packages/web-typed-array/lib/ruby/typed_array.rb +0 -133
  289. data/packages/web-typed-array/lib/typed-array.js +0 -26
  290. data/packages/web-typed-array/package.json +0 -9
  291. data/spec/cli/build_spec.rb +0 -59
  292. data/spec/cli/install_spec.rb +0 -120
  293. data/spec/cli/installed_spec.rb +0 -55
  294. data/spec/cli/list_spec.rb +0 -75
  295. data/spec/cli/login_spec.rb +0 -76
  296. data/spec/cli/new_spec.rb +0 -5
  297. data/spec/cli/owner_spec.rb +0 -115
  298. data/spec/cli/push_spec.rb +0 -74
  299. data/spec/cli/uninstall_spec.rb +0 -58
  300. data/spec/cli/unpack_spec.rb +0 -73
  301. data/spec/cli/unyank_spec.rb +0 -74
  302. data/spec/cli/update_spec.rb +0 -8
  303. data/spec/cli/yank_spec.rb +0 -74
  304. data/spec/credentials_spec.rb +0 -24
  305. data/spec/fixtures/coffee-1.0.1.pre.spd +0 -0
  306. data/spec/fixtures/core-test-0.4.3.spd +0 -0
  307. data/spec/fixtures/core-test/bin/cot +0 -3
  308. data/spec/fixtures/core-test/lib/main.js +0 -1
  309. data/spec/fixtures/core-test/resources/runner.css +0 -0
  310. data/spec/fixtures/core-test/tests/test.js +0 -1
  311. data/spec/fixtures/ivory-0.0.1.spd +0 -0
  312. data/spec/fixtures/jquery-1.4.3.spd +0 -0
  313. data/spec/fixtures/optparse-1.0.1.spd +0 -0
  314. data/spec/fixtures/package.json +0 -30
  315. data/spec/gauntlet_spec.rb +0 -27
  316. data/spec/javascript/async-test.js +0 -123
  317. data/spec/javascript/compiler/javascript.js +0 -13
  318. data/spec/javascript/compiler/ruby.js +0 -14
  319. data/spec/javascript/loader-test.js +0 -64
  320. data/spec/javascript/normalize-test.js +0 -73
  321. data/spec/javascript/packages-test.js +0 -44
  322. data/spec/javascript/relative-require-test.js +0 -72
  323. data/spec/javascript/require-test.js +0 -117
  324. data/spec/javascript/sandbox/compile.js +0 -37
  325. data/spec/javascript/sandbox/creation.js +0 -44
  326. data/spec/javascript/sandbox/format.js +0 -79
  327. data/spec/javascript/sandbox/misc.js +0 -57
  328. data/spec/javascript/sandbox/preprocessor.js +0 -81
  329. data/spec/javascript/sandbox/require.js +0 -48
  330. data/spec/javascript/sandbox/run-command.js +0 -21
  331. data/spec/javascript/spade/externs.js +0 -14
  332. data/spec/javascript/spade/load-factory.js +0 -15
  333. data/spec/javascript/spade/misc.js +0 -23
  334. data/spec/javascript/spade/ready.js +0 -12
  335. data/spec/javascript/spade/register.js +0 -13
  336. data/spec/javascript_spec.rb +0 -7
  337. data/spec/package_spec.rb +0 -267
  338. data/spec/spec_helper.rb +0 -30
  339. data/spec/support/cli.rb +0 -94
  340. data/spec/support/core_test.rb +0 -59
  341. data/spec/support/fake.rb +0 -44
  342. data/spec/support/fake_gem_server.rb +0 -66
  343. data/spec/support/fake_gemcutter.rb +0 -49
  344. data/spec/support/matchers.rb +0 -31
  345. data/spec/support/path.rb +0 -54
  346. data/test-spade.html +0 -8
@@ -1,45 +0,0 @@
1
- module Spade::CLI
2
- class Owner < Thor
3
- default_task :list
4
-
5
- desc "owner list [PACKAGE]", "Display owners of a package"
6
- def list(package)
7
- remote = Spade::Remote.new
8
- if remote.logged_in?
9
- yaml = remote.list_owners(package)
10
- owners = YAML.load(yaml)
11
-
12
- if owners.is_a?(Array)
13
- say "Owners for package: #{package}"
14
- owners.each do |owner|
15
- say "- #{owner['email']}"
16
- end
17
- else
18
- say owners
19
- end
20
- else
21
- abort LOGIN_MESSAGE
22
- end
23
- end
24
-
25
- desc "owner add [PACKAGE] [EMAIL]", "Allow another user to push new versions of your spade package"
26
- def add(package, email)
27
- remote = Spade::Remote.new
28
- if remote.logged_in?
29
- say remote.add_owner(package, email)
30
- else
31
- abort LOGIN_MESSAGE
32
- end
33
- end
34
-
35
- desc "owner remove [PACKAGE] [EMAIL]", "Allow another user to push new versions of your spade package"
36
- def remove(package, email)
37
- remote = Spade::Remote.new
38
- if remote.logged_in?
39
- say remote.remove_owner(package, email)
40
- else
41
- abort LOGIN_MESSAGE
42
- end
43
- end
44
- end
45
- end
@@ -1,58 +0,0 @@
1
- module Spade::CLI
2
- class ProjectGenerator
3
- include Thor::Actions
4
-
5
- source_root File.expand_path('../../templates/project', __FILE__)
6
-
7
- attr_reader :name
8
-
9
- def initialize(thor, name, root)
10
- @thor, @name, @root = thor, name, root
11
-
12
- self.destination_root = root
13
- end
14
-
15
- def run
16
- empty_directory '.'
17
- FileUtils.cd(destination_root)
18
-
19
- template "LICENSE"
20
- template "README.md"
21
- template "project.json"
22
-
23
- empty_directory "lib"
24
- empty_directory "tests"
25
-
26
- inside "lib" do
27
- template "main.js"
28
- end
29
-
30
- inside "tests" do
31
- template "main-test.js"
32
- end
33
- end
34
-
35
- private
36
-
37
- def app_const
38
- name.gsub(/\W|-/, '_').squeeze('_').gsub(/(?:^|_)(.)/) { $1.upcase }
39
- end
40
-
41
- def current_year
42
- Time.now.year
43
- end
44
-
45
- def source_paths
46
- [File.expand_path('../../templates/project', __FILE__)] +
47
- @thor.source_paths
48
- end
49
-
50
- def respond_to?(*args)
51
- super || @thor.respond_to?(*args)
52
- end
53
-
54
- def method_missing(name, *args, &blk)
55
- @thor.send(name, *args, &blk)
56
- end
57
- end
58
- end
@@ -1,34 +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
- module Spade
8
-
9
- # Compiler plugin for the default context. Know how to create a new
10
- # isolated context for the object
11
- class Compiler
12
-
13
- def initialize(ctx)
14
- @ctx = ctx
15
- end
16
-
17
- def setup(sandbox)
18
- if sandbox['isIsolated']
19
- sandbox['ctx'] = Context.new :reactor => @ctx.reactor
20
- end
21
- end
22
-
23
- def compile(data, sandbox, filename)
24
- ctx = sandbox['ctx'] || @ctx
25
- ctx.eval("(#{data})", filename)
26
- end
27
-
28
- def teardown(sandbox)
29
- sandbox['ctx'] = nil
30
- end
31
-
32
- end
33
-
34
- end
@@ -1,39 +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
-
8
- module Spade
9
-
10
- class Console
11
-
12
- def debug(*args)
13
- puts "\033[35mDEBUG: #{args * ','}\033[m"
14
- nil
15
- end
16
-
17
- def info(*args)
18
- puts args * ','
19
- nil
20
- end
21
-
22
- def error(*args)
23
- puts "\033[31mERROR: #{args * ','}\033[m"
24
- nil
25
- end
26
-
27
- def warn(*args)
28
- puts "\033[33mWARN: #{args * ','}\033[m"
29
- nil
30
- end
31
-
32
- def log(*args)
33
- puts args * ','
34
- nil
35
- end
36
-
37
- end
38
-
39
- end
@@ -1,116 +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 'v8'
8
- require 'spade/loader'
9
- require 'spade/compiler'
10
- require 'spade/console'
11
- require 'spade/reactor'
12
-
13
- SPADEJS_PATH = File.expand_path File.join(File.dirname(__FILE__), '..', 'spade.js')
14
-
15
- module Spade
16
-
17
- # Creates a basic context suitable for running modules. The environments
18
- # setup in this context will mimic a browser worker thread context,
19
- # including timeouts and a console. A navigator object is also defined
20
- # that provides some general information about the context.
21
- class Context < V8::Context
22
-
23
- attr_reader :reactor
24
- attr_reader :verbose
25
-
26
- def require(mod_name)
27
- self.eval("require('#{mod_name}');");
28
- end
29
-
30
- # Load the spade and racer-loader.
31
- def initialize(opts={})
32
- @reactor = opts[:reactor]
33
- @verbose = opts[:verbose]
34
- super(opts) do |ctx|
35
- ctx['reactor'] = @reactor
36
- ctx['console'] = Console.new
37
- ctx['window'] = ctx.scope
38
- ctx.eval %[
39
- (function() {
40
- var r = reactor;
41
- setTimeout = function(c,i) { return r.set_timeout(c,i); };
42
- setInterval = function(c,i) { return r.set_interval(c,i); };
43
- clearTimeout = function(t) { return r.clear_timeout(t); };
44
- clearInterval = function(t) { return r.clear_interval(t); };
45
- navigator = {
46
- appName: 'spade',
47
- appVersion: "#{Spade::VERSION}",
48
- platform: "#{RUBY_PLATFORM}",
49
- userAgent: 'spade #{Spade::VERSION}; #{RUBY_PLATFORM}'
50
- }
51
-
52
- exit = function(status) { return r.exit(status || 0); };
53
- })();
54
- ]
55
-
56
- ctx['reactor'] = nil
57
-
58
- yield(ctx) if block_given?
59
- end
60
- end
61
-
62
- end
63
-
64
- # The primary context created when running spade exec or spade console.
65
- # This context will also automatically start a reactor loop.
66
- class MainContext < Context
67
-
68
- attr_accessor :rootdir
69
- attr_accessor :caller_id
70
-
71
- # Load the spade and racer-loader.
72
- def initialize(opts={})
73
- env = opts[:env] || ENV
74
- @rootdir = opts[:rootdir] || opts['rootdir']
75
- @caller_id = opts[:caller_id] || opts['caller_id']
76
- @reactor = opts[:reactor] ||= Reactor.new(self)
77
- lang = opts[:language] ||= (env['LANG']||'en_US').gsub(/\..*/, '')
78
- lang = lang.gsub '_', '-'
79
-
80
-
81
- super(opts) do |ctx|
82
- ctx['ENV'] = env.to_hash
83
- ctx['ENV']['SPADE_PLATFORM'] = { 'ENGINE' => 'spade' }
84
- ctx['ENV']['LANG'] = lang
85
-
86
- ctx['ARGV'] = opts[:argv] || ARGV
87
-
88
- # Load spade and patch in compiler and loader plugins
89
- ctx.load(SPADEJS_PATH)
90
- ctx['rubyLoader'] = Loader.new(self)
91
- ctx['rubyCompiler'] = Compiler.new(self)
92
-
93
- ctx.eval %[
94
- spade.loader = rubyLoader;
95
- spade.compiler = rubyCompiler;
96
- spade.defaultSandbox.rootdir = #{@rootdir.to_json};
97
- spade.globalize();
98
- ]
99
-
100
- ctx.eval("spade.defaultSandbox.callerId = #{@caller_id.to_json};") if @caller_id
101
-
102
- ctx['rubyLoader'] = ctx['rubyCompiler'] = nil
103
-
104
- @reactor.start do
105
- yield(self) if block_given?
106
- end
107
-
108
- end
109
- end
110
-
111
- end
112
- end
113
-
114
-
115
-
116
-
@@ -1,36 +0,0 @@
1
- module Spade
2
- class Credentials
3
- attr_reader :email, :api_key
4
-
5
- def initialize(env)
6
- @env = env
7
- parse
8
- end
9
-
10
- def save(email, api_key)
11
- @email = email
12
- @api_key = api_key
13
- write
14
- end
15
-
16
- private
17
-
18
- def write
19
- File.open(path, "w") do |file|
20
- file.write YAML.dump(:spade_api_key => api_key, :spade_email => email)
21
- end
22
- end
23
-
24
- def path
25
- @env.spade_dir("credentials")
26
- end
27
-
28
- def parse
29
- if File.exist?(path)
30
- hash = YAML.load_file(path)
31
- @email = hash[:spade_email]
32
- @api_key = hash[:spade_api_key]
33
- end
34
- end
35
- end
36
- end
@@ -1,103 +0,0 @@
1
- require 'spade/installer'
2
-
3
- module Spade
4
- class DependencyInstaller < Gem::DependencyInstaller
5
-
6
- # Had to overwrite this all just to change the match from /gem$/ to /spd$/
7
- def find_spec_by_name_and_version(gem_name,
8
- version = Gem::Requirement.default,
9
- prerelease = false)
10
- spec_and_source = nil
11
-
12
- glob = if File::ALT_SEPARATOR then
13
- gem_name.gsub File::ALT_SEPARATOR, File::SEPARATOR
14
- else
15
- gem_name
16
- end
17
-
18
- local_gems = Dir["#{glob}*"].sort.reverse
19
-
20
- unless local_gems.empty? then
21
- local_gems.each do |gem_file|
22
- next unless gem_file =~ /spd$/
23
- begin
24
- spec = Gem::Format.from_file_by_path(gem_file).spec
25
- spec_and_source = [spec, gem_file]
26
- break
27
- rescue SystemCallError, Gem::Package::FormatError
28
- end
29
- end
30
- end
31
-
32
- if spec_and_source.nil? then
33
- dep = Gem::Dependency.new gem_name, version
34
- dep.prerelease = true if prerelease
35
- spec_and_sources = find_gems_with_sources(dep).reverse
36
-
37
- spec_and_source = spec_and_sources.find { |spec, source|
38
- Gem::Platform.match spec.platform
39
- }
40
- end
41
-
42
- if spec_and_source.nil? then
43
- raise Gem::GemNotFoundException.new(
44
- "Could not find a valid spd '#{gem_name}' (#{version}) locally or in a repository",
45
- gem_name, version, @errors)
46
- end
47
-
48
- @specs_and_sources = [spec_and_source]
49
- end
50
-
51
- # Overwrite this to use our custom installer
52
- def install dep_or_name, version = Gem::Requirement.default
53
- if String === dep_or_name then
54
- find_spec_by_name_and_version dep_or_name, version, @prerelease
55
- else
56
- dep_or_name.prerelease = @prerelease
57
- @specs_and_sources = [find_gems_with_sources(dep_or_name).last]
58
- end
59
-
60
- @installed_gems = []
61
-
62
- gather_dependencies
63
-
64
- @gems_to_install.each do |spec|
65
- last = spec == @gems_to_install.last
66
- # HACK is this test for full_name acceptable?
67
- next if @source_index.any? { |n,_| n == spec.full_name } and not last
68
-
69
- # TODO: make this sorta_verbose so other users can benefit from it
70
- say "Installing spd #{spec.full_name}" if Gem.configuration.really_verbose
71
-
72
- _, source_uri = @specs_and_sources.assoc spec
73
- begin
74
- local_gem_path = Gem::RemoteFetcher.fetcher.download spec, source_uri,
75
- @cache_dir
76
- rescue Gem::RemoteFetcher::FetchError
77
- next if @force
78
- raise
79
- end
80
-
81
- inst = Spade::Installer.new local_gem_path,
82
- :bin_dir => @bin_dir,
83
- :development => @development,
84
- :env_shebang => @env_shebang,
85
- :force => @force,
86
- :format_executable => @format_executable,
87
- :ignore_dependencies => @ignore_dependencies,
88
- :install_dir => @install_dir,
89
- :security_policy => @security_policy,
90
- :source_index => @source_index,
91
- :user_install => @user_install,
92
- :wrappers => @wrappers
93
-
94
- spec = inst.install
95
-
96
- @installed_gems << spec
97
- end
98
-
99
- @installed_gems
100
- end
101
-
102
- end
103
- end
@@ -1,35 +0,0 @@
1
- module Spade
2
- class Environment
3
- def self.spade_dir=(spade_dir)
4
- @spade_dir = spade_dir
5
- end
6
-
7
- def self.spade_dir(*path)
8
- File.join(@spade_dir, *path)
9
- end
10
-
11
- def initialize
12
- self.class.spade_dir = File.join(ENV["HOME"], SPADE_DIR)
13
- FileUtils.mkdir_p(spade_dir)
14
-
15
- ENV["RUBYGEMS_HOST"] ||= "https://sproutcutter.heroku.com"
16
- Gem.sources.replace [ENV["RUBYGEMS_HOST"]]
17
- Gem.use_paths(spade_dir)
18
- Gem.source_index.refresh!
19
-
20
- spade_fetcher = Gem::SpecFetcher.new
21
- def spade_fetcher.cache_dir(uri)
22
- Spade::Environment.spade_dir("#{uri.host}%#{uri.port}", File.dirname(uri.path))
23
- end
24
-
25
- # Do it again, since it got overridden
26
- Gem.sources.replace [ENV["RUBYGEMS_HOST"]]
27
-
28
- Gem::SpecFetcher.fetcher = spade_fetcher
29
- end
30
-
31
- def spade_dir(*path)
32
- self.class.spade_dir(*path)
33
- end
34
- end
35
- end