luca 0.9.76 → 0.9.89

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.
Files changed (457) hide show
  1. data/CHANGELOG +65 -2
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +18 -2
  4. data/Guardfile +3 -25
  5. data/README.md +50 -58
  6. data/ROADMAP +15 -32
  7. data/Rakefile +18 -77
  8. data/app.rb +12 -46
  9. data/{assets → app/assets}/images/glyphicons-halflings-white.png +0 -0
  10. data/{assets → app/assets}/images/glyphicons-halflings.png +0 -0
  11. data/app/assets/javascripts/luca-ui.js +1 -0
  12. data/app/assets/javascripts/luca/basic.coffee +8 -0
  13. data/{src → app/assets/javascripts/luca}/components/application.coffee +233 -65
  14. data/{src → app/assets/javascripts/luca}/components/collection_loader_view.coffee +0 -0
  15. data/app/assets/javascripts/luca/components/collection_view.coffee +207 -0
  16. data/{src → app/assets/javascripts/luca}/components/controller.coffee +27 -13
  17. data/{src/core/field.coffee → app/assets/javascripts/luca/components/fields/base.coffee} +18 -10
  18. data/{src → app/assets/javascripts/luca}/components/fields/button_field.coffee +8 -9
  19. data/{src → app/assets/javascripts/luca}/components/fields/checkbox_array.coffee +0 -0
  20. data/{src → app/assets/javascripts/luca}/components/fields/checkbox_field.coffee +0 -0
  21. data/{src → app/assets/javascripts/luca}/components/fields/file_upload_field.coffee +0 -0
  22. data/{src → app/assets/javascripts/luca}/components/fields/hidden_field.coffee +0 -0
  23. data/{src → app/assets/javascripts/luca}/components/fields/label_field.coffee +0 -0
  24. data/app/assets/javascripts/luca/components/fields/select_field.coffee +159 -0
  25. data/app/assets/javascripts/luca/components/fields/text_area_field.coffee +57 -0
  26. data/{src → app/assets/javascripts/luca}/components/fields/text_field.coffee +9 -3
  27. data/{src → app/assets/javascripts/luca}/components/fields/type_ahead_field.coffee +0 -0
  28. data/app/assets/javascripts/luca/components/form_view.coffee +421 -0
  29. data/app/assets/javascripts/luca/components/grid_layout_view.coffee +43 -0
  30. data/app/assets/javascripts/luca/components/index.coffee +7 -0
  31. data/app/assets/javascripts/luca/components/load_mask.coffee +8 -0
  32. data/{src → app/assets/javascripts/luca}/components/multi_collection_view.coffee +34 -34
  33. data/app/assets/javascripts/luca/components/nav_bar.coffee +80 -0
  34. data/app/assets/javascripts/luca/components/page.coffee +69 -0
  35. data/app/assets/javascripts/luca/components/page_controller.coffee +3 -0
  36. data/{src → app/assets/javascripts/luca}/components/pagination_control.coffee +13 -13
  37. data/{src → app/assets/javascripts/luca}/components/record_manager.coffee +0 -0
  38. data/{src → app/assets/javascripts/luca}/components/router.coffee +4 -1
  39. data/app/assets/javascripts/luca/components/simple_collection_view.coffee +10 -0
  40. data/app/assets/javascripts/luca/components/table_view.coffee +93 -0
  41. data/app/assets/javascripts/luca/components/table_view_scrollable.coffee +23 -0
  42. data/{src → app/assets/javascripts/luca}/concerns/application_event_bindings.coffee +1 -1
  43. data/app/assets/javascripts/luca/concerns/collection_event_bindings.coffee +47 -0
  44. data/{src → app/assets/javascripts/luca}/concerns/deferrable.coffee +1 -2
  45. data/app/assets/javascripts/luca/concerns/development_tool_helpers.coffee +30 -0
  46. data/{src → app/assets/javascripts/luca}/concerns/dom_helpers.coffee +10 -7
  47. data/{src → app/assets/javascripts/luca}/concerns/enhanced_properties.coffee +0 -0
  48. data/{src → app/assets/javascripts/luca}/concerns/filterable.coffee +39 -20
  49. data/app/assets/javascripts/luca/concerns/form_model_bindings.coffee +20 -0
  50. data/{src → app/assets/javascripts/luca}/concerns/grid_layout.coffee +0 -0
  51. data/{src → app/assets/javascripts/luca}/concerns/loadmaskable.coffee +17 -11
  52. data/{src → app/assets/javascripts/luca}/concerns/local_storage.coffee +0 -0
  53. data/app/assets/javascripts/luca/concerns/modal_view.coffee +63 -0
  54. data/{src → app/assets/javascripts/luca}/concerns/model_presenter.coffee +0 -0
  55. data/{src → app/assets/javascripts/luca}/concerns/paginatable.coffee +6 -20
  56. data/{src → app/assets/javascripts/luca}/concerns/query_collection_bindings.coffee +16 -8
  57. data/app/assets/javascripts/luca/concerns/sortable.coffee +69 -0
  58. data/app/assets/javascripts/luca/concerns/state_model.coffee +58 -0
  59. data/{src → app/assets/javascripts/luca}/concerns/templating.coffee +6 -1
  60. data/app/assets/javascripts/luca/config.coffee +54 -0
  61. data/{src → app/assets/javascripts/luca}/containers/card_view.coffee +23 -8
  62. data/{src/core → app/assets/javascripts/luca/containers}/container.coffee +228 -77
  63. data/app/assets/javascripts/luca/containers/index.coffee +2 -0
  64. data/{src → app/assets/javascripts/luca}/containers/modal_view.coffee +1 -1
  65. data/{src → app/assets/javascripts/luca}/containers/panel_toolbar.coffee +5 -6
  66. data/{src → app/assets/javascripts/luca}/containers/tab_view.coffee +19 -10
  67. data/{src → app/assets/javascripts/luca}/containers/viewport.coffee +11 -12
  68. data/{src → app/assets/javascripts/luca}/core/collection.coffee +37 -23
  69. data/{src/components → app/assets/javascripts/luca/core}/collection_view.coffee +21 -38
  70. data/{src/plugins → app/assets/javascripts/luca/core}/events.coffee +38 -6
  71. data/app/assets/javascripts/luca/core/index.coffee +12 -0
  72. data/{src → app/assets/javascripts/luca}/core/model.coffee +1 -1
  73. data/{src → app/assets/javascripts/luca}/core/observer.coffee +0 -0
  74. data/app/assets/javascripts/luca/core/panel.coffee +124 -0
  75. data/{src/define.coffee → app/assets/javascripts/luca/core/registry/component_definition.coffee} +59 -8
  76. data/{src → app/assets/javascripts/luca/core/registry}/concerns.coffee +0 -0
  77. data/app/assets/javascripts/luca/core/registry/index.coffee +4 -0
  78. data/{src/core → app/assets/javascripts/luca/core/registry}/meta_data.coffee +6 -0
  79. data/{src/core → app/assets/javascripts/luca/core/registry}/registry.coffee +20 -14
  80. data/app/assets/javascripts/luca/core/templates.coffee +51 -0
  81. data/app/assets/javascripts/luca/core/view.coffee +364 -0
  82. data/app/assets/javascripts/luca/dependencies.coffee +9 -0
  83. data/{src/tools → app/assets/javascripts/luca/development}/code_mirror_field.coffee +2 -1
  84. data/app/assets/javascripts/luca/development/code_sync_manager.coffee +126 -0
  85. data/app/assets/javascripts/luca/development/component.coffee +76 -0
  86. data/app/assets/javascripts/luca/development/components.coffee +57 -0
  87. data/{src/tools → app/assets/javascripts/luca/development}/console.coffee +6 -5
  88. data/app/assets/javascripts/luca/development/index.coffee +5 -0
  89. data/{src → app/assets/javascripts/luca}/framework.coffee +16 -99
  90. data/app/assets/javascripts/luca/index.coffee +8 -0
  91. data/{src → app/assets/javascripts/luca}/managers/collection_manager.coffee +12 -8
  92. data/app/assets/javascripts/luca/managers/index.coffee +2 -0
  93. data/app/assets/javascripts/luca/managers/socket_manager.coffee +89 -0
  94. data/{src → app/assets/javascripts/luca}/templates/components/bootstrap_form_controls.jst.ejs +0 -0
  95. data/{src → app/assets/javascripts/luca}/templates/components/collection_loader_view.jst.ejs +0 -0
  96. data/{src → app/assets/javascripts/luca}/templates/components/form_alert.jst.ejs +0 -0
  97. data/{src → app/assets/javascripts/luca}/templates/components/grid_view.jst.ejs +0 -0
  98. data/{src → app/assets/javascripts/luca}/templates/components/grid_view_empty_text.jst.ejs +0 -0
  99. data/{src → app/assets/javascripts/luca}/templates/components/load_mask.jst.ejs +0 -0
  100. data/app/assets/javascripts/luca/templates/components/nav_bar.jst.ejs +19 -0
  101. data/{src → app/assets/javascripts/luca}/templates/components/pagination.jst.ejs +0 -0
  102. data/{src/templates → app/assets/javascripts/luca/templates/components}/table_view.jst.ejs +0 -0
  103. data/{src → app/assets/javascripts/luca}/templates/containers/basic.jst.ejs +0 -0
  104. data/{src → app/assets/javascripts/luca}/templates/containers/tab_selector_container.jst.ejs +0 -0
  105. data/app/assets/javascripts/luca/templates/containers/tab_view.jst.ejs +2 -0
  106. data/{src → app/assets/javascripts/luca}/templates/containers/toolbar_wrapper.jst.ejs +0 -0
  107. data/{src → app/assets/javascripts/luca}/templates/fields/button_field.jst.ejs +0 -0
  108. data/{src → app/assets/javascripts/luca}/templates/fields/button_field_link.jst.ejs +0 -0
  109. data/{src → app/assets/javascripts/luca}/templates/fields/checkbox_array.jst.ejs +0 -0
  110. data/{src → app/assets/javascripts/luca}/templates/fields/checkbox_array_item.jst.ejs +0 -0
  111. data/{src → app/assets/javascripts/luca}/templates/fields/checkbox_field.jst.ejs +0 -0
  112. data/{src → app/assets/javascripts/luca}/templates/fields/file_upload_field.jst.ejs +0 -0
  113. data/{src → app/assets/javascripts/luca}/templates/fields/hidden_field.jst.ejs +0 -0
  114. data/{src → app/assets/javascripts/luca}/templates/fields/select_field.jst.ejs +0 -0
  115. data/{src → app/assets/javascripts/luca}/templates/fields/text_area_field.jst.ejs +0 -0
  116. data/{src → app/assets/javascripts/luca}/templates/fields/text_field.jst.ejs +0 -0
  117. data/app/assets/javascripts/luca/util/deprecations.coffee +18 -0
  118. data/app/assets/javascripts/luca/util/index.coffee +4 -0
  119. data/app/assets/javascripts/luca/util/keybindings.coffee +24 -0
  120. data/app/assets/javascripts/luca/util/logging.coffee +30 -0
  121. data/{src/util.coffee → app/assets/javascripts/luca/util/luca.coffee} +27 -4
  122. data/{src/core → app/assets/javascripts/luca/util}/script_loader.coffee +0 -0
  123. data/{src/stylesheets → app/assets/stylesheets/luca}/components/checkbox_array.scss +0 -0
  124. data/app/assets/stylesheets/luca/components/form_view.scss +7 -0
  125. data/{src/stylesheets → app/assets/stylesheets/luca}/components/grid_view.scss +0 -0
  126. data/{src/stylesheets → app/assets/stylesheets/luca}/components/load_mask.scss +0 -0
  127. data/{vendor/assets/luca-ui/components/grid_view.css → app/assets/stylesheets/luca/components/table_view.scss} +60 -51
  128. data/{src/stylesheets → app/assets/stylesheets/luca}/components/viewport.scss +0 -0
  129. data/app/assets/stylesheets/luca/containers/container.scss +19 -0
  130. data/{src/stylesheets → app/assets/stylesheets/luca}/containers/modal_view.scss +0 -0
  131. data/{src/stylesheets → app/assets/stylesheets/luca}/containers/panels.scss +0 -0
  132. data/{src/stylesheets → app/assets/stylesheets/luca}/containers/tab_view.scss +0 -0
  133. data/{src/stylesheets/tools → app/assets/stylesheets/luca/development}/console.scss +0 -0
  134. data/app/assets/stylesheets/luca/development/index.css +3 -0
  135. data/app/assets/stylesheets/luca/index.css +4 -0
  136. data/{src/stylesheets → app/assets/stylesheets/luca}/normalize.scss +0 -0
  137. data/config.ru +1 -2
  138. data/docs/framework.json +1 -0
  139. data/docs/{application.md → old/application.md} +0 -0
  140. data/docs/{collection.md → old/collection.md} +0 -0
  141. data/docs/{collection_manager.md → old/collection_manager.md} +0 -0
  142. data/docs/{container_philosophy.md → old/container_philosophy.md} +0 -0
  143. data/docs/{event_binding_helpers.md → old/event_binding_helpers.md} +0 -0
  144. data/docs/{method_caching_and_computed_properties.md → old/method_caching_and_computed_properties.md} +0 -0
  145. data/docs/{view.md → old/view.md} +0 -0
  146. data/lib/generators/luca/application/application_generator.rb +12 -8
  147. data/lib/generators/luca/application/templates/controller.rb +0 -2
  148. data/lib/generators/luca/application/templates/index.html.erb +12 -0
  149. data/lib/generators/luca/application/templates/index.html.haml +1 -0
  150. data/lib/generators/luca/application/templates/javascripts/application.coffee +18 -0
  151. data/lib/generators/luca/application/templates/javascripts/collection_manager.coffee +2 -0
  152. data/lib/generators/luca/application/templates/javascripts/config.coffee +3 -0
  153. data/lib/generators/luca/application/templates/javascripts/dependencies.coffee +3 -0
  154. data/lib/generators/luca/application/templates/javascripts/home.jst.ejs +2 -0
  155. data/lib/generators/luca/application/templates/javascripts/index.coffee +15 -0
  156. data/lib/generators/luca/application/templates/javascripts/router.coffee +4 -0
  157. data/lib/guard/luca.rb +84 -0
  158. data/lib/luca.rb +18 -1
  159. data/lib/luca/asset_compiler.rb +117 -0
  160. data/lib/luca/collection.rb +64 -0
  161. data/lib/luca/collection/endpoint.rb +37 -0
  162. data/lib/luca/collection/file_backend.rb +121 -0
  163. data/lib/luca/collection/redis_backend.rb +153 -0
  164. data/lib/luca/compiled_asset.rb +61 -0
  165. data/lib/luca/component_definition.rb +338 -0
  166. data/lib/luca/luca_application.rb +247 -0
  167. data/lib/luca/project.rb +73 -0
  168. data/lib/luca/project_harness.rb +96 -0
  169. data/lib/luca/rails.rb +5 -3
  170. data/lib/luca/rails/engine.rb +12 -0
  171. data/lib/luca/rails/version.rb +1 -2
  172. data/lib/luca/stylesheet.rb +36 -0
  173. data/lib/luca/template.rb +2 -0
  174. data/lib/luca/template_asset.rb +64 -0
  175. data/lib/railties/luca/tasks.rake +38 -0
  176. data/spec/{components → javascripts/components}/application_spec.coffee +0 -0
  177. data/spec/{components → javascripts/components}/collection_loader_view_spec.coffee +0 -0
  178. data/spec/{components → javascripts/components}/collection_view_spec.coffee +0 -0
  179. data/spec/{components → javascripts/components}/controller_spec.coffee +4 -0
  180. data/spec/{components → javascripts/components}/fields/checkbox_array_spec.coffee +0 -0
  181. data/spec/javascripts/components/form_view_spec.coffee +162 -0
  182. data/spec/{components → javascripts/components}/grid_view_spec.coffee +0 -0
  183. data/spec/{components → javascripts/components}/multi_collection_view_spec.coffee +0 -0
  184. data/spec/{components → javascripts/components}/pagination_control_spec.coffee +0 -0
  185. data/spec/{components → javascripts/components}/record_manager_spec.coffee +0 -0
  186. data/spec/{components → javascripts/components}/table_view_spec.coffee +0 -0
  187. data/spec/{components → javascripts/components}/template_spec.coffee +0 -0
  188. data/spec/javascripts/concerns/collection_event_bindings_spec.coffee +15 -0
  189. data/spec/{concerns → javascripts/concerns}/dom_helpers_spec.coffee +2 -2
  190. data/spec/{concerns → javascripts/concerns}/filterable_spec.coffee +4 -4
  191. data/spec/{concerns → javascripts/concerns}/model_presenter_spec.coffee +0 -0
  192. data/spec/{concerns → javascripts/concerns}/paginatable_spec.coffee +0 -0
  193. data/spec/javascripts/concerns/state_model_spec.coffee +55 -0
  194. data/spec/{containers → javascripts/containers}/card_view_spec.coffee +5 -0
  195. data/spec/{containers → javascripts/containers}/modal_view_spec.coffee +0 -0
  196. data/spec/{containers → javascripts/containers}/panel_view_spec.coffee +0 -0
  197. data/spec/{containers → javascripts/containers}/tab_view_spec.coffee +0 -0
  198. data/spec/{containers → javascripts/containers}/viewport_spec.coffee +0 -0
  199. data/spec/{core → javascripts/core}/collection_spec.coffee +25 -0
  200. data/spec/{concerns_spec.coffee → javascripts/core/concerns_spec.coffee} +0 -0
  201. data/spec/{core → javascripts/core}/container_spec.coffee +8 -6
  202. data/spec/{define_spec.coffee → javascripts/core/define_spec.coffee} +0 -0
  203. data/spec/javascripts/core/events_spec.coffee +26 -0
  204. data/spec/{core → javascripts/core}/field_spec.coffee +0 -0
  205. data/spec/{framework_spec.coffee → javascripts/core/framework_spec.coffee} +1 -1
  206. data/spec/{core → javascripts/core}/model_spec.coffee +0 -0
  207. data/spec/{core → javascripts/core}/observer_spec.coffee +0 -0
  208. data/spec/{util_spec.coffee → javascripts/core/util_spec.coffee} +2 -2
  209. data/spec/{core → javascripts/core}/view_spec.coffee +114 -38
  210. data/spec/javascripts/dependencies/index.coffee +3 -0
  211. data/{assets → spec}/javascripts/dependencies/jasmine-html.js +0 -0
  212. data/{assets → spec}/javascripts/dependencies/jasmine.js +0 -0
  213. data/{assets → spec}/javascripts/dependencies/sinon.js +0 -0
  214. data/spec/{helper.coffee → javascripts/helper.coffee} +0 -0
  215. data/spec/{managers → javascripts/managers}/collection_manager_spec.coffee +0 -0
  216. data/spec/{managers → javascripts/managers}/socket_manager_spec.coffee +0 -0
  217. data/spec/lib/component_definition_spec.rb +63 -0
  218. data/spec/lib/input_compiler_spec.rb +9 -0
  219. data/spec/lib/luca_application_spec.rb +30 -0
  220. data/spec/support/fixtures/application.coffee +45 -0
  221. data/spec/support/fixtures/component.coffee +34 -0
  222. data/{assets/javascripts/sandbox/views/inspector/instance_list.coffee → tutorials/component-definitions.md} +0 -0
  223. data/{spec/concerns/state_model_spec.coffee → tutorials/component-definitions/01_intro.md} +0 -0
  224. data/tutorials/component-driven-design.md +140 -0
  225. data/tutorials/structure-of-a-project.md +63 -0
  226. data/vendor/assets/javascripts/backbone-ext.js +21 -0
  227. data/vendor/assets/javascripts/backbone-min.js +38 -0
  228. data/vendor/assets/javascripts/backbone-query.min.js +1 -0
  229. data/vendor/assets/javascripts/bootstrap.min.js +7 -0
  230. data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror-coffeescript.js +0 -0
  231. data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror-css.js +0 -0
  232. data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror-html.js +0 -0
  233. data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror-javascript.js +0 -0
  234. data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror-less.js +0 -0
  235. data/vendor/assets/javascripts/codemirror-ui.js +503 -0
  236. data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror-vim.js +0 -0
  237. data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror.js +0 -0
  238. data/vendor/assets/javascripts/hogan.js +707 -0
  239. data/vendor/assets/javascripts/inflections.js +656 -0
  240. data/vendor/assets/javascripts/jasmine-html.js +190 -0
  241. data/vendor/assets/javascripts/jasmine.js +2476 -0
  242. data/{assets/javascripts/dependencies → vendor/assets/javascripts}/jquery.js +0 -0
  243. data/vendor/assets/javascripts/keymaster.min.js +4 -0
  244. data/vendor/assets/javascripts/luca-dependencies.min.js +6 -0
  245. data/vendor/assets/javascripts/luca-development.min.js +1 -0
  246. data/vendor/assets/javascripts/luca-spec.js +11 -0
  247. data/vendor/assets/javascripts/luca-ui.js +3336 -2561
  248. data/vendor/assets/javascripts/luca-ui.min.js +5 -5
  249. data/vendor/assets/javascripts/luca.full.min.js +10 -0
  250. data/vendor/assets/javascripts/luca.min.js +5 -0
  251. data/{assets/javascripts/dependencies → vendor/assets/javascripts}/modal.js +0 -0
  252. data/{assets/javascripts/dependencies → vendor/assets/javascripts}/modernizr.min.js +0 -0
  253. data/{assets/javascripts/dependencies → vendor/assets/javascripts}/prettify.js +0 -0
  254. data/vendor/assets/javascripts/sinon.js +3469 -0
  255. data/{assets/javascripts/dependencies → vendor/assets/javascripts}/spin-min.js +0 -0
  256. data/{assets/javascripts/dependencies → vendor/assets/javascripts}/underscore-min.js +0 -0
  257. data/vendor/assets/javascripts/underscore-string.min.js +1 -0
  258. data/vendor/assets/stylesheets/bootstrap-responsive.min.css +9 -0
  259. data/vendor/assets/stylesheets/bootstrap.min.css +9 -0
  260. data/{assets → vendor/assets}/stylesheets/codemirror-blackboard.css +0 -0
  261. data/{assets → vendor/assets}/stylesheets/codemirror-monokai.css +0 -0
  262. data/{assets → vendor/assets}/stylesheets/codemirror.css +0 -0
  263. data/{assets → vendor/assets}/stylesheets/jasmine.css +0 -0
  264. data/vendor/assets/stylesheets/luca-components.css +204 -0
  265. data/vendor/assets/stylesheets/luca-development.css +23 -0
  266. data/vendor/assets/stylesheets/luca-ui.css +58 -461
  267. data/views/jasmine.erb +2 -2
  268. metadata +280 -336
  269. data/assets/javascripts/dependencies.coffee +0 -5
  270. data/assets/javascripts/dependencies/backbone-min.js +0 -37
  271. data/assets/javascripts/dependencies/backbone-query.min.js +0 -1
  272. data/assets/javascripts/dependencies/bootstrap.min.js +0 -7
  273. data/assets/javascripts/dependencies/coffee-script.js +0 -12189
  274. data/assets/javascripts/dependencies/underscore-string.min.js +0 -14
  275. data/assets/javascripts/luca-templates.js +0 -1
  276. data/assets/javascripts/luca-ui-base.coffee +0 -1
  277. data/assets/javascripts/luca-ui-bootstrap.js +0 -1
  278. data/assets/javascripts/luca-ui-development-tools.coffee +0 -9
  279. data/assets/javascripts/luca-ui-full.js +0 -3
  280. data/assets/javascripts/luca-ui-spec.coffee +0 -2
  281. data/assets/javascripts/luca-ui.js +0 -3
  282. data/assets/javascripts/luca/index.coffee +0 -1
  283. data/assets/javascripts/sandbox.coffee +0 -7
  284. data/assets/javascripts/sandbox/application.coffee +0 -57
  285. data/assets/javascripts/sandbox/config.coffee +0 -7
  286. data/assets/javascripts/sandbox/router.coffee +0 -24
  287. data/assets/javascripts/sandbox/templates/builder.luca +0 -2
  288. data/assets/javascripts/sandbox/templates/builder/component_list.luca +0 -1
  289. data/assets/javascripts/sandbox/templates/main.luca +0 -53
  290. data/assets/javascripts/sandbox/templates/sandbox.luca +0 -1
  291. data/assets/javascripts/sandbox/templates/sandbox/docs_index.luca +0 -1
  292. data/assets/javascripts/sandbox/templates/sandbox/navigation.luca +0 -8
  293. data/assets/javascripts/sandbox/templates/sandbox/readme.luca +0 -30
  294. data/assets/javascripts/sandbox/views/builder.coffee +0 -133
  295. data/assets/javascripts/sandbox/views/builder/builder_canvas.coffee +0 -3
  296. data/assets/javascripts/sandbox/views/builder/builder_editor.coffee +0 -6
  297. data/assets/javascripts/sandbox/views/builder/component_list.coffee +0 -38
  298. data/assets/javascripts/sandbox/views/builder/project_browser.coffee +0 -14
  299. data/assets/javascripts/sandbox/views/docs_controller.coffee +0 -7
  300. data/assets/javascripts/sandbox/views/inspector.coffee +0 -11
  301. data/assets/javascripts/sandbox/views/inspector/instance_filter.coffee +0 -18
  302. data/assets/javascripts/sandbox/views/top_navigation.coffee +0 -4
  303. data/assets/javascripts/spec-dependencies.coffee +0 -4
  304. data/assets/stylesheets/bootstrap-responsive.min.css +0 -2
  305. data/assets/stylesheets/bootstrap.min.css +0 -727
  306. data/assets/stylesheets/luca-ui-bootstrap.css +0 -4
  307. data/assets/stylesheets/luca-ui-development-tools.css +0 -5
  308. data/assets/stylesheets/luca-ui-full.css +0 -3
  309. data/assets/stylesheets/luca-ui-spec.css +0 -3
  310. data/assets/stylesheets/luca-ui.css +0 -3
  311. data/assets/stylesheets/prettify.css +0 -40
  312. data/assets/stylesheets/sandbox.css +0 -3
  313. data/assets/stylesheets/sandbox/builder.scss +0 -79
  314. data/assets/stylesheets/sandbox/sandbox.scss +0 -18
  315. data/assets/stylesheets/themes/amelia-bootstrap.css +0 -826
  316. data/assets/stylesheets/themes/slate-bootstrap.css +0 -797
  317. data/assets/stylesheets/themes/superhero-bootstrap.css +0 -830
  318. data/lib/generators/luca/application/templates/javascripts/application.js +0 -28
  319. data/lib/generators/luca/application/templates/javascripts/application.js.coffee +0 -20
  320. data/lib/generators/luca/application/templates/javascripts/config.js +0 -15
  321. data/lib/generators/luca/application/templates/javascripts/config.js.coffee +0 -9
  322. data/lib/generators/luca/application/templates/javascripts/dependencies.js +0 -5
  323. data/lib/generators/luca/application/templates/javascripts/dependencies.js.coffee +0 -5
  324. data/lib/generators/luca/application/templates/javascripts/index.js +0 -9
  325. data/lib/generators/luca/application/templates/javascripts/index.js.coffee +0 -9
  326. data/lib/generators/luca/application/templates/javascripts/main.js +0 -8
  327. data/lib/generators/luca/application/templates/javascripts/main.js.coffee +0 -3
  328. data/lib/generators/luca/application/templates/javascripts/main.jst.ejs +0 -1
  329. data/lib/generators/luca/application/templates/javascripts/router.js +0 -12
  330. data/lib/generators/luca/application/templates/javascripts/router.js.coffee +0 -7
  331. data/lib/luca/code_browser.rb +0 -55
  332. data/lib/luca/command_line.rb +0 -69
  333. data/spec/components/form_view_spec.coffee +0 -84
  334. data/spec/containers/column_view_spec.coffee +0 -0
  335. data/spec/containers/split_view_spec.coffee +0 -0
  336. data/src/components/base_toolbar.coffee +0 -17
  337. data/src/components/fields/select_field.coffee +0 -96
  338. data/src/components/fields/text_area_field.coffee +0 -42
  339. data/src/components/form_button_toolbar.coffee +0 -28
  340. data/src/components/form_view.coffee +0 -282
  341. data/src/components/grid_view.coffee +0 -269
  342. data/src/components/index.coffee +0 -1
  343. data/src/components/load_mask.coffee +0 -3
  344. data/src/components/nav_bar.coffee +0 -22
  345. data/src/components/page_controller.coffee +0 -2
  346. data/src/components/table_view.coffee +0 -69
  347. data/src/components/template.coffee +0 -5
  348. data/src/components/toolbar_dialog.coffee +0 -25
  349. data/src/concerns/collection_event_bindings.coffee +0 -26
  350. data/src/concerns/modal_view.coffee +0 -38
  351. data/src/concerns/state_model.coffee +0 -16
  352. data/src/containers/column_view.coffee +0 -42
  353. data/src/containers/page_view.coffee +0 -2
  354. data/src/containers/panel_view.coffee +0 -23
  355. data/src/containers/split_view.coffee +0 -8
  356. data/src/core/core.coffee +0 -0
  357. data/src/core/panel.coffee +0 -118
  358. data/src/core/view.coffee +0 -172
  359. data/src/index.coffee +0 -25
  360. data/src/managers/socket_manager.coffee +0 -54
  361. data/src/plugins/development_tool_helpers.coffee +0 -21
  362. data/src/samples/definition.coffee +0 -49
  363. data/src/stylesheets/base.scss +0 -0
  364. data/src/stylesheets/components/form_view.scss +0 -59
  365. data/src/stylesheets/components/toolbar.scss +0 -0
  366. data/src/stylesheets/containers/container.scss +0 -11
  367. data/src/stylesheets/tools/class_browser.scss +0 -32
  368. data/src/stylesheets/tools/code_editor.scss +0 -24
  369. data/src/stylesheets/tools/component_tester.scss +0 -26
  370. data/src/templates/components/nav_bar.jst.ejs +0 -4
  371. data/src/templates/containers/tab_view.jst.ejs +0 -2
  372. data/src/tools/application_inspector.coffee +0 -2
  373. data/src/tools/code_editor.coffee +0 -258
  374. data/src/tools/coffee_script_editor.coffee +0 -82
  375. data/src/tools/collection_inspector.coffee +0 -4
  376. data/src/tools/collections/components.coffee +0 -59
  377. data/src/tools/collections/instances.coffee +0 -15
  378. data/src/tools/component_tester.coffee +0 -462
  379. data/src/tools/models/components.coffee +0 -25
  380. data/src/tools/models/instance.coffee +0 -2
  381. data/src/tools/templates/component_tester/help.luca +0 -14
  382. data/vendor/assets/javascripts/luca-ui-base.js +0 -5304
  383. data/vendor/assets/javascripts/luca-ui-bootstrap.js +0 -9
  384. data/vendor/assets/javascripts/luca-ui-development-tools.js +0 -18561
  385. data/vendor/assets/javascripts/luca-ui-development-tools.min.js +0 -15
  386. data/vendor/assets/javascripts/luca-ui-full.js +0 -6696
  387. data/vendor/assets/javascripts/luca-ui-full.min.js +0 -9
  388. data/vendor/assets/javascripts/luca-ui-spec.js +0 -6815
  389. data/vendor/assets/javascripts/luca-ui-templates.js +0 -92
  390. data/vendor/assets/luca-ui/base.css +0 -85
  391. data/vendor/assets/luca-ui/components/application.js +0 -91
  392. data/vendor/assets/luca-ui/components/base_toolbar.js +0 -23
  393. data/vendor/assets/luca-ui/components/controller.js +0 -38
  394. data/vendor/assets/luca-ui/components/fields/button_field.js +0 -45
  395. data/vendor/assets/luca-ui/components/fields/checkbox_field.js +0 -43
  396. data/vendor/assets/luca-ui/components/fields/file_upload_field.js +0 -20
  397. data/vendor/assets/luca-ui/components/fields/hidden_field.js +0 -20
  398. data/vendor/assets/luca-ui/components/fields/select_field.js +0 -97
  399. data/vendor/assets/luca-ui/components/fields/text_area_field.js +0 -48
  400. data/vendor/assets/luca-ui/components/fields/text_field.js +0 -46
  401. data/vendor/assets/luca-ui/components/fields/type_ahead_field.js +0 -13
  402. data/vendor/assets/luca-ui/components/form_button_toolbar.js +0 -32
  403. data/vendor/assets/luca-ui/components/form_view.css +0 -32
  404. data/vendor/assets/luca-ui/components/form_view.js +0 -207
  405. data/vendor/assets/luca-ui/components/grid_view.js +0 -202
  406. data/vendor/assets/luca-ui/components/record_manager.js +0 -207
  407. data/vendor/assets/luca-ui/components/router.js +0 -36
  408. data/vendor/assets/luca-ui/components/template.js +0 -26
  409. data/vendor/assets/luca-ui/components/toolbar.css +0 -11
  410. data/vendor/assets/luca-ui/containers/card_view.js +0 -98
  411. data/vendor/assets/luca-ui/containers/column_view.js +0 -52
  412. data/vendor/assets/luca-ui/containers/container.css +0 -3
  413. data/vendor/assets/luca-ui/containers/modal_view.css +0 -0
  414. data/vendor/assets/luca-ui/containers/modal_view.js +0 -87
  415. data/vendor/assets/luca-ui/containers/panel_view.js +0 -34
  416. data/vendor/assets/luca-ui/containers/split_view.js +0 -13
  417. data/vendor/assets/luca-ui/containers/tab_view.css +0 -16
  418. data/vendor/assets/luca-ui/containers/tab_view.js +0 -80
  419. data/vendor/assets/luca-ui/containers/viewport.js +0 -18
  420. data/vendor/assets/luca-ui/core/collection.js +0 -221
  421. data/vendor/assets/luca-ui/core/container.js +0 -205
  422. data/vendor/assets/luca-ui/core/field.js +0 -59
  423. data/vendor/assets/luca-ui/core/observer.js +0 -42
  424. data/vendor/assets/luca-ui/core/view.js +0 -127
  425. data/vendor/assets/luca-ui/framework.js +0 -110
  426. data/vendor/assets/luca-ui/index.js +0 -5
  427. data/vendor/assets/luca-ui/managers/collection_manager.js +0 -98
  428. data/vendor/assets/luca-ui/managers/socket_manager.js +0 -52
  429. data/vendor/assets/luca-ui/modules/deferrable.js +0 -21
  430. data/vendor/assets/luca-ui/modules/local_storage.js +0 -81
  431. data/vendor/assets/luca-ui/normalize.css +0 -359
  432. data/vendor/assets/luca-ui/stylesheets/base.css +0 -85
  433. data/vendor/assets/luca-ui/stylesheets/components/form_view.css +0 -32
  434. data/vendor/assets/luca-ui/stylesheets/components/grid_view.css +0 -76
  435. data/vendor/assets/luca-ui/stylesheets/components/toolbar.css +0 -11
  436. data/vendor/assets/luca-ui/stylesheets/containers/container.css +0 -3
  437. data/vendor/assets/luca-ui/stylesheets/containers/modal_view.css +0 -0
  438. data/vendor/assets/luca-ui/stylesheets/containers/tab_view.css +0 -16
  439. data/vendor/assets/luca-ui/stylesheets/normalize.css +0 -359
  440. data/vendor/assets/luca-ui/templates/components/bootstrap_form_controls.js +0 -4
  441. data/vendor/assets/luca-ui/templates/components/form_view.js +0 -4
  442. data/vendor/assets/luca-ui/templates/components/grid_view.js +0 -4
  443. data/vendor/assets/luca-ui/templates/components/grid_view_empty_text.js +0 -4
  444. data/vendor/assets/luca-ui/templates/containers/basic.js +0 -4
  445. data/vendor/assets/luca-ui/templates/containers/tab_selector_container.js +0 -4
  446. data/vendor/assets/luca-ui/templates/containers/tab_view.js +0 -4
  447. data/vendor/assets/luca-ui/templates/containers/toolbar_wrapper.js +0 -4
  448. data/vendor/assets/luca-ui/templates/fields/button_field.js +0 -4
  449. data/vendor/assets/luca-ui/templates/fields/button_field_link.js +0 -4
  450. data/vendor/assets/luca-ui/templates/fields/checkbox_field.js +0 -4
  451. data/vendor/assets/luca-ui/templates/fields/file_upload_field.js +0 -4
  452. data/vendor/assets/luca-ui/templates/fields/hidden_field.js +0 -4
  453. data/vendor/assets/luca-ui/templates/fields/select_field.js +0 -4
  454. data/vendor/assets/luca-ui/templates/fields/text_area_field.js +0 -4
  455. data/vendor/assets/luca-ui/templates/fields/text_field.js +0 -4
  456. data/vendor/assets/luca-ui/templates/sample/contents.js +0 -4
  457. data/vendor/assets/luca-ui/templates/sample/welcome.js +0 -4
