luca 0.9.8 → 0.9.9

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 (310) hide show
  1. data/CHANGELOG +49 -0
  2. data/Gemfile +8 -1
  3. data/Gemfile.lock +97 -53
  4. data/Guardfile +3 -25
  5. data/README.md +5 -16
  6. data/ROADMAP +15 -9
  7. data/Rakefile +24 -75
  8. data/app.rb +10 -42
  9. data/app/assets/javascripts/luca/basic.coffee +1 -1
  10. data/app/assets/javascripts/luca/components/application.coffee +187 -104
  11. data/app/assets/javascripts/luca/components/collection_view.coffee +115 -51
  12. data/app/assets/javascripts/luca/components/controller.coffee +87 -10
  13. data/app/assets/javascripts/luca/components/fields/base.coffee +74 -13
  14. data/app/assets/javascripts/luca/components/fields/button_field.coffee +60 -13
  15. data/app/assets/javascripts/luca/components/fields/checkbox_array.coffee +12 -7
  16. data/app/assets/javascripts/luca/components/fields/select_field.coffee +82 -23
  17. data/app/assets/javascripts/luca/components/fields/text_area_field.coffee +25 -10
  18. data/app/assets/javascripts/luca/components/fields/text_field.coffee +9 -3
  19. data/app/assets/javascripts/luca/components/form_view.coffee +105 -33
  20. data/app/assets/javascripts/luca/components/grid_layout_view.coffee +42 -0
  21. data/app/assets/javascripts/luca/components/index.coffee +6 -0
  22. data/app/assets/javascripts/luca/components/nav_bar.coffee +60 -6
  23. data/app/assets/javascripts/luca/components/page.coffee +70 -0
  24. data/app/assets/javascripts/luca/components/simple_collection_view.coffee +10 -0
  25. data/app/assets/javascripts/luca/components/table_view.coffee +7 -3
  26. data/app/assets/javascripts/luca/components/table_view_scrollable.coffee +23 -0
  27. data/app/assets/javascripts/luca/concerns/collection_event_bindings.coffee +4 -1
  28. data/app/assets/javascripts/luca/concerns/development_tool_helpers.coffee +23 -14
  29. data/app/assets/javascripts/luca/concerns/dom_helpers.coffee +2 -2
  30. data/app/assets/javascripts/luca/concerns/filterable.coffee +8 -11
  31. data/app/assets/javascripts/luca/concerns/form_model_bindings.coffee +20 -0
  32. data/app/assets/javascripts/luca/concerns/modal_view.coffee +40 -15
  33. data/app/assets/javascripts/luca/concerns/query_collection_bindings.coffee +7 -1
  34. data/app/assets/javascripts/luca/concerns/state_model.coffee +40 -26
  35. data/app/assets/javascripts/luca/concerns/templating.coffee +3 -1
  36. data/app/assets/javascripts/luca/config.coffee +5 -0
  37. data/app/assets/javascripts/luca/containers/card_view.coffee +87 -52
  38. data/app/assets/javascripts/luca/containers/container.coffee +305 -108
  39. data/app/assets/javascripts/luca/containers/modal_view.coffee +9 -9
  40. data/app/assets/javascripts/luca/containers/page_controller.coffee +25 -0
  41. data/app/assets/javascripts/luca/containers/panel_toolbar.coffee +5 -6
  42. data/app/assets/javascripts/luca/containers/tab_view.coffee +19 -10
  43. data/app/assets/javascripts/luca/containers/viewport.coffee +12 -16
  44. data/app/assets/javascripts/luca/core/collection.coffee +19 -5
  45. data/app/assets/javascripts/luca/core/events.coffee +5 -5
  46. data/app/assets/javascripts/luca/core/model.coffee +1 -1
  47. data/app/assets/javascripts/luca/core/panel.coffee +18 -6
  48. data/app/assets/javascripts/luca/core/registry/component_definition.coffee +2 -1
  49. data/app/assets/javascripts/luca/core/registry/meta_data.coffee +2 -0
  50. data/app/assets/javascripts/luca/core/registry/registry.coffee +14 -11
  51. data/app/assets/javascripts/luca/core/templates.coffee +5 -1
  52. data/app/assets/javascripts/luca/core/view.coffee +200 -47
  53. data/app/assets/javascripts/luca/dependencies.coffee +2 -0
  54. data/app/assets/javascripts/luca/development/code_sync_manager.coffee +173 -0
  55. data/app/assets/javascripts/luca/development/component.coffee +76 -0
  56. data/app/assets/javascripts/luca/development/components.coffee +57 -0
  57. data/app/assets/javascripts/luca/development/console.coffee +1 -1
  58. data/app/assets/javascripts/luca/development/index.coffee +4 -1
  59. data/app/assets/javascripts/luca/framework.coffee +7 -3
  60. data/app/assets/javascripts/luca/index.coffee +2 -1
  61. data/app/assets/javascripts/luca/managers/collection_manager.coffee +2 -3
  62. data/app/assets/javascripts/luca/managers/index.coffee +1 -1
  63. data/app/assets/javascripts/luca/managers/socket_manager.coffee +31 -8
  64. data/app/assets/javascripts/luca/templates/components/nav_bar.jst.ejs +16 -1
  65. data/app/assets/javascripts/luca/templates/containers/tab_view.jst.ejs +1 -1
  66. data/app/assets/javascripts/luca/util/index.coffee +1 -0
  67. data/app/assets/javascripts/luca/util/keybindings.coffee +24 -0
  68. data/app/assets/javascripts/luca/util/logging.coffee +15 -0
  69. data/app/assets/javascripts/luca/util/luca.coffee +9 -1
  70. data/app/assets/stylesheets/luca/components/table_view.scss +85 -0
  71. data/app/assets/stylesheets/luca/components/viewport.scss +0 -4
  72. data/app/assets/stylesheets/luca/containers/container.scss +8 -0
  73. data/app/assets/stylesheets/luca/index.css +2 -2
  74. data/bin/luca +14 -0
  75. data/config.ru +1 -2
  76. data/docs/framework.json +1 -0
  77. data/docs/luca-framework-documentation.js +1 -0
  78. data/docs/{application.md → old/application.md} +0 -0
  79. data/docs/{collection.md → old/collection.md} +0 -0
  80. data/docs/{collection_manager.md → old/collection_manager.md} +0 -0
  81. data/docs/{container_philosophy.md → old/container_philosophy.md} +0 -0
  82. data/docs/{event_binding_helpers.md → old/event_binding_helpers.md} +0 -0
  83. data/docs/{method_caching_and_computed_properties.md → old/method_caching_and_computed_properties.md} +0 -0
  84. data/docs/{view.md → old/view.md} +0 -0
  85. data/lib/generators/luca/application/templates/javascripts/dependencies.coffee +2 -5
  86. data/lib/guard/luca.rb +84 -0
  87. data/lib/luca.rb +25 -1
  88. data/lib/luca/asset_compiler.rb +117 -0
  89. data/lib/luca/cli.rb +68 -0
  90. data/lib/luca/cli/generate.rb +37 -0
  91. data/lib/luca/cli/server.rb +20 -0
  92. data/lib/luca/cli/sync.rb +40 -0
  93. data/lib/luca/cli/watch.rb +16 -0
  94. data/lib/luca/collection.rb +64 -0
  95. data/lib/luca/collection/endpoint.rb +38 -0
  96. data/lib/luca/collection/file_backend.rb +121 -0
  97. data/lib/luca/collection/redis_backend.rb +153 -0
  98. data/lib/luca/compiled_asset.rb +61 -0
  99. data/lib/luca/component_definition.rb +356 -0
  100. data/lib/luca/luca_application.rb +258 -0
  101. data/lib/luca/project.rb +73 -0
  102. data/lib/luca/project_harness.rb +96 -0
  103. data/lib/luca/rails.rb +5 -3
  104. data/lib/luca/rails/engine.rb +8 -0
  105. data/lib/luca/rails/version.rb +1 -2
  106. data/lib/luca/server.rb +7 -0
  107. data/lib/luca/stylesheet.rb +35 -0
  108. data/lib/luca/template.rb +2 -0
  109. data/lib/luca/template_asset.rb +64 -0
  110. data/lib/luca/version.rb +3 -0
  111. data/lib/luca/watcher.rb +72 -0
  112. data/lib/railties/luca/tasks.rake +7 -0
  113. data/site/.bundle/config +2 -0
  114. data/site/.gitignore +5 -0
  115. data/site/.rvmrc +1 -0
  116. data/site/CHANGELOG.md +41 -0
  117. data/site/DOCS.md +41 -0
  118. data/site/Gemfile +8 -0
  119. data/site/Gemfile.lock +134 -0
  120. data/site/LICENSE.md +19 -0
  121. data/site/config.rb +84 -0
  122. data/site/helpers/site_helpers.rb +20 -0
  123. data/site/html5bp-docs/README.md +38 -0
  124. data/site/html5bp-docs/contribute.md +104 -0
  125. data/site/html5bp-docs/crossdomain.md +21 -0
  126. data/site/html5bp-docs/css.md +135 -0
  127. data/site/html5bp-docs/extend.md +507 -0
  128. data/site/html5bp-docs/faq.md +77 -0
  129. data/site/html5bp-docs/htaccess.md +323 -0
  130. data/site/html5bp-docs/html.md +170 -0
  131. data/site/html5bp-docs/js.md +31 -0
  132. data/site/html5bp-docs/misc.md +25 -0
  133. data/site/html5bp-docs/usage.md +109 -0
  134. data/site/readme.md +47 -0
  135. data/site/source/.htaccess +540 -0
  136. data/site/source/404.html +157 -0
  137. data/site/source/app/assets/javascripts/dependencies.js.coffee +6 -0
  138. data/site/source/app/assets/javascripts/docs-docs.js +1 -0
  139. data/site/source/app/assets/javascripts/docs/application.coffee +64 -0
  140. data/site/source/app/assets/javascripts/docs/collections/docs_documentation.coffee +17 -0
  141. data/site/source/app/assets/javascripts/docs/collections/github_repositories.coffee +7 -0
  142. data/site/source/app/assets/javascripts/docs/collections/index.coffee +1 -0
  143. data/site/source/app/assets/javascripts/docs/collections/luca_documentation.coffee +17 -0
  144. data/site/source/app/assets/javascripts/docs/collections/public_gists.coffee +4 -0
  145. data/site/source/app/assets/javascripts/docs/config.coffee +5 -0
  146. data/site/source/app/assets/javascripts/docs/index.coffee +12 -0
  147. data/site/source/app/assets/javascripts/docs/lib/router.coffee +3 -0
  148. data/{spec/components/application_spec.coffee → site/source/app/assets/javascripts/docs/lib/util.coffee} +0 -0
  149. data/site/source/app/assets/javascripts/docs/models/component.coffee +99 -0
  150. data/site/source/app/assets/javascripts/docs/models/github_repository.coffee +3 -0
  151. data/site/source/app/assets/javascripts/docs/models/index.coffee +1 -0
  152. data/site/source/app/assets/javascripts/docs/templates/component_documentation.jst.ejs +55 -0
  153. data/site/source/app/assets/javascripts/docs/templates/examples_browser/overview.jst.ejs +4 -0
  154. data/site/source/app/assets/javascripts/docs/templates/examples_browser/selector.jst.ejs +11 -0
  155. data/site/source/app/assets/javascripts/docs/templates/github_repository.jst.ejs +4 -0
  156. data/site/source/app/assets/javascripts/docs/templates/layouts/main.jst.ejs +4 -0
  157. data/site/source/app/assets/javascripts/docs/templates/left_navigation.jst.ejs +5 -0
  158. data/site/source/app/assets/javascripts/docs/templates/pages/getting_started.jst.ejs +78 -0
  159. data/site/source/app/assets/javascripts/docs/templates/pages/home.jst.ejs +57 -0
  160. data/site/source/app/assets/javascripts/docs/views/components/code_editor.coffee +45 -0
  161. data/{spec/components/collection_loader_view_spec.coffee → site/source/app/assets/javascripts/docs/views/components/code_editor/index.coffee} +0 -0
  162. data/site/source/app/assets/javascripts/docs/views/components/component_documentation.coffee +72 -0
  163. data/site/source/app/assets/javascripts/docs/views/index.coffee +3 -0
  164. data/site/source/app/assets/javascripts/docs/views/pages/browse_source.coffee +46 -0
  165. data/site/source/app/assets/javascripts/docs/views/pages/browse_source/details.coffee +37 -0
  166. data/site/source/app/assets/javascripts/docs/views/pages/browse_source/list.coffee +31 -0
  167. data/site/source/app/assets/javascripts/docs/views/pages/component_editor.coffee +10 -0
  168. data/site/source/app/assets/javascripts/docs/views/pages/examples_browser.coffee +102 -0
  169. data/site/source/app/assets/javascripts/docs/views/pages/examples_browser/docs.coffee +12 -0
  170. data/site/source/app/assets/javascripts/docs/views/pages/examples_browser/source.coffee +13 -0
  171. data/site/source/app/assets/javascripts/docs/views/pages/home.coffee +10 -0
  172. data/site/source/app/assets/javascripts/docs/views/views/api_browser/index.coffee +43 -0
  173. data/site/source/app/assets/javascripts/docs/views/views/collection_view_examples/grid_layout_view_example.coffee +14 -0
  174. data/site/source/app/assets/javascripts/docs/views/views/collection_view_examples/table_view_example.coffee +39 -0
  175. data/site/source/app/assets/javascripts/docs/views/views/form_view_examples/basic_example.coffee +38 -0
  176. data/site/source/app/assets/javascripts/docs/views/views/form_view_examples/complex_layout.coffee +110 -0
  177. data/site/source/app/assets/javascripts/docs/views/views/top_navigation.coffee +6 -0
  178. data/site/source/app/assets/javascripts/luca-docs.js +1 -0
  179. data/site/source/app/assets/javascripts/luca-framework-documentation.js +1 -0
  180. data/site/source/app/assets/javascripts/site.js.coffee +4 -0
  181. data/site/source/app/assets/javascripts/vendor/codemirror.js +4786 -0
  182. data/site/source/app/assets/javascripts/vendor/coffeescript.js +346 -0
  183. data/site/source/app/assets/javascripts/vendor/css.js +465 -0
  184. data/site/source/app/assets/javascripts/vendor/htmlmixed.js +84 -0
  185. data/site/source/app/assets/javascripts/vendor/javascript.js +422 -0
  186. data/site/source/app/assets/javascripts/vendor/js-beautify.js +1353 -0
  187. data/site/source/app/assets/javascripts/vendor/modernizr-2.6.1.min.js +4 -0
  188. data/site/source/app/assets/javascripts/vendor/vim.js +2511 -0
  189. data/site/source/app/assets/stylesheets/docs/api-browser.css.scss +5 -0
  190. data/site/source/app/assets/stylesheets/docs/application.css.scss +35 -0
  191. data/site/source/app/assets/stylesheets/docs/browse-source.css.scss +5 -0
  192. data/site/source/app/assets/stylesheets/docs/scrollable-table.css.scss +5 -0
  193. data/site/source/app/assets/stylesheets/site.css.scss +2 -0
  194. data/site/source/app/assets/stylesheets/vendor/codemirror.css +240 -0
  195. data/site/source/app/assets/stylesheets/vendor/prettify-tomorrow-night-bright.css +160 -0
  196. data/site/source/app/assets/stylesheets/vendor/twilight.css +26 -0
  197. data/site/source/crossdomain.xml +15 -0
  198. data/site/source/documentation.html.haml +1 -0
  199. data/site/source/favicon_base.png +0 -0
  200. data/site/source/humans.txt +15 -0
  201. data/site/source/images/background.png +0 -0
  202. data/site/source/images/middleman.png +0 -0
  203. data/site/source/index.html.haml +1 -0
  204. data/site/source/layouts/layout.haml +55 -0
  205. data/site/source/readme.md +63 -0
  206. data/site/source/robots.txt +3 -0
  207. data/spec/{components/grid_view_spec.coffee → javascripts/components/application_spec.coffee} +0 -0
  208. data/spec/{components/pagination_control_spec.coffee → javascripts/components/collection_loader_view_spec.coffee} +0 -0
  209. data/spec/{components → javascripts/components}/collection_view_spec.coffee +1 -1
  210. data/spec/{components → javascripts/components}/controller_spec.coffee +0 -0
  211. data/spec/{components → javascripts/components}/fields/checkbox_array_spec.coffee +0 -0
  212. data/spec/javascripts/components/form_view_spec.coffee +162 -0
  213. data/spec/{components/record_manager_spec.coffee → javascripts/components/grid_view_spec.coffee} +0 -0
  214. data/spec/{components → javascripts/components}/multi_collection_view_spec.coffee +0 -0
  215. data/spec/{components/template_spec.coffee → javascripts/components/pagination_control_spec.coffee} +0 -0
  216. data/spec/{concerns/paginatable_spec.coffee → javascripts/components/record_manager_spec.coffee} +0 -0
  217. data/spec/{components → javascripts/components}/table_view_spec.coffee +0 -0
  218. data/spec/{containers/modal_view_spec.coffee → javascripts/components/template_spec.coffee} +0 -0
  219. data/spec/{concerns → javascripts/concerns}/collection_event_bindings_spec.coffee +0 -0
  220. data/spec/{concerns → javascripts/concerns}/dom_helpers_spec.coffee +0 -0
  221. data/spec/{concerns → javascripts/concerns}/filterable_spec.coffee +0 -0
  222. data/spec/{concerns → javascripts/concerns}/model_presenter_spec.coffee +0 -0
  223. data/spec/{containers/panel_view_spec.coffee → javascripts/concerns/paginatable_spec.coffee} +0 -0
  224. data/spec/{concerns → javascripts/concerns}/state_model_spec.coffee +5 -0
  225. data/spec/javascripts/containers/card_view_spec.coffee +108 -0
  226. data/spec/{containers/tab_view_spec.coffee → javascripts/containers/modal_view_spec.coffee} +0 -0
  227. data/spec/{containers/viewport_spec.coffee → javascripts/containers/panel_view_spec.coffee} +0 -0
  228. data/spec/{core/observer_spec.coffee → javascripts/containers/tab_view_spec.coffee} +0 -0
  229. data/spec/{managers/socket_manager_spec.coffee → javascripts/containers/viewport_spec.coffee} +0 -0
  230. data/spec/{core → javascripts/core}/collection_spec.coffee +1 -1
  231. data/spec/{core → javascripts/core}/concerns_spec.coffee +0 -0
  232. data/spec/{core → javascripts/core}/container_spec.coffee +0 -0
  233. data/spec/{core → javascripts/core}/define_spec.coffee +0 -0
  234. data/spec/{core → javascripts/core}/events_spec.coffee +0 -0
  235. data/spec/{core → javascripts/core}/field_spec.coffee +0 -0
  236. data/spec/{core → javascripts/core}/framework_spec.coffee +0 -0
  237. data/spec/{core → javascripts/core}/model_spec.coffee +0 -0
  238. data/spec/javascripts/core/observer_spec.coffee +0 -0
  239. data/spec/{core → javascripts/core}/util_spec.coffee +0 -0
  240. data/spec/{core → javascripts/core}/view_spec.coffee +51 -39
  241. data/spec/{dependencies → javascripts/dependencies}/index.coffee +0 -0
  242. data/spec/{dependencies → javascripts/dependencies}/jasmine-html.js +0 -0
  243. data/spec/{dependencies → javascripts/dependencies}/jasmine.js +0 -0
  244. data/spec/{dependencies → javascripts/dependencies}/sinon.js +0 -0
  245. data/spec/{helper.coffee → javascripts/helper.coffee} +0 -0
  246. data/spec/{managers → javascripts/managers}/collection_manager_spec.coffee +0 -0
  247. data/spec/javascripts/managers/socket_manager_spec.coffee +0 -0
  248. data/spec/lib/component_definition_spec.rb +63 -0
  249. data/spec/lib/input_compiler_spec.rb +9 -0
  250. data/spec/lib/luca_application_spec.rb +30 -0
  251. data/spec/support/fixtures/application.coffee +45 -0
  252. data/spec/support/fixtures/component.coffee +34 -0
  253. data/tutorials/component-definitions.md +0 -0
  254. data/tutorials/component-definitions/01_intro.md +0 -0
  255. data/tutorials/component-driven-design.md +140 -0
  256. data/tutorials/structure-of-a-project.md +63 -0
  257. data/vendor/assets/javascripts/backbone-min.js +37 -33
  258. data/vendor/assets/javascripts/backbone-query.min.js +1 -1
  259. data/vendor/assets/javascripts/hogan.js +707 -0
  260. data/vendor/assets/javascripts/jquery.js +5 -4
  261. data/vendor/assets/javascripts/keymaster.min.js +4 -0
  262. data/vendor/assets/javascripts/luca-dependencies.min.js +8 -0
  263. data/vendor/assets/javascripts/luca-development.min.js +1 -0
  264. data/vendor/assets/javascripts/luca-spec.js +6 -6
  265. data/vendor/assets/javascripts/luca-ui.js +7386 -0
  266. data/vendor/assets/javascripts/luca-ui.min.js +5 -0
  267. data/vendor/assets/javascripts/luca.full.min.js +12 -0
  268. data/vendor/assets/javascripts/luca.min.js +5 -0
  269. data/vendor/assets/javascripts/underscore-min.js +1 -5
  270. data/vendor/assets/javascripts/underscore-string.min.js +1 -1
  271. data/vendor/assets/stylesheets/luca-components.css +202 -0
  272. data/vendor/assets/stylesheets/luca-development.css +23 -0
  273. data/vendor/assets/stylesheets/luca-ui.css +198 -0
  274. metadata +324 -94
  275. data/app/assets/javascripts/luca/components/base_toolbar.coffee +0 -17
  276. data/app/assets/javascripts/luca/components/form_button_toolbar.coffee +0 -28
  277. data/app/assets/javascripts/luca/components/grid_view.coffee +0 -269
  278. data/app/assets/javascripts/luca/components/page_controller.coffee +0 -7
  279. data/app/assets/javascripts/luca/components/template.coffee +0 -5
  280. data/app/assets/javascripts/luca/components/toolbar_dialog.coffee +0 -25
  281. data/lib/luca/code_browser.rb +0 -55
  282. data/lib/luca/command_line.rb +0 -69
  283. data/lib/luca/component_documentation.rb +0 -72
  284. data/site/assets/bootstrap.min.js +0 -7
  285. data/site/assets/dependencies.js +0 -94
  286. data/site/assets/glyphicons-halflings-white.png +0 -0
  287. data/site/assets/glyphicons-halflings.png +0 -0
  288. data/site/assets/luca-ui-bootstrap.css +0 -1331
  289. data/site/assets/luca-ui-bootstrap.js +0 -9
  290. data/site/assets/luca-ui-development-tools.css +0 -234
  291. data/site/assets/luca-ui-development-tools.js +0 -18561
  292. data/site/assets/luca-ui-development-tools.min.js +0 -15
  293. data/site/assets/luca-ui-full.min.js +0 -8
  294. data/site/assets/luca-ui.min.js +0 -4
  295. data/site/assets/sandbox.css +0 -62
  296. data/site/assets/sandbox.js +0 -469
  297. data/site/docs/application.html +0 -41
  298. data/site/docs/caching.html +0 -43
  299. data/site/docs/collection.html +0 -75
  300. data/site/docs/collection_manager.html +0 -71
  301. data/site/docs/containers.html +0 -118
  302. data/site/docs/events.html +0 -153
  303. data/site/docs/view.html +0 -128
  304. data/site/img/glyphicons-halflings-white.png +0 -0
  305. data/site/img/glyphicons-halflings.png +0 -0
  306. data/site/index.html +0 -20
  307. data/site/source-map.js +0 -1
  308. data/spec/components/form_view_spec.coffee +0 -84
  309. data/spec/containers/card_view_spec.coffee +0 -50
  310. data/spec/luca-spec.coffee +0 -9
