spade 0.0.8.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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,32 +0,0 @@
1
- // ==========================================================================
2
- // Project: Web File
3
- // Copyright: ©2010 Strobe Inc. All rights reserved.
4
- // License: Licened under MIT license (see __preamble__.js)
5
- // ==========================================================================
6
-
7
- var messages = [
8
- null,
9
- 'File Not Found',
10
- 'Security Error',
11
- 'Operation aborted',
12
- 'File not readable',
13
- 'Encoding Error'
14
- ];
15
-
16
- var FileError = function(code) {
17
- this.code = code;
18
- this.message = messages[code];
19
- };
20
-
21
- FileError.prototype = new Error();
22
- FileError.prototype.constructor = FileError;
23
- FileError.prototype.toString = function() { return this.message; };
24
-
25
- FileError.NOT_FOUND_ERR = 1;
26
- FileError.SECURITY_ERR = 2;
27
- FileError.ABORT_ERR = 3;
28
- FileError.NOT_READABLE_ERR = 4;
29
- FileError.ENCODING_ERR = 5;
30
-
31
- exports.FileError = FileError;
32
- exports.FileException = FileError;
@@ -1,10 +0,0 @@
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/file_reader');
8
-
9
- exports.FileReader = nat.FileReader;
10
- exports.FileReaderSync = nat.FileReaderSync;
@@ -1,234 +0,0 @@
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
- /**
8
- On platforms that support it, the FileSystem API provides a way for you
9
- to access and navigate files on disk. FileSystem instances may be provided
10
- by the system that limits the visible scope of files.
11
-
12
- To get the default file system look for the global fileSystem object.
13
- */
14
-
15
- var nat = require('./ruby/file_system');
16
- var FileSystem;
17
-
18
- // ..........................................................
19
- // STAT Object
20
- //
21
- var Stat = function(nstat) {
22
- this._nstat = nstat;
23
- };
24
-
25
- Stat.prototype = {
26
- constructor: Stat,
27
-
28
- get size() { return this._nstat.size; },
29
- get blockSize() { return this._nstat.blksize; },
30
- get blocks() { return this._nstat.blocks; },
31
- get mode() { return this._nstat.mode; },
32
-
33
- get uid() { return this._nstat.uid; },
34
- get gid() { return this._nstat.uid; },
35
-
36
- get device() { return this._nstat.dev; },
37
- get inode() { return this._nstat.ino; },
38
-
39
- get mtime() { return this._nstat.mtime; },
40
- get ctime() { return this._nstat.ctime; },
41
- get atime() { return this._nstat.atime; },
42
-
43
- get isDirectory() { return this._nstat['directory?']; },
44
- get isFile() { return this._nstat['file?']; },
45
- get isSymlink() { return this._nstat['symlink?']; },
46
- get isReadable() { return this._nstat['readable?']; },
47
- get isWritable() { return this._nstat['writable?']; },
48
- get isExecutable() { return this._nstat['executable?']; },
49
- get isSticky() { return this._nstat['sticky?']; }
50
-
51
- };
52
-
53
- // ..........................................................
54
- // FileSystem
55
- //
56
-
57
- function readOnlyError() {
58
- throw new Error("FileSystem is read only");
59
- }
60
-
61
- // We want this to be secure. hence the reason we do it this way.
62
- FileSystem = function() {
63
- throw "Invalid constructor";
64
- };
65
-
66
- function createFileSystem(root, cwd, readOnly) {
67
-
68
- readOnly = !!readOnly;
69
-
70
- // create one off instance
71
- fs = function() {};
72
- fs.prototype = FileSystem.prototype;
73
- fs = new fs();
74
-
75
- fs.SEPARATOR = nat.SEPARATOR;
76
-
77
-
78
- // Takes an absolute path, removes the root prefix
79
- function denorm(path) {
80
- return root==='/' ? path : path.slice(root.length);
81
- }
82
-
83
- // make prefixed
84
- function norm(path) {
85
- if(path[0] === fs.SEPARATOR) {
86
- return nat.expand_path(nat.join_path(root, path));
87
- } else {
88
- return nat.expand_path(path, cwd);
89
- }
90
- }
91
-
92
- fs.__defineGetter__('cwd', function() { return denorm(cwd); });
93
- fs.__defineSetter__('cwd', function(v) {
94
- cwd = norm(v);
95
- return denorm(cwd);
96
- });
97
-
98
- // fs.cwd = function(path) {
99
- // if (path !== undefined) cwd = norm(path);
100
- // return denorm(cwd);
101
- // };
102
-
103
- fs.stat = function(path) {
104
- return new Stat(nat.stat(norm(path)));
105
- };
106
-
107
- fs.open = function(path, opts) {
108
- if (!opts) opts = {};
109
- if (!('readable' in opts)) opts.readable = true;
110
- if (!('writable' in opts) || readOnly) opts.writable = !readOnly;
111
- if (!('executable' in opts)) opts.executable = false;
112
- if (!('append' in opts)) opts.append = false;
113
- if (!('modify' in opts) || opts.append) opts.modify = false;
114
- return nat.open(norm(path), opts);
115
- };
116
-
117
- fs.exists = function(path) {
118
- return nat.exists(norm(path));
119
- };
120
-
121
- fs.chroot = function(path, readOnly) {
122
- path = path===undefined ? cwd : norm(path);
123
- return createFileSystem(path, path, readOnly);
124
- };
125
-
126
-
127
- // ..........................................................
128
- // PATH OPS
129
- //
130
-
131
- fs.join = function() {
132
- return nat.join_path(Array.prototype.slice.call(arguments));
133
- };
134
-
135
- fs.split = function(path) {
136
- return nat.split_path(path);
137
- };
138
-
139
- fs.dirname = function(path) {
140
- return nat.dirname(path);
141
- };
142
-
143
- fs.basename = function(path, ext) {
144
- return nat.basename(path, ext);
145
- };
146
-
147
- fs.ext = function(path) {
148
- return nat.extname(path);
149
- };
150
-
151
- fs.expand = function(path, base) {
152
- return nat.expand_path(path, base);
153
- };
154
-
155
- fs.glob = function(path) {
156
- return nat.glob(norm(path)).map(function(x) { return denorm(x); });
157
- };
158
-
159
- // ..........................................................
160
- // WRITABLE OPS
161
- //
162
-
163
- fs.mkdir = function(path, mode) {
164
- if (readOnly) readOnlyError();
165
- nat.mkdir(norm(path), mode);
166
- return this;
167
- };
168
-
169
- fs.mkdirs = function(path, mode) {
170
- if (readOnly) readOnlyError();
171
- nat.mkdir_p(norm(path), mode);
172
- return this;
173
- };
174
- fs.mkdir_p = fs.mkdirs;
175
-
176
- fs.move = function(src, dst) {
177
- if (readOnly) readOnlyError();
178
- if (src && src.map) src = src.map(function(s) { return norm(s); });
179
- else src = norm(src);
180
-
181
- nat.mv(src, norm(dst));
182
- return this;
183
- };
184
- fs.mv = fs.move;
185
-
186
- fs.copy = function(src, dst, opts) {
187
- if (readOnly) readOnlyError();
188
-
189
- if (src && src.map) src = src.map(function(s) { return norm(s); });
190
- else src = norm(src);
191
-
192
- if (!opts) opts = {};
193
- if (opts.recursive) nat.cp_r(src, norm(dst));
194
- else nat.cp(src, norm(dst));
195
-
196
- return this;
197
- };
198
- fs.cp = fs.copy;
199
-
200
- fs.remove = function(src, opts) {
201
- if (readOnly) readOnlyError();
202
-
203
- if (src && src.map) src = src.map(function(s) { return norm(s); });
204
- else src = norm(src);
205
-
206
- if (!opts) opts = {};
207
- if (opts.force) nat.rm_rf(src);
208
- else if (opts.recursive) nat.rm_r(src);
209
- else nat.rm(src)
210
-
211
- return this;
212
- };
213
- fs.rm = fs.remove;
214
-
215
- fs.link = function(src, dst, opts) {
216
- if (readOnly) readOnlyError();
217
-
218
- if (src && src.map) src = src.map(function(s) { return norm(s); });
219
- else src = norm(src);
220
-
221
- if (!opts) opts = {};
222
- if (opts.symbolic) nat.ln_s(src, norm(dst));
223
- else nat.ln(src, norm(dst));
224
-
225
- return this;
226
- };
227
- fs.ln = fs.link;
228
-
229
- return fs;
230
-
231
- }
232
-
233
- exports.FileSystem = FileSystem;
234
- exports.fileSystem = createFileSystem('/', nat.cwd, false);
@@ -1,10 +0,0 @@
1
- // ==========================================================================
2
- // Project: File API
3
- // Copyright: ©2010 Strobe Inc. All rights reserved.
4
- // License: Licened under MIT license (see __preamble__.js)
5
- // ==========================================================================
6
-
7
- var nat = require('./ruby/file_writer');
8
-
9
- exports.FileWriter = nat.FileWriter;
10
- exports.FileWriterSync = nat.FileWriterSync;
@@ -1,9 +0,0 @@
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/file');
8
- exports.Blob = nat.Blob;
9
- exports.File = nat.File;
@@ -1,34 +0,0 @@
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
- /*globals ENV File Blob FileReader FileReaderSync FileSystem fileSystem FileWriter FileWriterSync */
7
-
8
- if (!require('./platform').isSupported) {
9
- throw new Error('File API is not supported on this platform');
10
- }
11
-
12
- var exp;
13
-
14
- // browser either supports it or doesn't.
15
- if (ENV.SPADE_PLATFORM.ENGINE !== 'browser') {
16
- exp = require('./file');
17
- Blob = exp.Blob;
18
- File = exp.File;
19
-
20
- exp = require('./file-reader');
21
- FileReader = exp.FileReader;
22
- FileReaderSync = exp.FileReaderSync;
23
-
24
- exp = require('./file-writer');
25
- FileWriter = exp.FileWriter;
26
- FileWriterSync = exp.FileWriterSync;
27
-
28
- exp = require('./file-system');
29
- FileSystem = exp.FileSystem;
30
- fileSystem = exp.fileSystem;
31
- }
32
-
33
-
34
-
@@ -1,25 +0,0 @@
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
- /*globals ENV File */
7
-
8
- var supported = false, fs = false;
9
-
10
- switch(ENV.SPADE_PLATFORM.ENGINE) {
11
- case 'browser':
12
- supported = 'undefined' !== typeof File;
13
- break;
14
-
15
- case 'spade':
16
- supported = true;
17
- fs = true;
18
- break;
19
- }
20
-
21
- exports.isSupported = supported;
22
- exports.hasFileSystem = fs; // if true then you can nav filesystem
23
-
24
-
25
-
@@ -1,252 +0,0 @@
1
- # ==========================================================================
2
- # Project: File
3
- # Copyright: ©2010 Strobe Inc. All rights reserved.
4
- # License: Licened under MIT license (see LICENSE)
5
- # ==========================================================================
6
-
7
- require 'fileutils'
8
-
9
- module WebFile
10
- class FileExports < Spade::Exports
11
-
12
- class Blob
13
-
14
- def size
15
- 0
16
- end
17
-
18
- attr_reader :type
19
-
20
- def readable
21
- false
22
- end
23
-
24
- def writable
25
- false
26
- end
27
-
28
- def executable
29
- false
30
- end
31
-
32
- # If true, then writing to the file will not clear the contents.
33
- def appends
34
- false
35
- end
36
-
37
- def initialize
38
- throw self.class.context['Error'].new("Illegal constructor")
39
- end
40
-
41
- def slice(offset, length, contentType=nil)
42
- offset = size if offset > size
43
- length = self.size-offset if offset+length > size
44
- offset += @offset unless @offset.nil?
45
- self.dup.setup_slice(offset, length, contentType || @type)
46
- end
47
-
48
- protected
49
-
50
- def dup
51
- self.class.new
52
- end
53
-
54
- def setup_slice(offset, length, contentType=nil)
55
- @offset = offset
56
- @length = length
57
- @type = contentType unless contentType.nil?
58
- self
59
- end
60
-
61
- end
62
-
63
- class File < Blob
64
-
65
- attr_reader :name, :lastModifiedDate
66
-
67
- end
68
-
69
- end
70
-
71
- class RealFile < FileExports::File
72
-
73
- def initialize(path, ctx, perms=nil, offset=nil, length=nil, type=nil)
74
- @path = path
75
- @ctx = ctx
76
- @offset = offset.nil? ? 0 : offset
77
- @length = length
78
- @type = type
79
-
80
- if perms.instance_of? V8::Object
81
- @perms = {}
82
- perms.each { |key, value| @perms[key.to_sym] = value }
83
- else
84
- @perms = perms || {}
85
- end
86
-
87
- @perms_checked = false
88
- end
89
-
90
- #############################################'
91
- ## FILE PROPERTIES
92
- ##
93
-
94
- def name
95
- @name ||= ::File.basename(@path)
96
- end
97
-
98
- def lastModifiedDate
99
- @ctx['Date'].new(::File.mtime(@path))
100
- end
101
-
102
- def size
103
- total_size = ::File.size(@path) - @offset
104
- @length.nil? || total_size<@length ? total_size : @length
105
- end
106
-
107
- def type
108
- require 'rack/mime'
109
- @type ||= Rack::Mime.mime_type(::File.extname(@path))
110
- end
111
-
112
-
113
- #############################################'
114
- ## PERMISSIONS
115
- ##
116
-
117
- def readable
118
- check_perms if !@perms_checked
119
- @perms[:readable] && exists
120
- end
121
-
122
- def writable
123
- check_perms if !@perms_checked
124
- @perms[:writable]
125
- end
126
-
127
- def appends
128
- check_perms if !@perms_checked
129
- @perms[:append]
130
- end
131
-
132
- def modifies
133
- check_perms if !@perms_checked
134
- @perms[:modify]
135
- end
136
-
137
- def executable
138
- check_perms if !@perms_checked
139
- @perms[:executable]
140
- end
141
-
142
- def exists
143
- File.exists? @path
144
- end
145
-
146
-
147
- protected
148
-
149
- def dup
150
- self.class.new(@path, @ctx, @perms, @offset, @length, @type)
151
- end
152
-
153
- # restrict file permissions to actual permissions on disk\
154
- def check_perms
155
- @perms_checked = true
156
- @perms = {} if @perms.nil?
157
-
158
- if File.directory?(@path)
159
- @perms[:readable] = @perms[:writable] = @perms[:executable] = false
160
- else
161
-
162
- path = @path
163
- path = File.dirname(path) while(path!='/' && !File.exists?(path))
164
-
165
- st = File.stat path
166
- @perms[:readable] &&= st.readable?
167
- @perms[:writable] &&= st.writable?
168
- @perms[:executable] &&= (path == @path) ? st.executable? : false
169
- end
170
-
171
- @perms[:append] &&= @perms[:writable]
172
- @perms[:modify] &&= @perms[:writable] && !@perms[:append]
173
-
174
- # can only append if offset puts us at the start. i.e. slicing
175
- # disables append
176
- if @perms[:append] && @offset>0
177
- @perms[:append] = false
178
- @perms[:modify] = true
179
- end
180
-
181
- end
182
-
183
- def read_sync(kind, encoding=nil)
184
-
185
- throw "File #{name} is not readable" unless readable
186
-
187
- case kind
188
- when :buffer
189
- @ctx.require 'web-typed-array'
190
-
191
- buf = WebTypedArray::ArrayBufferExports::ArrayBuffer.new(size)
192
- str = IO.read(@path, size, @offset||0)
193
- buf.instance_eval do
194
- @buf = str
195
- end
196
-
197
- buf
198
-
199
- when :text
200
- if encoding && encoding != 'utf8' && encoding != 'ascii'
201
- throw "only utf8 and ascii encoding currently supported"
202
- end
203
- IO.read(@path, size, @offset||0)
204
- # TODO: handle encoding
205
-
206
- else
207
- throw "do not (yet) know how to read #{kind}"
208
- end
209
- end
210
-
211
- def write_sync(kind, data, encoding=nil)
212
-
213
- throw "File #{name} is not writable" unless writable
214
-
215
- case kind
216
-
217
- when :buffer
218
- str = data.buf
219
- FileUtils.mkdir_p File.dirname(@path)
220
- File.open(@path, appends || modifies ? 'a' : 'w') do |fd|
221
-
222
- # write in filler if needed
223
- fd.seek @offset||0 unless appends
224
-
225
- # constrain only if this file has been sliced.
226
- str = str[0...size] if !@length.nil? && size < str.size
227
- fd.write(str)
228
- end
229
-
230
- when :text
231
- FileUtils.mkdir_p File.dirname(@path)
232
- File.open(@path, appends || modifies ? 'a' : 'w') do |fd|
233
- fd.seek @offset unless appends
234
-
235
- # constrain only if this file has been sliced.
236
- data = data[0...size] if !@length.nil? && size < data.size
237
- fd.write(data)
238
- end
239
-
240
-
241
-
242
- else
243
- throw "do not (yet) know how to write #{kind}"
244
- end
245
- end
246
-
247
-
248
- end
249
-
250
- end
251
-
252
- Spade.exports WebFile::FileExports