data/CHANGELOG CHANGED
@@ -204,13 +204,76 @@
204
204
 
205
205
  0.9.75
206
206
  - Component registration is now beautifully readable and self documenting,
207
- and flexible. Minimally only requires one call to Luca.register(). This allows you to be as descriptive as you like when defining a component, and does not require you to call any definition methods which do not make literary sense in your component description.
207
+ and flexible. Minimally only requires one call to Luca.register().
208
+ This allows you to be as descriptive as you like when defining a component,
209
+ and does not require you to call any definition methods which do not
210
+ make literary sense in your component description.
211
+
208
212
  - Component definition now supports specifying class methods.
213
+
209
214
  - Luca.initialize('Namespace') will setup a complete namespace for
210
215
  your application, and give you a Namespace() method which works similar
211
216
  to the Luca() helper.
217
+
212
218
  - Added Luca.config.modelBootrstrap and Luca.config.baseParams as pointers
213
219
  to either properties, or methods, which can be used to configure Luca.Collection behavior
214
220
  - Luca.onReady is now the preferred way of launching the application.
215
221
  - Added Luca.Application.routeTo, Luca.Application.controller
216
- route building helpers
222
+ route building helpers
223
+
224
+ 0.9.78
225
+ - Added experimental ability to integrate router into the application itself, via the @routes property
226
+ - Temporary fix for double rendering bug in containers which had css class based assignments on their containers.
227
+ - Added experimental support for Luca.SocketManager
228
+ - Introducing @stateChangeEvents property for views which mixin the StateModel concern.
229
+ - Added additional ComponentDefinition methods: public, private, configuration, methods
230
+ - Component MetaData tracks descendants()
231
+ - SelectField defaults to valueType integer when valueField is "id"
232
+
233
+ 0.9.8
234
+ - Luca follows Sprockets / Asset Pipeline Conventions
235
+ - Renamed
236
+ - Luca.core.Container to Luca.Container
237
+ - Luca.components.Panel to Luca.Panel
238
+ - Added Sortable Concern
239
+ - Added Luca.log()
240
+ - Added ability to create aliases / deprecations of components with warning messages
241
+
242
+ 0.9.81
243
+ - Added support for HoganAssets via hogan.js and HoganAssets gem by Les Hill
244
+ - Renamed Luca.components.CollectionView to Luca.CollectionView. Moved CollectionView to core.
245
+ - beforeSubmit, and beforeReset on formView can return false to stop the action
246
+ - Added scrollable table component to replace ugly ass GridView
247
+
248
+ 0.9.83
249
+ - Added sortOptionsBy property to select field. Expects an attribute to sort by.
250
+ - firstActivation event will be queue'd until after:render has been fired
251
+ - setting @rendered = true on views
252
+ - adding event on controller activation
253
+ - Bugfix on CollectionView refresh method
254
+
255
+ 0.9.84
256
+ - Added Luca::Collection::Endpoint to provide cheap throwaway persistence
257
+
258
+ 0.9.85
259
+ - Documentation / Comments parser and generator.
260
+ - Luca.config.developmentMode revamp.
261
+ - Added experimental Guard::Luca which uses Faye to send asset changes to the running Luca.Application()
262
+ - Added Luca.CodeSyncManager which keeps css, templates, and component definitions in sync as you change them on the file system.
263
+ - Better refreshing of instantiated components with updated prototype code via CodeSyncManager
264
+ - Integrated Luca.FormView improvements from @grilix
265
+
266
+ 0.9.86
267
+ - Introducing GridLayoutView component which is a CollectionView which uses bootstraps row and spans to form an even grid.
268
+ - Introducing SimpleCollectionView which is a CollectionView without any mixins applied
269
+
270
+ 0.9.87
271
+ - Adds support for keymaster.js for keybinding config. Thanks @madrobby.
272
+ - Adds ability for the Application, and components which belong sto Luca.components.Controller to define their own global keybindings
273
+ - Luca::ComponentDefinition renders comments as MarkDown
274
+ - Adds Luca.util.setupKeyBindings helper for views to instrument their own keybindings / scopes
275
+
276
+ 0.9.88
277
+ - Fixed a bug in StateModel concern
278
+ - Luca.View which define an @_events property on their prototypes will have
279
+ that event configuration persist into @events of views which extend from them
data/Gemfile CHANGED
@@ -7,7 +7,11 @@ gem "sass", '>= 3.1.10'
7
7
  gem "sprockets", '>= 2.0.2'