data/CHANGELOG CHANGED
@@ -238,3 +238,52 @@
238
238
  - Added Sortable Concern
239
239
  - Added Luca.log()
240
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 @_inheritEvents property on their prototypes will have
279
+ that event configuration persist into @events of views which extend from them
280
+
281
+ 0.9.9
282
+ - Added luca executable which includes:
283
+ - documentation generator
284
+ - sync command for running Luca.CodeSyncManager in development
285
+ - Removes some unused components
286
+ - API changes for Luca.components.Controller
287
+ - Removing rails dependencies
288
+ - Middleman site for documentation and examples
289
+ - Improving documentation for core components
data/Gemfile CHANGED
@@ -4,10 +4,17 @@ gem "sinatra", :require => "sinatra/base"
4
4
  gem 'coffee-script', '>= 2.2.0'
5
5
  gem "uglifier", '>= 1.0.3'
6
6
  gem "sass", '>= 3.1.10'
7
- gem "sprockets", '>= 2.0.2'
7
+ gem "sprockets", ">= 2.4.5"
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 'activesupport', '>= 3.2.12'
15
+ gem 'listen'
16
+ gem 'faye'
17
+ gem 'thin'
11
18
 
12
19
  group :test, :development do
13
20
  gem 'faker'
data/Gemfile.lock CHANGED
@@ -1,106 +1,150 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ activesupport (3.2.12)
5
+ i18n (~> 0.6)
6
+ multi_json (~> 1.0)
4
7
  addressable (2.3.2)
