spade-packager 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 (316) hide show
  1. data/.gitignore +2 -0
  2. data/.gitmodules +6 -0
  3. data/bin/spadepkg +8 -0
  4. data/lib/libgems_ext.rb +8 -0
  5. data/lib/libgems_ext/config_file.rb +33 -0
  6. data/lib/libgems_ext/dependency_installer.rb +150 -0
  7. data/lib/libgems_ext/installer.rb +39 -0
  8. data/lib/libgems_ext/libgems.rb +39 -0
  9. data/lib/libgems_ext/spec_fetcher.rb +11 -0
  10. data/lib/spade-packager.rb +1 -0
  11. data/lib/spade/packager.rb +18 -0
  12. data/lib/spade/packager/cli.rb +9 -0
  13. data/lib/spade/packager/cli/base.rb +196 -0
  14. data/lib/spade/packager/cli/owner.rb +46 -0
  15. data/lib/spade/packager/cli/project_generator.rb +117 -0
  16. data/lib/spade/packager/credentials.rb +38 -0
  17. data/lib/spade/packager/local.rb +50 -0
  18. data/lib/spade/packager/package.rb +160 -0
  19. data/lib/spade/packager/remote.rb +98 -0
  20. data/lib/spade/packager/repository.rb +18 -0
  21. data/lib/spade/packager/version.rb +5 -0
  22. data/packages/coffee-script/.gitignore +8 -0
  23. data/packages/coffee-script/.npmignore +11 -0
  24. data/packages/coffee-script/Cakefile +229 -0
  25. data/packages/coffee-script/LICENSE +22 -0
  26. data/packages/coffee-script/README +47 -0
  27. data/packages/coffee-script/Rakefile +78 -0
  28. data/packages/coffee-script/bin/cake +7 -0
  29. data/packages/coffee-script/bin/coffee +7 -0
  30. data/packages/coffee-script/documentation/coffee/aliases.coffee +11 -0
  31. data/packages/coffee-script/documentation/coffee/array_comprehensions.coffee +2 -0
  32. data/packages/coffee-script/documentation/coffee/block_comment.coffee +6 -0
  33. data/packages/coffee-script/documentation/coffee/cake_tasks.coffee +9 -0
  34. data/packages/coffee-script/documentation/coffee/classes.coffee +25 -0
  35. data/packages/coffee-script/documentation/coffee/comparisons.coffee +5 -0
  36. data/packages/coffee-script/documentation/coffee/conditionals.coffee +13 -0
  37. data/packages/coffee-script/documentation/coffee/default_args.coffee +8 -0
  38. data/packages/coffee-script/documentation/coffee/do.coffee +4 -0
  39. data/packages/coffee-script/documentation/coffee/embedded.coffee +5 -0
  40. data/packages/coffee-script/documentation/coffee/existence.coffee +10 -0
  41. data/packages/coffee-script/documentation/coffee/expressions.coffee +9 -0
  42. data/packages/coffee-script/documentation/coffee/expressions_assignment.coffee +3 -0
  43. data/packages/coffee-script/documentation/coffee/expressions_comprehension.coffee +3 -0
  44. data/packages/coffee-script/documentation/coffee/expressions_try.coffee +7 -0
  45. data/packages/coffee-script/documentation/coffee/fat_arrow.coffee +6 -0
  46. data/packages/coffee-script/documentation/coffee/functions.coffee +2 -0
  47. data/packages/coffee-script/documentation/coffee/heredocs.coffee +7 -0
  48. data/packages/coffee-script/documentation/coffee/heregexes.coffee +11 -0
  49. data/packages/coffee-script/documentation/coffee/interpolation.coffee +6 -0
  50. data/packages/coffee-script/documentation/coffee/multiple_return_values.coffee +7 -0
  51. data/packages/coffee-script/documentation/coffee/object_comprehensions.coffee +4 -0
  52. data/packages/coffee-script/documentation/coffee/object_extraction.coffee +13 -0
  53. data/packages/coffee-script/documentation/coffee/objects_and_arrays.coffee +19 -0
  54. data/packages/coffee-script/documentation/coffee/objects_reserved.coffee +5 -0
  55. data/packages/coffee-script/documentation/coffee/overview.coffee +28 -0
  56. data/packages/coffee-script/documentation/coffee/parallel_assignment.coffee +6 -0
  57. data/packages/coffee-script/documentation/coffee/patterns_and_splats.coffee +7 -0
  58. data/packages/coffee-script/documentation/coffee/prototypes.coffee +3 -0
  59. data/packages/coffee-script/documentation/coffee/range_comprehensions.coffee +2 -0
  60. data/packages/coffee-script/documentation/coffee/scope.coffee +5 -0
  61. data/packages/coffee-script/documentation/coffee/slices.coffee +7 -0
  62. data/packages/coffee-script/documentation/coffee/soaks.coffee +1 -0
  63. data/packages/coffee-script/documentation/coffee/splats.coffee +27 -0
  64. data/packages/coffee-script/documentation/coffee/splices.coffee +5 -0
  65. data/packages/coffee-script/documentation/coffee/strings.coffee +8 -0
  66. data/packages/coffee-script/documentation/coffee/switch.coffee +10 -0
  67. data/packages/coffee-script/documentation/coffee/try.coffee +8 -0
  68. data/packages/coffee-script/documentation/coffee/while.coffee +10 -0
  69. data/packages/coffee-script/documentation/css/docs.css +374 -0
  70. data/packages/coffee-script/documentation/css/idle.css +64 -0
  71. data/packages/coffee-script/documentation/docs/browser.html +25 -0
  72. data/packages/coffee-script/documentation/docs/cake.html +43 -0
  73. data/packages/coffee-script/documentation/docs/coffee-script.html +51 -0
  74. data/packages/coffee-script/documentation/docs/command.html +161 -0
  75. data/packages/coffee-script/documentation/docs/docco.css +186 -0
  76. data/packages/coffee-script/documentation/docs/grammar.html +399 -0
  77. data/packages/coffee-script/documentation/docs/helpers.html +31 -0
  78. data/packages/coffee-script/documentation/docs/index.html +3 -0
  79. data/packages/coffee-script/documentation/docs/lexer.html +490 -0
  80. data/packages/coffee-script/documentation/docs/nodes.html +1338 -0
  81. data/packages/coffee-script/documentation/docs/optparse.html +78 -0
  82. data/packages/coffee-script/documentation/docs/repl.html +24 -0
  83. data/packages/coffee-script/documentation/docs/rewriter.html +251 -0
  84. data/packages/coffee-script/documentation/docs/scope.html +54 -0
  85. data/packages/coffee-script/documentation/docs/underscore.html +295 -0
  86. data/packages/coffee-script/documentation/images/background.png +0 -0
  87. data/packages/coffee-script/documentation/images/banding.png +0 -0
  88. data/packages/coffee-script/documentation/images/button_bg.png +0 -0
  89. data/packages/coffee-script/documentation/images/button_bg_dark.gif +0 -0
  90. data/packages/coffee-script/documentation/images/button_bg_green.gif +0 -0
  91. data/packages/coffee-script/documentation/images/favicon.ico +0 -0
  92. data/packages/coffee-script/documentation/images/logo.png +0 -0
  93. data/packages/coffee-script/documentation/images/screenshadow.png +0 -0
  94. data/packages/coffee-script/documentation/index.html.erb +1607 -0
  95. data/packages/coffee-script/documentation/js/aliases.js +17 -0
  96. data/packages/coffee-script/documentation/js/array_comprehensions.js +6 -0
  97. data/packages/coffee-script/documentation/js/block_comment.js +4 -0
  98. data/packages/coffee-script/documentation/js/cake_tasks.js +10 -0
  99. data/packages/coffee-script/documentation/js/classes.js +44 -0
  100. data/packages/coffee-script/documentation/js/comparisons.js +3 -0
  101. data/packages/coffee-script/documentation/js/conditionals.js +12 -0
  102. data/packages/coffee-script/documentation/js/default_args.js +7 -0
  103. data/packages/coffee-script/documentation/js/do.js +10 -0
  104. data/packages/coffee-script/documentation/js/embedded.js +4 -0
  105. data/packages/coffee-script/documentation/js/existence.js +6 -0
  106. data/packages/coffee-script/documentation/js/expressions.js +15 -0
  107. data/packages/coffee-script/documentation/js/expressions_assignment.js +2 -0
  108. data/packages/coffee-script/documentation/js/expressions_comprehension.js +9 -0
  109. data/packages/coffee-script/documentation/js/expressions_try.js +7 -0
  110. data/packages/coffee-script/documentation/js/fat_arrow.js +9 -0
  111. data/packages/coffee-script/documentation/js/functions.js +7 -0
  112. data/packages/coffee-script/documentation/js/heredocs.js +2 -0
  113. data/packages/coffee-script/documentation/js/heregexes.js +2 -0
  114. data/packages/coffee-script/documentation/js/interpolation.js +4 -0
  115. data/packages/coffee-script/documentation/js/multiple_return_values.js +5 -0
  116. data/packages/coffee-script/documentation/js/object_comprehensions.js +15 -0
  117. data/packages/coffee-script/documentation/js/object_extraction.js +10 -0
  118. data/packages/coffee-script/documentation/js/objects_and_arrays.js +17 -0
  119. data/packages/coffee-script/documentation/js/objects_reserved.js +4 -0
  120. data/packages/coffee-script/documentation/js/overview.js +35 -0
  121. data/packages/coffee-script/documentation/js/parallel_assignment.js +4 -0
  122. data/packages/coffee-script/documentation/js/patterns_and_splats.js +4 -0
  123. data/packages/coffee-script/documentation/js/prototypes.js +3 -0
  124. data/packages/coffee-script/documentation/js/range_comprehensions.js +9 -0
  125. data/packages/coffee-script/documentation/js/scope.js +8 -0
  126. data/packages/coffee-script/documentation/js/slices.js +4 -0
  127. data/packages/coffee-script/documentation/js/soaks.js +2 -0
  128. data/packages/coffee-script/documentation/js/splats.js +15 -0
  129. data/packages/coffee-script/documentation/js/splices.js +3 -0
  130. data/packages/coffee-script/documentation/js/strings.js +2 -0
  131. data/packages/coffee-script/documentation/js/switch.js +23 -0
  132. data/packages/coffee-script/documentation/js/try.js +8 -0
  133. data/packages/coffee-script/documentation/js/while.js +18 -0
  134. data/packages/coffee-script/documentation/vendor/jquery-1.4.2.js +6240 -0
  135. data/packages/coffee-script/examples/beautiful_code/binary_search.coffee +16 -0
  136. data/packages/coffee-script/examples/beautiful_code/quicksort_runtime.coffee +13 -0
  137. data/packages/coffee-script/examples/beautiful_code/regular_expression_matcher.coffee +34 -0
  138. data/packages/coffee-script/examples/blocks.coffee +54 -0
  139. data/packages/coffee-script/examples/code.coffee +167 -0
  140. data/packages/coffee-script/examples/computer_science/README +4 -0
  141. data/packages/coffee-script/examples/computer_science/binary_search.coffee +25 -0
  142. data/packages/coffee-script/examples/computer_science/bubble_sort.coffee +11 -0
  143. data/packages/coffee-script/examples/computer_science/linked_list.coffee +108 -0
  144. data/packages/coffee-script/examples/computer_science/luhn_algorithm.coffee +36 -0
  145. data/packages/coffee-script/examples/computer_science/merge_sort.coffee +19 -0
  146. data/packages/coffee-script/examples/computer_science/selection_sort.coffee +23 -0
  147. data/packages/coffee-script/examples/poignant.coffee +181 -0
  148. data/packages/coffee-script/examples/potion.coffee +206 -0
  149. data/packages/coffee-script/examples/underscore.coffee +682 -0
  150. data/packages/coffee-script/examples/web_server.coffee +12 -0
  151. data/packages/coffee-script/extras/EXTRAS +7 -0
  152. data/packages/coffee-script/extras/coffee-script.js +8 -0
  153. data/packages/coffee-script/extras/jsl.conf +44 -0
  154. data/packages/coffee-script/index.html +2515 -0
  155. data/packages/coffee-script/lib/browser.js +52 -0
  156. data/packages/coffee-script/lib/cake.js +76 -0
  157. data/packages/coffee-script/lib/coffee-script.js +82 -0
  158. data/packages/coffee-script/lib/command.js +263 -0
  159. data/packages/coffee-script/lib/grammar.js +581 -0
  160. data/packages/coffee-script/lib/helpers.js +66 -0
  161. data/packages/coffee-script/lib/index.js +8 -0
  162. data/packages/coffee-script/lib/lexer.js +633 -0
  163. data/packages/coffee-script/lib/nodes.js +2165 -0
  164. data/packages/coffee-script/lib/optparse.js +111 -0
  165. data/packages/coffee-script/lib/parser.js +649 -0
  166. data/packages/coffee-script/lib/repl.js +42 -0
  167. data/packages/coffee-script/lib/rewriter.js +353 -0
  168. data/packages/coffee-script/lib/scope.js +120 -0
  169. data/packages/coffee-script/lib/spade-format.js +45 -0
  170. data/packages/coffee-script/package.json +26 -0
  171. data/packages/coffee-script/src/browser.coffee +43 -0
  172. data/packages/coffee-script/src/cake.coffee +69 -0
  173. data/packages/coffee-script/src/coffee-script.coffee +92 -0
  174. data/packages/coffee-script/src/command.coffee +214 -0
  175. data/packages/coffee-script/src/grammar.coffee +590 -0
  176. data/packages/coffee-script/src/helpers.coffee +56 -0
  177. data/packages/coffee-script/src/index.coffee +2 -0
  178. data/packages/coffee-script/src/lexer.coffee +653 -0
  179. data/packages/coffee-script/src/nodes.coffee +1754 -0
  180. data/packages/coffee-script/src/optparse.coffee +99 -0
  181. data/packages/coffee-script/src/repl.coffee +42 -0
  182. data/packages/coffee-script/src/rewriter.coffee +326 -0
  183. data/packages/coffee-script/src/scope.coffee +94 -0
  184. data/packages/coffee-script/test/arguments.coffee +127 -0
  185. data/packages/coffee-script/test/assignment.coffee +98 -0
  186. data/packages/coffee-script/test/break.coffee +18 -0
  187. data/packages/coffee-script/test/comments.coffee +201 -0
  188. data/packages/coffee-script/test/conditionals.coffee +181 -0
  189. data/packages/coffee-script/test/exception_handling.coffee +90 -0
  190. data/packages/coffee-script/test/helpers.coffee +96 -0
  191. data/packages/coffee-script/test/importing.coffee +18 -0
  192. data/packages/coffee-script/test/operators.coffee +225 -0
  193. data/packages/coffee-script/test/ranges_slices_and_splices.coffee +186 -0
  194. data/packages/coffee-script/test/regular_expressions.coffee +56 -0
  195. data/packages/coffee-script/test/test.html +123 -0
  196. data/packages/coffee-script/test/test_chaining.coffee +77 -0
  197. data/packages/coffee-script/test/test_classes.coffee +372 -0
  198. data/packages/coffee-script/test/test_compilation.coffee +26 -0
  199. data/packages/coffee-script/test/test_comprehensions.coffee +318 -0
  200. data/packages/coffee-script/test/test_existence.coffee +165 -0
  201. data/packages/coffee-script/test/test_functions.coffee +379 -0
  202. data/packages/coffee-script/test/test_heredocs.coffee +111 -0
  203. data/packages/coffee-script/test/test_literals.coffee +270 -0
  204. data/packages/coffee-script/test/test_option_parser.coffee +27 -0
  205. data/packages/coffee-script/test/test_pattern_matching.coffee +162 -0
  206. data/packages/coffee-script/test/test_returns.coffee +63 -0
  207. data/packages/coffee-script/test/test_splats.coffee +102 -0
  208. data/packages/coffee-script/test/test_strings.coffee +118 -0
  209. data/packages/coffee-script/test/test_switch.coffee +103 -0
  210. data/packages/coffee-script/test/test_while.coffee +71 -0
  211. data/packages/ivory/LICENSE.txt +1 -0
  212. data/packages/ivory/README.md +19 -0
  213. data/packages/ivory/lib/buffer.js +111 -0
  214. data/packages/ivory/lib/events.js +137 -0
  215. data/packages/ivory/lib/fs.js +266 -0
  216. data/packages/ivory/lib/main.js +13 -0
  217. data/packages/ivory/lib/path.js +158 -0
  218. data/packages/ivory/lib/ruby/buffer.rb +145 -0
  219. data/packages/ivory/lib/ruby/constants.rb +585 -0
  220. data/packages/ivory/lib/ruby/events.rb +32 -0
  221. data/packages/ivory/lib/ruby/fs.rb +245 -0
  222. data/packages/ivory/lib/ruby/process.rb +28 -0
  223. data/packages/ivory/lib/stream.js +115 -0
  224. data/packages/ivory/lib/util.js +414 -0
  225. data/packages/ivory/package.json +11 -0
  226. data/packages/ivory/spade-boot.js +78 -0
  227. data/packages/jquery/main.js +7179 -0
  228. data/packages/jquery/package.json +10 -0
  229. data/packages/json/lib/main.js +14 -0
  230. data/packages/json/package.json +8 -0
  231. data/packages/lproj/README.md +77 -0
  232. data/packages/lproj/examples/demo-app/en.lproj/localized.strings +2 -0
  233. data/packages/lproj/examples/demo-app/fr.lproj/localized.strings +3 -0
  234. data/packages/lproj/examples/demo-app/index.html +8 -0
  235. data/packages/lproj/examples/demo-app/lib/main.js +7 -0
  236. data/packages/lproj/examples/demo-app/package.json +9 -0
  237. data/packages/lproj/lib/main.js +78 -0
  238. data/packages/lproj/lib/strings-format.js +6 -0
  239. data/packages/lproj/package.json +9 -0
  240. data/packages/optparse/README.md +161 -0
  241. data/packages/optparse/TODO +1 -0
  242. data/packages/optparse/examples/browser-test.html +75 -0
  243. data/packages/optparse/examples/nodejs-test.js +90 -0
  244. data/packages/optparse/lib/optparse.js +309 -0
  245. data/packages/optparse/package.json +13 -0
  246. data/packages/optparse/seed.yml +5 -0
  247. data/packages/text/lib/main.js +8 -0
  248. data/packages/text/package.json +9 -0
  249. data/packages/web-file/README.md +7 -0
  250. data/packages/web-file/lib/errors.js +32 -0
  251. data/packages/web-file/lib/file-reader.js +10 -0
  252. data/packages/web-file/lib/file-system.js +234 -0
  253. data/packages/web-file/lib/file-writer.js +10 -0
  254. data/packages/web-file/lib/file.js +9 -0
  255. data/packages/web-file/lib/main.js +34 -0
  256. data/packages/web-file/lib/platform.js +25 -0
  257. data/packages/web-file/lib/ruby/file.rb +252 -0
  258. data/packages/web-file/lib/ruby/file_reader.rb +69 -0
  259. data/packages/web-file/lib/ruby/file_system.rb +134 -0
  260. data/packages/web-file/lib/ruby/file_writer.rb +78 -0
  261. data/packages/web-file/package.json +12 -0
  262. data/packages/web-typed-array/README.md +7 -0
  263. data/packages/web-typed-array/lib/array-buffer-view.js +9 -0
  264. data/packages/web-typed-array/lib/array-buffer.js +7 -0
  265. data/packages/web-typed-array/lib/main.js +33 -0
  266. data/packages/web-typed-array/lib/platform.js +20 -0
  267. data/packages/web-typed-array/lib/ruby/array_buffer.rb +31 -0
  268. data/packages/web-typed-array/lib/ruby/array_buffer_view.rb +130 -0
  269. data/packages/web-typed-array/lib/ruby/typed_array.rb +133 -0
  270. data/packages/web-typed-array/lib/typed-array.js +26 -0
  271. data/packages/web-typed-array/package.json +9 -0
  272. data/spade-packager.gemspec +39 -0
  273. data/spec/cli/build_spec.rb +57 -0
  274. data/spec/cli/install_spec.rb +119 -0
  275. data/spec/cli/installed_spec.rb +55 -0
  276. data/spec/cli/list_spec.rb +74 -0
  277. data/spec/cli/login_spec.rb +75 -0
  278. data/spec/cli/new_spec.rb +5 -0
  279. data/spec/cli/owner_spec.rb +114 -0
  280. data/spec/cli/push_spec.rb +73 -0
  281. data/spec/cli/uninstall_spec.rb +58 -0
  282. data/spec/cli/unpack_spec.rb +72 -0
  283. data/spec/cli/unyank_spec.rb +73 -0
  284. data/spec/cli/yank_spec.rb +73 -0
  285. data/spec/credentials_spec.rb +23 -0
  286. data/spec/fixtures/badrake-0.8.7.spd +0 -0
  287. data/spec/fixtures/builder-3.0.0.spd +0 -0
  288. data/spec/fixtures/bundler-1.1.pre.spd +0 -0
  289. data/spec/fixtures/coffee-1.0.1.pre.spd +0 -0
  290. data/spec/fixtures/core-test-0.4.3.spd +0 -0
  291. data/spec/fixtures/core-test/bin/cot +3 -0
  292. data/spec/fixtures/core-test/lib/main.js +1 -0
  293. data/spec/fixtures/core-test/resources/runner.css +0 -0
  294. data/spec/fixtures/core-test/tests/test.js +1 -0
  295. data/spec/fixtures/highline-1.6.1.spd +0 -0
  296. data/spec/fixtures/ivory-0.0.1.spd +0 -0
  297. data/spec/fixtures/jquery-1.4.3.spd +0 -0
  298. data/spec/fixtures/optparse-1.0.1.spd +0 -0
  299. data/spec/fixtures/package.json +30 -0
  300. data/spec/fixtures/rake-0.8.6.spd +0 -0
  301. data/spec/fixtures/rake-0.8.7.spd +0 -0
  302. data/spec/gauntlet_spec.rb +27 -0
  303. data/spec/package_spec.rb +267 -0
  304. data/spec/spec_helper.rb +32 -0
  305. data/spec/support/cli.rb +103 -0
  306. data/spec/support/fake.rb +48 -0
  307. data/spec/support/fake_gem_server.rb +67 -0
  308. data/spec/support/fake_gemcutter.rb +50 -0
  309. data/spec/support/matchers.rb +32 -0
  310. data/spec/support/path.rb +61 -0
  311. data/templates/project/LICENSE +19 -0
  312. data/templates/project/README.md +21 -0
  313. data/templates/project/lib/main.js +9 -0
  314. data/templates/project/project.json +31 -0
  315. data/templates/project/tests/main-test.js +8 -0
  316. metadata +484 -0
