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.
- data/.gitignore +0 -1
- data/.gitmodules +4 -4
- data/README.md +4 -0
- data/bin/spade +1 -1
- data/lib/spade.rb +0 -51
- data/lib/spade/cli.rb +10 -4
- data/lib/spade/version.rb +1 -1
- data/spade.gemspec +4 -21
- metadata +13 -482
- data/Gemfile +0 -3
- data/Gemfile.lock +0 -40
- data/lib/index.js +0 -14
- data/lib/node/loader.js +0 -146
- data/lib/node/sandbox.js +0 -44
- data/lib/spade.js +0 -1130
- data/lib/spade/bundle.rb +0 -171
- data/lib/spade/cli/base.rb +0 -354
- data/lib/spade/cli/owner.rb +0 -45
- data/lib/spade/cli/project_generator.rb +0 -58
- data/lib/spade/compiler.rb +0 -34
- data/lib/spade/console.rb +0 -39
- data/lib/spade/context.rb +0 -116
- data/lib/spade/credentials.rb +0 -36
- data/lib/spade/dependency_installer.rb +0 -103
- data/lib/spade/environment.rb +0 -35
- data/lib/spade/exports.rb +0 -71
- data/lib/spade/installer.rb +0 -40
- data/lib/spade/loader.rb +0 -238
- data/lib/spade/local.rb +0 -46
- data/lib/spade/package.rb +0 -157
- data/lib/spade/reactor.rb +0 -159
- data/lib/spade/remote.rb +0 -99
- data/lib/spade/repository.rb +0 -18
- data/lib/spade/server.rb +0 -66
- data/lib/spade/shell.rb +0 -36
- data/lib/spade/templates/project/LICENSE +0 -19
- data/lib/spade/templates/project/README.md +0 -21
- data/lib/spade/templates/project/lib/main.js +0 -9
- data/lib/spade/templates/project/project.json +0 -31
- data/lib/spade/templates/project/tests/main-test.js +0 -8
- data/package.json +0 -27
- data/packages/coffee-script/.gitignore +0 -8
- data/packages/coffee-script/.npmignore +0 -11
- data/packages/coffee-script/Cakefile +0 -229
- data/packages/coffee-script/LICENSE +0 -22
- data/packages/coffee-script/README +0 -47
- data/packages/coffee-script/Rakefile +0 -78
- data/packages/coffee-script/bin/cake +0 -7
- data/packages/coffee-script/bin/coffee +0 -7
- data/packages/coffee-script/documentation/coffee/aliases.coffee +0 -11
- data/packages/coffee-script/documentation/coffee/array_comprehensions.coffee +0 -2
- data/packages/coffee-script/documentation/coffee/block_comment.coffee +0 -6
- data/packages/coffee-script/documentation/coffee/cake_tasks.coffee +0 -9
- data/packages/coffee-script/documentation/coffee/classes.coffee +0 -25
- data/packages/coffee-script/documentation/coffee/comparisons.coffee +0 -5
- data/packages/coffee-script/documentation/coffee/conditionals.coffee +0 -13
- data/packages/coffee-script/documentation/coffee/default_args.coffee +0 -8
- data/packages/coffee-script/documentation/coffee/do.coffee +0 -4
- data/packages/coffee-script/documentation/coffee/embedded.coffee +0 -5
- data/packages/coffee-script/documentation/coffee/existence.coffee +0 -10
- data/packages/coffee-script/documentation/coffee/expressions.coffee +0 -9
- data/packages/coffee-script/documentation/coffee/expressions_assignment.coffee +0 -3
- data/packages/coffee-script/documentation/coffee/expressions_comprehension.coffee +0 -3
- data/packages/coffee-script/documentation/coffee/expressions_try.coffee +0 -7
- data/packages/coffee-script/documentation/coffee/fat_arrow.coffee +0 -6
- data/packages/coffee-script/documentation/coffee/functions.coffee +0 -2
- data/packages/coffee-script/documentation/coffee/heredocs.coffee +0 -7
- data/packages/coffee-script/documentation/coffee/heregexes.coffee +0 -11
- data/packages/coffee-script/documentation/coffee/interpolation.coffee +0 -6
- data/packages/coffee-script/documentation/coffee/multiple_return_values.coffee +0 -7
- data/packages/coffee-script/documentation/coffee/object_comprehensions.coffee +0 -4
- data/packages/coffee-script/documentation/coffee/object_extraction.coffee +0 -13
- data/packages/coffee-script/documentation/coffee/objects_and_arrays.coffee +0 -19
- data/packages/coffee-script/documentation/coffee/objects_reserved.coffee +0 -5
- data/packages/coffee-script/documentation/coffee/overview.coffee +0 -28
- data/packages/coffee-script/documentation/coffee/parallel_assignment.coffee +0 -6
- data/packages/coffee-script/documentation/coffee/patterns_and_splats.coffee +0 -7
- data/packages/coffee-script/documentation/coffee/prototypes.coffee +0 -3
- data/packages/coffee-script/documentation/coffee/range_comprehensions.coffee +0 -2
- data/packages/coffee-script/documentation/coffee/scope.coffee +0 -5
- data/packages/coffee-script/documentation/coffee/slices.coffee +0 -7
- data/packages/coffee-script/documentation/coffee/soaks.coffee +0 -1
- data/packages/coffee-script/documentation/coffee/splats.coffee +0 -27
- data/packages/coffee-script/documentation/coffee/splices.coffee +0 -5
- data/packages/coffee-script/documentation/coffee/strings.coffee +0 -8
- data/packages/coffee-script/documentation/coffee/switch.coffee +0 -10
- data/packages/coffee-script/documentation/coffee/try.coffee +0 -8
- data/packages/coffee-script/documentation/coffee/while.coffee +0 -10
- data/packages/coffee-script/documentation/css/docs.css +0 -374
- data/packages/coffee-script/documentation/css/idle.css +0 -64
- data/packages/coffee-script/documentation/docs/browser.html +0 -25
- data/packages/coffee-script/documentation/docs/cake.html +0 -43
- data/packages/coffee-script/documentation/docs/coffee-script.html +0 -51
- data/packages/coffee-script/documentation/docs/command.html +0 -161
- data/packages/coffee-script/documentation/docs/docco.css +0 -186
- data/packages/coffee-script/documentation/docs/grammar.html +0 -399
- data/packages/coffee-script/documentation/docs/helpers.html +0 -31
- data/packages/coffee-script/documentation/docs/index.html +0 -3
- data/packages/coffee-script/documentation/docs/lexer.html +0 -490
- data/packages/coffee-script/documentation/docs/nodes.html +0 -1338
- data/packages/coffee-script/documentation/docs/optparse.html +0 -78
- data/packages/coffee-script/documentation/docs/repl.html +0 -24
- data/packages/coffee-script/documentation/docs/rewriter.html +0 -251
- data/packages/coffee-script/documentation/docs/scope.html +0 -54
- data/packages/coffee-script/documentation/docs/underscore.html +0 -295
- 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 +0 -1607
- data/packages/coffee-script/documentation/js/aliases.js +0 -17
- data/packages/coffee-script/documentation/js/array_comprehensions.js +0 -6
- data/packages/coffee-script/documentation/js/block_comment.js +0 -4
- data/packages/coffee-script/documentation/js/cake_tasks.js +0 -10
- data/packages/coffee-script/documentation/js/classes.js +0 -44
- data/packages/coffee-script/documentation/js/comparisons.js +0 -3
- data/packages/coffee-script/documentation/js/conditionals.js +0 -12
- data/packages/coffee-script/documentation/js/default_args.js +0 -7
- data/packages/coffee-script/documentation/js/do.js +0 -10
- data/packages/coffee-script/documentation/js/embedded.js +0 -4
- data/packages/coffee-script/documentation/js/existence.js +0 -6
- data/packages/coffee-script/documentation/js/expressions.js +0 -15
- data/packages/coffee-script/documentation/js/expressions_assignment.js +0 -2
- data/packages/coffee-script/documentation/js/expressions_comprehension.js +0 -9
- data/packages/coffee-script/documentation/js/expressions_try.js +0 -7
- data/packages/coffee-script/documentation/js/fat_arrow.js +0 -9
- data/packages/coffee-script/documentation/js/functions.js +0 -7
- data/packages/coffee-script/documentation/js/heredocs.js +0 -2
- data/packages/coffee-script/documentation/js/heregexes.js +0 -2
- data/packages/coffee-script/documentation/js/interpolation.js +0 -4
- data/packages/coffee-script/documentation/js/multiple_return_values.js +0 -5
- data/packages/coffee-script/documentation/js/object_comprehensions.js +0 -15
- data/packages/coffee-script/documentation/js/object_extraction.js +0 -10
- data/packages/coffee-script/documentation/js/objects_and_arrays.js +0 -17
- data/packages/coffee-script/documentation/js/objects_reserved.js +0 -4
- data/packages/coffee-script/documentation/js/overview.js +0 -35
- data/packages/coffee-script/documentation/js/parallel_assignment.js +0 -4
- data/packages/coffee-script/documentation/js/patterns_and_splats.js +0 -4
- data/packages/coffee-script/documentation/js/prototypes.js +0 -3
- data/packages/coffee-script/documentation/js/range_comprehensions.js +0 -9
- data/packages/coffee-script/documentation/js/scope.js +0 -8
- data/packages/coffee-script/documentation/js/slices.js +0 -4
- data/packages/coffee-script/documentation/js/soaks.js +0 -2
- data/packages/coffee-script/documentation/js/splats.js +0 -15
- data/packages/coffee-script/documentation/js/splices.js +0 -3
- data/packages/coffee-script/documentation/js/strings.js +0 -2
- data/packages/coffee-script/documentation/js/switch.js +0 -23
- data/packages/coffee-script/documentation/js/try.js +0 -8
- data/packages/coffee-script/documentation/js/while.js +0 -18
- data/packages/coffee-script/documentation/vendor/jquery-1.4.2.js +0 -6240
- data/packages/coffee-script/examples/beautiful_code/binary_search.coffee +0 -16
- data/packages/coffee-script/examples/beautiful_code/quicksort_runtime.coffee +0 -13
- data/packages/coffee-script/examples/beautiful_code/regular_expression_matcher.coffee +0 -34
- data/packages/coffee-script/examples/blocks.coffee +0 -54
- data/packages/coffee-script/examples/code.coffee +0 -167
- data/packages/coffee-script/examples/computer_science/README +0 -4
- data/packages/coffee-script/examples/computer_science/binary_search.coffee +0 -25
- data/packages/coffee-script/examples/computer_science/bubble_sort.coffee +0 -11
- data/packages/coffee-script/examples/computer_science/linked_list.coffee +0 -108
- data/packages/coffee-script/examples/computer_science/luhn_algorithm.coffee +0 -36
- data/packages/coffee-script/examples/computer_science/merge_sort.coffee +0 -19
- data/packages/coffee-script/examples/computer_science/selection_sort.coffee +0 -23
- data/packages/coffee-script/examples/poignant.coffee +0 -181
- data/packages/coffee-script/examples/potion.coffee +0 -206
- data/packages/coffee-script/examples/underscore.coffee +0 -682
- data/packages/coffee-script/examples/web_server.coffee +0 -12
- data/packages/coffee-script/extras/EXTRAS +0 -7
- data/packages/coffee-script/extras/coffee-script.js +0 -8
- data/packages/coffee-script/extras/jsl.conf +0 -44
- data/packages/coffee-script/index.html +0 -2515
- data/packages/coffee-script/lib/browser.js +0 -52
- data/packages/coffee-script/lib/cake.js +0 -76
- data/packages/coffee-script/lib/coffee-script.js +0 -82
- data/packages/coffee-script/lib/command.js +0 -263
- data/packages/coffee-script/lib/grammar.js +0 -581
- data/packages/coffee-script/lib/helpers.js +0 -66
- data/packages/coffee-script/lib/index.js +0 -8
- data/packages/coffee-script/lib/lexer.js +0 -633
- data/packages/coffee-script/lib/nodes.js +0 -2165
- data/packages/coffee-script/lib/optparse.js +0 -111
- data/packages/coffee-script/lib/parser.js +0 -649
- data/packages/coffee-script/lib/repl.js +0 -42
- data/packages/coffee-script/lib/rewriter.js +0 -353
- data/packages/coffee-script/lib/scope.js +0 -120
- data/packages/coffee-script/lib/spade-format.js +0 -45
- data/packages/coffee-script/package.json +0 -26
- data/packages/coffee-script/src/browser.coffee +0 -43
- data/packages/coffee-script/src/cake.coffee +0 -69
- data/packages/coffee-script/src/coffee-script.coffee +0 -92
- data/packages/coffee-script/src/command.coffee +0 -214
- data/packages/coffee-script/src/grammar.coffee +0 -590
- data/packages/coffee-script/src/helpers.coffee +0 -56
- data/packages/coffee-script/src/index.coffee +0 -2
- data/packages/coffee-script/src/lexer.coffee +0 -653
- data/packages/coffee-script/src/nodes.coffee +0 -1754
- data/packages/coffee-script/src/optparse.coffee +0 -99
- data/packages/coffee-script/src/repl.coffee +0 -42
- data/packages/coffee-script/src/rewriter.coffee +0 -326
- data/packages/coffee-script/src/scope.coffee +0 -94
- data/packages/coffee-script/test/arguments.coffee +0 -127
- data/packages/coffee-script/test/assignment.coffee +0 -98
- data/packages/coffee-script/test/break.coffee +0 -18
- data/packages/coffee-script/test/comments.coffee +0 -201
- data/packages/coffee-script/test/conditionals.coffee +0 -181
- data/packages/coffee-script/test/exception_handling.coffee +0 -90
- data/packages/coffee-script/test/helpers.coffee +0 -96
- data/packages/coffee-script/test/importing.coffee +0 -18
- data/packages/coffee-script/test/operators.coffee +0 -225
- data/packages/coffee-script/test/ranges_slices_and_splices.coffee +0 -186
- data/packages/coffee-script/test/regular_expressions.coffee +0 -56
- data/packages/coffee-script/test/test.html +0 -123
- data/packages/coffee-script/test/test_chaining.coffee +0 -77
- data/packages/coffee-script/test/test_classes.coffee +0 -372
- data/packages/coffee-script/test/test_compilation.coffee +0 -26
- data/packages/coffee-script/test/test_comprehensions.coffee +0 -318
- data/packages/coffee-script/test/test_existence.coffee +0 -165
- data/packages/coffee-script/test/test_functions.coffee +0 -379
- data/packages/coffee-script/test/test_heredocs.coffee +0 -111
- data/packages/coffee-script/test/test_literals.coffee +0 -270
- data/packages/coffee-script/test/test_option_parser.coffee +0 -27
- data/packages/coffee-script/test/test_pattern_matching.coffee +0 -162
- data/packages/coffee-script/test/test_returns.coffee +0 -63
- data/packages/coffee-script/test/test_splats.coffee +0 -102
- data/packages/coffee-script/test/test_strings.coffee +0 -118
- data/packages/coffee-script/test/test_switch.coffee +0 -103
- data/packages/coffee-script/test/test_while.coffee +0 -71
- data/packages/ivory/LICENSE.txt +0 -1
- data/packages/ivory/README.md +0 -19
- data/packages/ivory/lib/buffer.js +0 -111
- data/packages/ivory/lib/events.js +0 -137
- data/packages/ivory/lib/fs.js +0 -266
- data/packages/ivory/lib/main.js +0 -13
- data/packages/ivory/lib/path.js +0 -158
- data/packages/ivory/lib/ruby/buffer.rb +0 -145
- data/packages/ivory/lib/ruby/constants.rb +0 -585
- data/packages/ivory/lib/ruby/events.rb +0 -32
- data/packages/ivory/lib/ruby/fs.rb +0 -245
- data/packages/ivory/lib/ruby/process.rb +0 -28
- data/packages/ivory/lib/stream.js +0 -115
- data/packages/ivory/lib/util.js +0 -414
- data/packages/ivory/package.json +0 -11
- data/packages/jquery/main.js +0 -7179
- data/packages/jquery/package.json +0 -10
- data/packages/json/lib/main.js +0 -14
- data/packages/json/package.json +0 -8
- data/packages/lproj/README.md +0 -77
- data/packages/lproj/examples/demo-app/en.lproj/localized.strings +0 -2
- data/packages/lproj/examples/demo-app/fr.lproj/localized.strings +0 -3
- data/packages/lproj/examples/demo-app/index.html +0 -8
- data/packages/lproj/examples/demo-app/lib/main.js +0 -7
- data/packages/lproj/examples/demo-app/package.json +0 -9
- data/packages/lproj/lib/main.js +0 -78
- data/packages/lproj/lib/strings-format.js +0 -6
- data/packages/lproj/package.json +0 -9
- data/packages/optparse/README.md +0 -161
- data/packages/optparse/TODO +0 -1
- data/packages/optparse/examples/browser-test.html +0 -75
- data/packages/optparse/examples/nodejs-test.js +0 -90
- data/packages/optparse/lib/optparse.js +0 -309
- data/packages/optparse/package.json +0 -13
- data/packages/optparse/seed.yml +0 -5
- data/packages/text/lib/main.js +0 -8
- data/packages/text/package.json +0 -9
- data/packages/web-file/README.md +0 -7
- data/packages/web-file/lib/errors.js +0 -32
- data/packages/web-file/lib/file-reader.js +0 -10
- data/packages/web-file/lib/file-system.js +0 -234
- data/packages/web-file/lib/file-writer.js +0 -10
- data/packages/web-file/lib/file.js +0 -9
- data/packages/web-file/lib/main.js +0 -34
- data/packages/web-file/lib/platform.js +0 -25
- data/packages/web-file/lib/ruby/file.rb +0 -252
- data/packages/web-file/lib/ruby/file_reader.rb +0 -69
- data/packages/web-file/lib/ruby/file_system.rb +0 -134
- data/packages/web-file/lib/ruby/file_writer.rb +0 -78
- data/packages/web-file/package.json +0 -12
- data/packages/web-typed-array/README.md +0 -7
- data/packages/web-typed-array/lib/array-buffer-view.js +0 -9
- data/packages/web-typed-array/lib/array-buffer.js +0 -7
- data/packages/web-typed-array/lib/main.js +0 -33
- data/packages/web-typed-array/lib/platform.js +0 -20
- data/packages/web-typed-array/lib/ruby/array_buffer.rb +0 -31
- data/packages/web-typed-array/lib/ruby/array_buffer_view.rb +0 -130
- data/packages/web-typed-array/lib/ruby/typed_array.rb +0 -133
- data/packages/web-typed-array/lib/typed-array.js +0 -26
- data/packages/web-typed-array/package.json +0 -9
- data/spec/cli/build_spec.rb +0 -59
- data/spec/cli/install_spec.rb +0 -120
- data/spec/cli/installed_spec.rb +0 -55
- data/spec/cli/list_spec.rb +0 -75
- data/spec/cli/login_spec.rb +0 -76
- data/spec/cli/new_spec.rb +0 -5
- data/spec/cli/owner_spec.rb +0 -115
- data/spec/cli/push_spec.rb +0 -74
- data/spec/cli/uninstall_spec.rb +0 -58
- data/spec/cli/unpack_spec.rb +0 -73
- data/spec/cli/unyank_spec.rb +0 -74
- data/spec/cli/update_spec.rb +0 -8
- data/spec/cli/yank_spec.rb +0 -74
- data/spec/credentials_spec.rb +0 -24
- 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 +0 -3
- data/spec/fixtures/core-test/lib/main.js +0 -1
- data/spec/fixtures/core-test/resources/runner.css +0 -0
- data/spec/fixtures/core-test/tests/test.js +0 -1
- 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 +0 -30
- data/spec/gauntlet_spec.rb +0 -27
- data/spec/javascript/async-test.js +0 -123
- data/spec/javascript/compiler/javascript.js +0 -13
- data/spec/javascript/compiler/ruby.js +0 -14
- data/spec/javascript/loader-test.js +0 -64
- data/spec/javascript/normalize-test.js +0 -73
- data/spec/javascript/packages-test.js +0 -44
- data/spec/javascript/relative-require-test.js +0 -72
- data/spec/javascript/require-test.js +0 -117
- data/spec/javascript/sandbox/compile.js +0 -37
- data/spec/javascript/sandbox/creation.js +0 -44
- data/spec/javascript/sandbox/format.js +0 -79
- data/spec/javascript/sandbox/misc.js +0 -57
- data/spec/javascript/sandbox/preprocessor.js +0 -81
- data/spec/javascript/sandbox/require.js +0 -48
- data/spec/javascript/sandbox/run-command.js +0 -21
- data/spec/javascript/spade/externs.js +0 -14
- data/spec/javascript/spade/load-factory.js +0 -15
- data/spec/javascript/spade/misc.js +0 -23
- data/spec/javascript/spade/ready.js +0 -12
- data/spec/javascript/spade/register.js +0 -13
- data/spec/javascript_spec.rb +0 -7
- data/spec/package_spec.rb +0 -267
- data/spec/spec_helper.rb +0 -30
- data/spec/support/cli.rb +0 -94
- data/spec/support/core_test.rb +0 -59
- data/spec/support/fake.rb +0 -44
- data/spec/support/fake_gem_server.rb +0 -66
- data/spec/support/fake_gemcutter.rb +0 -49
- data/spec/support/matchers.rb +0 -31
- data/spec/support/path.rb +0 -54
- data/test-spade.html +0 -8
@@ -1,45 +0,0 @@
|
|
1
|
-
var _ref = require('./lexer'), Lexer = _ref.Lexer, RESERVED = _ref.RESERVED;
|
2
|
-
var parser = require('./parser').parser, lexer;
|
3
|
-
|
4
|
-
lexer = new Lexer();
|
5
|
-
|
6
|
-
parser.lexer = {
|
7
|
-
lex: function() {
|
8
|
-
var tag, _ref;
|
9
|
-
_ref = this.tokens[this.pos++] || [''];
|
10
|
-
tag = _ref[0];
|
11
|
-
this.yytext = _ref[1];
|
12
|
-
this.yylineno = _ref[2];
|
13
|
-
return tag;
|
14
|
-
},
|
15
|
-
setInput: function(tokens) {
|
16
|
-
this.tokens = tokens;
|
17
|
-
this.pos = 0;
|
18
|
-
return 0;
|
19
|
-
},
|
20
|
-
upcomingInput: function() {
|
21
|
-
return "";
|
22
|
-
}
|
23
|
-
};
|
24
|
-
|
25
|
-
parser.yy = require('./nodes');
|
26
|
-
|
27
|
-
|
28
|
-
exports.compile = function(code, options) {
|
29
|
-
if (options === null) {
|
30
|
-
options = {};
|
31
|
-
}
|
32
|
-
try {
|
33
|
-
return parser.parse(lexer.tokenize(code)).compile(options);
|
34
|
-
} catch (err) {
|
35
|
-
if (options.fileName) {
|
36
|
-
err.message = "In " + options.fileName + ", " + err.message;
|
37
|
-
}
|
38
|
-
throw err;
|
39
|
-
}
|
40
|
-
};
|
41
|
-
|
42
|
-
exports.compileFormat = function(code) {
|
43
|
-
return exports.compile(code, {});
|
44
|
-
};
|
45
|
-
|
@@ -1,26 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "coffee-script",
|
3
|
-
"description": "Unfancy JavaScript",
|
4
|
-
"keywords": ["javascript", "language", "coffeescript", "compiler"],
|
5
|
-
"author": "Jeremy Ashkenas",
|
6
|
-
"version": "1.0.1-pre",
|
7
|
-
"licenses": [{
|
8
|
-
"type": "MIT",
|
9
|
-
"url": "http://github.com/jashkenas/coffee-script/raw/master/LICENSE"
|
10
|
-
}],
|
11
|
-
"engines": {
|
12
|
-
"node": ">=0.2.5"
|
13
|
-
},
|
14
|
-
"directories" : {
|
15
|
-
"lib" : "./lib"
|
16
|
-
},
|
17
|
-
"main" : "./lib/coffee-script",
|
18
|
-
"bin": {
|
19
|
-
"coffee": "./bin/coffee",
|
20
|
-
"cake": "./bin/cake"
|
21
|
-
},
|
22
|
-
|
23
|
-
"plugin:formats": {
|
24
|
-
"coffee": "coffee-script/spade-format"
|
25
|
-
}
|
26
|
-
}
|
@@ -1,43 +0,0 @@
|
|
1
|
-
# Override exported methods for non-Node.js engines.
|
2
|
-
|
3
|
-
CoffeeScript = require './coffee-script'
|
4
|
-
CoffeeScript.require = require
|
5
|
-
|
6
|
-
# Use standard JavaScript `eval` to eval code.
|
7
|
-
CoffeeScript.eval = (code, options) ->
|
8
|
-
eval CoffeeScript.compile code, options
|
9
|
-
|
10
|
-
# Running code does not provide access to this scope.
|
11
|
-
CoffeeScript.run = (code, options = {}) ->
|
12
|
-
options.bare = on
|
13
|
-
Function(CoffeeScript.compile code, options)()
|
14
|
-
|
15
|
-
# If we're not in a browser environment, we're finished with the public API.
|
16
|
-
return unless window?
|
17
|
-
|
18
|
-
# Load a remote script from the current domain via XHR.
|
19
|
-
CoffeeScript.load = (url, options) ->
|
20
|
-
xhr = new (window.ActiveXObject or XMLHttpRequest)('Microsoft.XMLHTTP')
|
21
|
-
xhr.open 'GET', url, true
|
22
|
-
xhr.overrideMimeType 'text/plain' if 'overrideMimeType' of xhr
|
23
|
-
xhr.onreadystatechange = ->
|
24
|
-
CoffeeScript.run xhr.responseText, options if xhr.readyState is 4
|
25
|
-
xhr.send null
|
26
|
-
|
27
|
-
# Activate CoffeeScript in the browser by having it compile and evaluate
|
28
|
-
# all script tags with a content-type of `text/coffeescript`.
|
29
|
-
# This happens on page load.
|
30
|
-
runScripts = ->
|
31
|
-
for script in document.getElementsByTagName 'script'
|
32
|
-
if script.type is 'text/coffeescript'
|
33
|
-
if script.src
|
34
|
-
CoffeeScript.load script.src
|
35
|
-
else
|
36
|
-
CoffeeScript.run script.innerHTML
|
37
|
-
null
|
38
|
-
|
39
|
-
# Listen for window load, both in browsers and in IE.
|
40
|
-
if window.addEventListener
|
41
|
-
addEventListener 'DOMContentLoaded', runScripts, no
|
42
|
-
else
|
43
|
-
attachEvent 'onload', runScripts
|
@@ -1,69 +0,0 @@
|
|
1
|
-
# `cake` is a simplified version of [Make](http://www.gnu.org/software/make/)
|
2
|
-
# ([Rake](http://rake.rubyforge.org/), [Jake](http://github.com/280north/jake))
|
3
|
-
# for CoffeeScript. You define tasks with names and descriptions in a Cakefile,
|
4
|
-
# and can call them from the command line, or invoke them from other tasks.
|
5
|
-
#
|
6
|
-
# Running `cake` with no arguments will print out a list of all the tasks in the
|
7
|
-
# current directory's Cakefile.
|
8
|
-
|
9
|
-
# External dependencies.
|
10
|
-
fs = require 'fs'
|
11
|
-
path = require 'path'
|
12
|
-
helpers = require './helpers'
|
13
|
-
optparse = require './optparse'
|
14
|
-
CoffeeScript = require './coffee-script'
|
15
|
-
|
16
|
-
# Keep track of the list of defined tasks, the accepted options, and so on.
|
17
|
-
tasks = {}
|
18
|
-
options = {}
|
19
|
-
switches = []
|
20
|
-
oparse = null
|
21
|
-
|
22
|
-
# Mixin the top-level Cake functions for Cakefiles to use directly.
|
23
|
-
helpers.extend global,
|
24
|
-
|
25
|
-
# Define a Cake task with a short name, an optional sentence description,
|
26
|
-
# and the function to run as the action itself.
|
27
|
-
task: (name, description, action) ->
|
28
|
-
[action, description] = [description, action] unless action
|
29
|
-
tasks[name] = {name, description, action}
|
30
|
-
|
31
|
-
# Define an option that the Cakefile accepts. The parsed options hash,
|
32
|
-
# containing all of the command-line options passed, will be made available
|
33
|
-
# as the first argument to the action.
|
34
|
-
option: (letter, flag, description) ->
|
35
|
-
switches.push [letter, flag, description]
|
36
|
-
|
37
|
-
# Invoke another task in the current Cakefile.
|
38
|
-
invoke: (name) ->
|
39
|
-
missingTask name unless tasks[name]
|
40
|
-
tasks[name].action options
|
41
|
-
|
42
|
-
|
43
|
-
# Run `cake`. Executes all of the tasks you pass, in order. Note that Node's
|
44
|
-
# asynchrony may cause tasks to execute in a different order than you'd expect.
|
45
|
-
# If no tasks are passed, print the help screen.
|
46
|
-
exports.run = ->
|
47
|
-
path.exists 'Cakefile', (exists) ->
|
48
|
-
throw new Error("Cakefile not found in #{process.cwd()}") unless exists
|
49
|
-
args = process.argv.slice 2
|
50
|
-
CoffeeScript.run fs.readFileSync('Cakefile').toString(), fileName: 'Cakefile'
|
51
|
-
oparse = new optparse.OptionParser switches
|
52
|
-
return printTasks() unless args.length
|
53
|
-
options = oparse.parse(args)
|
54
|
-
invoke arg for arg in options.arguments
|
55
|
-
|
56
|
-
# Display the list of Cake tasks in a format similar to `rake -T`
|
57
|
-
printTasks = ->
|
58
|
-
console.log ''
|
59
|
-
for name, task of tasks
|
60
|
-
spaces = 20 - name.length
|
61
|
-
spaces = if spaces > 0 then Array(spaces + 1).join(' ') else ''
|
62
|
-
desc = if task.description then "# #{task.description}" else ''
|
63
|
-
console.log "cake #{name}#{spaces} #{desc}"
|
64
|
-
console.log oparse.help() if switches.length
|
65
|
-
|
66
|
-
# Print an error and exit when attempting to all an undefined task.
|
67
|
-
missingTask = (task) ->
|
68
|
-
console.log "No such task: \"#{task}\""
|
69
|
-
process.exit 1
|
@@ -1,92 +0,0 @@
|
|
1
|
-
# CoffeeScript can be used both on the server, as a command-line compiler based
|
2
|
-
# on Node.js/V8, or to run CoffeeScripts directly in the browser. This module
|
3
|
-
# contains the main entry functions for tokenizing, parsing, and compiling
|
4
|
-
# source CoffeeScript into JavaScript.
|
5
|
-
#
|
6
|
-
# If included on a webpage, it will automatically sniff out, compile, and
|
7
|
-
# execute all scripts present in `text/coffeescript` tags.
|
8
|
-
|
9
|
-
fs = require 'fs'
|
10
|
-
path = require 'path'
|
11
|
-
{Lexer,RESERVED} = require './lexer'
|
12
|
-
{parser} = require './parser'
|
13
|
-
|
14
|
-
# TODO: Remove registerExtension when fully deprecated.
|
15
|
-
if require.extensions
|
16
|
-
require.extensions['.coffee'] = (module, filename) ->
|
17
|
-
content = compile fs.readFileSync filename, 'utf8'
|
18
|
-
module._compile content, filename
|
19
|
-
else if require.registerExtension
|
20
|
-
require.registerExtension '.coffee', (content) -> compile content
|
21
|
-
|
22
|
-
# The current CoffeeScript version number.
|
23
|
-
exports.VERSION = '1.0.1-pre'
|
24
|
-
|
25
|
-
# Words that cannot be used as identifiers in CoffeeScript code
|
26
|
-
exports.RESERVED = RESERVED
|
27
|
-
|
28
|
-
# Expose helpers for testing.
|
29
|
-
exports.helpers = require './helpers'
|
30
|
-
|
31
|
-
# Compile a string of CoffeeScript code to JavaScript, using the Coffee/Jison
|
32
|
-
# compiler.
|
33
|
-
exports.compile = compile = (code, options = {}) ->
|
34
|
-
try
|
35
|
-
(parser.parse lexer.tokenize code).compile options
|
36
|
-
catch err
|
37
|
-
err.message = "In #{options.fileName}, #{err.message}" if options.fileName
|
38
|
-
throw err
|
39
|
-
|
40
|
-
# Tokenize a string of CoffeeScript code, and return the array of tokens.
|
41
|
-
exports.tokens = (code, options) ->
|
42
|
-
lexer.tokenize code, options
|
43
|
-
|
44
|
-
# Parse a string of CoffeeScript code or an array of lexed tokens, and
|
45
|
-
# return the AST. You can then compile it by calling `.compile()` on the root,
|
46
|
-
# or traverse it by using `.traverse()` with a callback.
|
47
|
-
exports.nodes = (source, options) ->
|
48
|
-
if typeof source is 'string'
|
49
|
-
parser.parse lexer.tokenize source, options
|
50
|
-
else
|
51
|
-
parser.parse source
|
52
|
-
|
53
|
-
# Compile and execute a string of CoffeeScript (on the server), correctly
|
54
|
-
# setting `__filename`, `__dirname`, and relative `require()`.
|
55
|
-
exports.run = (code, options) ->
|
56
|
-
# We want the root module.
|
57
|
-
root = module
|
58
|
-
while root.parent
|
59
|
-
root = root.parent
|
60
|
-
# Set the filename.
|
61
|
-
root.filename = fs.realpathSync options.fileName or '.'
|
62
|
-
# Clear the module cache.
|
63
|
-
root.moduleCache = {} if root.moduleCache
|
64
|
-
# Compile.
|
65
|
-
if path.extname(root.filename) isnt '.coffee' or require.extensions
|
66
|
-
root._compile compile(code, options), root.filename
|
67
|
-
else
|
68
|
-
root._compile code, root.filename
|
69
|
-
|
70
|
-
# Compile and evaluate a string of CoffeeScript (in a Node.js-like environment).
|
71
|
-
# The CoffeeScript REPL uses this to run the input.
|
72
|
-
exports.eval = (code, options) ->
|
73
|
-
__filename = options.fileName
|
74
|
-
__dirname = path.dirname __filename
|
75
|
-
eval compile code, options
|
76
|
-
|
77
|
-
# Instantiate a Lexer for our use here.
|
78
|
-
lexer = new Lexer
|
79
|
-
|
80
|
-
# The real Lexer produces a generic stream of tokens. This object provides a
|
81
|
-
# thin wrapper around it, compatible with the Jison API. We can then pass it
|
82
|
-
# directly as a "Jison lexer".
|
83
|
-
parser.lexer =
|
84
|
-
lex: ->
|
85
|
-
[tag, @yytext, @yylineno] = @tokens[@pos++] or ['']
|
86
|
-
tag
|
87
|
-
setInput: (@tokens) ->
|
88
|
-
@pos = 0
|
89
|
-
upcomingInput: ->
|
90
|
-
""
|
91
|
-
|
92
|
-
parser.yy = require './nodes'
|
@@ -1,214 +0,0 @@
|
|
1
|
-
# The `coffee` utility. Handles command-line compilation of CoffeeScript
|
2
|
-
# into various forms: saved into `.js` files or printed to stdout, piped to
|
3
|
-
# [JSLint](http://javascriptlint.com/) or recompiled every time the source is
|
4
|
-
# saved, printed as a token stream or as the syntax tree, or launch an
|
5
|
-
# interactive REPL.
|
6
|
-
|
7
|
-
# External dependencies.
|
8
|
-
fs = require 'fs'
|
9
|
-
path = require 'path'
|
10
|
-
util = require 'util'
|
11
|
-
helpers = require './helpers'
|
12
|
-
optparse = require './optparse'
|
13
|
-
CoffeeScript = require './coffee-script'
|
14
|
-
{spawn, exec} = require 'child_process'
|
15
|
-
{EventEmitter} = require 'events'
|
16
|
-
|
17
|
-
# Allow CoffeeScript to emit Node.js events.
|
18
|
-
helpers.extend CoffeeScript, new EventEmitter
|
19
|
-
|
20
|
-
printLine = (line) -> process.stdout.write line + '\n'
|
21
|
-
printWarn = (line) -> process.binding('stdio').writeError line + '\n'
|
22
|
-
|
23
|
-
# The help banner that is printed when `coffee` is called without arguments.
|
24
|
-
BANNER = '''
|
25
|
-
Usage: coffee [options] path/to/script.coffee
|
26
|
-
'''
|
27
|
-
|
28
|
-
# The list of all the valid option flags that `coffee` knows how to handle.
|
29
|
-
SWITCHES = [
|
30
|
-
['-c', '--compile', 'compile to JavaScript and save as .js files']
|
31
|
-
['-i', '--interactive', 'run an interactive CoffeeScript REPL']
|
32
|
-
['-o', '--output [DIR]', 'set the directory for compiled JavaScript']
|
33
|
-
['-j', '--join', 'concatenate the scripts before compiling']
|
34
|
-
['-w', '--watch', 'watch scripts for changes, and recompile']
|
35
|
-
['-p', '--print', 'print the compiled JavaScript to stdout']
|
36
|
-
['-l', '--lint', 'pipe the compiled JavaScript through JSLint']
|
37
|
-
['-s', '--stdio', 'listen for and compile scripts over stdio']
|
38
|
-
['-e', '--eval', 'compile a string from the command line']
|
39
|
-
['-r', '--require [FILE*]', 'require a library before executing your script']
|
40
|
-
['-b', '--bare', 'compile without the top-level function wrapper']
|
41
|
-
['-t', '--tokens', 'print the tokens that the lexer produces']
|
42
|
-
['-n', '--nodes', 'print the parse tree that Jison produces']
|
43
|
-
[ '--nodejs [ARGS]', 'pass options through to the "node" binary']
|
44
|
-
['-v', '--version', 'display CoffeeScript version']
|
45
|
-
['-h', '--help', 'display this help message']
|
46
|
-
]
|
47
|
-
|
48
|
-
# Top-level objects shared by all the functions.
|
49
|
-
opts = {}
|
50
|
-
sources = []
|
51
|
-
contents = []
|
52
|
-
optionParser = null
|
53
|
-
|
54
|
-
# Run `coffee` by parsing passed options and determining what action to take.
|
55
|
-
# Many flags cause us to divert before compiling anything. Flags passed after
|
56
|
-
# `--` will be passed verbatim to your script as arguments in `process.argv`
|
57
|
-
exports.run = ->
|
58
|
-
parseOptions()
|
59
|
-
return forkNode() if opts.nodejs
|
60
|
-
return usage() if opts.help
|
61
|
-
return version() if opts.version
|
62
|
-
return require './repl' if opts.interactive
|
63
|
-
return compileStdio() if opts.stdio
|
64
|
-
return compileScript null, sources[0] if opts.eval
|
65
|
-
return require './repl' unless sources.length
|
66
|
-
if opts.run
|
67
|
-
opts.literals = sources.splice(1).concat opts.literals
|
68
|
-
process.ARGV = process.argv = process.argv.slice(0, 2).concat opts.literals
|
69
|
-
compileScripts()
|
70
|
-
|
71
|
-
# Asynchronously read in each CoffeeScript in a list of source files and
|
72
|
-
# compile them. If a directory is passed, recursively compile all
|
73
|
-
# '.coffee' extension source files in it and all subdirectories.
|
74
|
-
compileScripts = ->
|
75
|
-
for source in sources
|
76
|
-
base = path.join(source)
|
77
|
-
compile = (source, topLevel) ->
|
78
|
-
path.exists source, (exists) ->
|
79
|
-
throw new Error "File not found: #{source}" unless exists
|
80
|
-
fs.stat source, (err, stats) ->
|
81
|
-
if stats.isDirectory()
|
82
|
-
fs.readdir source, (err, files) ->
|
83
|
-
for file in files
|
84
|
-
compile path.join(source, file)
|
85
|
-
else if topLevel or path.extname(source) is '.coffee'
|
86
|
-
fs.readFile source, (err, code) ->
|
87
|
-
if opts.join
|
88
|
-
contents[sources.indexOf source] = code.toString()
|
89
|
-
compileJoin() if helpers.compact(contents).length is sources.length
|
90
|
-
else
|
91
|
-
compileScript(source, code.toString(), base)
|
92
|
-
watch source, base if opts.watch and not opts.join
|
93
|
-
compile source, true
|
94
|
-
|
95
|
-
# Compile a single source script, containing the given code, according to the
|
96
|
-
# requested options. If evaluating the script directly sets `__filename`,
|
97
|
-
# `__dirname` and `module.filename` to be correct relative to the script's path.
|
98
|
-
compileScript = (file, input, base) ->
|
99
|
-
o = opts
|
100
|
-
options = compileOptions file
|
101
|
-
if o.require
|
102
|
-
require(if helpers.starts(req, '.') then fs.realpathSync(req) else req) for req in o.require
|
103
|
-
try
|
104
|
-
t = task = {file, input, options}
|
105
|
-
CoffeeScript.emit 'compile', task
|
106
|
-
if o.tokens then printTokens CoffeeScript.tokens t.input
|
107
|
-
else if o.nodes then printLine CoffeeScript.nodes(t.input).toString().trim()
|
108
|
-
else if o.run then CoffeeScript.run t.input, t.options
|
109
|
-
else
|
110
|
-
t.output = CoffeeScript.compile t.input, t.options
|
111
|
-
CoffeeScript.emit 'success', task
|
112
|
-
if o.print then printLine t.output.trim()
|
113
|
-
else if o.compile then writeJs t.file, t.output, base
|
114
|
-
else if o.lint then lint t.file, t.output
|
115
|
-
catch err
|
116
|
-
CoffeeScript.emit 'failure', err, task
|
117
|
-
return if CoffeeScript.listeners('failure').length
|
118
|
-
return printLine err.message if o.watch
|
119
|
-
printWarn err.stack
|
120
|
-
process.exit 1
|
121
|
-
|
122
|
-
# Attach the appropriate listeners to compile scripts incoming over **stdin**,
|
123
|
-
# and write them back to **stdout**.
|
124
|
-
compileStdio = ->
|
125
|
-
code = ''
|
126
|
-
stdin = process.openStdin()
|
127
|
-
stdin.on 'data', (buffer) ->
|
128
|
-
code += buffer.toString() if buffer
|
129
|
-
stdin.on 'end', ->
|
130
|
-
compileScript null, code
|
131
|
-
|
132
|
-
# After all of the source files are done being read, concatenate and compile
|
133
|
-
# them together.
|
134
|
-
compileJoin = ->
|
135
|
-
code = contents.join '\n'
|
136
|
-
compileScript "concatenation", code, "concatenation"
|
137
|
-
|
138
|
-
# Watch a source CoffeeScript file using `fs.watchFile`, recompiling it every
|
139
|
-
# time the file is updated. May be used in combination with other options,
|
140
|
-
# such as `--lint` or `--print`.
|
141
|
-
watch = (source, base) ->
|
142
|
-
fs.watchFile source, {persistent: true, interval: 500}, (curr, prev) ->
|
143
|
-
return if curr.size is prev.size and curr.mtime.getTime() is prev.mtime.getTime()
|
144
|
-
fs.readFile source, (err, code) ->
|
145
|
-
throw err if err
|
146
|
-
compileScript(source, code.toString(), base)
|
147
|
-
|
148
|
-
# Write out a JavaScript source file with the compiled code. By default, files
|
149
|
-
# are written out in `cwd` as `.js` files with the same name, but the output
|
150
|
-
# directory can be customized with `--output`.
|
151
|
-
writeJs = (source, js, base) ->
|
152
|
-
filename = path.basename(source, path.extname(source)) + '.js'
|
153
|
-
srcDir = path.dirname source
|
154
|
-
baseDir = if base is '.' then srcDir else srcDir.substring base.length
|
155
|
-
dir = if opts.output then path.join opts.output, baseDir else srcDir
|
156
|
-
jsPath = path.join dir, filename
|
157
|
-
compile = ->
|
158
|
-
js = ' ' if js.length <= 0
|
159
|
-
fs.writeFile jsPath, js, (err) ->
|
160
|
-
if err then printLine err.message
|
161
|
-
else if opts.compile and opts.watch then util.log "compiled #{source}"
|
162
|
-
path.exists dir, (exists) ->
|
163
|
-
if exists then compile() else exec "mkdir -p #{dir}", compile
|
164
|
-
|
165
|
-
# Pipe compiled JS through JSLint (requires a working `jsl` command), printing
|
166
|
-
# any errors or warnings that arise.
|
167
|
-
lint = (file, js) ->
|
168
|
-
printIt = (buffer) -> printLine file + ':\t' + buffer.toString().trim()
|
169
|
-
conf = __dirname + '/../extras/jsl.conf'
|
170
|
-
jsl = spawn 'jsl', ['-nologo', '-stdin', '-conf', conf]
|
171
|
-
jsl.stdout.on 'data', printIt
|
172
|
-
jsl.stderr.on 'data', printIt
|
173
|
-
jsl.stdin.write js
|
174
|
-
jsl.stdin.end()
|
175
|
-
|
176
|
-
# Pretty-print a stream of tokens.
|
177
|
-
printTokens = (tokens) ->
|
178
|
-
strings = for token in tokens
|
179
|
-
[tag, value] = [token[0], token[1].toString().replace(/\n/, '\\n')]
|
180
|
-
"[#{tag} #{value}]"
|
181
|
-
printLine strings.join(' ')
|
182
|
-
|
183
|
-
# Use the [OptionParser module](optparse.html) to extract all options from
|
184
|
-
# `process.argv` that are specified in `SWITCHES`.
|
185
|
-
parseOptions = ->
|
186
|
-
optionParser = new optparse.OptionParser SWITCHES, BANNER
|
187
|
-
o = opts = optionParser.parse process.argv.slice 2
|
188
|
-
o.compile or= !!o.output
|
189
|
-
o.run = not (o.compile or o.print or o.lint)
|
190
|
-
o.print = !! (o.print or (o.eval or o.stdio and o.compile))
|
191
|
-
sources = o.arguments
|
192
|
-
|
193
|
-
# The compile-time options to pass to the CoffeeScript compiler.
|
194
|
-
compileOptions = (fileName) -> {fileName, bare: opts.bare}
|
195
|
-
|
196
|
-
# Start up a new Node.js instance with the arguments in `--nodejs` passed to
|
197
|
-
# the `node` binary, preserving the other options.
|
198
|
-
forkNode = ->
|
199
|
-
nodeArgs = opts.nodejs.split /\s+/
|
200
|
-
args = process.argv[1..]
|
201
|
-
args.splice args.indexOf('--nodejs'), 2
|
202
|
-
spawn process.execPath, nodeArgs.concat(args),
|
203
|
-
cwd: process.cwd()
|
204
|
-
env: process.env
|
205
|
-
customFds: [0, 1, 2]
|
206
|
-
|
207
|
-
# Print the `--help` usage message and exit. Deprecated switches are not
|
208
|
-
# shown.
|
209
|
-
usage = ->
|
210
|
-
printLine (new optparse.OptionParser SWITCHES, BANNER).help()
|
211
|
-
|
212
|
-
# Print the `--version` message and exit.
|
213
|
-
version = ->
|
214
|
-
printLine "CoffeeScript version #{CoffeeScript.VERSION}"
|