5
- childprocess (0.3.1)
6
- ffi (~> 1.0.6)
7
- coderay (0.9.8)
8
+ childprocess (0.3.8)
9
+ ffi (~> 1.0, >= 1.0.11)
10
+ coderay (1.0.9)
8
11
  coffee-script (2.2.0)
9
12
  coffee-script-source
10
13
  execjs
11
- coffee-script-source (1.2.0)
14
+ coffee-script-source (1.4.0)
15
+ cookiejar (0.3.0)
16
+ daemons (1.1.9)
12
17
  diff-lcs (1.1.3)
13
- ejs (1.0.0)
14
- execjs (1.2.13)
18
+ ejs (1.1.1)
19
+ em-http-request (1.0.3)
20
+ addressable (>= 2.2.3)
21
+ cookiejar
22
+ em-socksify
23
+ eventmachine (>= 1.0.0.beta.4)
24
+ http_parser.rb (>= 0.5.3)
25
+ em-socksify (0.2.1)
26
+ eventmachine (>= 1.0.0.beta.4)
27
+ eventmachine (1.0.0)
28
+ execjs (1.4.0)
15
29
  multi_json (~> 1.0)
16
- faker (1.0.1)
17
- i18n (~> 0.4)
18
- ffi (1.0.11)
19
- guard (0.9.2)
20
- ffi (>= 0.5.0)
21
- thor (~> 0.14.6)
22
- guard-jasmine (0.9.13)
30
+ faker (1.1.2)
31
+ i18n (~> 0.5)
32
+ faye (0.8.8)
33
+ cookiejar (>= 0.3.0)
34
+ em-http-request (>= 0.3.0)
35
+ eventmachine (>= 0.12.0)
36
+ faye-websocket (>= 0.4.0)
37
+ rack (>= 1.0.0)
38
+ yajl-ruby (>= 1.0.0)
39
+ faye-websocket (0.4.7)
40
+ eventmachine (>= 0.12.0)
41
+ ffi (1.4.0)
42
+ guard (1.6.2)
43
+ listen (>= 0.6.0)
44
+ lumberjack (>= 1.0.2)
45
+ pry (>= 0.9.10)
46
+ terminal-table (>= 1.4.3)
47
+ thor (>= 0.14.6)
48
+ guard-jasmine (1.13.0)
23
49
  childprocess