8
8
  gem 'ejs'
9
9
  gem 'haml'
10
+ gem 'redcarpet'
10
11
  gem 'rake'
12
+ gem 'hogan_assets'
13
+ gem 'haml_assets'
14
+ gem 'active_support'
11
15
 
12
16
  group :test, :development do
13
17
  gem 'faker'
data/Gemfile.lock CHANGED
@@ -1,6 +1,9 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ active_support (3.0.0)
5
+ activesupport (= 3.0.0)
6
+ activesupport (3.0.0)
4
7
  addressable (2.3.2)
5
8
  childprocess (0.3.1)
6
9
  ffi (~> 1.0.6)
@@ -28,7 +31,14 @@ GEM
28
31
  guard
29
32
  sprockets (~> 2.0)
30
33
  haml (3.1.4)
34
+ haml_assets (0.2.1)
35
+ haml
36
+ tilt
31
37
  hike (1.2.1)
38
+ hogan_assets (1.3.4)
39
+ execjs (>= 1.2.9)
40
+ sprockets (>= 2.0.3)
41
+ tilt (>= 1.3.3)
32
42
  i18n (0.6.0)
33
43
  jasmine (1.3.0)
34
44
  jasmine-core (>= 1.3.0)
@@ -47,11 +57,12 @@ GEM
47
57
  method_source (~> 0.6.7)