@@ -0,0 +1,133 @@
1
+ # ==========================================================================
2
+ # Project: Web Typed Array
3
+ # Copyright: ©2010 Strobe Inc. All rights reserved.
4
+ # License: Licened under MIT license (see LICENSE)
5
+ # ==========================================================================
6
+
7
+ module WebTypedArray
8
+
9
+ class TypedArrayExports < Spade::Runtime::Exports
10
+
11
+ def initialize(ctx)
12
+ super(ctx)
13
+ context.require 'web-typed-array/ruby/array_buffer_view'
14
+ context.require 'web-typed-array/ruby/array_buffer'
15
+ end
16
+
17
+ # TODO: Use a string to keep the buffer packed instead of the much more
18
+ # expensive Array
19
+ class TypedArray
20
+
21
+ include Spade::Runtime::Namespace
22
+
23
+ DataView = WebTypedArray::ArrayBufferViewExports::DataView
24
+ ArrayBuffer = WebTypedArray::ArrayBufferExports::ArrayBuffer
25
+
26
+ attr_reader :buffer
27
+ attr_reader :byteOffset
28
+ attr_reader :byteLength
29
+
30
+ def initialize(buffer, byteOffset=nil, length=nil)
31
+ buffer = ArrayBuffer.new(buffer) if buffer.instance_of? Fixnum
32
+ length = length*word_size unless length.nil?
33
+
34
+ @view = DataView.new(buffer, byteOffset, length)
35
+ @buffer = buffer
36
+ @byteOffset = @view.byteOffset
37
+ @byteLength = @view.byteLength
38
+
39
+ end
40
+
41
+ def length
42
+ @view.byteLength / word_size
43
+ end
44
+
45
+ def [](offset)
46
+ @view.send(getter_method, offset)
47
+ end
48
+
49
+ def []=(offset, value)
50
+ @view.send(setter_method, offset, value)
51
+ end
52
+
53
+ def set(array, offset=nil)
54
+ throw "#set not impl yet"
55
+ end
56
+
57
+ def slice(beginOffset, endOffset)
58
+ end
59
+
60
+ protected
61
+
62
+ def method_key
63
+ self.class.superclass.to_s.sub(/^.+:(.+)Array$/, '\1')
64
+ end
65
+
66
+ def getter_method
67
+ @getter_method ||= "get#{method_key}"
68
+ end
69
+
70
+ def setter_method
71
+ @setter_method ||= "set#{method_key}"
72
+ end
73
+
74
+ def word_size
75
+ @word_size ||= self.class::BYTES_PER_ELEMENT
76
+ end
77
+
78
+
79
+ end
80
+
81
+ class Int8Array < TypedArray
82
+
83
+ BYTES_PER_ELEMENT = 1
84
+
85
+ end
86
+
87
+ class Uint8Array < TypedArray
88
+
89
+ BYTES_PER_ELEMENT = 1
90
+
91
+ end
92
+
93
+ class Int16Array < TypedArray
94
+
95
+ BYTES_PER_ELEMENT = 2
96
+
97
+ end
98
+
99
+ class Uint16Array < TypedArray
100
+
101
+ BYTES_PER_ELEMENT = 2
102
+
103
+ end
104
+
105
+ class Int32Array < TypedArray
106
+
107
+ BYTES_PER_ELEMENT = 4
108
+
109
+ end
110
+
111
+ class Uint32Array < TypedArray
112
+
113
+ BYTES_PER_ELEMENT = 4
114
+
115
+ end
116
+
117
+ class Float32Array < TypedArray
118
+
119
+ BYTES_PER_ELEMENT = 4
120
+
121
+ end
122
+
123
+ class Float64Array < TypedArray
124
+
125
+ BYTES_PER_ELEMENT = 8
126
+
127
+ end
128
+
129
+ end
130
+
131
+ end
132
+
133
+ Spade.exports WebTypedArray::TypedArrayExports
@@ -0,0 +1,26 @@
1
+ // ==========================================================================
2
+ // Project: Web Typed Array
3
+ // Copyright: ©2010 Strobe Inc. All rights reserved.
4
+ // License: Licened under MIT license (see __preamble__.js)
5
+ // ==========================================================================
6
+
7
+ var nat = require('./ruby/typed_array');
8
+ exports.TypedArray = nat.TypedArray;
9
+ exports.Int8Array = nat.Int8Array;
10
+ exports.Uint8Array = nat.Uint8Array;
11
+ exports.Int16Array = nat.Int16Array;
12
+ exports.Uint16Array = nat.Uint16Array;
13
+ exports.Int32Array = nat.Int32Array;
14
+ exports.Uint32Array = nat.Uint32Array;
15
+ exports.Float32Array = nat.Float32Array;
16
+ exports.Float64Array = nat.Float64Array;
17
+
18
+ exports.Int8Array.BYTES_PER_ELEMENT = 1;
19
+ exports.Uint8Array.BYTES_PER_ELEMENT = 1;
20
+ exports.Int16Array.BYTES_PER_ELEMENT = 2;
21
+ exports.Uint16Array.BYTES_PER_ELEMENT = 2;
22
+ exports.Int32Array.BYTES_PER_ELEMENT = 4;
23
+ exports.Uint32Array.BYTES_PER_ELEMENT = 4;
24
+ exports.Float32Array.BYTES_PER_ELEMENT = 4;
25
+ exports.Float64Array.BYTES_PER_ELEMENT = 8;
26
+
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "web-typed-array",
3
+ "author": "Charles Jolley",
4
+ "homepage": "http://github.com/charlesjolley",
5
+ "summary": "web typed array",
6
+ "description": "a web typed array for javascript",
7
+ "version": "0.0.1",
8
+ "directories": { "lib": "lib" }
9
+ }
@@ -0,0 +1,39 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib/', __FILE__)
3
+ $:.unshift lib unless $:.include?(lib)
4
+
5
+ require 'spade/packager/version'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "spade-packager"
9
+ s.version = Spade::Packager::VERSION
10
+ s.platform = Gem::Platform::RUBY
11
+ s.authors = ["Charles Jolley", "Peter Wagenet"]
12
+ s.email = ["charles@sproutcore.com", "peterw@strobecorp.com"]
13
+ s.homepage = "http://github.com/strobecorp/spade"
14
+ s.summary = s.description = "Package Manager for JavaScript"
15
+
16
+ mswin = RbConfig::CONFIG["host_os"] =~ %r!(msdos|mswin|djgpp|mingw)!
17
+ mri = !mswin && (!defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby")
18
+
19
+ s.add_dependency "libgems", "~> 0.0.2"
20
+ s.add_dependency "gemcutter", "~> 0.6.1"
21
+ s.add_dependency "highline", "~> 1.6.1"
22
+ s.add_dependency "json_pure", "~> 1.4.6"
23
+ s.add_dependency "thor", "~> 0.14.3"
24
+
25
+ s.add_development_dependency "rspec"
26
+ s.add_development_dependency "rack", "~> 1.2.1"
27
+
28
+ paths = `git submodule`.split("\n").map do |line|
29
+ path = line.gsub(/^ \w+ ([^\s]+) .+$/,'\1')
30
+ `cd #{path}; git ls-files`.split("\n").map { |p| File.join(path, p) }
31
+ end
32
+ paths << `git ls-files`.split("\n")
33
+ s.files = paths.flatten
34
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
35
+
36
+ s.executables = ['spadepkg']
37
+ s.require_paths = ["lib"]
38
+ end
39
+
@@ -0,0 +1,57 @@
1
+ require "spec_helper"
2
+ require "libgems/format"
3
+
4
+ describe "spade build when logged in" do
5
+ let(:email) { "who@example.com" }
6
+
7
+ before do
8
+ goto_home
9
+ write_creds(email, "deadbeef")
10
+ end
11
+
12
+ it "builds a spade from a given package.json" do
13
+ FileUtils.cp_r fixtures("core-test"), "."
14
+ FileUtils.cp fixtures("package.json"), "core-test"
15
+ cd "core-test"
16
+ spade "package", "build"
17
+
18
+ exit_status.should be_success
19
+ output = stdout.read
20
+ output.should include("Successfully built package: core-test-0.4.3.spd")
21
+
22
+ package = LibGems::Format.from_file_by_path("core-test-0.4.3.spd")
23
+ package.spec.name.should == "core-test"
24
+ package.spec.version.should == LibGems::Version.new("0.4.3")
25
+ package.spec.email.should == email
26
+ end
27
+ end
28
+
29
+ describe "spade build without logging in" do
30
+ before do
31
+ goto_home
32
+ end
33
+
34
+ it "warns the user that they must log in first" do
35
+ spade "package", "build", :track_stderr => true
36
+
37
+ exit_status.should_not be_success
38
+ stderr.read.should include("Please login first with `spade login`")
39
+ end
40
+ end
41
+
42
+ describe "spade build with an invalid package.json" do
43
+ before do
44
+ goto_home
45
+ write_api_key("deadbeef")
46
+ end
47
+
48
+ it "reports error messages" do
49
+ FileUtils.touch "package.json"
50
+ spade "package", "build", :track_stderr => true
51
+
52
+ exit_status.should_not be_success
53
+ output = stderr.read
54
+ output.should include("Spade encountered the following problems building your package:")
55
+ output.should include("There was a problem parsing package.json")
56
+ end
57
+ end
@@ -0,0 +1,119 @@
1
+ require "spec_helper"
2
+
3
+ describe "spade install" do
4
+ before do
5
+ goto_home
6
+ set_host
7
+ start_fake(FakeGemServer.new)
8
+ end
9
+
10
+ it "installs a valid gem" do
11
+ spade "package", "install", "rake"
12
+
13
+ stdout.read.should include("Successfully installed rake-0.8.7")
14
+
15
+ "rake-0.8.7".should be_fetched
16
+ "rake-0.8.7".should be_unpacked
17
+ end
18
+
19
+ it "installs a multiple gems" do
20
+ spade "package", "install", "rake", "builder"
21
+
22
+ output = stdout.read
23
+
24
+ %w[builder-3.0.0 rake-0.8.7].each do |pkg|
25
+ output.should include("Successfully installed #{pkg}")
26
+ pkg.should be_fetched
27
+ pkg.should be_unpacked
28
+ end
29
+ end
30
+
31
+ it "installs valid gems while ignoring invalid ones" do
32
+ spade "package", "install", "rake", "fake", :track_stderr => true
33
+
34
+ stdout.read.should include("Successfully installed rake-0.8.7")
35
+ stderr.read.should include("Can't find package fake")
36
+
37
+ "rake-0.8.7".should be_fetched
38
+ "rake-0.8.7".should be_unpacked
39
+ "fake-0".should_not be_fetched
40
+ "fake-0".should_not be_unpacked
41
+ end
42
+
43
+ it "fails when installing an invalid gem" do
44
+ spade "package", "install", "fake", :track_stderr => true
45
+
46
+ stderr.read.should include("Can't find package fake")
47
+ "rake-0.8.7".should_not be_fetched
48
+ "rake-0.8.7".should_not be_unpacked
49
+ "fake-0".should_not be_fetched
50
+ "fake-0".should_not be_unpacked
51
+ end
52
+
53
+ it "fails if spade can't write to the spade directory" do
54
+ FileUtils.mkdir_p spade_dir
55
+ FileUtils.chmod 0555, spade_dir
56
+
57
+ spade "package", "install", "rake", :track_stderr => true
58
+ exit_status.should_not be_success
59
+
60
+ "rake-0.8.7".should_not be_fetched
61
+ "rake-0.8.7".should_not be_unpacked
62
+ end
63
+
64
+ it "installs gems with a different version" do
65
+ spade "package", "install", "rake", "-v", "0.8.6"
66
+
67
+ stdout.read.should include("Successfully installed rake-0.8.6")
68
+
69
+ "rake-0.8.7".should_not be_fetched
70
+ "rake-0.8.7".should_not be_unpacked
71
+ "rake-0.8.6".should be_fetched
72
+ "rake-0.8.6".should be_unpacked
73
+ end
74
+
75
+ it "installs a valid prerelease package" do
76
+ spade "package", "install", "bundler", "--pre"
77
+
78
+ stdout.read.should include("Successfully installed bundler-1.1.pre")
79
+
80
+ "bundler-1.1.pre".should be_fetched
81
+ "bundler-1.1.pre".should be_unpacked
82
+ end
83
+
84
+ it "does not install the normal package when asking for a prerelease" do
85
+ spade "package", "install", "rake", "--pre", :track_stderr => true
86
+
87
+ stderr.read.should include("Can't find package rake")
88
+
89
+ "rake-0.8.7".should_not be_fetched
90
+ "rake-0.8.7".should_not be_unpacked
91
+ "rake-0.8.6".should_not be_fetched
92
+ "rake-0.8.6".should_not be_unpacked
93
+ end
94
+
95
+ it "requires at least one package to install" do
96
+ spade "package", "install", :track_stderr => true
97
+ stderr.read.should include("called incorrectly")
98
+ end
99
+
100
+ it "does not make a .gem directory" do
101
+ spade "package", "install", "rake"
102
+ wait
103
+ home(".gem").exist?.should be_false
104
+ end
105
+
106
+ it "installs gem dependencies" do
107
+ spade "package", "install", "core-test"
108
+
109
+ output = stdout.read
110
+
111
+ %w(ivory-0.0.1 optparse-1.0.1 core-test-0.4.3).each do |name|
112
+ output.should include("Successfully installed #{name}")
113
+
114
+ name.should be_fetched
115
+ name.should be_unpacked
116
+ end
117
+ end
118
+
119
+ end
@@ -0,0 +1,55 @@
1
+ require "spec_helper"
2
+
3
+ describe "spade installed" do
4
+ before do
5
+ goto_home
6
+ set_host
7
+ # TODO: Make this LibGems specific
8
+ env["GEM_HOME"] = spade_dir.to_s
9
+ env["GEM_PATH"] = spade_dir.to_s
10
+ start_fake(FakeGemServer.new)
11
+ end
12
+
13
+ it "lists installed spades" do
14
+ spade "package", "install", "rake"
15
+ wait
16
+ spade "package", "installed"
17
+
18
+ output = stdout.read
19
+ output.should include("rake (0.8.7)")
20
+ output.should_not include("0.8.6")
21
+ output.should_not include("builder")
22
+ output.should_not include("bundler")
23
+ output.should_not include("highline")
24
+ end
25
+
26
+ it "lists all installed spades from different versions" do
27
+ spade "package", "install", "rake"
28
+ wait
29
+ spade "package", "install", "rake", "-v", "0.8.6"
30
+ wait
31
+ spade "package", "installed"
32
+
33
+ output = stdout.read
34
+ output.should include("rake (0.8.7, 0.8.6)")
35
+ end
36
+
37
+ it "filters spades when given an argument" do
38
+ spade "package", "install", "rake"
39
+ wait
40
+ spade "package", "install", "builder"
41
+ wait
42
+ spade "package", "installed", "builder"
43
+
44
+ output = stdout.read
45
+ output.should_not include("rake")
46
+ output.should include("builder (3.0.0)")
47
+ end
48
+
49
+ it "says it couldn't find any if none found" do
50
+ spade "package", "installed", "rails", :track_stderr => true
51
+
52
+ stderr.read.strip.should == 'No packages found matching "rails".'
53
+ exit_status.should_not be_success
54
+ end
55
+ end