24
- guard (>= 0.8.3)
50
+ guard (>= 1.1.0)
25
51
  multi_json
26
52
  thor
27
53
  guard-sprockets2 (0.0.6)
28
54
  guard
29
55
  sprockets (~> 2.0)
30
- haml (3.1.4)
56
+ haml (4.0.0)
57
+ tilt
58
+ haml_assets (0.2.1)
59
+ haml
60
+ tilt
31
61
  hike (1.2.1)
32
- i18n (0.6.0)
33
- jasmine (1.3.0)
34
- jasmine-core (>= 1.3.0)
62
+ hogan_assets (1.5.0)
63
+ execjs (>= 1.2.9)
64
+ sprockets (>= 2.0.3)
65
+ tilt (>= 1.3.3)
66
+ http_parser.rb (0.5.3)
67
+ i18n (0.6.1)
68
+ jasmine (1.3.1)
69
+ jasmine-core (~> 1.3.1)
35
70
  rack (~> 1.0)
36
71
  rspec (>= 1.3.1)
37
72
  selenium-webdriver (>= 0.1.3)
38
- jasmine-core (1.3.0)
39
- libwebsocket (0.1.7.1)
40
- addressable
41
- websocket
42
- method_source (0.6.7)
43
- ruby_parser (>= 2.3.1)
44
- multi_json (1.0.4)
45
- pry (0.9.7.4)
46
- coderay (~> 0.9.8)
47
- method_source (~> 0.6.7)
48
- ruby_parser (>= 2.3.1)
49
- slop (~> 2.1.0)
50
- rack (1.3.5)
51
- rack-protection (1.1.4)
73
+ jasmine-core (1.3.1)
74
+ listen (0.7.2)
75
+ lumberjack (1.0.2)
76
+ method_source (0.8.1)
77
+ multi_json (1.6.1)
78
+ pry (0.9.12)
79
+ coderay (~> 1.0.5)
80
+ method_source (~> 0.8)
81
+ slop (~> 3.4)
82
+ rack (1.5.2)
83
+ rack-protection (1.3.2)
52
84
  rack
