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.
- data/.gitignore +2 -0
- data/.gitmodules +6 -0
- data/bin/spadepkg +8 -0
- data/lib/libgems_ext.rb +8 -0
- data/lib/libgems_ext/config_file.rb +33 -0
- data/lib/libgems_ext/dependency_installer.rb +150 -0
- data/lib/libgems_ext/installer.rb +39 -0
- data/lib/libgems_ext/libgems.rb +39 -0
- data/lib/libgems_ext/spec_fetcher.rb +11 -0
- data/lib/spade-packager.rb +1 -0
- data/lib/spade/packager.rb +18 -0
- data/lib/spade/packager/cli.rb +9 -0
- data/lib/spade/packager/cli/base.rb +196 -0
- data/lib/spade/packager/cli/owner.rb +46 -0
- data/lib/spade/packager/cli/project_generator.rb +117 -0
- data/lib/spade/packager/credentials.rb +38 -0
- data/lib/spade/packager/local.rb +50 -0
- data/lib/spade/packager/package.rb +160 -0
- data/lib/spade/packager/remote.rb +98 -0
- data/lib/spade/packager/repository.rb +18 -0
- data/lib/spade/packager/version.rb +5 -0
- data/packages/coffee-script/.gitignore +8 -0
- data/packages/coffee-script/.npmignore +11 -0
- data/packages/coffee-script/Cakefile +229 -0
- data/packages/coffee-script/LICENSE +22 -0
- data/packages/coffee-script/README +47 -0
- data/packages/coffee-script/Rakefile +78 -0
- data/packages/coffee-script/bin/cake +7 -0
- data/packages/coffee-script/bin/coffee +7 -0
- data/packages/coffee-script/documentation/coffee/aliases.coffee +11 -0
- data/packages/coffee-script/documentation/coffee/array_comprehensions.coffee +2 -0
- data/packages/coffee-script/documentation/coffee/block_comment.coffee +6 -0
- data/packages/coffee-script/documentation/coffee/cake_tasks.coffee +9 -0
- data/packages/coffee-script/documentation/coffee/classes.coffee +25 -0
- data/packages/coffee-script/documentation/coffee/comparisons.coffee +5 -0
- data/packages/coffee-script/documentation/coffee/conditionals.coffee +13 -0
- data/packages/coffee-script/documentation/coffee/default_args.coffee +8 -0
- data/packages/coffee-script/documentation/coffee/do.coffee +4 -0
- data/packages/coffee-script/documentation/coffee/embedded.coffee +5 -0
- data/packages/coffee-script/documentation/coffee/existence.coffee +10 -0
- data/packages/coffee-script/documentation/coffee/expressions.coffee +9 -0
- data/packages/coffee-script/documentation/coffee/expressions_assignment.coffee +3 -0
- data/packages/coffee-script/documentation/coffee/expressions_comprehension.coffee +3 -0
- data/packages/coffee-script/documentation/coffee/expressions_try.coffee +7 -0
- data/packages/coffee-script/documentation/coffee/fat_arrow.coffee +6 -0
- data/packages/coffee-script/documentation/coffee/functions.coffee +2 -0
- data/packages/coffee-script/documentation/coffee/heredocs.coffee +7 -0
- data/packages/coffee-script/documentation/coffee/heregexes.coffee +11 -0
- data/packages/coffee-script/documentation/coffee/interpolation.coffee +6 -0
- data/packages/coffee-script/documentation/coffee/multiple_return_values.coffee +7 -0
- data/packages/coffee-script/documentation/coffee/object_comprehensions.coffee +4 -0
- data/packages/coffee-script/documentation/coffee/object_extraction.coffee +13 -0
- data/packages/coffee-script/documentation/coffee/objects_and_arrays.coffee +19 -0
- data/packages/coffee-script/documentation/coffee/objects_reserved.coffee +5 -0
- data/packages/coffee-script/documentation/coffee/overview.coffee +28 -0
- data/packages/coffee-script/documentation/coffee/parallel_assignment.coffee +6 -0
- data/packages/coffee-script/documentation/coffee/patterns_and_splats.coffee +7 -0
- data/packages/coffee-script/documentation/coffee/prototypes.coffee +3 -0
- data/packages/coffee-script/documentation/coffee/range_comprehensions.coffee +2 -0
- data/packages/coffee-script/documentation/coffee/scope.coffee +5 -0
- data/packages/coffee-script/documentation/coffee/slices.coffee +7 -0
- data/packages/coffee-script/documentation/coffee/soaks.coffee +1 -0
- data/packages/coffee-script/documentation/coffee/splats.coffee +27 -0
- data/packages/coffee-script/documentation/coffee/splices.coffee +5 -0
- data/packages/coffee-script/documentation/coffee/strings.coffee +8 -0
- data/packages/coffee-script/documentation/coffee/switch.coffee +10 -0
- data/packages/coffee-script/documentation/coffee/try.coffee +8 -0
- data/packages/coffee-script/documentation/coffee/while.coffee +10 -0
- data/packages/coffee-script/documentation/css/docs.css +374 -0
- data/packages/coffee-script/documentation/css/idle.css +64 -0
- data/packages/coffee-script/documentation/docs/browser.html +25 -0
- data/packages/coffee-script/documentation/docs/cake.html +43 -0
- data/packages/coffee-script/documentation/docs/coffee-script.html +51 -0
- data/packages/coffee-script/documentation/docs/command.html +161 -0
- data/packages/coffee-script/documentation/docs/docco.css +186 -0
- data/packages/coffee-script/documentation/docs/grammar.html +399 -0
- data/packages/coffee-script/documentation/docs/helpers.html +31 -0
- data/packages/coffee-script/documentation/docs/index.html +3 -0
- data/packages/coffee-script/documentation/docs/lexer.html +490 -0
- data/packages/coffee-script/documentation/docs/nodes.html +1338 -0
- data/packages/coffee-script/documentation/docs/optparse.html +78 -0
- data/packages/coffee-script/documentation/docs/repl.html +24 -0
- data/packages/coffee-script/documentation/docs/rewriter.html +251 -0
- data/packages/coffee-script/documentation/docs/scope.html +54 -0
- data/packages/coffee-script/documentation/docs/underscore.html +295 -0
- data/packages/coffee-script/documentation/images/background.png +0 -0
- data/packages/coffee-script/documentation/images/banding.png +0 -0
- data/packages/coffee-script/documentation/images/button_bg.png +0 -0
- data/packages/coffee-script/documentation/images/button_bg_dark.gif +0 -0
- data/packages/coffee-script/documentation/images/button_bg_green.gif +0 -0
- data/packages/coffee-script/documentation/images/favicon.ico +0 -0
- data/packages/coffee-script/documentation/images/logo.png +0 -0
- data/packages/coffee-script/documentation/images/screenshadow.png +0 -0
- data/packages/coffee-script/documentation/index.html.erb +1607 -0
- data/packages/coffee-script/documentation/js/aliases.js +17 -0
- data/packages/coffee-script/documentation/js/array_comprehensions.js +6 -0
- data/packages/coffee-script/documentation/js/block_comment.js +4 -0
- data/packages/coffee-script/documentation/js/cake_tasks.js +10 -0
- data/packages/coffee-script/documentation/js/classes.js +44 -0
- data/packages/coffee-script/documentation/js/comparisons.js +3 -0
- data/packages/coffee-script/documentation/js/conditionals.js +12 -0
- data/packages/coffee-script/documentation/js/default_args.js +7 -0
- data/packages/coffee-script/documentation/js/do.js +10 -0
- data/packages/coffee-script/documentation/js/embedded.js +4 -0
- data/packages/coffee-script/documentation/js/existence.js +6 -0
- data/packages/coffee-script/documentation/js/expressions.js +15 -0
- data/packages/coffee-script/documentation/js/expressions_assignment.js +2 -0
- data/packages/coffee-script/documentation/js/expressions_comprehension.js +9 -0
- data/packages/coffee-script/documentation/js/expressions_try.js +7 -0
- data/packages/coffee-script/documentation/js/fat_arrow.js +9 -0
- data/packages/coffee-script/documentation/js/functions.js +7 -0
- data/packages/coffee-script/documentation/js/heredocs.js +2 -0
- data/packages/coffee-script/documentation/js/heregexes.js +2 -0
- data/packages/coffee-script/documentation/js/interpolation.js +4 -0
- data/packages/coffee-script/documentation/js/multiple_return_values.js +5 -0
- data/packages/coffee-script/documentation/js/object_comprehensions.js +15 -0
- data/packages/coffee-script/documentation/js/object_extraction.js +10 -0
- data/packages/coffee-script/documentation/js/objects_and_arrays.js +17 -0
- data/packages/coffee-script/documentation/js/objects_reserved.js +4 -0
- data/packages/coffee-script/documentation/js/overview.js +35 -0
- data/packages/coffee-script/documentation/js/parallel_assignment.js +4 -0
- data/packages/coffee-script/documentation/js/patterns_and_splats.js +4 -0
- data/packages/coffee-script/documentation/js/prototypes.js +3 -0
- data/packages/coffee-script/documentation/js/range_comprehensions.js +9 -0
- data/packages/coffee-script/documentation/js/scope.js +8 -0
- data/packages/coffee-script/documentation/js/slices.js +4 -0
- data/packages/coffee-script/documentation/js/soaks.js +2 -0
- data/packages/coffee-script/documentation/js/splats.js +15 -0
- data/packages/coffee-script/documentation/js/splices.js +3 -0
- data/packages/coffee-script/documentation/js/strings.js +2 -0
- data/packages/coffee-script/documentation/js/switch.js +23 -0
- data/packages/coffee-script/documentation/js/try.js +8 -0
- data/packages/coffee-script/documentation/js/while.js +18 -0
- data/packages/coffee-script/documentation/vendor/jquery-1.4.2.js +6240 -0
- data/packages/coffee-script/examples/beautiful_code/binary_search.coffee +16 -0
- data/packages/coffee-script/examples/beautiful_code/quicksort_runtime.coffee +13 -0
- data/packages/coffee-script/examples/beautiful_code/regular_expression_matcher.coffee +34 -0
- data/packages/coffee-script/examples/blocks.coffee +54 -0
- data/packages/coffee-script/examples/code.coffee +167 -0
- data/packages/coffee-script/examples/computer_science/README +4 -0
- data/packages/coffee-script/examples/computer_science/binary_search.coffee +25 -0
- data/packages/coffee-script/examples/computer_science/bubble_sort.coffee +11 -0
- data/packages/coffee-script/examples/computer_science/linked_list.coffee +108 -0
- data/packages/coffee-script/examples/computer_science/luhn_algorithm.coffee +36 -0
- data/packages/coffee-script/examples/computer_science/merge_sort.coffee +19 -0
- data/packages/coffee-script/examples/computer_science/selection_sort.coffee +23 -0
- data/packages/coffee-script/examples/poignant.coffee +181 -0
- data/packages/coffee-script/examples/potion.coffee +206 -0
- data/packages/coffee-script/examples/underscore.coffee +682 -0
- data/packages/coffee-script/examples/web_server.coffee +12 -0
- data/packages/coffee-script/extras/EXTRAS +7 -0
- data/packages/coffee-script/extras/coffee-script.js +8 -0
- data/packages/coffee-script/extras/jsl.conf +44 -0
- data/packages/coffee-script/index.html +2515 -0
- data/packages/coffee-script/lib/browser.js +52 -0
- data/packages/coffee-script/lib/cake.js +76 -0
- data/packages/coffee-script/lib/coffee-script.js +82 -0
- data/packages/coffee-script/lib/command.js +263 -0
- data/packages/coffee-script/lib/grammar.js +581 -0
- data/packages/coffee-script/lib/helpers.js +66 -0
- data/packages/coffee-script/lib/index.js +8 -0
- data/packages/coffee-script/lib/lexer.js +633 -0
- data/packages/coffee-script/lib/nodes.js +2165 -0
- data/packages/coffee-script/lib/optparse.js +111 -0
- data/packages/coffee-script/lib/parser.js +649 -0
- data/packages/coffee-script/lib/repl.js +42 -0
- data/packages/coffee-script/lib/rewriter.js +353 -0
- data/packages/coffee-script/lib/scope.js +120 -0
- data/packages/coffee-script/lib/spade-format.js +45 -0
- data/packages/coffee-script/package.json +26 -0
- data/packages/coffee-script/src/browser.coffee +43 -0
- data/packages/coffee-script/src/cake.coffee +69 -0
- data/packages/coffee-script/src/coffee-script.coffee +92 -0
- data/packages/coffee-script/src/command.coffee +214 -0
- data/packages/coffee-script/src/grammar.coffee +590 -0
- data/packages/coffee-script/src/helpers.coffee +56 -0
- data/packages/coffee-script/src/index.coffee +2 -0
- data/packages/coffee-script/src/lexer.coffee +653 -0
- data/packages/coffee-script/src/nodes.coffee +1754 -0
- data/packages/coffee-script/src/optparse.coffee +99 -0
- data/packages/coffee-script/src/repl.coffee +42 -0
- data/packages/coffee-script/src/rewriter.coffee +326 -0
- data/packages/coffee-script/src/scope.coffee +94 -0
- data/packages/coffee-script/test/arguments.coffee +127 -0
- data/packages/coffee-script/test/assignment.coffee +98 -0
- data/packages/coffee-script/test/break.coffee +18 -0
- data/packages/coffee-script/test/comments.coffee +201 -0
- data/packages/coffee-script/test/conditionals.coffee +181 -0
- data/packages/coffee-script/test/exception_handling.coffee +90 -0
- data/packages/coffee-script/test/helpers.coffee +96 -0
- data/packages/coffee-script/test/importing.coffee +18 -0
- data/packages/coffee-script/test/operators.coffee +225 -0
- data/packages/coffee-script/test/ranges_slices_and_splices.coffee +186 -0
- data/packages/coffee-script/test/regular_expressions.coffee +56 -0
- data/packages/coffee-script/test/test.html +123 -0
- data/packages/coffee-script/test/test_chaining.coffee +77 -0
- data/packages/coffee-script/test/test_classes.coffee +372 -0
- data/packages/coffee-script/test/test_compilation.coffee +26 -0
- data/packages/coffee-script/test/test_comprehensions.coffee +318 -0
- data/packages/coffee-script/test/test_existence.coffee +165 -0
- data/packages/coffee-script/test/test_functions.coffee +379 -0
- data/packages/coffee-script/test/test_heredocs.coffee +111 -0
- data/packages/coffee-script/test/test_literals.coffee +270 -0
- data/packages/coffee-script/test/test_option_parser.coffee +27 -0
- data/packages/coffee-script/test/test_pattern_matching.coffee +162 -0
- data/packages/coffee-script/test/test_returns.coffee +63 -0
- data/packages/coffee-script/test/test_splats.coffee +102 -0
- data/packages/coffee-script/test/test_strings.coffee +118 -0
- data/packages/coffee-script/test/test_switch.coffee +103 -0
- data/packages/coffee-script/test/test_while.coffee +71 -0
- data/packages/ivory/LICENSE.txt +1 -0
- data/packages/ivory/README.md +19 -0
- data/packages/ivory/lib/buffer.js +111 -0
- data/packages/ivory/lib/events.js +137 -0
- data/packages/ivory/lib/fs.js +266 -0
- data/packages/ivory/lib/main.js +13 -0
- data/packages/ivory/lib/path.js +158 -0
- data/packages/ivory/lib/ruby/buffer.rb +145 -0
- data/packages/ivory/lib/ruby/constants.rb +585 -0
- data/packages/ivory/lib/ruby/events.rb +32 -0
- data/packages/ivory/lib/ruby/fs.rb +245 -0
- data/packages/ivory/lib/ruby/process.rb +28 -0
- data/packages/ivory/lib/stream.js +115 -0
- data/packages/ivory/lib/util.js +414 -0
- data/packages/ivory/package.json +11 -0
- data/packages/ivory/spade-boot.js +78 -0
- data/packages/jquery/main.js +7179 -0
- data/packages/jquery/package.json +10 -0
- data/packages/json/lib/main.js +14 -0
- data/packages/json/package.json +8 -0
- data/packages/lproj/README.md +77 -0
- data/packages/lproj/examples/demo-app/en.lproj/localized.strings +2 -0
- data/packages/lproj/examples/demo-app/fr.lproj/localized.strings +3 -0
- data/packages/lproj/examples/demo-app/index.html +8 -0
- data/packages/lproj/examples/demo-app/lib/main.js +7 -0
- data/packages/lproj/examples/demo-app/package.json +9 -0
- data/packages/lproj/lib/main.js +78 -0
- data/packages/lproj/lib/strings-format.js +6 -0
- data/packages/lproj/package.json +9 -0
- data/packages/optparse/README.md +161 -0
- data/packages/optparse/TODO +1 -0
- data/packages/optparse/examples/browser-test.html +75 -0
- data/packages/optparse/examples/nodejs-test.js +90 -0
- data/packages/optparse/lib/optparse.js +309 -0
- data/packages/optparse/package.json +13 -0
- data/packages/optparse/seed.yml +5 -0
- data/packages/text/lib/main.js +8 -0
- data/packages/text/package.json +9 -0
- data/packages/web-file/README.md +7 -0
- data/packages/web-file/lib/errors.js +32 -0
- data/packages/web-file/lib/file-reader.js +10 -0
- data/packages/web-file/lib/file-system.js +234 -0
- data/packages/web-file/lib/file-writer.js +10 -0
- data/packages/web-file/lib/file.js +9 -0
- data/packages/web-file/lib/main.js +34 -0
- data/packages/web-file/lib/platform.js +25 -0
- data/packages/web-file/lib/ruby/file.rb +252 -0
- data/packages/web-file/lib/ruby/file_reader.rb +69 -0
- data/packages/web-file/lib/ruby/file_system.rb +134 -0
- data/packages/web-file/lib/ruby/file_writer.rb +78 -0
- data/packages/web-file/package.json +12 -0
- data/packages/web-typed-array/README.md +7 -0
- data/packages/web-typed-array/lib/array-buffer-view.js +9 -0
- data/packages/web-typed-array/lib/array-buffer.js +7 -0
- data/packages/web-typed-array/lib/main.js +33 -0
- data/packages/web-typed-array/lib/platform.js +20 -0
- data/packages/web-typed-array/lib/ruby/array_buffer.rb +31 -0
- data/packages/web-typed-array/lib/ruby/array_buffer_view.rb +130 -0
- data/packages/web-typed-array/lib/ruby/typed_array.rb +133 -0
- data/packages/web-typed-array/lib/typed-array.js +26 -0
- data/packages/web-typed-array/package.json +9 -0
- data/spade-packager.gemspec +39 -0
- data/spec/cli/build_spec.rb +57 -0
- data/spec/cli/install_spec.rb +119 -0
- data/spec/cli/installed_spec.rb +55 -0
- data/spec/cli/list_spec.rb +74 -0
- data/spec/cli/login_spec.rb +75 -0
- data/spec/cli/new_spec.rb +5 -0
- data/spec/cli/owner_spec.rb +114 -0
- data/spec/cli/push_spec.rb +73 -0
- data/spec/cli/uninstall_spec.rb +58 -0
- data/spec/cli/unpack_spec.rb +72 -0
- data/spec/cli/unyank_spec.rb +73 -0
- data/spec/cli/yank_spec.rb +73 -0
- data/spec/credentials_spec.rb +23 -0
- data/spec/fixtures/badrake-0.8.7.spd +0 -0
- data/spec/fixtures/builder-3.0.0.spd +0 -0
- data/spec/fixtures/bundler-1.1.pre.spd +0 -0
- data/spec/fixtures/coffee-1.0.1.pre.spd +0 -0
- data/spec/fixtures/core-test-0.4.3.spd +0 -0
- data/spec/fixtures/core-test/bin/cot +3 -0
- data/spec/fixtures/core-test/lib/main.js +1 -0
- data/spec/fixtures/core-test/resources/runner.css +0 -0
- data/spec/fixtures/core-test/tests/test.js +1 -0
- data/spec/fixtures/highline-1.6.1.spd +0 -0
- data/spec/fixtures/ivory-0.0.1.spd +0 -0
- data/spec/fixtures/jquery-1.4.3.spd +0 -0
- data/spec/fixtures/optparse-1.0.1.spd +0 -0
- data/spec/fixtures/package.json +30 -0
- data/spec/fixtures/rake-0.8.6.spd +0 -0
- data/spec/fixtures/rake-0.8.7.spd +0 -0
- data/spec/gauntlet_spec.rb +27 -0
- data/spec/package_spec.rb +267 -0
- data/spec/spec_helper.rb +32 -0
- data/spec/support/cli.rb +103 -0
- data/spec/support/fake.rb +48 -0
- data/spec/support/fake_gem_server.rb +67 -0
- data/spec/support/fake_gemcutter.rb +50 -0
- data/spec/support/matchers.rb +32 -0
- data/spec/support/path.rb +61 -0
- data/templates/project/LICENSE +19 -0
- data/templates/project/README.md +21 -0
- data/templates/project/lib/main.js +9 -0
- data/templates/project/project.json +31 -0
- data/templates/project/tests/main-test.js +8 -0
- metadata +484 -0
@@ -0,0 +1,69 @@
|
|
1
|
+
# ==========================================================================
|
2
|
+
# Project: File
|
3
|
+
# Copyright: ©2010 Strobe Inc. All rights reserved.
|
4
|
+
# License: Licened under MIT license (see LICENSE)
|
5
|
+
# ==========================================================================
|
6
|
+
|
7
|
+
module WebFile
|
8
|
+
class FileReaderExports < Spade::Runtime::Exports
|
9
|
+
|
10
|
+
def initialize(ctx)
|
11
|
+
super(ctx)
|
12
|
+
context.require('web-file/ruby/file')
|
13
|
+
end
|
14
|
+
|
15
|
+
class FileReader
|
16
|
+
|
17
|
+
attr_reader :readyState, :result
|
18
|
+
|
19
|
+
attr_accessor :onloadstart, :onprogress, :onload, :onerror, :onloadend
|
20
|
+
|
21
|
+
def readAsArrayBuffer(blob)
|
22
|
+
throw "FileReader.readAsArrayBuffer() not yet implemented"
|
23
|
+
end
|
24
|
+
|
25
|
+
def readAsBinaryString(blob)
|
26
|
+
throw "FileReader.readAsBinaryString() not yet implemented"
|
27
|
+
end
|
28
|
+
|
29
|
+
def readAsText(blob, encoding=nil)
|
30
|
+
throw "FileReader.readAsText() not yet implemented"
|
31
|
+
end
|
32
|
+
|
33
|
+
def readAsDataURL(blob)
|
34
|
+
throw "FileReader.readAsDataURL() not yet implemented"
|
35
|
+
end
|
36
|
+
|
37
|
+
def abort(*args)
|
38
|
+
throw "FileReader.abort not yet implemented"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
class FileReaderSync
|
43
|
+
|
44
|
+
def readAsArrayBuffer(blob)
|
45
|
+
throw "Blob is not a real file" unless blob.instance_of? RealFile
|
46
|
+
blob.send(:read_sync, :buffer)
|
47
|
+
end
|
48
|
+
|
49
|
+
def readAsBinaryString(blob)
|
50
|
+
throw "Blob is not a real file" unless blob.instance_of? RealFile
|
51
|
+
blob.send(:read_sync, :binary)
|
52
|
+
end
|
53
|
+
|
54
|
+
def readAsText(blob, encoding=nil)
|
55
|
+
throw "Blob is not a real file" unless blob.instance_of? RealFile
|
56
|
+
blob.send(:read_sync, :text, encoding)
|
57
|
+
end
|
58
|
+
|
59
|
+
def readAsDataURL(blob)
|
60
|
+
throw "Blob is not a real file" unless blob.instance_of? RealFile
|
61
|
+
blob.send(:read_sync, :data_url)
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
Spade.exports WebFile::FileReaderExports
|
@@ -0,0 +1,134 @@
|
|
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 FileSystemExports < Spade::Runtime::Exports
|
11
|
+
|
12
|
+
def initialize(ctx)
|
13
|
+
super(ctx)
|
14
|
+
self.context.require 'web-file/ruby/file'
|
15
|
+
end
|
16
|
+
|
17
|
+
SEPARATOR = File::SEPARATOR
|
18
|
+
|
19
|
+
def cwd
|
20
|
+
Dir.pwd
|
21
|
+
end
|
22
|
+
|
23
|
+
def open(path, perms=nil, offset=nil, length=nil)
|
24
|
+
RealFile.new path, self.context, perms, offset, length
|
25
|
+
end
|
26
|
+
|
27
|
+
def exists(path)
|
28
|
+
File.exists? path
|
29
|
+
end
|
30
|
+
|
31
|
+
def stat(path)
|
32
|
+
File.stat path
|
33
|
+
end
|
34
|
+
|
35
|
+
def glob(path)
|
36
|
+
Dir.glob path
|
37
|
+
end
|
38
|
+
|
39
|
+
#############################################'
|
40
|
+
## FS ACTIONS
|
41
|
+
##
|
42
|
+
|
43
|
+
DEF_OPTS = {} # { :verbose => true, :noop => true }
|
44
|
+
|
45
|
+
def mkdir(path, mode=nil)
|
46
|
+
opts = DEF_OPTS.dup
|
47
|
+
opts[:mode] = mode unless mode.nil?
|
48
|
+
FileUtils.mkdir clean_args(path), opts
|
49
|
+
end
|
50
|
+
|
51
|
+
def mkdir_p(path, mode=nil)
|
52
|
+
opts = DEF_OPTS.dup
|
53
|
+
opts[:mode] = mode unless mode.nil?
|
54
|
+
FileUtils.mkdir_p clean_args(path), opts
|
55
|
+
end
|
56
|
+
|
57
|
+
def mv(src, dst)
|
58
|
+
FileUtils.mv clean_args(src), clean_args(dst), DEF_OPTS
|
59
|
+
end
|
60
|
+
|
61
|
+
def cp(src, dst)
|
62
|
+
FileUtils.cp clean_args(src), clean_args(dst), DEF_OPTS
|
63
|
+
end
|
64
|
+
|
65
|
+
def cp_r(src, dst)
|
66
|
+
FileUtils.cp_r clean_args(src), clean_args(dst), DEF_OPTS
|
67
|
+
end
|
68
|
+
|
69
|
+
def rm(src)
|
70
|
+
FileUtils.rm clean_args(src), DEF_OPTS
|
71
|
+
end
|
72
|
+
|
73
|
+
def rm_r(src)
|
74
|
+
FileUtils.rm_r clean_args(src), DEF_OPTS
|
75
|
+
end
|
76
|
+
|
77
|
+
def rm_rf(src)
|
78
|
+
FileUtils.rm_rf clean_args(src), DEF_OPTS
|
79
|
+
end
|
80
|
+
|
81
|
+
def ln(src, dst)
|
82
|
+
FileUtils.ln clean_args(src), clean_args(dst), DEF_OPTS
|
83
|
+
end
|
84
|
+
|
85
|
+
def ln_s(src, dst)
|
86
|
+
FileUtils.ln_s clean_args(src), clean_args(dst), DEF_OPTS
|
87
|
+
end
|
88
|
+
|
89
|
+
#############################################'
|
90
|
+
## PATH
|
91
|
+
##
|
92
|
+
|
93
|
+
def expand_path(path, root=nil)
|
94
|
+
File.expand_path path, root
|
95
|
+
end
|
96
|
+
|
97
|
+
def join_path(*args)
|
98
|
+
File.join(*clean_args(args))
|
99
|
+
end
|
100
|
+
|
101
|
+
def split_path(path)
|
102
|
+
File.split(path)
|
103
|
+
end
|
104
|
+
|
105
|
+
def dirname(path)
|
106
|
+
File.dirname(path)
|
107
|
+
end
|
108
|
+
|
109
|
+
def basename(path, root=nil)
|
110
|
+
File.basename(path, root)
|
111
|
+
end
|
112
|
+
|
113
|
+
def extname(path)
|
114
|
+
File.extname(path)
|
115
|
+
end
|
116
|
+
|
117
|
+
protected
|
118
|
+
|
119
|
+
def clean_args(args)
|
120
|
+
case args
|
121
|
+
when V8::Array
|
122
|
+
args.to_a.map { |a| clean_args(a) }
|
123
|
+
|
124
|
+
when Array
|
125
|
+
args.to_a.map { |a| clean_args(a) }
|
126
|
+
else
|
127
|
+
args
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
Spade.exports WebFile::FileSystemExports
|
@@ -0,0 +1,78 @@
|
|
1
|
+
# ==========================================================================
|
2
|
+
# Project: File
|
3
|
+
# Copyright: ©2010 Strobe Inc. All rights reserved.
|
4
|
+
# License: Licened under MIT license (see LICENSE)
|
5
|
+
# ==========================================================================
|
6
|
+
|
7
|
+
module WebFile
|
8
|
+
class FileWriterExports < Spade::Runtime::Exports
|
9
|
+
|
10
|
+
def initialize(ctx)
|
11
|
+
super(ctx)
|
12
|
+
context.require('web-file/ruby/file')
|
13
|
+
end
|
14
|
+
|
15
|
+
class FileWriter
|
16
|
+
|
17
|
+
attr_reader :readyState, :result
|
18
|
+
|
19
|
+
attr_accessor :onloadstart, :onprogress, :onload, :onerror, :onloadend
|
20
|
+
|
21
|
+
def writeArrayBuffer(blob, buffer)
|
22
|
+
throw "FileReader.writeArrayBuffer() not yet implemented"
|
23
|
+
end
|
24
|
+
|
25
|
+
def writeBinaryString(blob, string)
|
26
|
+
throw "FileReader.writeBinaryString() not yet implemented"
|
27
|
+
end
|
28
|
+
|
29
|
+
def writeText(blob, string, encoding=nil)
|
30
|
+
throw "FileReader.writeText() not yet implemented"
|
31
|
+
end
|
32
|
+
|
33
|
+
def writeDataURL(blob, url)
|
34
|
+
throw "FileReader.writeDataURL() not yet implemented"
|
35
|
+
end
|
36
|
+
|
37
|
+
def abort(*args)
|
38
|
+
throw "FileReader.abort not yet implemented"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
class FileWriterSync
|
43
|
+
|
44
|
+
# This will reset the contents of the file referenced by the blob.
|
45
|
+
def truncate(blob)
|
46
|
+
blob.send(:truncate)
|
47
|
+
end
|
48
|
+
|
49
|
+
def writeArrayBuffer(blob, buffer)
|
50
|
+
throw "Blob is not a real file" unless blob.instance_of? RealFile
|
51
|
+
blob.send(:write_sync, :buffer, buffer)
|
52
|
+
nil
|
53
|
+
end
|
54
|
+
|
55
|
+
def writeBinaryString(blob, string)
|
56
|
+
throw "Blob is not a real file" unless blob.instance_of? RealFile
|
57
|
+
blob.send(:write_sync, :binary, string)
|
58
|
+
nil
|
59
|
+
end
|
60
|
+
|
61
|
+
def writeText(blob, string, encoding=nil)
|
62
|
+
throw "Blob is not a real file" unless blob.instance_of? RealFile
|
63
|
+
blob.send(:write_sync, :text, string, encoding)
|
64
|
+
nil
|
65
|
+
end
|
66
|
+
|
67
|
+
def writeDataURL(blob, url)
|
68
|
+
throw "Blob is not a real file" unless blob.instance_of? RealFile
|
69
|
+
blob.send(:write_sync, :data_url, url)
|
70
|
+
nil
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
Spade.exports WebFile::FileWriterExports
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"name": "web-file",
|
3
|
+
"version": "0.0.1",
|
4
|
+
"summary": "HTML5 File API for Spade",
|
5
|
+
"description": "Implements the HTML5 [File](http://www.w3.org/TR/FileAPI/) specification in the spade CLI",
|
6
|
+
"author": "Charles Jolley",
|
7
|
+
"homepage": "http://github.com/charlesjolley",
|
8
|
+
"dependencies": {
|
9
|
+
"web-typed-array": "0.0.1"
|
10
|
+
},
|
11
|
+
"directories": { "lib": "lib" }
|
12
|
+
}
|
@@ -0,0 +1,9 @@
|
|
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/array_buffer_view');
|
8
|
+
exports.ArrayBufferView = nat.ArrayBufferView;
|
9
|
+
exports.DataView = nat.DataView;
|
@@ -0,0 +1,7 @@
|
|
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
|
+
exports.ArrayBuffer = require('./ruby/array_buffer').ArrayBuffer;
|
@@ -0,0 +1,33 @@
|
|
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 ArrayBuffer ArrayBufferView DataView TypedArray Int8Array Uint8Array Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array */
|
7
|
+
|
8
|
+
if (!require('./platform').isSupported) {
|
9
|
+
throw new Error('Typed arrays are 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
|
+
ArrayBuffer = require('./array-buffer').ArrayBuffer;
|
17
|
+
|
18
|
+
exp = require('./array-buffer-view');
|
19
|
+
ArrayBufferView = exp.ArrayBufferView;
|
20
|
+
DataView = exp.DataView;
|
21
|
+
|
22
|
+
exp = require('./typed-array');
|
23
|
+
TypedArray = exp.TypedArray;
|
24
|
+
Int8Array = exp.Int8Array;
|
25
|
+
Uint8Array = exp.Uint8Array;
|
26
|
+
Int16Array = exp.Int16Array;
|
27
|
+
Uint16Array = exp.Uint16Array;
|
28
|
+
Int32Array = exp.Int32Array;
|
29
|
+
Uint32Array = exp.Uint32Array;
|
30
|
+
Float32Array = exp.Float32Array;
|
31
|
+
Float64Array = exp.Float64Array;
|
32
|
+
}
|
33
|
+
|
@@ -0,0 +1,20 @@
|
|
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 ArrayBuffer */
|
7
|
+
|
8
|
+
var supported = false;
|
9
|
+
switch(ENV.SPADE_PLATFORM.ENGINE) {
|
10
|
+
case 'browser':
|
11
|
+
supported = 'undefined' !== typeof ArrayBuffer;
|
12
|
+
break;
|
13
|
+
|
14
|
+
case 'spade':
|
15
|
+
supported = true;
|
16
|
+
}
|
17
|
+
|
18
|
+
exports.isSupported = supported;
|
19
|
+
|
20
|
+
|
@@ -0,0 +1,31 @@
|
|
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 ArrayBufferExports < Spade::Runtime::Exports
|
10
|
+
|
11
|
+
# TODO: Use a string to keep the buffer packed instead of the much more
|
12
|
+
# expensive Array
|
13
|
+
class ArrayBuffer
|
14
|
+
|
15
|
+
attr_reader :buf
|
16
|
+
|
17
|
+
def initialize(size)
|
18
|
+
@buf = "\0"*size
|
19
|
+
end
|
20
|
+
|
21
|
+
def byteLength
|
22
|
+
@buf.size
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
Spade.exports WebTypedArray::ArrayBufferExports
|
@@ -0,0 +1,130 @@
|
|
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 ArrayBufferViewExports < Spade::Runtime::Exports
|
10
|
+
|
11
|
+
class ArrayBufferView
|
12
|
+
|
13
|
+
attr_reader :buffer
|
14
|
+
|
15
|
+
def byteOffset
|
16
|
+
@byte_offset
|
17
|
+
end
|
18
|
+
|
19
|
+
def byteLength
|
20
|
+
@byte_length
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
class DataView < ArrayBufferView
|
27
|
+
|
28
|
+
def initialize(buffer, byte_offset=nil, byte_length=nil)
|
29
|
+
@buffer = buffer
|
30
|
+
@byte_offset = byte_offset || 0
|
31
|
+
if byte_length.nil? || (byte_length+@byte_offset > buffer.byteLength)
|
32
|
+
@byte_length = buffer.byteLength - @byte_offset
|
33
|
+
else
|
34
|
+
@byte_length = byte_length
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
############################################
|
39
|
+
## Getters
|
40
|
+
##
|
41
|
+
|
42
|
+
def getInt8(byteOffset)
|
43
|
+
unpack byteOffset, 'c'
|
44
|
+
end
|
45
|
+
|
46
|
+
def getUint8(byteOffset)
|
47
|
+
unpack byteOffset, 'C'
|
48
|
+
end
|
49
|
+
|
50
|
+
def getInt16(byteOffset)
|
51
|
+
unpack byteOffset, 's'
|
52
|
+
end
|
53
|
+
|
54
|
+
def getUint16(byteOffset)
|
55
|
+
unpack byteOffset, 'S'
|
56
|
+
end
|
57
|
+
|
58
|
+
def getInt32(byteOffset)
|
59
|
+
unpack byteOffset, 'l'
|
60
|
+
end
|
61
|
+
|
62
|
+
def getUint32(byteOffset)
|
63
|
+
unpack byteOffset, 'L'
|
64
|
+
end
|
65
|
+
|
66
|
+
def getFloat32(byteOffset)
|
67
|
+
unpack byteOffset, 'g'
|
68
|
+
end
|
69
|
+
|
70
|
+
def getFloat64(byteOffset)
|
71
|
+
unpack byteOffset, 'G'
|
72
|
+
end
|
73
|
+
|
74
|
+
############################################
|
75
|
+
## Setters
|
76
|
+
##
|
77
|
+
|
78
|
+
def setInt8(byteOffset, value)
|
79
|
+
pack byteOffset, value, 'c'
|
80
|
+
end
|
81
|
+
|
82
|
+
def setUint8(byteOffset, value)
|
83
|
+
pack byteOffset, value, 'C'
|
84
|
+
end
|
85
|
+
|
86
|
+
def setInt16(byteOffset, value)
|
87
|
+
pack byteOffset, value, 's'
|
88
|
+
end
|
89
|
+
|
90
|
+
def setUint16(byteOffset, value)
|
91
|
+
pack byteOffset, value, 'S'
|
92
|
+
end
|
93
|
+
|
94
|
+
def setInt32(byteOffset, value)
|
95
|
+
pack byteOffset, value, 'l'
|
96
|
+
end
|
97
|
+
|
98
|
+
def setUint32(byteOffset, value)
|
99
|
+
pack byteOffset, value, 'L'
|
100
|
+
end
|
101
|
+
|
102
|
+
def setFloat32(byteOffset, value)
|
103
|
+
pack byteOffset, value, 'g'
|
104
|
+
end
|
105
|
+
|
106
|
+
def setFloat64(byteOffset, value)
|
107
|
+
pack byteOffset, value, 'G'
|
108
|
+
end
|
109
|
+
|
110
|
+
|
111
|
+
private
|
112
|
+
|
113
|
+
def pack(offset, value, code)
|
114
|
+
value = [value].pack(code)
|
115
|
+
@buffer.buf[offset, value.size] = value
|
116
|
+
nil
|
117
|
+
end
|
118
|
+
|
119
|
+
def unpack(offset, code)
|
120
|
+
@buffer.buf.unpack("@#{offset}#{code}")[0]
|
121
|
+
end
|
122
|
+
|
123
|
+
end
|
124
|
+
|
125
|
+
|
126
|
+
end
|
127
|
+
|
128
|
+
end
|
129
|
+
|
130
|
+
Spade.exports = WebTypedArray::ArrayBufferViewExports
|