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
data/package.json
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "spade",
|
3
|
-
"version": "0.0.7",
|
4
|
-
"description": "CommonJS Microkernel for Browser and Command Line",
|
5
|
-
|
6
|
-
"maintainers": [
|
7
|
-
{
|
8
|
-
"name": "Charles Jolley",
|
9
|
-
"email": "charles@sproutcore.com",
|
10
|
-
"web": "http://sproutcore.com"
|
11
|
-
},
|
12
|
-
{
|
13
|
-
"name": "Peter Wagenet",
|
14
|
-
"email": "peterw@sproutcore.com",
|
15
|
-
"web": "http://sproutcore.com"
|
16
|
-
}
|
17
|
-
],
|
18
|
-
|
19
|
-
"repositories": [
|
20
|
-
{ "type": "git", "url": "git://github.com/strobecorp/spade" }
|
21
|
-
],
|
22
|
-
|
23
|
-
"dependencies": {},
|
24
|
-
|
25
|
-
"main": "./lib/index"
|
26
|
-
|
27
|
-
}
|
@@ -1,229 +0,0 @@
|
|
1
|
-
fs = require 'fs'
|
2
|
-
path = require 'path'
|
3
|
-
{extend} = require './lib/helpers'
|
4
|
-
CoffeeScript = require './lib/coffee-script'
|
5
|
-
{spawn, exec} = require 'child_process'
|
6
|
-
|
7
|
-
# ANSI Terminal Colors.
|
8
|
-
bold = '\033[0;1m'
|
9
|
-
red = '\033[0;31m'
|
10
|
-
green = '\033[0;32m'
|
11
|
-
reset = '\033[0m'
|
12
|
-
|
13
|
-
# Built file header.
|
14
|
-
header = """
|
15
|
-
/**
|
16
|
-
* CoffeeScript Compiler v#{CoffeeScript.VERSION}
|
17
|
-
* http://coffeescript.org
|
18
|
-
*
|
19
|
-
* Copyright 2010, Jeremy Ashkenas
|
20
|
-
* Released under the MIT License
|
21
|
-
*/
|
22
|
-
"""
|
23
|
-
|
24
|
-
sources = [
|
25
|
-
'src/coffee-script.coffee', 'src/grammar.coffee'
|
26
|
-
'src/helpers.coffee', 'src/lexer.coffee', 'src/nodes.coffee'
|
27
|
-
'src/rewriter.coffee', 'src/scope.coffee'
|
28
|
-
]
|
29
|
-
|
30
|
-
# Run a CoffeeScript through our node/coffee interpreter.
|
31
|
-
run = (args) ->
|
32
|
-
proc = spawn 'bin/coffee', args
|
33
|
-
proc.stderr.on 'data', (buffer) -> console.log buffer.toString()
|
34
|
-
proc.on 'exit', (status) -> process.exit(1) if status != 0
|
35
|
-
|
36
|
-
# Log a message with a color.
|
37
|
-
log = (message, color, explanation) ->
|
38
|
-
console.log color + message + reset + ' ' + (explanation or '')
|
39
|
-
|
40
|
-
option '-p', '--prefix [DIR]', 'set the installation prefix for `cake install`'
|
41
|
-
|
42
|
-
task 'install', 'install CoffeeScript into /usr/local (or --prefix)', (options) ->
|
43
|
-
base = options.prefix or '/usr/local'
|
44
|
-
lib = "#{base}/lib/coffee-script"
|
45
|
-
bin = "#{base}/bin"
|
46
|
-
node = "~/.node_libraries/coffee-script"
|
47
|
-
console.log "Installing CoffeeScript to #{lib}"
|
48
|
-
console.log "Linking to #{node}"
|
49
|
-
console.log "Linking 'coffee' to #{bin}/coffee"
|
50
|
-
exec([
|
51
|
-
"mkdir -p #{lib} #{bin}"
|
52
|
-
"cp -rf bin lib LICENSE README package.json src #{lib}"
|
53
|
-
"ln -sfn #{lib}/bin/coffee #{bin}/coffee"
|
54
|
-
"ln -sfn #{lib}/bin/cake #{bin}/cake"
|
55
|
-
"mkdir -p ~/.node_libraries"
|
56
|
-
"ln -sfn #{lib}/lib #{node}"
|
57
|
-
].join(' && '), (err, stdout, stderr) ->
|
58
|
-
if err then console.log stderr.trim() else log 'done', green
|
59
|
-
)
|
60
|
-
|
61
|
-
|
62
|
-
task 'build', 'build the CoffeeScript language from source', ->
|
63
|
-
files = fs.readdirSync 'src'
|
64
|
-
files = ('src/' + file for file in files when file.match(/\.coffee$/))
|
65
|
-
run ['-c', '-o', 'lib'].concat(files)
|
66
|
-
|
67
|
-
|
68
|
-
task 'build:full', 'rebuild the source twice, and run the tests', ->
|
69
|
-
exec 'bin/cake build && bin/cake build && bin/cake test', (err, stdout, stderr) ->
|
70
|
-
console.log stdout.trim() if stdout
|
71
|
-
console.log stderr.trim() if stderr
|
72
|
-
throw err if err
|
73
|
-
|
74
|
-
|
75
|
-
task 'build:parser', 'rebuild the Jison parser (run build first)', ->
|
76
|
-
extend global, require('util')
|
77
|
-
require 'jison'
|
78
|
-
parser = require('./lib/grammar').parser
|
79
|
-
fs.writeFile 'lib/parser.js', parser.generate()
|
80
|
-
|
81
|
-
|
82
|
-
task 'build:ultraviolet', 'build and install the Ultraviolet syntax highlighter', ->
|
83
|
-
exec 'plist2syntax ../coffee-script-tmbundle/Syntaxes/CoffeeScript.tmLanguage', (err) ->
|
84
|
-
throw err if err
|
85
|
-
exec 'sudo mv coffeescript.yaml /usr/local/lib/ruby/gems/1.8/gems/ultraviolet-0.10.2/syntax/coffeescript.syntax'
|
86
|
-
|
87
|
-
|
88
|
-
task 'build:browser', 'rebuild the merged script for inclusion in the browser', ->
|
89
|
-
code = ''
|
90
|
-
for name in ['helpers', 'rewriter', 'lexer', 'parser', 'scope', 'nodes', 'coffee-script', 'browser']
|
91
|
-
code += """
|
92
|
-
require['./#{name}'] = new function() {
|
93
|
-
var exports = this;
|
94
|
-
#{fs.readFileSync "lib/#{name}.js"}
|
95
|
-
};
|
96
|
-
"""
|
97
|
-
{parser, uglify} = require 'uglify-js'
|
98
|
-
ast = parser.parse """
|
99
|
-
this.CoffeeScript = function() {
|
100
|
-
function require(path){ return require[path]; }
|
101
|
-
#{code}
|
102
|
-
return require['./coffee-script']
|
103
|
-
}()
|
104
|
-
"""
|
105
|
-
code = uglify.gen_code uglify.ast_squeeze uglify.ast_mangle ast, extra: yes
|
106
|
-
fs.writeFileSync 'extras/coffee-script.js', header + '\n' + code
|
107
|
-
invoke 'test:browser'
|
108
|
-
|
109
|
-
|
110
|
-
task 'doc:site', 'watch and continually rebuild the documentation for the website', ->
|
111
|
-
exec 'rake doc', (err) ->
|
112
|
-
throw err if err
|
113
|
-
|
114
|
-
|
115
|
-
task 'doc:source', 'rebuild the internal documentation', ->
|
116
|
-
exec 'docco src/*.coffee && cp -rf docs documentation && rm -r docs', (err) ->
|
117
|
-
throw err if err
|
118
|
-
|
119
|
-
|
120
|
-
task 'doc:underscore', 'rebuild the Underscore.coffee documentation page', ->
|
121
|
-
exec 'docco examples/underscore.coffee && cp -rf docs documentation && rm -r docs', (err) ->
|
122
|
-
throw err if err
|
123
|
-
|
124
|
-
task 'bench', 'quick benchmark of compilation time', ->
|
125
|
-
{Rewriter} = require './lib/rewriter'
|
126
|
-
co = sources.map((name) -> fs.readFileSync name).join '\n'
|
127
|
-
fmt = (ms) -> " #{bold}#{ " #{ms}".slice -4 }#{reset} ms"
|
128
|
-
total = 0
|
129
|
-
now = Date.now()
|
130
|
-
time = -> total += ms = -(now - now = Date.now()); fmt ms
|
131
|
-
tokens = CoffeeScript.tokens co, rewrite: false
|
132
|
-
console.log "Lex #{time()} (#{tokens.length} tokens)"
|
133
|
-
tokens = new Rewriter().rewrite tokens
|
134
|
-
console.log "Rewrite#{time()} (#{tokens.length} tokens)"
|
135
|
-
nodes = CoffeeScript.nodes tokens
|
136
|
-
console.log "Parse #{time()}"
|
137
|
-
js = nodes.compile bare: true
|
138
|
-
console.log "Compile#{time()} (#{js.length} chars)"
|
139
|
-
console.log "total #{ fmt total }"
|
140
|
-
|
141
|
-
task 'loc', 'count the lines of source code in the CoffeeScript compiler', ->
|
142
|
-
exec "cat #{ sources.join(' ') } | grep -v '^\\( *#\\|\\s*$\\)' | wc -l | tr -s ' '", (err, stdout) ->
|
143
|
-
console.log stdout.trim()
|
144
|
-
|
145
|
-
|
146
|
-
# Run the CoffeeScript test suite.
|
147
|
-
runTests = (CoffeeScript) ->
|
148
|
-
startTime = Date.now()
|
149
|
-
currentFile = null
|
150
|
-
passedTests = 0
|
151
|
-
failures = []
|
152
|
-
|
153
|
-
# Mix in the assert module globally, to make it available for tests.
|
154
|
-
addGlobal = (name, func) ->
|
155
|
-
global[name] = ->
|
156
|
-
passedTests += 1
|
157
|
-
func arguments...
|
158
|
-
|
159
|
-
addGlobal name, func for name, func of require 'assert'
|
160
|
-
|
161
|
-
# Convenience aliases.
|
162
|
-
global.eq = global.strictEqual
|
163
|
-
global.CoffeeScript = CoffeeScript
|
164
|
-
|
165
|
-
# Our test helper function for delimiting different test cases.
|
166
|
-
global.test = (description, fn) ->
|
167
|
-
try
|
168
|
-
fn()
|
169
|
-
catch e
|
170
|
-
e.description = description if description?
|
171
|
-
e.source = fn.toString() if fn.toString?
|
172
|
-
failures.push file: currentFile, error: e
|
173
|
-
|
174
|
-
# A recursive functional equivalence helper; uses egal for testing equivalence.
|
175
|
-
# See http://wiki.ecmascript.org/doku.php?id=harmony:egal
|
176
|
-
arrayEqual = (a, b) ->
|
177
|
-
if a is b
|
178
|
-
# 0 isnt -0
|
179
|
-
a isnt 0 or 1/a is 1/b
|
180
|
-
else if a instanceof Array and b instanceof Array
|
181
|
-
return no unless a.length is b.length
|
182
|
-
return no for el, idx in a when not arrayEqual el, b[idx]
|
183
|
-
yes
|
184
|
-
else
|
185
|
-
# NaN is NaN
|
186
|
-
a isnt a and b isnt b
|
187
|
-
|
188
|
-
global.arrayEq = (a, b, msg) -> ok arrayEqual(a,b), msg
|
189
|
-
|
190
|
-
# When all the tests have run, collect and print errors.
|
191
|
-
# If a stacktrace is available, output the compiled function source.
|
192
|
-
process.on 'exit', ->
|
193
|
-
time = ((Date.now() - startTime) / 1000).toFixed(2)
|
194
|
-
message = "passed #{passedTests} tests in #{time} seconds#{reset}"
|
195
|
-
return log(message, green) unless failures.length
|
196
|
-
log "failed #{failures.length} and #{message}", red
|
197
|
-
for fail in failures
|
198
|
-
{error, file} = fail
|
199
|
-
jsFile = file.replace(/\.coffee$/,'.js')
|
200
|
-
match = error.stack?.match(new RegExp(fail.file+":(\\d+):(\\d+)"))
|
201
|
-
[match, line, col] = match if match
|
202
|
-
log "\n #{error.toString()}", red
|
203
|
-
log " #{error.description}", red if error.description
|
204
|
-
log " #{jsFile}: line #{line or 'unknown'}, column #{col or 'unknown'}", red
|
205
|
-
console.log " #{error.source}" if error.source
|
206
|
-
|
207
|
-
# Run every test in the `test` folder, recording failures.
|
208
|
-
fs.readdir 'test', (err, files) ->
|
209
|
-
files.forEach (file) ->
|
210
|
-
return unless file.match(/\.coffee$/i)
|
211
|
-
fileName = path.join 'test', file
|
212
|
-
fs.readFile fileName, (err, code) ->
|
213
|
-
currentFile = fileName
|
214
|
-
try
|
215
|
-
CoffeeScript.run code.toString(), {fileName}
|
216
|
-
catch e
|
217
|
-
failures.push file: currentFile, error: e
|
218
|
-
|
219
|
-
|
220
|
-
task 'test', 'run the CoffeeScript language test suite', ->
|
221
|
-
runTests CoffeeScript
|
222
|
-
|
223
|
-
|
224
|
-
task 'test:browser', 'run the test suite against the merged browser script', ->
|
225
|
-
source = fs.readFileSync 'extras/coffee-script.js', 'utf-8'
|
226
|
-
result = {}
|
227
|
-
global.testingBrowser = yes
|
228
|
-
(-> eval source).call result
|
229
|
-
runTests result.CoffeeScript
|
@@ -1,22 +0,0 @@
|
|
1
|
-
Copyright (c) 2010 Jeremy Ashkenas
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person
|
4
|
-
obtaining a copy of this software and associated documentation
|
5
|
-
files (the "Software"), to deal in the Software without
|
6
|
-
restriction, including without limitation the rights to use,
|
7
|
-
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
-
copies of the Software, and to permit persons to whom the
|
9
|
-
Software is furnished to do so, subject to the following
|
10
|
-
conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be
|
13
|
-
included in all copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
17
|
-
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
19
|
-
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
20
|
-
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
21
|
-
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
22
|
-
OTHER DEALINGS IN THE SOFTWARE.
|
@@ -1,47 +0,0 @@
|
|
1
|
-
=
|
2
|
-
{
|
3
|
-
} } {
|
4
|
-
{ { } }
|
5
|
-
} }{ {
|
6
|
-
{ }{ } } _____ __ __
|
7
|
-
( }{ }{ { ) / ____| / _|/ _|
|
8
|
-
.- { { } { }} -. | | ___ | |_| |_ ___ ___
|
9
|
-
( ( } { } { } } ) | | / _ \| _| _/ _ \/ _ \
|
10
|
-
|`-..________ ..-'| | |___| (_) | | | || __/ __/
|
11
|
-
| | \_____\___/|_| |_| \___|\___|
|
12
|
-
| ;--.
|
13
|
-
| (__ \ _____ _ _
|
14
|
-
| | ) ) / ____| (_) | |
|
15
|
-
| |/ / | (___ ___ _ __ _ _ __ | |_
|
16
|
-
| ( / \___ \ / __| '__| | '_ \| __|
|
17
|
-
| |/ ____) | (__| | | | |_) | |_
|
18
|
-
| | |_____/ \___|_| |_| .__/ \__|
|
19
|
-
`-.._________..-' | |
|
20
|
-
|_|
|
21
|
-
|
22
|
-
|
23
|
-
CoffeeScript is a little language that compiles into JavaScript.
|
24
|
-
|
25
|
-
Install Node.js, and then the CoffeeScript compiler:
|
26
|
-
sudo bin/cake install
|
27
|
-
|
28
|
-
Or, if you have the Node Package Manager installed:
|
29
|
-
npm install coffee-script
|
30
|
-
|
31
|
-
Compile a script:
|
32
|
-
coffee /path/to/script.coffee
|
33
|
-
|
34
|
-
For documentation, usage, and examples, see:
|
35
|
-
http://coffeescript.org/
|
36
|
-
|
37
|
-
To suggest a feature, report a bug, or general discussion:
|
38
|
-
http://github.com/jashkenas/coffee-script/issues/
|
39
|
-
|
40
|
-
If you'd like to chat, drop by #coffeescript on Freenode IRC,
|
41
|
-
or on webchat.freenode.net.
|
42
|
-
|
43
|
-
The source repository:
|
44
|
-
git://github.com/jashkenas/coffee-script.git
|
45
|
-
|
46
|
-
All contributors are listed here:
|
47
|
-
http://github.com/jashkenas/coffee-script/contributors
|
@@ -1,78 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'erb'
|
3
|
-
require 'fileutils'
|
4
|
-
require 'rake/testtask'
|
5
|
-
require 'json'
|
6
|
-
|
7
|
-
desc "Build the documentation page"
|
8
|
-
task :doc do
|
9
|
-
source = 'documentation/index.html.erb'
|
10
|
-
child = fork { exec "bin/coffee -bcw -o documentation/js documentation/coffee/*.coffee" }
|
11
|
-
at_exit { Process.kill("INT", child) }
|
12
|
-
Signal.trap("INT") { exit }
|
13
|
-
loop do
|
14
|
-
mtime = File.stat(source).mtime
|
15
|
-
if !@mtime || mtime > @mtime
|
16
|
-
rendered = ERB.new(File.read(source)).result(binding)
|
17
|
-
File.open('index.html', 'w+') {|f| f.write(rendered) }
|
18
|
-
end
|
19
|
-
@mtime = mtime
|
20
|
-
sleep 1
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
desc "Build coffee-script-source gem"
|
25
|
-
task :gem do
|
26
|
-
require 'rubygems'
|
27
|
-
require 'rubygems/package'
|
28
|
-
|
29
|
-
gemspec = Gem::Specification.new do |s|
|
30
|
-
s.name = 'coffee-script-source'
|
31
|
-
s.version = JSON.parse(File.read('package.json'))["version"]
|
32
|
-
s.date = Time.now.strftime("%Y-%m-%d")
|
33
|
-
|
34
|
-
s.homepage = "http://jashkenas.github.com/coffee-script/"
|
35
|
-
s.summary = "The CoffeeScript Compiler"
|
36
|
-
s.description = <<-EOS
|
37
|
-
CoffeeScript is a little language that compiles into JavaScript.
|
38
|
-
Underneath all of those embarrassing braces and semicolons,
|
39
|
-
JavaScript has always had a gorgeous object model at its heart.
|
40
|
-
CoffeeScript is an attempt to expose the good parts of JavaScript
|
41
|
-
in a simple way.
|
42
|
-
EOS
|
43
|
-
|
44
|
-
s.files = [
|
45
|
-
'lib/coffee_script/coffee-script.js',
|
46
|
-
'lib/coffee_script/source.rb'
|
47
|
-
]
|
48
|
-
|
49
|
-
s.authors = ['Jeremy Ashkenas']
|
50
|
-
s.email = 'jashkenas@gmail.com'
|
51
|
-
s.rubyforge_project = 'coffee-script-source'
|
52
|
-
end
|
53
|
-
|
54
|
-
file = File.open("coffee-script-source.gem", "w")
|
55
|
-
Gem::Package.open(file, 'w') do |pkg|
|
56
|
-
pkg.metadata = gemspec.to_yaml
|
57
|
-
|
58
|
-
path = "lib/coffee_script/source.rb"
|
59
|
-
contents = <<-ERUBY
|
60
|
-
module CoffeeScript
|
61
|
-
module Source
|
62
|
-
def self.bundled_path
|
63
|
-
File.expand_path("../coffee-script.js", __FILE__)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
ERUBY
|
68
|
-
pkg.add_file_simple(path, 0644, contents.size) do |tar_io|
|
69
|
-
tar_io.write(contents)
|
70
|
-
end
|
71
|
-
|
72
|
-
contents = File.read("extras/coffee-script.js")
|
73
|
-
path = "lib/coffee_script/coffee-script.js"
|
74
|
-
pkg.add_file_simple(path, 0644, contents.size) do |tar_io|
|
75
|
-
tar_io.write(contents)
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|