48
58
  ruby_parser (>= 2.3.1)
49
59
  slop (~> 2.1.0)
50
- rack (1.3.5)
60
+ rack (1.5.2)
51
61
  rack-protection (1.1.4)
52
62
  rack
53
63
  rake (0.9.2.2)
54
64
  rb-fsevent (0.9.1)
65
+ redcarpet (2.2.2)
55
66
  rspec (2.12.0)
56
67
  rspec-core (~> 2.12.0)
57
68
  rspec-expectations (~> 2.12.0)
@@ -75,8 +86,9 @@ GEM
75
86
  rack-protection (~> 1.1, >= 1.1.2)
76
87
  tilt (~> 1.3, >= 1.3.3)
77
88
  slop (2.1.0)
78
- sprockets (2.1.2)
89
+ sprockets (2.8.2)
79
90
  hike (~> 1.2)
91
+ multi_json (~> 1.0)
80
92
  rack (~> 1.0)
81
93
  tilt (~> 1.1, != 1.3.0)
82
94
  thor (0.14.6)
@@ -90,16 +102,20 @@ PLATFORMS
90
102
  ruby
91
103
 
92
104
  DEPENDENCIES
105
+ active_support
93
106
  coffee-script (>= 2.2.0)
94
107
  ejs
95
108
  faker