53
- rake (0.9.2.2)
54
- rb-fsevent (0.9.1)
85
+ rake (10.0.3)
86
+ rb-fsevent (0.9.3)
87
+ redcarpet (2.2.2)
55
88
  rspec (2.12.0)
56
89
  rspec-core (~> 2.12.0)
57
90
  rspec-expectations (~> 2.12.0)
58
91
  rspec-mocks (~> 2.12.0)
59
- rspec-core (2.12.0)
60
- rspec-expectations (2.12.0)
92
+ rspec-core (2.12.2)
93
+ rspec-expectations (2.12.1)
61
94
  diff-lcs (~> 1.1.3)
62
- rspec-mocks (2.12.0)
63
- ruby_parser (2.3.1)
64
- sexp_processor (~> 3.0)
95
+ rspec-mocks (2.12.2)
65
96
  rubyzip (0.9.9)
66
- sass (3.1.12)
67
- selenium-webdriver (2.26.0)
97
+ sass (3.2.5)
98
+ selenium-webdriver (2.30.0)
68
99
  childprocess (>= 0.2.5)
69
- libwebsocket (~> 0.1.3)
70
100
  multi_json (~> 1.0)
71
101
  rubyzip
72
- sexp_processor (3.0.9)
73
- sinatra (1.3.1)
74
- rack (~> 1.3, >= 1.3.4)
75
- rack-protection (~> 1.1, >= 1.1.2)
102
+ websocket (~> 1.0.4)
103
+ sinatra (1.3.4)
104
+ rack (~> 1.4)
105
+ rack-protection (~> 1.3)
76
106
  tilt (~> 1.3, >= 1.3.3)
