sproutcore 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (270) hide show
  1. data/History.txt +4 -0
  2. data/License.txt +20 -0
  3. data/Manifest.txt +269 -0
  4. data/README.txt +67 -0
  5. data/Rakefile +4 -0
  6. data/app_generators/sproutcore/USAGE +5 -0
  7. data/app_generators/sproutcore/sproutcore_generator.rb +66 -0
  8. data/app_generators/sproutcore/templates/README +77 -0
  9. data/app_generators/sproutcore/templates/environment.yml +4 -0
  10. data/bin/sc-build +145 -0
  11. data/bin/sc-gen +24 -0
  12. data/bin/sc-server +63 -0
  13. data/bin/sproutcore +21 -0
  14. data/clients/sc_docs/controllers/docs.js +118 -0
  15. data/clients/sc_docs/core.js +19 -0
  16. data/clients/sc_docs/english.lproj/body.css +159 -0
  17. data/clients/sc_docs/english.lproj/body.rhtml +33 -0
  18. data/clients/sc_docs/english.lproj/controls.css +0 -0
  19. data/clients/sc_docs/english.lproj/icons/small/next.png +0 -0
  20. data/clients/sc_docs/english.lproj/icons/small/reset.png +0 -0
  21. data/clients/sc_docs/english.lproj/images/gradients.png +0 -0
  22. data/clients/sc_docs/english.lproj/images/indicator.gif +0 -0
  23. data/clients/sc_docs/english.lproj/images/toolbar.png +0 -0
  24. data/clients/sc_docs/english.lproj/no_docs.rhtml +7 -0
  25. data/clients/sc_docs/english.lproj/strings.js +14 -0
  26. data/clients/sc_docs/english.lproj/warning.rhtml +6 -0
  27. data/clients/sc_docs/fixtures/doc.js +11 -0
  28. data/clients/sc_docs/main.js +21 -0
  29. data/clients/sc_docs/models/doc.js +9 -0
  30. data/clients/sc_docs/tests/controllers/docs.rhtml +21 -0
  31. data/clients/sc_docs/tests/models/doc.rhtml +21 -0
  32. data/clients/sc_docs/tests/views/doc_frame.rhtml +21 -0
  33. data/clients/sc_docs/tests/views/doc_label_view.rhtml +21 -0
  34. data/clients/sc_docs/views/doc_frame.js +33 -0
  35. data/clients/sc_docs/views/doc_label.js +20 -0
  36. data/clients/sc_test_runner/controllers/runner.js +175 -0
  37. data/clients/sc_test_runner/core.js +19 -0
  38. data/clients/sc_test_runner/english.lproj/body.css +151 -0
  39. data/clients/sc_test_runner/english.lproj/body.rhtml +35 -0
  40. data/clients/sc_test_runner/english.lproj/controls.css +0 -0
  41. data/clients/sc_test_runner/english.lproj/icons/small/next.png +0 -0
  42. data/clients/sc_test_runner/english.lproj/icons/small/reset.png +0 -0
  43. data/clients/sc_test_runner/english.lproj/images/gradients.png +0 -0
  44. data/clients/sc_test_runner/english.lproj/images/indicator.gif +0 -0
  45. data/clients/sc_test_runner/english.lproj/images/toolbar.png +0 -0
  46. data/clients/sc_test_runner/english.lproj/no_tests.rhtml +6 -0
  47. data/clients/sc_test_runner/english.lproj/strings.js +14 -0
  48. data/clients/sc_test_runner/english.lproj/warning.rhtml +6 -0
  49. data/clients/sc_test_runner/fixtures/test.js +12 -0
  50. data/clients/sc_test_runner/main.js +26 -0
  51. data/clients/sc_test_runner/models/test.js +11 -0
  52. data/clients/sc_test_runner/views/runner_frame.js +72 -0
  53. data/clients/sc_test_runner/views/test_label.js +20 -0
  54. data/config/hoe.rb +70 -0
  55. data/config/requirements.rb +17 -0
  56. data/environment.yml +9 -0
  57. data/frameworks/prototype/prototype.js +4186 -0
  58. data/frameworks/sproutcore/Core.js +378 -0
  59. data/frameworks/sproutcore/README +3 -0
  60. data/frameworks/sproutcore/controllers/array.js +236 -0
  61. data/frameworks/sproutcore/controllers/collection.js +305 -0
  62. data/frameworks/sproutcore/controllers/controller.js +323 -0
  63. data/frameworks/sproutcore/controllers/object.js +372 -0
  64. data/frameworks/sproutcore/drag/drag.js +549 -0
  65. data/frameworks/sproutcore/drag/drag_data_source.js +32 -0
  66. data/frameworks/sproutcore/drag/drag_source.js +64 -0
  67. data/frameworks/sproutcore/drag/drop_target.js +153 -0
  68. data/frameworks/sproutcore/english.lproj/blank.gif +0 -0
  69. data/frameworks/sproutcore/english.lproj/buttons.css +589 -0
  70. data/frameworks/sproutcore/english.lproj/buttons.png +0 -0
  71. data/frameworks/sproutcore/english.lproj/inline_text_editor.css +21 -0
  72. data/frameworks/sproutcore/english.lproj/menu.css +121 -0
  73. data/frameworks/sproutcore/english.lproj/panels/background-fat.jpg +0 -0
  74. data/frameworks/sproutcore/english.lproj/panels/background-thin.jpg +0 -0
  75. data/frameworks/sproutcore/english.lproj/panels/bottom-edge.png +0 -0
  76. data/frameworks/sproutcore/english.lproj/panels/bottom-left-corner.png +0 -0
  77. data/frameworks/sproutcore/english.lproj/panels/bottom-right-corner.png +0 -0
  78. data/frameworks/sproutcore/english.lproj/panels/left-edge.png +0 -0
  79. data/frameworks/sproutcore/english.lproj/panels/overlay.png +0 -0
  80. data/frameworks/sproutcore/english.lproj/panels/right-edge.png +0 -0
  81. data/frameworks/sproutcore/english.lproj/panels/top-edge.png +0 -0
  82. data/frameworks/sproutcore/english.lproj/panels/top-left-corner.png +0 -0
  83. data/frameworks/sproutcore/english.lproj/panels/top-right-corner.png +0 -0
  84. data/frameworks/sproutcore/english.lproj/panes.css +155 -0
  85. data/frameworks/sproutcore/english.lproj/picker.css +22 -0
  86. data/frameworks/sproutcore/english.lproj/strings.js +15 -0
  87. data/frameworks/sproutcore/english.lproj/tab.css +23 -0
  88. data/frameworks/sproutcore/english.lproj/tests.css +67 -0
  89. data/frameworks/sproutcore/english.lproj/theme.css +77 -0
  90. data/frameworks/sproutcore/foundation/animator.js +670 -0
  91. data/frameworks/sproutcore/foundation/application.js +199 -0
  92. data/frameworks/sproutcore/foundation/array.js +348 -0
  93. data/frameworks/sproutcore/foundation/benchmark.js +211 -0
  94. data/frameworks/sproutcore/foundation/binding.js +384 -0
  95. data/frameworks/sproutcore/foundation/date.js +357 -0
  96. data/frameworks/sproutcore/foundation/error.js +39 -0
  97. data/frameworks/sproutcore/foundation/input_manager.js +153 -0
  98. data/frameworks/sproutcore/foundation/json.js +296 -0
  99. data/frameworks/sproutcore/foundation/mock.js +42 -0
  100. data/frameworks/sproutcore/foundation/node_descriptor.js +56 -0
  101. data/frameworks/sproutcore/foundation/object.js +777 -0
  102. data/frameworks/sproutcore/foundation/observable.js +451 -0
  103. data/frameworks/sproutcore/foundation/page.js +63 -0
  104. data/frameworks/sproutcore/foundation/path_module.js +413 -0
  105. data/frameworks/sproutcore/foundation/responder.js +310 -0
  106. data/frameworks/sproutcore/foundation/routes.js +371 -0
  107. data/frameworks/sproutcore/foundation/run_loop.js +21 -0
  108. data/frameworks/sproutcore/foundation/server.js +491 -0
  109. data/frameworks/sproutcore/foundation/set.js +96 -0
  110. data/frameworks/sproutcore/foundation/string.js +149 -0
  111. data/frameworks/sproutcore/foundation/undo_manager.js +186 -0
  112. data/frameworks/sproutcore/foundation/unittest.js +622 -0
  113. data/frameworks/sproutcore/foundation/utils.js +61 -0
  114. data/frameworks/sproutcore/globals/panels.js +182 -0
  115. data/frameworks/sproutcore/globals/popups.js +60 -0
  116. data/frameworks/sproutcore/globals/window.js +381 -0
  117. data/frameworks/sproutcore/lib/index.rhtml +66 -0
  118. data/frameworks/sproutcore/models/collection.js +395 -0
  119. data/frameworks/sproutcore/models/record.js +622 -0
  120. data/frameworks/sproutcore/models/store.js +295 -0
  121. data/frameworks/sproutcore/panes/dialog.js +16 -0
  122. data/frameworks/sproutcore/panes/manager.js +164 -0
  123. data/frameworks/sproutcore/panes/menu.js +45 -0
  124. data/frameworks/sproutcore/panes/overlay.js +231 -0
  125. data/frameworks/sproutcore/panes/pane.js +90 -0
  126. data/frameworks/sproutcore/panes/panel.js +19 -0
  127. data/frameworks/sproutcore/panes/picker.js +45 -0
  128. data/frameworks/sproutcore/tests/controllers/array.rhtml +86 -0
  129. data/frameworks/sproutcore/tests/controllers/controller.rhtml +273 -0
  130. data/frameworks/sproutcore/tests/controllers/object.rhtml +327 -0
  131. data/frameworks/sproutcore/tests/foundation/application.rhtml +125 -0
  132. data/frameworks/sproutcore/tests/foundation/array.rhtml +221 -0
  133. data/frameworks/sproutcore/tests/foundation/object.rhtml +69 -0
  134. data/frameworks/sproutcore/tests/globals/window.rhtml +45 -0
  135. data/frameworks/sproutcore/tests/panes/pane.rhtml +88 -0
  136. data/frameworks/sproutcore/tests/views/collection.rhtml +137 -0
  137. data/frameworks/sproutcore/tests/views/popup_button.rhtml +115 -0
  138. data/frameworks/sproutcore/tests/views/text_field.rhtml +37 -0
  139. data/frameworks/sproutcore/validators/credit_card.js +92 -0
  140. data/frameworks/sproutcore/validators/date.js +36 -0
  141. data/frameworks/sproutcore/validators/email.js +29 -0
  142. data/frameworks/sproutcore/validators/not_empty.js +24 -0
  143. data/frameworks/sproutcore/validators/number.js +55 -0
  144. data/frameworks/sproutcore/validators/password.js +78 -0
  145. data/frameworks/sproutcore/validators/validator.js +304 -0
  146. data/frameworks/sproutcore/views/button.js +425 -0
  147. data/frameworks/sproutcore/views/checkbox_field.js +30 -0
  148. data/frameworks/sproutcore/views/collection.js +1521 -0
  149. data/frameworks/sproutcore/views/container.js +62 -0
  150. data/frameworks/sproutcore/views/error_explanation.js +45 -0
  151. data/frameworks/sproutcore/views/field.js +214 -0
  152. data/frameworks/sproutcore/views/filter_button.js +29 -0
  153. data/frameworks/sproutcore/views/form.js +591 -0
  154. data/frameworks/sproutcore/views/image.js +141 -0
  155. data/frameworks/sproutcore/views/inline_text_editor.js +96 -0
  156. data/frameworks/sproutcore/views/label.js +176 -0
  157. data/frameworks/sproutcore/views/menu_item.js +90 -0
  158. data/frameworks/sproutcore/views/pagination.js +54 -0
  159. data/frameworks/sproutcore/views/popup_button.js +86 -0
  160. data/frameworks/sproutcore/views/popup_menu.js +137 -0
  161. data/frameworks/sproutcore/views/progress.js +100 -0
  162. data/frameworks/sproutcore/views/radio_field.js +107 -0
  163. data/frameworks/sproutcore/views/radio_group.js +48 -0
  164. data/frameworks/sproutcore/views/segmented.js +80 -0
  165. data/frameworks/sproutcore/views/select_field.js +272 -0
  166. data/frameworks/sproutcore/views/spinner.js +11 -0
  167. data/frameworks/sproutcore/views/tab.js +126 -0
  168. data/frameworks/sproutcore/views/text_field.js +179 -0
  169. data/frameworks/sproutcore/views/textarea_field.js +14 -0
  170. data/frameworks/sproutcore/views/toolbar.js +29 -0
  171. data/frameworks/sproutcore/views/view.js +1389 -0
  172. data/frameworks/sproutcore/views/workspace.js +170 -0
  173. data/generators/client/README +3 -0
  174. data/generators/client/USAGE +12 -0
  175. data/generators/client/client_generator.rb +53 -0
  176. data/generators/client/templates/core.js +19 -0
  177. data/generators/client/templates/english.lproj/body.css +0 -0
  178. data/generators/client/templates/english.lproj/body.rhtml +3 -0
  179. data/generators/client/templates/english.lproj/controls.css +0 -0
  180. data/generators/client/templates/english.lproj/strings.js +14 -0
  181. data/generators/client/templates/main.js +37 -0
  182. data/generators/controller/USAGE +16 -0
  183. data/generators/controller/controller_generator.rb +51 -0
  184. data/generators/controller/templates/controller.js +21 -0
  185. data/generators/controller/templates/test.rhtml +21 -0
  186. data/generators/framework/README +7 -0
  187. data/generators/framework/USAGE +12 -0
  188. data/generators/framework/framework_generator.rb +53 -0
  189. data/generators/framework/templates/core.js +20 -0
  190. data/generators/framework/templates/english.lproj/body.css +0 -0
  191. data/generators/framework/templates/english.lproj/body.rhtml +3 -0
  192. data/generators/framework/templates/english.lproj/controls.css +0 -0
  193. data/generators/framework/templates/english.lproj/strings.js +14 -0
  194. data/generators/language/USAGE +16 -0
  195. data/generators/language/language_generator.rb +47 -0
  196. data/generators/language/templates/strings.js +10 -0
  197. data/generators/model/USAGE +24 -0
  198. data/generators/model/model_generator.rb +55 -0
  199. data/generators/model/templates/fixture.js +11 -0
  200. data/generators/model/templates/model.js +20 -0
  201. data/generators/model/templates/test.rhtml +21 -0
  202. data/generators/test/USAGE +16 -0
  203. data/generators/test/templates/test.rhtml +21 -0
  204. data/generators/test/test_generator.rb +47 -0
  205. data/generators/view/USAGE +16 -0
  206. data/generators/view/templates/test.rhtml +21 -0
  207. data/generators/view/templates/view.js +20 -0
  208. data/generators/view/view_generator.rb +51 -0
  209. data/jsdoc/README.txt +119 -0
  210. data/jsdoc/app/DocFile.js +137 -0
  211. data/jsdoc/app/DocTag.js +110 -0
  212. data/jsdoc/app/Doclet.js +63 -0
  213. data/jsdoc/app/Dumper.js +143 -0
  214. data/jsdoc/app/JsDoc.js +103 -0
  215. data/jsdoc/app/JsHilite.js +45 -0
  216. data/jsdoc/app/JsIO.js +163 -0
  217. data/jsdoc/app/JsParse.js +385 -0
  218. data/jsdoc/app/JsPlate.js +130 -0
  219. data/jsdoc/app/JsTestrun.js +129 -0
  220. data/jsdoc/app/JsToke.js +564 -0
  221. data/jsdoc/app/Symbol.js +298 -0
  222. data/jsdoc/app/Transformer.js +14 -0
  223. data/jsdoc/app/Util.js +97 -0
  224. data/jsdoc/app/js.jar +0 -0
  225. data/jsdoc/app/run.js +144 -0
  226. data/jsdoc/plugins/min.js +316 -0
  227. data/jsdoc/plugins/strip.js +20 -0
  228. data/jsdoc/templates/sproutcore/class.tmpl +438 -0
  229. data/jsdoc/templates/sproutcore/default.css +241 -0
  230. data/jsdoc/templates/sproutcore/index.html +13 -0
  231. data/jsdoc/templates/sproutcore/index.tmpl +21 -0
  232. data/jsdoc/templates/sproutcore/prototype.js +4186 -0
  233. data/jsdoc/templates/sproutcore/publish.js +236 -0
  234. data/jsdoc/templates/sproutcore/splash.html +7 -0
  235. data/lib/sproutcore/build_tools/html_builder.rb +88 -0
  236. data/lib/sproutcore/build_tools/resource_builder.rb +194 -0
  237. data/lib/sproutcore/build_tools.rb +44 -0
  238. data/lib/sproutcore/bundle.rb +517 -0
  239. data/lib/sproutcore/bundle_manifest.rb +397 -0
  240. data/lib/sproutcore/generator_helper.rb +170 -0
  241. data/lib/sproutcore/helpers/capture_helper.rb +42 -0
  242. data/lib/sproutcore/helpers/static_helper.rb +80 -0
  243. data/lib/sproutcore/helpers/tag_helper.rb +110 -0
  244. data/lib/sproutcore/helpers/text_helper.rb +336 -0
  245. data/lib/sproutcore/helpers.rb +3 -0
  246. data/lib/sproutcore/jsdoc.rb +40 -0
  247. data/lib/sproutcore/jsmin.rb +247 -0
  248. data/lib/sproutcore/library.rb +258 -0
  249. data/lib/sproutcore/merb/bundle_controller.rb +179 -0
  250. data/lib/sproutcore/merb/router.rb +43 -0
  251. data/lib/sproutcore/merb.rb +27 -0
  252. data/lib/sproutcore/version.rb +9 -0
  253. data/lib/sproutcore/view_helpers/button_views.rb +302 -0
  254. data/lib/sproutcore/view_helpers/core_views.rb +284 -0
  255. data/lib/sproutcore/view_helpers/form_views.rb +258 -0
  256. data/lib/sproutcore/view_helpers/menu_views.rb +94 -0
  257. data/lib/sproutcore/view_helpers.rb +628 -0
  258. data/lib/sproutcore.rb +30 -0
  259. data/script/destroy +14 -0
  260. data/script/generate +14 -0
  261. data/script/txt2html +74 -0
  262. data/setup.rb +1585 -0
  263. data/spec/spec.opts +1 -0
  264. data/spec/spec_helper.rb +7 -0
  265. data/spec/sproutcore_spec.rb +11 -0
  266. data/tasks/deployment.rake +34 -0
  267. data/tasks/environment.rake +7 -0
  268. data/tasks/rspec.rake +21 -0
  269. data/tasks/website.rake +17 -0
  270. metadata +365 -0
data/History.txt ADDED
@@ -0,0 +1,4 @@
1
+ == 0.9.0 2008-03-08
2
+
3
+ * 1 major enhancement:
4
+ * Initial release of the new BlueRibbon train build system
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,4 @@
1
+ require 'config/requirements'
2
+ require 'config/hoe' # setup Hoe + all gem configuration
3
+
4
+ Dir['tasks/**/*.rake'].each { |rake| load rake }
@@ -0,0 +1,5 @@
1
+ Description:
2
+
3
+
4
+ Usage:
5
+
@@ -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
+
@@ -0,0 +1,4 @@
1
+ all:
2
+ required: [sproutcore]
3
+ resources_at: static
4
+ index_at: ''
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
+