96
109
  guard-jasmine
97
110
  guard-sprockets2
98
111
  haml
112
+ haml_assets
113
+ hogan_assets
99
114
  jasmine
100
115
  pry
101
116
  rake
102
117
  rb-fsevent (>= 0.9.1)
118
+ redcarpet
103
119
  sass (>= 3.1.10)
104
120
  sinatra
105
121
  sprockets (>= 2.0.2)
data/Guardfile CHANGED
@@ -1,27 +1,5 @@
1
1
  require './app'
2
-
3
- assets_path = Dir.pwd + '/vendor/assets'
4
- javascript_path = File.join( assets_path, 'javascripts' )
5
- stylesheets_path = File.join( assets_path, 'stylesheets' )
6
-
7
- unless ENV['TEST_MODE'] or ENV['RUN_TESTS']
8
- unless ENV['SKIP_JAVASCRIPTS']
9
- guard 'sprockets2', :clean=>false, :assets_path => javascript_path, :sprockets => App.sprockets, :precompile=>[/^luca-ui.+(coffee|js)$/], :digest => false, :gz => false do
10
- watch(%r{^src/.+$})
11
- watch(%r{^spec/.+$})
12
- end
13
- end
14
-
15
- unless ENV['SKIP_STYLESHEETS']
16
- guard 'sprockets2', :clean=>false, :assets_path => stylesheets_path, :sprockets => App.sprockets, :precompile=>[/^luca-ui.+(scss|css)$/], :digest => false, :gz => false do
17
- watch(%r{^src/stylesheets/.+$})
18
- end
19
- end
20
- end
21
-
22
- unless ENV['COMPILE_MODE']
23
- guard 'jasmine' do
24
- watch(%r{src/(.+)\.coffee}) {|m| "spec/#{ m[1] }_spec.coffee" }
25
- watch(%r{spec/(.+)_spec\.coffee})
26
- end
2
+ guard 'jasmine' do
3
+ watch(%r{src/(.+)\.coffee}) {|m| "spec/#{ m[1] }_spec.coffee" }
4
+ watch(%r{spec/(.+)_spec\.coffee})
27
5
  end