77
- slop (2.1.0)
78
- sprockets (2.1.2)
107
+ slop (3.4.3)
108
+ sprockets (2.8.2)
79
109
  hike (~> 1.2)
110
+ multi_json (~> 1.0)
80
111
  rack (~> 1.0)
81
112
  tilt (~> 1.1, != 1.3.0)
82
- thor (0.14.6)
113
+ terminal-table (1.4.5)
114
+ thin (1.5.0)
115
+ daemons (>= 1.0.9)
116
+ eventmachine (>= 0.12.6)
117
+ rack (>= 1.0.0)
118
+ thor (0.17.0)
83
119
  tilt (1.3.3)
84
- uglifier (1.2.0)
120
+ uglifier (1.3.0)
85
121
  execjs (>= 0.3.0)
86
- multi_json (>= 1.0.2)
87
- websocket (1.0.4)
122
+ multi_json (~> 1.0, >= 1.0.2)
123
+ websocket (1.0.7)
124
+ yajl-ruby (1.1.0)
88
125
 
89
126
  PLATFORMS
90
127
  ruby
91
128
 
92
129
  DEPENDENCIES
130
+ activesupport (>= 3.2.12)
93
131
  coffee-script (>= 2.2.0)
94
132
  ejs
95
133
  faker
134
+ faye
96
135
  guard-jasmine
