sproutcore 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/License.txt +20 -0
- data/Manifest.txt +269 -0
- data/README.txt +67 -0
- data/Rakefile +4 -0
- data/app_generators/sproutcore/USAGE +5 -0
- data/app_generators/sproutcore/sproutcore_generator.rb +66 -0
- data/app_generators/sproutcore/templates/README +77 -0
- data/app_generators/sproutcore/templates/environment.yml +4 -0
- data/bin/sc-build +145 -0
- data/bin/sc-gen +24 -0
- data/bin/sc-server +63 -0
- data/bin/sproutcore +21 -0
- data/clients/sc_docs/controllers/docs.js +118 -0
- data/clients/sc_docs/core.js +19 -0
- data/clients/sc_docs/english.lproj/body.css +159 -0
- data/clients/sc_docs/english.lproj/body.rhtml +33 -0
- data/clients/sc_docs/english.lproj/controls.css +0 -0
- data/clients/sc_docs/english.lproj/icons/small/next.png +0 -0
- data/clients/sc_docs/english.lproj/icons/small/reset.png +0 -0
- data/clients/sc_docs/english.lproj/images/gradients.png +0 -0
- data/clients/sc_docs/english.lproj/images/indicator.gif +0 -0
- data/clients/sc_docs/english.lproj/images/toolbar.png +0 -0
- data/clients/sc_docs/english.lproj/no_docs.rhtml +7 -0
- data/clients/sc_docs/english.lproj/strings.js +14 -0
- data/clients/sc_docs/english.lproj/warning.rhtml +6 -0
- data/clients/sc_docs/fixtures/doc.js +11 -0
- data/clients/sc_docs/main.js +21 -0
- data/clients/sc_docs/models/doc.js +9 -0
- data/clients/sc_docs/tests/controllers/docs.rhtml +21 -0
- data/clients/sc_docs/tests/models/doc.rhtml +21 -0
- data/clients/sc_docs/tests/views/doc_frame.rhtml +21 -0
- data/clients/sc_docs/tests/views/doc_label_view.rhtml +21 -0
- data/clients/sc_docs/views/doc_frame.js +33 -0
- data/clients/sc_docs/views/doc_label.js +20 -0
- data/clients/sc_test_runner/controllers/runner.js +175 -0
- data/clients/sc_test_runner/core.js +19 -0
- data/clients/sc_test_runner/english.lproj/body.css +151 -0
- data/clients/sc_test_runner/english.lproj/body.rhtml +35 -0
- data/clients/sc_test_runner/english.lproj/controls.css +0 -0
- data/clients/sc_test_runner/english.lproj/icons/small/next.png +0 -0
- data/clients/sc_test_runner/english.lproj/icons/small/reset.png +0 -0
- data/clients/sc_test_runner/english.lproj/images/gradients.png +0 -0
- data/clients/sc_test_runner/english.lproj/images/indicator.gif +0 -0
- data/clients/sc_test_runner/english.lproj/images/toolbar.png +0 -0
- data/clients/sc_test_runner/english.lproj/no_tests.rhtml +6 -0
- data/clients/sc_test_runner/english.lproj/strings.js +14 -0
- data/clients/sc_test_runner/english.lproj/warning.rhtml +6 -0
- data/clients/sc_test_runner/fixtures/test.js +12 -0
- data/clients/sc_test_runner/main.js +26 -0
- data/clients/sc_test_runner/models/test.js +11 -0
- data/clients/sc_test_runner/views/runner_frame.js +72 -0
- data/clients/sc_test_runner/views/test_label.js +20 -0
- data/config/hoe.rb +70 -0
- data/config/requirements.rb +17 -0
- data/environment.yml +9 -0
- data/frameworks/prototype/prototype.js +4186 -0
- data/frameworks/sproutcore/Core.js +378 -0
- data/frameworks/sproutcore/README +3 -0
- data/frameworks/sproutcore/controllers/array.js +236 -0
- data/frameworks/sproutcore/controllers/collection.js +305 -0
- data/frameworks/sproutcore/controllers/controller.js +323 -0
- data/frameworks/sproutcore/controllers/object.js +372 -0
- data/frameworks/sproutcore/drag/drag.js +549 -0
- data/frameworks/sproutcore/drag/drag_data_source.js +32 -0
- data/frameworks/sproutcore/drag/drag_source.js +64 -0
- data/frameworks/sproutcore/drag/drop_target.js +153 -0
- data/frameworks/sproutcore/english.lproj/blank.gif +0 -0
- data/frameworks/sproutcore/english.lproj/buttons.css +589 -0
- data/frameworks/sproutcore/english.lproj/buttons.png +0 -0
- data/frameworks/sproutcore/english.lproj/inline_text_editor.css +21 -0
- data/frameworks/sproutcore/english.lproj/menu.css +121 -0
- data/frameworks/sproutcore/english.lproj/panels/background-fat.jpg +0 -0
- data/frameworks/sproutcore/english.lproj/panels/background-thin.jpg +0 -0
- data/frameworks/sproutcore/english.lproj/panels/bottom-edge.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/bottom-left-corner.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/bottom-right-corner.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/left-edge.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/overlay.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/right-edge.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/top-edge.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/top-left-corner.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/top-right-corner.png +0 -0
- data/frameworks/sproutcore/english.lproj/panes.css +155 -0
- data/frameworks/sproutcore/english.lproj/picker.css +22 -0
- data/frameworks/sproutcore/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/english.lproj/tab.css +23 -0
- data/frameworks/sproutcore/english.lproj/tests.css +67 -0
- data/frameworks/sproutcore/english.lproj/theme.css +77 -0
- data/frameworks/sproutcore/foundation/animator.js +670 -0
- data/frameworks/sproutcore/foundation/application.js +199 -0
- data/frameworks/sproutcore/foundation/array.js +348 -0
- data/frameworks/sproutcore/foundation/benchmark.js +211 -0
- data/frameworks/sproutcore/foundation/binding.js +384 -0
- data/frameworks/sproutcore/foundation/date.js +357 -0
- data/frameworks/sproutcore/foundation/error.js +39 -0
- data/frameworks/sproutcore/foundation/input_manager.js +153 -0
- data/frameworks/sproutcore/foundation/json.js +296 -0
- data/frameworks/sproutcore/foundation/mock.js +42 -0
- data/frameworks/sproutcore/foundation/node_descriptor.js +56 -0
- data/frameworks/sproutcore/foundation/object.js +777 -0
- data/frameworks/sproutcore/foundation/observable.js +451 -0
- data/frameworks/sproutcore/foundation/page.js +63 -0
- data/frameworks/sproutcore/foundation/path_module.js +413 -0
- data/frameworks/sproutcore/foundation/responder.js +310 -0
- data/frameworks/sproutcore/foundation/routes.js +371 -0
- data/frameworks/sproutcore/foundation/run_loop.js +21 -0
- data/frameworks/sproutcore/foundation/server.js +491 -0
- data/frameworks/sproutcore/foundation/set.js +96 -0
- data/frameworks/sproutcore/foundation/string.js +149 -0
- data/frameworks/sproutcore/foundation/undo_manager.js +186 -0
- data/frameworks/sproutcore/foundation/unittest.js +622 -0
- data/frameworks/sproutcore/foundation/utils.js +61 -0
- data/frameworks/sproutcore/globals/panels.js +182 -0
- data/frameworks/sproutcore/globals/popups.js +60 -0
- data/frameworks/sproutcore/globals/window.js +381 -0
- data/frameworks/sproutcore/lib/index.rhtml +66 -0
- data/frameworks/sproutcore/models/collection.js +395 -0
- data/frameworks/sproutcore/models/record.js +622 -0
- data/frameworks/sproutcore/models/store.js +295 -0
- data/frameworks/sproutcore/panes/dialog.js +16 -0
- data/frameworks/sproutcore/panes/manager.js +164 -0
- data/frameworks/sproutcore/panes/menu.js +45 -0
- data/frameworks/sproutcore/panes/overlay.js +231 -0
- data/frameworks/sproutcore/panes/pane.js +90 -0
- data/frameworks/sproutcore/panes/panel.js +19 -0
- data/frameworks/sproutcore/panes/picker.js +45 -0
- data/frameworks/sproutcore/tests/controllers/array.rhtml +86 -0
- data/frameworks/sproutcore/tests/controllers/controller.rhtml +273 -0
- data/frameworks/sproutcore/tests/controllers/object.rhtml +327 -0
- data/frameworks/sproutcore/tests/foundation/application.rhtml +125 -0
- data/frameworks/sproutcore/tests/foundation/array.rhtml +221 -0
- data/frameworks/sproutcore/tests/foundation/object.rhtml +69 -0
- data/frameworks/sproutcore/tests/globals/window.rhtml +45 -0
- data/frameworks/sproutcore/tests/panes/pane.rhtml +88 -0
- data/frameworks/sproutcore/tests/views/collection.rhtml +137 -0
- data/frameworks/sproutcore/tests/views/popup_button.rhtml +115 -0
- data/frameworks/sproutcore/tests/views/text_field.rhtml +37 -0
- data/frameworks/sproutcore/validators/credit_card.js +92 -0
- data/frameworks/sproutcore/validators/date.js +36 -0
- data/frameworks/sproutcore/validators/email.js +29 -0
- data/frameworks/sproutcore/validators/not_empty.js +24 -0
- data/frameworks/sproutcore/validators/number.js +55 -0
- data/frameworks/sproutcore/validators/password.js +78 -0
- data/frameworks/sproutcore/validators/validator.js +304 -0
- data/frameworks/sproutcore/views/button.js +425 -0
- data/frameworks/sproutcore/views/checkbox_field.js +30 -0
- data/frameworks/sproutcore/views/collection.js +1521 -0
- data/frameworks/sproutcore/views/container.js +62 -0
- data/frameworks/sproutcore/views/error_explanation.js +45 -0
- data/frameworks/sproutcore/views/field.js +214 -0
- data/frameworks/sproutcore/views/filter_button.js +29 -0
- data/frameworks/sproutcore/views/form.js +591 -0
- data/frameworks/sproutcore/views/image.js +141 -0
- data/frameworks/sproutcore/views/inline_text_editor.js +96 -0
- data/frameworks/sproutcore/views/label.js +176 -0
- data/frameworks/sproutcore/views/menu_item.js +90 -0
- data/frameworks/sproutcore/views/pagination.js +54 -0
- data/frameworks/sproutcore/views/popup_button.js +86 -0
- data/frameworks/sproutcore/views/popup_menu.js +137 -0
- data/frameworks/sproutcore/views/progress.js +100 -0
- data/frameworks/sproutcore/views/radio_field.js +107 -0
- data/frameworks/sproutcore/views/radio_group.js +48 -0
- data/frameworks/sproutcore/views/segmented.js +80 -0
- data/frameworks/sproutcore/views/select_field.js +272 -0
- data/frameworks/sproutcore/views/spinner.js +11 -0
- data/frameworks/sproutcore/views/tab.js +126 -0
- data/frameworks/sproutcore/views/text_field.js +179 -0
- data/frameworks/sproutcore/views/textarea_field.js +14 -0
- data/frameworks/sproutcore/views/toolbar.js +29 -0
- data/frameworks/sproutcore/views/view.js +1389 -0
- data/frameworks/sproutcore/views/workspace.js +170 -0
- data/generators/client/README +3 -0
- data/generators/client/USAGE +12 -0
- data/generators/client/client_generator.rb +53 -0
- data/generators/client/templates/core.js +19 -0
- data/generators/client/templates/english.lproj/body.css +0 -0
- data/generators/client/templates/english.lproj/body.rhtml +3 -0
- data/generators/client/templates/english.lproj/controls.css +0 -0
- data/generators/client/templates/english.lproj/strings.js +14 -0
- data/generators/client/templates/main.js +37 -0
- data/generators/controller/USAGE +16 -0
- data/generators/controller/controller_generator.rb +51 -0
- data/generators/controller/templates/controller.js +21 -0
- data/generators/controller/templates/test.rhtml +21 -0
- data/generators/framework/README +7 -0
- data/generators/framework/USAGE +12 -0
- data/generators/framework/framework_generator.rb +53 -0
- data/generators/framework/templates/core.js +20 -0
- data/generators/framework/templates/english.lproj/body.css +0 -0
- data/generators/framework/templates/english.lproj/body.rhtml +3 -0
- data/generators/framework/templates/english.lproj/controls.css +0 -0
- data/generators/framework/templates/english.lproj/strings.js +14 -0
- data/generators/language/USAGE +16 -0
- data/generators/language/language_generator.rb +47 -0
- data/generators/language/templates/strings.js +10 -0
- data/generators/model/USAGE +24 -0
- data/generators/model/model_generator.rb +55 -0
- data/generators/model/templates/fixture.js +11 -0
- data/generators/model/templates/model.js +20 -0
- data/generators/model/templates/test.rhtml +21 -0
- data/generators/test/USAGE +16 -0
- data/generators/test/templates/test.rhtml +21 -0
- data/generators/test/test_generator.rb +47 -0
- data/generators/view/USAGE +16 -0
- data/generators/view/templates/test.rhtml +21 -0
- data/generators/view/templates/view.js +20 -0
- data/generators/view/view_generator.rb +51 -0
- data/jsdoc/README.txt +119 -0
- data/jsdoc/app/DocFile.js +137 -0
- data/jsdoc/app/DocTag.js +110 -0
- data/jsdoc/app/Doclet.js +63 -0
- data/jsdoc/app/Dumper.js +143 -0
- data/jsdoc/app/JsDoc.js +103 -0
- data/jsdoc/app/JsHilite.js +45 -0
- data/jsdoc/app/JsIO.js +163 -0
- data/jsdoc/app/JsParse.js +385 -0
- data/jsdoc/app/JsPlate.js +130 -0
- data/jsdoc/app/JsTestrun.js +129 -0
- data/jsdoc/app/JsToke.js +564 -0
- data/jsdoc/app/Symbol.js +298 -0
- data/jsdoc/app/Transformer.js +14 -0
- data/jsdoc/app/Util.js +97 -0
- data/jsdoc/app/js.jar +0 -0
- data/jsdoc/app/run.js +144 -0
- data/jsdoc/plugins/min.js +316 -0
- data/jsdoc/plugins/strip.js +20 -0
- data/jsdoc/templates/sproutcore/class.tmpl +438 -0
- data/jsdoc/templates/sproutcore/default.css +241 -0
- data/jsdoc/templates/sproutcore/index.html +13 -0
- data/jsdoc/templates/sproutcore/index.tmpl +21 -0
- data/jsdoc/templates/sproutcore/prototype.js +4186 -0
- data/jsdoc/templates/sproutcore/publish.js +236 -0
- data/jsdoc/templates/sproutcore/splash.html +7 -0
- data/lib/sproutcore/build_tools/html_builder.rb +88 -0
- data/lib/sproutcore/build_tools/resource_builder.rb +194 -0
- data/lib/sproutcore/build_tools.rb +44 -0
- data/lib/sproutcore/bundle.rb +517 -0
- data/lib/sproutcore/bundle_manifest.rb +397 -0
- data/lib/sproutcore/generator_helper.rb +170 -0
- data/lib/sproutcore/helpers/capture_helper.rb +42 -0
- data/lib/sproutcore/helpers/static_helper.rb +80 -0
- data/lib/sproutcore/helpers/tag_helper.rb +110 -0
- data/lib/sproutcore/helpers/text_helper.rb +336 -0
- data/lib/sproutcore/helpers.rb +3 -0
- data/lib/sproutcore/jsdoc.rb +40 -0
- data/lib/sproutcore/jsmin.rb +247 -0
- data/lib/sproutcore/library.rb +258 -0
- data/lib/sproutcore/merb/bundle_controller.rb +179 -0
- data/lib/sproutcore/merb/router.rb +43 -0
- data/lib/sproutcore/merb.rb +27 -0
- data/lib/sproutcore/version.rb +9 -0
- data/lib/sproutcore/view_helpers/button_views.rb +302 -0
- data/lib/sproutcore/view_helpers/core_views.rb +284 -0
- data/lib/sproutcore/view_helpers/form_views.rb +258 -0
- data/lib/sproutcore/view_helpers/menu_views.rb +94 -0
- data/lib/sproutcore/view_helpers.rb +628 -0
- data/lib/sproutcore.rb +30 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/txt2html +74 -0
- data/setup.rb +1585 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +7 -0
- data/spec/sproutcore_spec.rb +11 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/tasks/rspec.rake +21 -0
- data/tasks/website.rake +17 -0
- metadata +365 -0
data/History.txt
ADDED
data/License.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2008 Sprout Systems, Inc.
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Manifest.txt
ADDED
@@ -0,0 +1,269 @@
|
|
1
|
+
History.txt
|
2
|
+
License.txt
|
3
|
+
Manifest.txt
|
4
|
+
README.txt
|
5
|
+
Rakefile
|
6
|
+
app_generators/sproutcore/USAGE
|
7
|
+
app_generators/sproutcore/sproutcore_generator.rb
|
8
|
+
app_generators/sproutcore/templates/README
|
9
|
+
app_generators/sproutcore/templates/environment.yml
|
10
|
+
bin/sc-build
|
11
|
+
bin/sc-gen
|
12
|
+
bin/sc-server
|
13
|
+
bin/sproutcore
|
14
|
+
clients/sc_docs/controllers/docs.js
|
15
|
+
clients/sc_docs/core.js
|
16
|
+
clients/sc_docs/english.lproj/body.css
|
17
|
+
clients/sc_docs/english.lproj/body.rhtml
|
18
|
+
clients/sc_docs/english.lproj/controls.css
|
19
|
+
clients/sc_docs/english.lproj/icons/small/next.png
|
20
|
+
clients/sc_docs/english.lproj/icons/small/reset.png
|
21
|
+
clients/sc_docs/english.lproj/images/gradients.png
|
22
|
+
clients/sc_docs/english.lproj/images/indicator.gif
|
23
|
+
clients/sc_docs/english.lproj/images/toolbar.png
|
24
|
+
clients/sc_docs/english.lproj/no_docs.rhtml
|
25
|
+
clients/sc_docs/english.lproj/strings.js
|
26
|
+
clients/sc_docs/english.lproj/warning.rhtml
|
27
|
+
clients/sc_docs/fixtures/doc.js
|
28
|
+
clients/sc_docs/main.js
|
29
|
+
clients/sc_docs/models/doc.js
|
30
|
+
clients/sc_docs/tests/controllers/docs.rhtml
|
31
|
+
clients/sc_docs/tests/models/doc.rhtml
|
32
|
+
clients/sc_docs/tests/views/doc_frame.rhtml
|
33
|
+
clients/sc_docs/tests/views/doc_label_view.rhtml
|
34
|
+
clients/sc_docs/views/doc_frame.js
|
35
|
+
clients/sc_docs/views/doc_label.js
|
36
|
+
clients/sc_test_runner/controllers/runner.js
|
37
|
+
clients/sc_test_runner/core.js
|
38
|
+
clients/sc_test_runner/english.lproj/body.css
|
39
|
+
clients/sc_test_runner/english.lproj/body.rhtml
|
40
|
+
clients/sc_test_runner/english.lproj/controls.css
|
41
|
+
clients/sc_test_runner/english.lproj/icons/small/next.png
|
42
|
+
clients/sc_test_runner/english.lproj/icons/small/reset.png
|
43
|
+
clients/sc_test_runner/english.lproj/images/gradients.png
|
44
|
+
clients/sc_test_runner/english.lproj/images/indicator.gif
|
45
|
+
clients/sc_test_runner/english.lproj/images/toolbar.png
|
46
|
+
clients/sc_test_runner/english.lproj/no_tests.rhtml
|
47
|
+
clients/sc_test_runner/english.lproj/strings.js
|
48
|
+
clients/sc_test_runner/english.lproj/warning.rhtml
|
49
|
+
clients/sc_test_runner/fixtures/test.js
|
50
|
+
clients/sc_test_runner/main.js
|
51
|
+
clients/sc_test_runner/models/test.js
|
52
|
+
clients/sc_test_runner/views/runner_frame.js
|
53
|
+
clients/sc_test_runner/views/test_label.js
|
54
|
+
config/hoe.rb
|
55
|
+
config/requirements.rb
|
56
|
+
environment.yml
|
57
|
+
frameworks/prototype/prototype.js
|
58
|
+
frameworks/sproutcore/Core.js
|
59
|
+
frameworks/sproutcore/README
|
60
|
+
frameworks/sproutcore/controllers/array.js
|
61
|
+
frameworks/sproutcore/controllers/collection.js
|
62
|
+
frameworks/sproutcore/controllers/controller.js
|
63
|
+
frameworks/sproutcore/controllers/object.js
|
64
|
+
frameworks/sproutcore/drag/drag.js
|
65
|
+
frameworks/sproutcore/drag/drag_data_source.js
|
66
|
+
frameworks/sproutcore/drag/drag_source.js
|
67
|
+
frameworks/sproutcore/drag/drop_target.js
|
68
|
+
frameworks/sproutcore/english.lproj/blank.gif
|
69
|
+
frameworks/sproutcore/english.lproj/buttons.css
|
70
|
+
frameworks/sproutcore/english.lproj/buttons.png
|
71
|
+
frameworks/sproutcore/english.lproj/inline_text_editor.css
|
72
|
+
frameworks/sproutcore/english.lproj/menu.css
|
73
|
+
frameworks/sproutcore/english.lproj/panels/background-fat.jpg
|
74
|
+
frameworks/sproutcore/english.lproj/panels/background-thin.jpg
|
75
|
+
frameworks/sproutcore/english.lproj/panels/bottom-edge.png
|
76
|
+
frameworks/sproutcore/english.lproj/panels/bottom-left-corner.png
|
77
|
+
frameworks/sproutcore/english.lproj/panels/bottom-right-corner.png
|
78
|
+
frameworks/sproutcore/english.lproj/panels/left-edge.png
|
79
|
+
frameworks/sproutcore/english.lproj/panels/overlay.png
|
80
|
+
frameworks/sproutcore/english.lproj/panels/right-edge.png
|
81
|
+
frameworks/sproutcore/english.lproj/panels/top-edge.png
|
82
|
+
frameworks/sproutcore/english.lproj/panels/top-left-corner.png
|
83
|
+
frameworks/sproutcore/english.lproj/panels/top-right-corner.png
|
84
|
+
frameworks/sproutcore/english.lproj/panes.css
|
85
|
+
frameworks/sproutcore/english.lproj/picker.css
|
86
|
+
frameworks/sproutcore/english.lproj/strings.js
|
87
|
+
frameworks/sproutcore/english.lproj/tab.css
|
88
|
+
frameworks/sproutcore/english.lproj/tests.css
|
89
|
+
frameworks/sproutcore/english.lproj/theme.css
|
90
|
+
frameworks/sproutcore/foundation/animator.js
|
91
|
+
frameworks/sproutcore/foundation/application.js
|
92
|
+
frameworks/sproutcore/foundation/array.js
|
93
|
+
frameworks/sproutcore/foundation/benchmark.js
|
94
|
+
frameworks/sproutcore/foundation/binding.js
|
95
|
+
frameworks/sproutcore/foundation/date.js
|
96
|
+
frameworks/sproutcore/foundation/error.js
|
97
|
+
frameworks/sproutcore/foundation/input_manager.js
|
98
|
+
frameworks/sproutcore/foundation/json.js
|
99
|
+
frameworks/sproutcore/foundation/mock.js
|
100
|
+
frameworks/sproutcore/foundation/node_descriptor.js
|
101
|
+
frameworks/sproutcore/foundation/object.js
|
102
|
+
frameworks/sproutcore/foundation/observable.js
|
103
|
+
frameworks/sproutcore/foundation/page.js
|
104
|
+
frameworks/sproutcore/foundation/path_module.js
|
105
|
+
frameworks/sproutcore/foundation/responder.js
|
106
|
+
frameworks/sproutcore/foundation/routes.js
|
107
|
+
frameworks/sproutcore/foundation/run_loop.js
|
108
|
+
frameworks/sproutcore/foundation/server.js
|
109
|
+
frameworks/sproutcore/foundation/set.js
|
110
|
+
frameworks/sproutcore/foundation/string.js
|
111
|
+
frameworks/sproutcore/foundation/undo_manager.js
|
112
|
+
frameworks/sproutcore/foundation/unittest.js
|
113
|
+
frameworks/sproutcore/foundation/utils.js
|
114
|
+
frameworks/sproutcore/globals/panels.js
|
115
|
+
frameworks/sproutcore/globals/popups.js
|
116
|
+
frameworks/sproutcore/globals/window.js
|
117
|
+
frameworks/sproutcore/lib/index.rhtml
|
118
|
+
frameworks/sproutcore/models/collection.js
|
119
|
+
frameworks/sproutcore/models/record.js
|
120
|
+
frameworks/sproutcore/models/store.js
|
121
|
+
frameworks/sproutcore/panes/dialog.js
|
122
|
+
frameworks/sproutcore/panes/manager.js
|
123
|
+
frameworks/sproutcore/panes/menu.js
|
124
|
+
frameworks/sproutcore/panes/overlay.js
|
125
|
+
frameworks/sproutcore/panes/pane.js
|
126
|
+
frameworks/sproutcore/panes/panel.js
|
127
|
+
frameworks/sproutcore/panes/picker.js
|
128
|
+
frameworks/sproutcore/tests/controllers/array.rhtml
|
129
|
+
frameworks/sproutcore/tests/controllers/controller.rhtml
|
130
|
+
frameworks/sproutcore/tests/controllers/object.rhtml
|
131
|
+
frameworks/sproutcore/tests/foundation/application.rhtml
|
132
|
+
frameworks/sproutcore/tests/foundation/array.rhtml
|
133
|
+
frameworks/sproutcore/tests/foundation/object.rhtml
|
134
|
+
frameworks/sproutcore/tests/globals/window.rhtml
|
135
|
+
frameworks/sproutcore/tests/panes/pane.rhtml
|
136
|
+
frameworks/sproutcore/tests/views/collection.rhtml
|
137
|
+
frameworks/sproutcore/tests/views/popup_button.rhtml
|
138
|
+
frameworks/sproutcore/tests/views/text_field.rhtml
|
139
|
+
frameworks/sproutcore/validators/credit_card.js
|
140
|
+
frameworks/sproutcore/validators/date.js
|
141
|
+
frameworks/sproutcore/validators/email.js
|
142
|
+
frameworks/sproutcore/validators/not_empty.js
|
143
|
+
frameworks/sproutcore/validators/number.js
|
144
|
+
frameworks/sproutcore/validators/password.js
|
145
|
+
frameworks/sproutcore/validators/validator.js
|
146
|
+
frameworks/sproutcore/views/button.js
|
147
|
+
frameworks/sproutcore/views/checkbox_field.js
|
148
|
+
frameworks/sproutcore/views/collection.js
|
149
|
+
frameworks/sproutcore/views/container.js
|
150
|
+
frameworks/sproutcore/views/error_explanation.js
|
151
|
+
frameworks/sproutcore/views/field.js
|
152
|
+
frameworks/sproutcore/views/filter_button.js
|
153
|
+
frameworks/sproutcore/views/form.js
|
154
|
+
frameworks/sproutcore/views/image.js
|
155
|
+
frameworks/sproutcore/views/inline_text_editor.js
|
156
|
+
frameworks/sproutcore/views/label.js
|
157
|
+
frameworks/sproutcore/views/menu_item.js
|
158
|
+
frameworks/sproutcore/views/pagination.js
|
159
|
+
frameworks/sproutcore/views/popup_button.js
|
160
|
+
frameworks/sproutcore/views/popup_menu.js
|
161
|
+
frameworks/sproutcore/views/progress.js
|
162
|
+
frameworks/sproutcore/views/radio_field.js
|
163
|
+
frameworks/sproutcore/views/radio_group.js
|
164
|
+
frameworks/sproutcore/views/segmented.js
|
165
|
+
frameworks/sproutcore/views/select_field.js
|
166
|
+
frameworks/sproutcore/views/spinner.js
|
167
|
+
frameworks/sproutcore/views/tab.js
|
168
|
+
frameworks/sproutcore/views/text_field.js
|
169
|
+
frameworks/sproutcore/views/textarea_field.js
|
170
|
+
frameworks/sproutcore/views/toolbar.js
|
171
|
+
frameworks/sproutcore/views/view.js
|
172
|
+
frameworks/sproutcore/views/workspace.js
|
173
|
+
generators/client/README
|
174
|
+
generators/client/USAGE
|
175
|
+
generators/client/client_generator.rb
|
176
|
+
generators/client/templates/core.js
|
177
|
+
generators/client/templates/english.lproj/body.css
|
178
|
+
generators/client/templates/english.lproj/body.rhtml
|
179
|
+
generators/client/templates/english.lproj/controls.css
|
180
|
+
generators/client/templates/english.lproj/strings.js
|
181
|
+
generators/client/templates/main.js
|
182
|
+
generators/controller/USAGE
|
183
|
+
generators/controller/controller_generator.rb
|
184
|
+
generators/controller/templates/controller.js
|
185
|
+
generators/controller/templates/test.rhtml
|
186
|
+
generators/framework/README
|
187
|
+
generators/framework/USAGE
|
188
|
+
generators/framework/framework_generator.rb
|
189
|
+
generators/framework/templates/core.js
|
190
|
+
generators/framework/templates/english.lproj/body.css
|
191
|
+
generators/framework/templates/english.lproj/body.rhtml
|
192
|
+
generators/framework/templates/english.lproj/controls.css
|
193
|
+
generators/framework/templates/english.lproj/strings.js
|
194
|
+
generators/language/USAGE
|
195
|
+
generators/language/language_generator.rb
|
196
|
+
generators/language/templates/strings.js
|
197
|
+
generators/model/USAGE
|
198
|
+
generators/model/model_generator.rb
|
199
|
+
generators/model/templates/fixture.js
|
200
|
+
generators/model/templates/model.js
|
201
|
+
generators/model/templates/test.rhtml
|
202
|
+
generators/test/USAGE
|
203
|
+
generators/test/templates/test.rhtml
|
204
|
+
generators/test/test_generator.rb
|
205
|
+
generators/view/USAGE
|
206
|
+
generators/view/templates/test.rhtml
|
207
|
+
generators/view/templates/view.js
|
208
|
+
generators/view/view_generator.rb
|
209
|
+
jsdoc/README.txt
|
210
|
+
jsdoc/app/DocFile.js
|
211
|
+
jsdoc/app/DocTag.js
|
212
|
+
jsdoc/app/Doclet.js
|
213
|
+
jsdoc/app/Dumper.js
|
214
|
+
jsdoc/app/JsDoc.js
|
215
|
+
jsdoc/app/JsHilite.js
|
216
|
+
jsdoc/app/JsIO.js
|
217
|
+
jsdoc/app/JsParse.js
|
218
|
+
jsdoc/app/JsPlate.js
|
219
|
+
jsdoc/app/JsTestrun.js
|
220
|
+
jsdoc/app/JsToke.js
|
221
|
+
jsdoc/app/Symbol.js
|
222
|
+
jsdoc/app/Transformer.js
|
223
|
+
jsdoc/app/Util.js
|
224
|
+
jsdoc/app/js.jar
|
225
|
+
jsdoc/app/run.js
|
226
|
+
jsdoc/plugins/min.js
|
227
|
+
jsdoc/plugins/strip.js
|
228
|
+
jsdoc/templates/sproutcore/class.tmpl
|
229
|
+
jsdoc/templates/sproutcore/default.css
|
230
|
+
jsdoc/templates/sproutcore/index.html
|
231
|
+
jsdoc/templates/sproutcore/index.tmpl
|
232
|
+
jsdoc/templates/sproutcore/prototype.js
|
233
|
+
jsdoc/templates/sproutcore/publish.js
|
234
|
+
jsdoc/templates/sproutcore/splash.html
|
235
|
+
lib/sproutcore.rb
|
236
|
+
lib/sproutcore/build_tools.rb
|
237
|
+
lib/sproutcore/build_tools/html_builder.rb
|
238
|
+
lib/sproutcore/build_tools/resource_builder.rb
|
239
|
+
lib/sproutcore/bundle.rb
|
240
|
+
lib/sproutcore/bundle_manifest.rb
|
241
|
+
lib/sproutcore/generator_helper.rb
|
242
|
+
lib/sproutcore/helpers.rb
|
243
|
+
lib/sproutcore/helpers/capture_helper.rb
|
244
|
+
lib/sproutcore/helpers/static_helper.rb
|
245
|
+
lib/sproutcore/helpers/tag_helper.rb
|
246
|
+
lib/sproutcore/helpers/text_helper.rb
|
247
|
+
lib/sproutcore/jsdoc.rb
|
248
|
+
lib/sproutcore/jsmin.rb
|
249
|
+
lib/sproutcore/library.rb
|
250
|
+
lib/sproutcore/merb.rb
|
251
|
+
lib/sproutcore/merb/bundle_controller.rb
|
252
|
+
lib/sproutcore/merb/router.rb
|
253
|
+
lib/sproutcore/version.rb
|
254
|
+
lib/sproutcore/view_helpers.rb
|
255
|
+
lib/sproutcore/view_helpers/button_views.rb
|
256
|
+
lib/sproutcore/view_helpers/core_views.rb
|
257
|
+
lib/sproutcore/view_helpers/form_views.rb
|
258
|
+
lib/sproutcore/view_helpers/menu_views.rb
|
259
|
+
script/destroy
|
260
|
+
script/generate
|
261
|
+
script/txt2html
|
262
|
+
setup.rb
|
263
|
+
spec/spec.opts
|
264
|
+
spec/spec_helper.rb
|
265
|
+
spec/sproutcore_spec.rb
|
266
|
+
tasks/deployment.rake
|
267
|
+
tasks/environment.rake
|
268
|
+
tasks/rspec.rake
|
269
|
+
tasks/website.rake
|
data/README.txt
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
SproutCore JavaScript Framework
|
2
|
+
|
3
|
+
SproutCore is a full MVC framework written in JavaScript for building desktop-like applications on the web. It makes building sophisticated applications for the web easier and more fun.
|
4
|
+
|
5
|
+
This package includes both the raw SproutCore source as well as a complete build system for creating JavaScript applications and JavaScript libraries.
|
6
|
+
|
7
|
+
==== Benefits
|
8
|
+
|
9
|
+
SproutCore comes loaded with a lot of features you would normally find in a full MVC desktop framework including:
|
10
|
+
|
11
|
+
2. "Bindings" that can automatically relay changes in a property from your model objects to your views.
|
12
|
+
|
13
|
+
2. A simple in-memory database for storing your models.
|
14
|
+
|
15
|
+
4. Buttons, labels, and other controls that can automatically enable, disable, change state and otherwise update themselves as your application state changes.
|
16
|
+
|
17
|
+
5. Efficient controls for rendering lists of items.
|
18
|
+
|
19
|
+
6. Efficient page loading optimized for handling large numbers of JavaScript controls.
|
20
|
+
|
21
|
+
==== Quick Start
|
22
|
+
|
23
|
+
1. To install the SproutCore build tools, just install the ruby gem:
|
24
|
+
|
25
|
+
sudo gem install sproutcore
|
26
|
+
|
27
|
+
2. Then create your first application:
|
28
|
+
|
29
|
+
sproutcore addressbook
|
30
|
+
|
31
|
+
You can now start editing your app in my_app/clients. Each directory here is a single "page" that loads in your web browser. You will find directories already setup for your models, views, controllers, as well as HTML, images, and other resources.
|
32
|
+
|
33
|
+
3. To see your new app, just start the sproutcore server:
|
34
|
+
|
35
|
+
cd addressbook
|
36
|
+
sc-server
|
37
|
+
|
38
|
+
Now visit: http://localhost:4020/addressbook
|
39
|
+
|
40
|
+
4. To add a new model, controller, or view use the generators:
|
41
|
+
|
42
|
+
cd addressbook
|
43
|
+
sc-gen model addressbook/contact
|
44
|
+
|
45
|
+
Now you can edit the model in clients/addressbook/models/contact.js.
|
46
|
+
|
47
|
+
5. When you are ready to deploy your app, do a static build:
|
48
|
+
|
49
|
+
cd addressbook
|
50
|
+
sc-build
|
51
|
+
|
52
|
+
Copy the files created in tmp/build to your web server and you should be ready to go. Built SproutCore applications are static HTML files; you do not need any kind of web application server to host them. (Of course, if you want to provide any data via Ajax, you will need a web application server for that.)
|
53
|
+
|
54
|
+
==== Documentation and Unit Testing
|
55
|
+
|
56
|
+
To get the documentation for SproutCore, you can simply visit:
|
57
|
+
|
58
|
+
http://localhost:4020/sproutcore/-docs
|
59
|
+
|
60
|
+
You can do the same with your own clients to generate documentation for them as well.
|
61
|
+
|
62
|
+
To run unit tests for your client, just visit:
|
63
|
+
|
64
|
+
http://localhost:4020/addressbook/-tests
|
65
|
+
|
66
|
+
Unit tests are automatically created whenever you generate a new view, controller, or model object. They are automatically excluded from your build whenever you build for production.
|
67
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
class SproutcoreGenerator < RubiGen::Base
|
2
|
+
|
3
|
+
DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
|
4
|
+
Config::CONFIG['ruby_install_name'])
|
5
|
+
|
6
|
+
default_options :author => nil
|
7
|
+
|
8
|
+
attr_reader :name
|
9
|
+
|
10
|
+
def initialize(runtime_args, runtime_options = {})
|
11
|
+
super
|
12
|
+
usage if args.empty?
|
13
|
+
@destination_root = File.expand_path(args.shift)
|
14
|
+
@name = base_name
|
15
|
+
extract_options
|
16
|
+
end
|
17
|
+
|
18
|
+
def manifest
|
19
|
+
record do |m|
|
20
|
+
# Ensure appropriate folder(s) exists
|
21
|
+
m.directory ''
|
22
|
+
BASEDIRS.each { |path| m.directory path }
|
23
|
+
|
24
|
+
# Create stubs
|
25
|
+
m.template_copy_each %w(README environment.yml)
|
26
|
+
m.dependency "install_rubigen_scripts", [destination_root, 'sproutcore'],
|
27
|
+
:shebang => options[:shebang], :collision => :force
|
28
|
+
|
29
|
+
# Create initial client
|
30
|
+
m.dependency "client", [destination_root, @name],
|
31
|
+
:shebang => options[:shebang], :collision => :force
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
protected
|
37
|
+
def banner
|
38
|
+
<<-EOS
|
39
|
+
Creates a new SproutCore application for use with the BlueRibbon toolset
|
40
|
+
|
41
|
+
USAGE: #{spec.name} name
|
42
|
+
EOS
|
43
|
+
end
|
44
|
+
|
45
|
+
def add_options!(opts)
|
46
|
+
opts.separator ''
|
47
|
+
opts.separator 'Options:'
|
48
|
+
# For each option below, place the default
|
49
|
+
# at the top of the file next to "default_options"
|
50
|
+
# opts.on("-a", "--author=\"Your Name\"", String,
|
51
|
+
# "Some comment about this option",
|
52
|
+
# "Default: none") { |options[:author]| }
|
53
|
+
opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
|
54
|
+
end
|
55
|
+
|
56
|
+
def extract_options
|
57
|
+
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
58
|
+
# Templates can access these value via the attr_reader-generated methods, but not the
|
59
|
+
# raw instance variable value.
|
60
|
+
# @author = options[:author]
|
61
|
+
end
|
62
|
+
|
63
|
+
# Installation skeleton. Intermediate directories are automatically
|
64
|
+
# created so don't sweat their absence here.
|
65
|
+
BASEDIRS = %w(clients frameworks lib public log)
|
66
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
== Welcome to SproutCore Builder
|
2
|
+
|
3
|
+
This is an application package for building a SproutCore application. To get
|
4
|
+
started, edit your JavaScript application in the clients directory (we've
|
5
|
+
already created one for you.)
|
6
|
+
|
7
|
+
Then, start the SproutCore Dev Server by running from this directory:
|
8
|
+
|
9
|
+
sc_server
|
10
|
+
|
11
|
+
This takes all the same arguments as mongrel. You can now visit your app
|
12
|
+
by going to:
|
13
|
+
|
14
|
+
http://localhost:3000/<%= base_name %>
|
15
|
+
|
16
|
+
== What Goes Where
|
17
|
+
|
18
|
+
Here is a brief description of the various parts of the SproutCore app:
|
19
|
+
|
20
|
+
* *clients:* Each folder in the clients directory contains a single-page
|
21
|
+
application you can load in your web browser. By default the URL to reach
|
22
|
+
each application is the /directory-name. You will do most of your editing
|
23
|
+
here.
|
24
|
+
|
25
|
+
* *frameworks:* Each folder in the frameworks directory is a SproutCore
|
26
|
+
library that your client applications can use. No HTML will be generated
|
27
|
+
for these frameworks, but any JavaScript, CSS or other images you place
|
28
|
+
in here will be accessible through your web browser.
|
29
|
+
|
30
|
+
* *public:* This directory contains any other static resources your other
|
31
|
+
apps needs to be able to use. If you have static HTML or other basic
|
32
|
+
files you want to have access to. If you start your server in production
|
33
|
+
mode, cached output will also be saved into this directory.
|
34
|
+
|
35
|
+
* *lib:* Any ruby files you place in this directory will be automatically
|
36
|
+
loaded when the sproutcore server start or when you do a static build.
|
37
|
+
If you write any custom view helpers, you can place them here.
|
38
|
+
|
39
|
+
* *setup.yaml:* This is a config file that you can use to set various load
|
40
|
+
options for the clients and frameworks in your app. The default options are
|
41
|
+
specified in the default: group. You can override the default for specific
|
42
|
+
frameworks or clients by naming them.
|
43
|
+
|
44
|
+
== Using Frameworks
|
45
|
+
|
46
|
+
Frameworks are automatically automatically available in your app. You can
|
47
|
+
also name frameworks available anywhere in your load path (including those
|
48
|
+
installed in gems).
|
49
|
+
|
50
|
+
The SproutCore gem comes with the latest versions of prototype, sproutcore,
|
51
|
+
and sproutapp frameworks installed. All you need to do is indicate that
|
52
|
+
you require them.
|
53
|
+
|
54
|
+
== Deploying your SproutCore App
|
55
|
+
|
56
|
+
Normally you will use the sc_server to host your application while you are
|
57
|
+
developing your code. Once you are ready to deploy, however, there are two
|
58
|
+
ways you can do it:
|
59
|
+
|
60
|
+
==== 1. Use sc_server in production.
|
61
|
+
|
62
|
+
The SproutCore server can be run in a production mode that will simply generate and cache web-optimized versions of all of your resources upon request. For a low-traffic or newer site, this approach is an easy way to get your code into production. You just replace your directory with your latest files and the sc_server will start serving the new resources.
|
63
|
+
|
64
|
+
==== 2. Do a static build
|
65
|
+
|
66
|
+
In general, however, loading all of your resources through a Ruby-app is not the best, especially when you could use a high-speed server such as lighttpd that is optimized for serving static content.
|
67
|
+
|
68
|
+
If you want real speed, do a static build of your content and serve it through
|
69
|
+
lighttpd or apache. Do the static build, just run:
|
70
|
+
|
71
|
+
sc_build all
|
72
|
+
|
73
|
+
This will place a directory in tmp/build that contains all of your resources
|
74
|
+
pre-compiled and ready for static serving.
|
75
|
+
|
76
|
+
|
77
|
+
|
data/bin/sc-build
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# BUILD SPROUTCORE APPLICATIONS
|
4
|
+
# This script will build SproutCore applications for you. Usage:
|
5
|
+
#
|
6
|
+
# sc-build build all clients
|
7
|
+
# sc-build bundle-name build just the named bundle
|
8
|
+
# sc-build -l library_root path to the library you want to load bundles from
|
9
|
+
# sc-build -t build_root set optional build root
|
10
|
+
# sc-build -e development|production defaults to production
|
11
|
+
# sc-build bundle-name -r builds bundle and dependent bundles but none others
|
12
|
+
|
13
|
+
APP_ROOT = File.expand_path(Dir.pwd)
|
14
|
+
SC_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
15
|
+
$:.unshift File.join(SC_ROOT,'lib') ;
|
16
|
+
|
17
|
+
# Require SproutCore
|
18
|
+
require 'rubygems'
|
19
|
+
require 'rubigen'
|
20
|
+
require 'sproutcore'
|
21
|
+
require 'optparse'
|
22
|
+
|
23
|
+
############################################################
|
24
|
+
## Define Helper Methods
|
25
|
+
##
|
26
|
+
|
27
|
+
def not_found(bundle_name)
|
28
|
+
SC.logger.fatal("Could not find a bundle named: #{bundle_name}")
|
29
|
+
exit(1)
|
30
|
+
end
|
31
|
+
|
32
|
+
############################################################
|
33
|
+
## Process Options
|
34
|
+
##
|
35
|
+
|
36
|
+
# Setup defaults
|
37
|
+
build_mode = :production
|
38
|
+
build_root = File.join(APP_ROOT,'tmp','build')
|
39
|
+
bundle_name = ARGV.shift if (ARGV.size > 0 && ARGV[0][0..0] != '-')
|
40
|
+
library_root = APP_ROOT
|
41
|
+
include_dependencies = false
|
42
|
+
verbose = false # show debug level
|
43
|
+
languages = nil
|
44
|
+
clean = false
|
45
|
+
|
46
|
+
opts = OptionParser.new do |opts|
|
47
|
+
opts.version = SproutCore::VERSION::STRING
|
48
|
+
|
49
|
+
opts.banner = "Usage: sc-build {bundle-name} {options}"
|
50
|
+
opts.define_head "Build Tool for SproutCore applications"
|
51
|
+
opts.separator '*'*80
|
52
|
+
opts.separator 'If no flags are given, sc-build will try to build all of the bundles in the current directory'
|
53
|
+
opts.separator '*'*80
|
54
|
+
|
55
|
+
opts.on("-e", "--enviroment=MODE", "Set the build mode for the system. Normally you want to build in production mode (which is the default if you do not include this option), but you can use this switch to build in development mode for testing.") do |opt_build_mode|
|
56
|
+
build_mode = opt_build_mode.to_s.downcase.to_sym
|
57
|
+
end
|
58
|
+
|
59
|
+
opts.on("-t", "--target=PATH", "Set the target path for your build. Normally this will be set to tmp/build in the working directory") do |opt_target|
|
60
|
+
build_root = File.expand_path(opt_target)
|
61
|
+
end
|
62
|
+
|
63
|
+
opts.on("-l", "--library=PATH", "The library root you want to use. Normally sc-build will use the working directory. If you want to point to another project on disk to build from, use this option.") do |opt_library|
|
64
|
+
library_root = File.expand_path(opt_library)
|
65
|
+
end
|
66
|
+
|
67
|
+
opts.on("-r", "--[no-]include-required", "If passed when building a single client, then the build tool will also find any required bundles and build them as well.") do |opt_req|
|
68
|
+
include_dependencies = !!opt_req
|
69
|
+
end
|
70
|
+
|
71
|
+
opts.on("-v", "--[no-]verbose", "If set, extra debug output will be displayed during the build") do |opt_verbose|
|
72
|
+
verbose = !!opt_verbose
|
73
|
+
end
|
74
|
+
|
75
|
+
opts.on("-L", "--languages=LANGUAGE", "Pass a comma separated list of the specific languages you want to build. If you do not pass this option, the build tool will build all languages required by the bundles to function") do |opt_lang|
|
76
|
+
languages = opt_lang.split(',').map { |x| x.to_sym }
|
77
|
+
end
|
78
|
+
|
79
|
+
opts.on("-c", "--[no-]clean", "If set, then the build tool will delete a bundle's output before it builds it, so you get a clean build") do |opt_clean|
|
80
|
+
clean = !!opt_clean
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
opts.parse!
|
85
|
+
|
86
|
+
############################################################
|
87
|
+
## SETUP ENVIRONMENT
|
88
|
+
##
|
89
|
+
|
90
|
+
# Configure logger
|
91
|
+
SC.logger.level = (verbose) ? Logger::DEBUG : Logger::INFO
|
92
|
+
SC.logger.progname = $0
|
93
|
+
|
94
|
+
# Load Library
|
95
|
+
library = SC.library_for(library_root, :public_root => build_root, :url_prefix => '', :build_mode => build_mode)
|
96
|
+
|
97
|
+
############################################################
|
98
|
+
## FIND BUNDLES TO BUILD
|
99
|
+
##
|
100
|
+
|
101
|
+
# Find the bundles to build.
|
102
|
+
if bundle_name
|
103
|
+
# Get bundle
|
104
|
+
bundle = library.bundle_for(bundle_name.to_sym)
|
105
|
+
not_found(bundle) if bundle.nil?
|
106
|
+
|
107
|
+
# If dependencies are required, get those bundles as well
|
108
|
+
if include_dependencies
|
109
|
+
bundles = bundle.all_required_bundles
|
110
|
+
else
|
111
|
+
bundles = [bundle]
|
112
|
+
end
|
113
|
+
|
114
|
+
SC.logger.info("Building: #{bundles.map { |x| x.bundle_name } * ', ' }...")
|
115
|
+
|
116
|
+
# No bundle provided, get all bundles for library
|
117
|
+
else
|
118
|
+
bundles = library.bundles
|
119
|
+
SC.logger.info("Building ALL bundles:\n #{bundles.map { |x| x.bundle_name } * ', '}...")
|
120
|
+
end
|
121
|
+
|
122
|
+
############################################################
|
123
|
+
## BUILD EACH BUNDLE
|
124
|
+
##
|
125
|
+
|
126
|
+
# Detect required languages to build
|
127
|
+
languages = bundles.map { |b| b.installed_languages }.flatten.uniq if languages.nil?
|
128
|
+
SC.logger.info("Selected Languages: #{languages.join(', ')}")
|
129
|
+
|
130
|
+
SC.logger.info('')
|
131
|
+
bundles.each do |bundle|
|
132
|
+
SC.logger.info("Building #{bundle.bundle_name} > #{bundle.build_root}...")
|
133
|
+
|
134
|
+
if clean
|
135
|
+
SC.logger.debug("~ Cleaning #{bundle.build_root}")
|
136
|
+
FileUtils.rm_rf(bundle.build_root)
|
137
|
+
end
|
138
|
+
|
139
|
+
bundle.build(*languages)
|
140
|
+
end
|
141
|
+
|
142
|
+
SC.logger.debug("")
|
143
|
+
|
144
|
+
|
145
|
+
|