data/README.md CHANGED
@@ -7,21 +7,6 @@ and clean single page applications.
7
7
  It uses twitter bootstrap compatible markup and css naming conventions,
8
8
  making it possible to generate completely styled user interfaces with JSON alone.
9
9
 
10
- Luca combines the functionality of other open source libraries as well, but you are not
11
- required to use any of them if you don't like.
12
-
13
- ### Dependencies
14
-
15
- - [Bootstrap by Twitter](https://twitter.github.com/bootstrap)
16
- - [Backbone-Query by David Tonge](https://github.com/davidgtonge/backbone_query)
17
- - [Underscore String by Esa-Matti Suuronen](https://github.com/epeli/underscore.string)
18
-
19
- ### Development Tool Dependencies:
20
-
21
- - [CodeMirror IDE](https://codemirror.net)
22
- - [CoffeeScript Compiler](https://coffeescript.org)
23
-
24
-
25
10
  ### Using With Rails Asset Pipeline
26
11
 
27
12
  ```ruby
@@ -33,41 +18,59 @@ In your css manifest:
33
18
 
34
19
  ```css
35
20
  /*
36
- *= require 'luca-ui-full'
37
- *= require 'luca-ui-development-tools'
21
+ *= require 'luca'
38
22
  */
39
23
  ```
40
24
 
41
25
  All Javascript Dependencies:
42
26
 
43
27
  ```javascript
44
- //= require 'underscore'
45
- //= require 'underscore-string.min'
46
- //= require 'jquery'
47
- //= require 'backbone'
48
- //= require 'bootstrap.min.js'
49
- //= require 'luca-ui.min.js'
50
- //= require 'luca-ui-development-tools.min.js'
51
- ```
52
-
53
- Or you can just use the dependencies we rely on. Latest backbone.js, underscore.js, underscore.string.js, twitter boostrap js and css:
54
-
55
- ```
56
- //= require 'luca-ui-full.min.js'
28
+ //= require 'luca/dependencies'
29
+ //= require 'luca'
57
30
  ```
58
31
 
59
- ## Standalone With Twitter Bootstrap ( development tools are optional )
60
- ```html
61
- <html>
62
- <head>
63
- <link rel="stylesheet" href='luca-ui-full.css' />
64
- <link rel="stylesheet" href='luca-ui-development-tools.css' />
65
- </head>
66
- <body>
67
- <script type='text/javascript' src="luca-ui-full.min.js" />
68
- <script type='text/javascript' src="luca-ui-development-tools.min.js" />
69
- </body>
70
- </html>
32
+ Your App:
33
+ ```javascript
34
+ Luca.initialize('App', {
35
+ // will look in window.AppBootstrap for an object
36
+ // keyed on your collection's cache_keys() for automatically
37
+ // populating collections on page load
38
+ modelBootstrap: true,
39
+ // will look in window.AppBaseParams for an object
40
+ // or function used to determine the query parameters to
41
+ // be sent on every request
42
+ baseParams: true
43
+ });
44
+
45
+ JST['home'] = function() {
46
+ // content
47
+ };
48
+
49
+ App.register('App.views.Home').extends('Luca.View').defines({
50
+ template: "home",
51
+ events: {
52
+ "click .menu-handler" : "clickMenuHandler"
53
+ },
54
+ clickMenuHandler: function(e){
55
+
56
+ }
57
+ });
58
+
59
+ App.register('App.Application').extends('Luca.Application').defines({
60
+ // will use the Application classes internal controller
61
+ // to make the home 'page' active in the viewport
62
+ routes:{
63
+ "" : "home"
64
+ }
65
+ components:[
66
+ name: "home"
67
+ type: "home"
68
+ ]
69
+ });
70
+
71
+ AppNamespace.onReady(function(){
72
+ (new AppNamespace.Application).boot()
73
+ })
71
74
  ```
72
75
 
73
76
  ## Rails Generator
@@ -75,22 +78,11 @@ To generate Luca application skeleton run:
75
78
  `rails generate luca:application <app_name>`
76
79
  This will generate a controller, view, route, and the Luca application structure under assets/javascripts/<app_name>
77
80
 
78
- ## Interactive Documentation and Examples
79
-
80
- [View the Sandbox](http://datapimp.com/luca)
81
+ ## Contributing
82
+ You will need to run 'rake release:all' to compile/minify the asset which gets released.
81
83
 
82
84
  ## Thanks To
85
+ @jashkenas, @davidgtonge, @twitter, @madrobby, et al.
83
86
 
84
- @jashkenas for making coffeescript, underscore, backbone.js.
85
-
86
- @twitter for making bootstrap 2.0
87
-
88
- @davidtonge for making backbone-query
89
-
90
- @benchprep for giving me the freedom
91
-
92
- @luca. who i spent only two minutes making and am exponentially more proud to have created.
93
-
94
- ## Contributing
95
-
96
- Please!
87
+ ## Contributors
88
+ @tjbladez, @grilix, @nick-desteffen
data/ROADMAP CHANGED
@@ -1,33 +1,16 @@
1
- Framework
2
- ---------
3
- Extract hooks into module
1
+ Minor Initiatives:
2
+ - make sure hooks and mixins are inherited properly
3
+ - upgrade to backbone 0.9.9
4
+ - remove / delegate features in luca which have been provided by backbone
5
+ - ComponentDefinition will become a Backbone.Model
6
+ - ComponentDefinition registry will become a Backbone.Collection
7
+ - InstanceCache will become a Backbone.Collection
8
+ - Make CardView less noisy in the DOM
9
+ - Remove component defined classNames in favor of styleHierarchy
10
+ - make styleHierarchy less noisy
4
11
 
5
- General
6
- -------
7
- - Make development mode options easily disabled
8
- - Integrate with requireJs or some other AMD system
9
- - Move to node.js for build / testing
10
- - Replace .luca template with standard jst
11
- - Eliminate underscore-string dependency. just copy necessary functions.
12
- - Eliminate pointless CSS selectors
13
-
14
- - Rely on data attributes for functionality instead of css selectors
15
- - BUT in general don't tie views to the DOM anyway
16
-
17
- Luca.View
18
- ---------
19
- - Add StateMachine model to all instances of Luca.View
20
-
21
- Containers
22
- ----------
23
- - Luca.core.Container should relay all activation events to @components
24
-
25
- Luca.CollectionManager
26
- ----------------------
27
- - Add concept of base params for a given scope of the collection manager
28
-
29
- Luca.Application
30
- ----------------
31
- - Modify boot sequence so that rendering can happen on DOM ready, but all other
32
- operations, such as fetching collections, etc, can happen immediately upon
33
- initialization
12
+ Major Initiatives:
13
+ - improve Panel toolbar
14
+ - improve FormView and Field configuration APIs
15
+ - implement rendering strategy for deferrable rendering
16
+ - provide ability to restore application / component state from DOM
data/Rakefile CHANGED
@@ -8,98 +8,39 @@ end
8
8
  stylesheets = ["luca-ui-bootstrap.css","luca-ui-development-tools.css","sandbox.css"]
9
9
  scripts = ["dependencies.js","sandbox.js"]
10
10
 
11
- namespace :source do
12
- desc "Create a source map for the project"
13
- task :map => :environment do
14
- require 'json'
15
- source_map = {}
16
-
17
- (["src/**/*.coffee","assets/javascripts/sandbox/**/*.coffee"]).map do |location|
18
- files = Dir.glob( location )
19
- files.inject(source_map) do |memo,file|
20
- definitions = IO.read(file).lines.to_a.grep /_\.def/
21
-
22
- definitions.each do |definition|
23
- component = definition.match(/_\.def\(['"](.+)['"]\)\./)
24
-
25
- if component and component[1]
26
- componentId = component[1].gsub(/['"].*$/,'')
27
- if componentId
28
- memo[ componentId ] = {className:componentId,file:file,source:IO.read(file)}
29
- end
30
- end
31
- end
32
-
33
- memo
34
- end
35
-
36
- end
37
-
38
- sourceMapFile = File.join( App.root, 'site', 'source-map.js')
39
-
40
- File.open(sourceMapFile,'w+') do |fh|
41
- fh.puts( JSON.generate( source_map.values ) )
42
- end
43
-
44
- end
45
- end
46
-
47
11
  namespace :release do
48
- desc "Release new version of sandbox site"
49
- task :sandbox => [:assets, :minify] do
50
-
51
- asset_folder = File.join(App.root,'site','assets')
52
- img_folder = File.join(App.root,'site','img')
53
-
54
- [stylesheets,scripts].flatten.each do |filename|
55
- asset = App.sprockets.find_asset(filename)
56
- File.open( File.join( App.root, 'site', 'assets', filename) , 'w+' ) do |fh|
57
- fh.puts(asset.to_s)
58
- end
59
- end
60
-
61
- FileUtils.cp( File.join(App.root,'assets','javascripts','dependencies','bootstrap.min.js'), asset_folder)
62
- FileUtils.cp( File.join(App.root,'vendor/assets/javascripts/luca-ui.min.js'), asset_folder)
63
- FileUtils.cp( File.join(App.root,'vendor/assets/javascripts/luca-ui-full.min.js'), asset_folder)
64
- FileUtils.cp( File.join(App.root,'vendor/assets/javascripts/luca-ui-development-tools.min.js'), asset_folder)
65
-
66
- FileUtils.cp( File.join(App.root,'vendor/assets/images/glyphicons-halflings-white.png'), img_folder )
67
- FileUtils.cp( File.join(App.root,'vendor/assets/images/glyphicons-halflings.png'), img_folder )
68
-
69
- end
70
-
12
+ desc "Compile and Minify"
13
+ task :all => [:assets,:minify]
71
14
  desc "Compile all the assets"
72
15
  task :assets => :environment do
73
- File.open( File.join(App.root,'vendor','assets','stylesheets','luca-ui.css'), 'w+' ) do |fh|
74
- fh.puts(App.sprockets["luca-ui.css"].to_s)
16
+ File.open( File.join(App.root,'vendor','assets','stylesheets','luca-development.css'), 'w+' ) do |fh|
17
+ fh.puts(App.sprockets["luca/development.css"].to_s)
75
18
  end
76
-
77
- File.open( File.join(App.root,'vendor','assets','javascripts','luca-ui-templates.js'), 'w+' ) do |fh|
78
- fh.puts(App.sprockets["luca-templates.js"].to_s)
19
+ File.open( File.join(App.root,'vendor','assets','stylesheets','luca-components.css'), 'w+' ) do |fh|
20
+ fh.puts(App.sprockets["luca.css"].to_s)
79
21
  end
80
-
81
- File.open( File.join(App.root,'vendor','assets','javascripts','luca-ui.js'), 'w+' ) do |fh|
82
- fh.puts(App.sprockets["luca-ui.js"].to_s)
22
+ File.open( File.join(App.root,'tmp','luca.js'), 'w+' ) do |fh|
23
+ fh.puts(App.sprockets["luca.js"].to_s)
83
24
  end
84
-
85
- File.open( File.join(App.root,'vendor','assets','javascripts','luca-ui-full.js'), 'w+' ) do |fh|
86
- fh.puts(App.sprockets["luca-ui-full.js"].to_s)
25
+ File.open( File.join(App.root,'tmp','luca-development.js'), 'w+' ) do |fh|
26
+ fh.puts(App.sprockets["luca/development.js"].to_s)
87
27
  end
88
-
89
- File.open( File.join(App.root,'vendor','assets','javascripts','luca-ui-development-tools.js'), 'w+' ) do |fh|
90
- fh.puts(App.sprockets["luca-ui-development-tools.coffee"].to_s)
28
+ File.open( File.join(App.root,'tmp','luca-dependencies.js'), 'w+' ) do |fh|
29
+ fh.puts(App.sprockets["luca/dependencies.js"].to_s)
91
30
  end
92
31
  end
93
32
 
94
33
  desc "Minify the assets"
95
34
  task :minify do
96
- `uglifyjs vendor/assets/javascripts/luca-ui.js > vendor/assets/javascripts/luca-ui.min.js`
97
- `uglifyjs vendor/assets/javascripts/luca-ui-full.js > vendor/assets/javascripts/luca-ui-full.min.js`
98
- `uglifyjs vendor/assets/javascripts/luca-ui-development-tools.js > vendor/assets/javascripts/luca-ui-development-tools.min.js`
35
+ `uglifyjs tmp/luca.js > vendor/assets/javascripts/luca.min.js`
36
+ `uglifyjs tmp/luca-development.js > vendor/assets/javascripts/luca-development.min.js`
37
+ `uglifyjs tmp/luca-dependencies.js > vendor/assets/javascripts/luca-dependencies.min.js`
38
+ `cat vendor/assets/javascripts/luca-dependencies.min.js vendor/assets/javascripts/luca.min.js > vendor/assets/javascripts/luca.full.min.js`
39
+ `rm tmp/*.js`
99
40
  end
100
41
 
101
42
  desc "Build the gem"
102
- task :gem do
43
+ task :gem => [:assets,:minify] do
103
44
  `gem build luca.gemspec`
104
45
  end
105
46