97
136
  guard-sprockets2
98
137
  haml
138
+ haml_assets
139
+ hogan_assets
99
140
  jasmine
141
+ listen
100
142
  pry
101
143
  rake
102
144
  rb-fsevent (>= 0.9.1)
145
+ redcarpet
103
146
  sass (>= 3.1.10)
104
147
  sinatra
105
- sprockets (>= 2.0.2)
148
+ sprockets (>= 2.4.5)
149
+ thin
106
150
  uglifier (>= 1.0.3)
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
@@ -78,22 +78,11 @@ To generate Luca application skeleton run:
78
78
  `rails generate luca:application <app_name>`
79
79
  This will generate a controller, view, route, and the Luca application structure under assets/javascripts/<app_name>
80
80
 
81
- ## Interactive Documentation and Examples
82
-
83
- [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.
84
83
 
85
84
  ## Thanks To
85
+ @jashkenas, @davidgtonge, @twitter, @madrobby, et al.
86
86
 
87
- @jashkenas for making coffeescript, underscore, backbone.js.
88
-
89
- @twitter for making bootstrap 2.0
90
-
91
- @davidtonge for making backbone-query
92
-
93
- @benchprep for giving me the freedom
94
-
95
- @luca. who i spent only two minutes making and am exponentially more proud to have created.
96
-
97
- ## Contributing
98
-
99
- Please!
87
+ ## Contributors
88
+ @tjbladez, @grilix, @nick-desteffen
data/ROADMAP CHANGED
@@ -1,10 +1,16 @@
1
- Luca.Collection.query
2
- - add function pipeline to run filter, and options
3
- objects through. anything can inject itself
4
- into the pipeline.
5
-
6
- basically, remove this from the view.
7
-
8
- - write a backbone-query -> squeel -> activerecord bridge
9
-
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
10
11
 
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
@@ -2,104 +2,53 @@
2
2
  task :environment do
3
3
  require './app'
4
4
  require 'pry'
5
+ require 'luca'
5
6
  end
6
7
 
7
8
 
8
9
  stylesheets = ["luca-ui-bootstrap.css","luca-ui-development-tools.css","sandbox.css"]
9
10
  scripts = ["dependencies.js","sandbox.js"]
10
11
 
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
12
  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
-
13
+ desc "Zip up the assets"
14
+ task :zip => :environment do
15
+ `cp vendor/assets/javascripts/luca.min.js vendor/assets/javascripts/luca-dependencies.min.js vendor/assets/stylesheets/luca-ui.css .`
16
+ `zip downloads/luca-#{ Luca::Version }.zip luca.min.js luca-dependencies.min.js luca-ui.css`
17
+ `rm luca-ui.css luca.min.js luca-dependencies.min.js`
69
18
  end
70
19
 
20
+ desc "Compile and Minify"
21
+ task :all => [:assets,:minify,:zip]
71
22
  desc "Compile all the assets"
72
23
  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)
