spade 0.1.0 → 0.1.1.1
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 +0 -11
- data/.gitmodules +3 -6
- data/Gemfile +10 -0
- data/bin/spade +3 -1
- data/lib/spade.rb +70 -0
- data/lib/spade/bundle.rb +180 -0
- data/lib/spade/cli.rb +1 -17
- data/lib/spade/cli/base.rb +182 -0
- data/lib/spade/console.rb +39 -0
- data/lib/spade/context.rb +107 -0
- data/lib/spade/evaluator.rb +34 -0
- data/lib/spade/exports.rb +70 -0
- data/lib/spade/loader.rb +208 -0
- data/lib/spade/package/.gitignore +1 -0
- data/lib/spade/package/Gemfile +15 -0
- data/lib/spade/package/lib/spade.js +1283 -0
- data/lib/spade/package/lib/wrapper.js +15 -0
- data/lib/spade/package/package.json +17 -0
- data/lib/spade/package/spec/javascript/async-test.js +123 -0
- data/lib/spade/package/spec/javascript/compiler/javascript.js +13 -0
- data/lib/spade/package/spec/javascript/compiler/ruby.js +14 -0
- data/lib/spade/package/spec/javascript/loader-test.js +64 -0
- data/lib/spade/package/spec/javascript/normalize-test.js +73 -0
- data/lib/spade/package/spec/javascript/packages-test.js +50 -0
- data/lib/spade/package/spec/javascript/relative-require-test.js +72 -0
- data/lib/spade/package/spec/javascript/require-test.js +117 -0
- data/lib/spade/package/spec/javascript/sandbox/creation.js +44 -0
- data/lib/spade/package/spec/javascript/sandbox/evaluate.js +37 -0
- data/lib/spade/package/spec/javascript/sandbox/format.js +79 -0
- data/lib/spade/package/spec/javascript/sandbox/misc.js +58 -0
- data/lib/spade/package/spec/javascript/sandbox/preprocessor.js +81 -0
- data/lib/spade/package/spec/javascript/sandbox/require.js +48 -0
- data/lib/spade/package/spec/javascript/sandbox/run-command.js +21 -0
- data/lib/spade/package/spec/javascript/spade/externs.js +14 -0
- data/lib/spade/package/spec/javascript/spade/load-factory.js +15 -0
- data/lib/spade/package/spec/javascript/spade/misc.js +23 -0
- data/lib/spade/package/spec/javascript/spade/ready.js +12 -0
- data/lib/spade/package/spec/javascript/spade/register.js +13 -0
- data/lib/spade/package/spec/javascript_spec.rb +7 -0
- data/lib/spade/package/spec/spec_helper.rb +3 -0
- data/lib/spade/package/spec/support/core_test.rb +67 -0
- data/lib/spade/reactor.rb +159 -0
- data/lib/spade/server.rb +66 -0
- data/lib/spade/shell.rb +85 -0
- data/lib/spade/version.rb +1 -1
- data/spade.gemspec +15 -4
- data/spec/cli/update_spec.rb +65 -0
- data/spec/spec_helper.rb +22 -0
- data/spec/support/cli.rb +103 -0
- data/spec/support/matchers.rb +12 -0
- data/spec/support/path.rb +66 -0
- metadata +146 -78
- data/.rspec +0 -1
- data/Buildfile +0 -18
- data/README.md +0 -152
- data/Rakefile +0 -9
- data/examples/format-app/lib/hello.coffee +0 -1
- data/examples/format-app/lib/main.js +0 -6
- data/examples/format-app/package.json +0 -10
- data/examples/format-app/resources/README.txt +0 -1
- data/examples/format-app/resources/config.json +0 -3
- data/examples/path-test/lib/hello.js +0 -1
- data/examples/path-test/lib/main.js +0 -1
- data/examples/path-test/package.json +0 -5
- data/examples/sc-app/index.html +0 -13
- data/examples/sc-app/lib/main.js +0 -24
- data/examples/sc-app/package.json +0 -8
- data/examples/single-file.js +0 -22
- data/examples/todos/index.html +0 -11
- data/examples/todos/lib/main.js +0 -11
- data/examples/todos/lib/todos.js +0 -93
- data/examples/todos/package.json +0 -10
- data/examples/todos/resources/stylesheets/todos.css +0 -162
- data/examples/todos/resources/templates/todos.handlebars +0 -31
- data/examples/web-app/README.md +0 -83
- data/examples/web-app/index.html +0 -12
- data/examples/web-app/lib/main.js +0 -3
- data/examples/web-app/package.json +0 -6
- data/examples/web-app/tests.html +0 -12
- data/examples/web-app/tests/ct-example-test.js +0 -39
- data/examples/web-app/tests/qunit-test.js +0 -23
@@ -1,31 +0,0 @@
|
|
1
|
-
<h1>Todos</h1>
|
2
|
-
|
3
|
-
{{#view "Todos.CreateTodoView"}}
|
4
|
-
<input id="new-todo" type="text" placeholder="Wot?" >
|
5
|
-
{{/view}}
|
6
|
-
|
7
|
-
{{#view "Todos.statsView"}}
|
8
|
-
<div class="remaining">
|
9
|
-
{{#view "Todos.clearCompletedView"}}
|
10
|
-
<button>Clear Completed Todos</button>
|
11
|
-
{{/view}}
|
12
|
-
{{bind "displayRemaining"}} remaining.
|
13
|
-
</div>
|
14
|
-
{{/view}}
|
15
|
-
|
16
|
-
{{#view "Todos.markAllDoneView"}}
|
17
|
-
<label class='done-label'>
|
18
|
-
<input class="mark-all-done" type="checkbox"> Mark All as Done
|
19
|
-
</label>
|
20
|
-
{{/view}}
|
21
|
-
|
22
|
-
{{#collection "Todos.todoListView"}}
|
23
|
-
<label class='done'>
|
24
|
-
{{#view "Todos.CheckboxView"}}
|
25
|
-
<input class="check" type="checkbox">
|
26
|
-
{{/view}}
|
27
|
-
<div class="todo-content">{{content/title}}</div>
|
28
|
-
</label>
|
29
|
-
{{/collection}}
|
30
|
-
|
31
|
-
|
data/examples/web-app/README.md
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
This is a simple demo web app the shows how to use spade in web pages and
|
2
|
-
unit testing from CLI and web.
|
3
|
-
|
4
|
-
# Quick Start
|
5
|
-
|
6
|
-
_**Note:** these instructions assume you have not added any of the spade or
|
7
|
-
core-test bins to your path. If you have then you can just use the spade or
|
8
|
-
cot commands directly._
|
9
|
-
|
10
|
-
To test the web app, first you need to run spade-update to do one-time setup.
|
11
|
-
This will link up all the necessary packages and create a spade-boot.js which
|
12
|
-
is needed by the app to load:
|
13
|
-
|
14
|
-
../../bin/spade update
|
15
|
-
|
16
|
-
Anytime you add a new package dependency to the web app, you will need to run
|
17
|
-
this command again for it to load in the browser.
|
18
|
-
|
19
|
-
To view the web app, you need to load your files through a server.
|
20
|
-
This will get around some security restrictions on the file:// protocol in
|
21
|
-
Chrome and Webkit. You could technically use any web server you like.
|
22
|
-
However, spade comes with a simple one built in for quick testing. To start
|
23
|
-
the server:
|
24
|
-
|
25
|
-
../../bin/spade preview
|
26
|
-
|
27
|
-
Now you can view the web app by visiting [http://localhost:4020/index.html]
|
28
|
-
in your web browser.
|
29
|
-
|
30
|
-
# Running Unit Tests
|
31
|
-
|
32
|
-
You can run the unit tests from the command line using the core-test cot
|
33
|
-
command:
|
34
|
-
|
35
|
-
../../packages/core-test/bin/cot
|
36
|
-
|
37
|
-
If you want to see detailed reports use the --verbose flag:
|
38
|
-
|
39
|
-
../../packages/core-test/bin/cot --verbose
|
40
|
-
|
41
|
-
You can also run specific unit tests:
|
42
|
-
|
43
|
-
../../packages/core-test/bin/cot ./tests/qunit-example-test.js
|
44
|
-
|
45
|
-
To run unit tests in the browser, you will need to first run a one-time setup
|
46
|
-
with core-test:
|
47
|
-
|
48
|
-
../../packages/core-test/bin/cot update
|
49
|
-
|
50
|
-
This will create a file called tests/ct-runner.js that is used to bootstrap
|
51
|
-
the tests in the browser. Anytime you add a new unit test file you need to
|
52
|
-
run this command again.
|
53
|
-
|
54
|
-
To view in the browser, you will need a web server again. spade preview is
|
55
|
-
the easiest way to do this:
|
56
|
-
|
57
|
-
../../bin/spade preview
|
58
|
-
|
59
|
-
Now you can load the tests by visiting [http://localhost:4020/tests.html]
|
60
|
-
|
61
|
-
Note that the unit tests included in this demo use different personalities
|
62
|
-
on CoreTest. This shows how you can use CoreTest to mix and match your
|
63
|
-
outputs.
|
64
|
-
|
65
|
-
# Additional Notes
|
66
|
-
|
67
|
-
In general, spade leaves it up to you to create your own HTML files for web-
|
68
|
-
based projects. The only requirement is that you need to load the spade-boot
|
69
|
-
script at the top of the file. You should also include a data-require
|
70
|
-
attribute which names the initial module you want to load when the HTML page
|
71
|
-
is finished loading.
|
72
|
-
|
73
|
-
For regular web apps, this is usually the default index module for the app
|
74
|
-
itself. For testing, you would instead load the ~tests/ct-runner module. In
|
75
|
-
both cases your app itself loads which means all the assets you care about are
|
76
|
-
present.
|
77
|
-
|
78
|
-
For unit testing, note that normally only files ending in '-test' or '-spec'
|
79
|
-
or '\_test' or '\_spec' are automatically run. To run all files in the tests
|
80
|
-
directory use the --all option on cot.
|
81
|
-
|
82
|
-
Finally, note that current core-test does not know how to load its own
|
83
|
-
stylesheets. This means the tests will load unstyled.
|
data/examples/web-app/index.html
DELETED
data/examples/web-app/tests.html
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
This is an example of the same unit test written using the native CoreTest
|
3
|
-
API. The big benefit of the native CoreTest API is that it is fully
|
4
|
-
async so it is easy to test event driven code with it.
|
5
|
-
|
6
|
-
For a sync version of this same API (does not require invoking a callback
|
7
|
-
when )
|
8
|
-
*/
|
9
|
-
/*globals Ct */
|
10
|
-
|
11
|
-
require('core-test');
|
12
|
-
|
13
|
-
Ct.module('Qunit Example');
|
14
|
-
|
15
|
-
// NOTE: T is the test instance. A new one is passed for each test which is
|
16
|
-
// good since previous tests could impact future ones when running async
|
17
|
-
Ct.setup(function(T, done) {
|
18
|
-
T.foo = 'foo';
|
19
|
-
done();
|
20
|
-
});
|
21
|
-
|
22
|
-
Ct.teardown(function(T, done) {
|
23
|
-
T.foo = 'unfoo';
|
24
|
-
done();
|
25
|
-
});
|
26
|
-
|
27
|
-
Ct.test('T.foo should be foo', function(T, done) {
|
28
|
-
T.equal(T.foo, 'foo', 'T.foo should be set');
|
29
|
-
done();
|
30
|
-
});
|
31
|
-
|
32
|
-
Ct.test('async example', function(T, done) {
|
33
|
-
setTimeout(function() {
|
34
|
-
T.ok(true, 'async test did fire');
|
35
|
-
done(); // invoke when you are finished running this test
|
36
|
-
}, 100);
|
37
|
-
});
|
38
|
-
|
39
|
-
Ct.run();
|
@@ -1,23 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
This is an example of a unit test using the CoreTest Qunit personality. To
|
3
|
-
convert an existing Qunit test just add the core-test require to the top of
|
4
|
-
the file.
|
5
|
-
*/
|
6
|
-
|
7
|
-
require('core-test/qunit');
|
8
|
-
|
9
|
-
var T = {};
|
10
|
-
|
11
|
-
module('Qunit Example', {
|
12
|
-
setup: function() {
|
13
|
-
T.foo = 'foo';
|
14
|
-
},
|
15
|
-
|
16
|
-
teardown: function() {
|
17
|
-
T.foo = 'unfoo';
|
18
|
-
}
|
19
|
-
});
|
20
|
-
|
21
|
-
test('T.foo should be foo', function() {
|
22
|
-
equals(T.foo, 'foo', 'T.foo should be set');
|
23
|
-
});
|