24
+ File.open( File.join(App.root,'vendor','assets','stylesheets','luca-development.css'), 'w+' ) do |fh|
25
+ fh.puts(App.sprockets["luca/development.css"].to_s)
75
26
  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)
27
+ File.open( File.join(App.root,'vendor','assets','stylesheets','luca-components.css'), 'w+' ) do |fh|
28
+ fh.puts(App.sprockets["luca.css"].to_s)
79
29
  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)
30
+ File.open( File.join(App.root,'tmp','luca.js'), 'w+' ) do |fh|
31
+ fh.puts(App.sprockets["luca.js"].to_s)
83
32
  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)
33
+ File.open( File.join(App.root,'tmp','luca-development.js'), 'w+' ) do |fh|
34
+ fh.puts(App.sprockets["luca/development.js"].to_s)
87
35
  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)
36
+ File.open( File.join(App.root,'tmp','luca-dependencies.js'), 'w+' ) do |fh|
37
+ fh.puts(App.sprockets["luca/dependencies.js"].to_s)
91
38
  end
92
39
  end
93
40
 
94
41
  desc "Minify the assets"
95
42
  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`
43
+ `uglifyjs tmp/luca.js > vendor/assets/javascripts/luca.min.js`
44
+ `uglifyjs tmp/luca-development.js > vendor/assets/javascripts/luca-development.min.js`
45
+ `uglifyjs tmp/luca-dependencies.js > vendor/assets/javascripts/luca-dependencies.min.js`
46
+ `cat vendor/assets/javascripts/luca-dependencies.min.js vendor/assets/javascripts/luca.min.js > vendor/assets/javascripts/luca.full.min.js`
47
+ `rm tmp/*.js`
99
48
  end
100
49
 
101
50
  desc "Build the gem"
102
- task :gem do
51
+ task :gem => [:assets,:minify,:zip] do
103
52
  `gem build luca.gemspec`
104
53
  end
105
54