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
@@ -39,9 +39,14 @@ describe "The Card View", ->
39
39
 
40
40
  it "shouldn't fire first activation on a component", ->
41
41
  expect( @cardView.find("two")?.firstActivation ).not.toHaveBeenCalled()
42
+ expect( @cardView.find("two") ).not.toHaveTriggered("first:activation")
42
43
 
43
44
  it "should fire firstActivation on a component", ->
45
+ console.log "Card Viw", @cardView.find("two"), @cardView.find("two").previously_activated, @cardView.find("two").rendered
46
+
47
+
44
48
  @cardView.activate("two")
49
+ expect( @cardView.find("two") ).toHaveTriggered("first:activation")
45
50
  expect( @cardView.find("two")?.firstActivation ).toHaveBeenCalled()
46
51
 
47
52
  it "should fire deactivation on a component", ->
@@ -260,6 +260,31 @@ describe "The Model Bootstrap", ->
260
260
  expect( spy.called ).toBeTruthy()
261
261
 
262
262
 
263
+ describe "Base Params on the URL Method", ->
264
+ beforeEach ->
265
+ @collection = new Luca.Collection [],
266
+ url: ()-> "/url/to/endpoint"
267
+
268
+ afterEach ->
269
+ Luca.Collection.resetBaseParams()
270
+
271
+ it "should work with strings too", ->
272
+ collection = new Luca.Collection [], url: "/string/based/url"
273
+ expect( collection.url ).toEqual "/string/based/url"
274
+
275
+ it "should include base params in the url", ->
276
+ Luca.Collection.baseParams(base:"value")
277
+ expect( @collection.url() ).toEqual '/url/to/endpoint?base=value'
278
+
279
+ it "should include params in the url", ->
280
+ @collection.applyParams(param:"value")
281
+ expect( @collection.url() ).toEqual '/url/to/endpoint?param=value'
282
+
283
+ it "should include one time params, in addition to base params", ->
284
+ Luca.Collection.baseParams(base:"value")
285
+ @collection.applyParams(one:"time")
286
+ expect( @collection.url() ).toEqual "/url/to/endpoint?base=value&one=time"
287
+
263
288
 
264
289
 
265
290
 
@@ -1,6 +1,6 @@
1
1
  describe 'The Luca Container', ->
2
2
  beforeEach ->
3
- c = @container = new Luca.core.Container
3
+ c = @container = new Luca.Container
4
4
  defaults:
5
5
  defaultProperty: 'it_works'
6
6
  extensions:[
@@ -43,6 +43,8 @@ describe 'The Luca Container', ->
43
43
  ]
44
44
  ]
45
45
 
46
+ @container.on "before:attach", ()->
47
+ console.log "before attach", @, arguments
46
48
  @container.render()
47
49
 
48
50
  it "should create getter methods on the for components with roles", ->
@@ -98,7 +100,7 @@ describe 'The Luca Container', ->
98
100
 
99
101
  describe 'Component Inheritance and Customization', ->
100
102
  it "should accept an array for extensions configuration and join on position/index", ->
101
- container = new Luca.core.Container
103
+ container = new Luca.Container
102
104
  extensions:[
103
105
  undefined
104
106
  ,
@@ -117,7 +119,7 @@ describe 'Component Inheritance and Customization', ->
117
119
  expect( container.getComponentTwo().name ).toEqual "custom_two"
118
120
 
119
121
  it "should accept an object for extensions configuration and join using role", ->
120
- container = new Luca.core.Container
122
+ container = new Luca.Container
121
123
  extensions:
122
124
  component_one:
123
125
  name: "custom_one"
@@ -135,7 +137,7 @@ describe 'Component Inheritance and Customization', ->
135
137
 
136
138
  describe 'Component Event Binding', ->
137
139
  beforeEach ->
138
- @container = new Luca.core.Container
140
+ @container = new Luca.Container
139
141
  componentEvents:
140
142
  "haha trigger:one" : "one"
141
143
  "alpha trigger:two" : "two"
@@ -162,7 +164,7 @@ describe 'Component Event Binding', ->
162
164
  @getGamma().trigger("after:render:gamma")
163
165
 
164
166
  registerComponentEvents: ()->
165
- Luca.core.Container::registerComponentEvents.apply(@, arguments)
167
+ Luca.Container::registerComponentEvents.apply(@, arguments)
166
168
 
167
169
  components:[
168
170
  name: "component_alpha"
@@ -237,7 +239,7 @@ describe 'Component Event Binding', ->
237
239
 
238
240
  describe 'Parent Container Tracking', ->
239
241
  nestedContainer = Luca.register("Luca.components.NestedSpec")
240
- nestedContainer.extends("Luca.core.Container")
242
+ nestedContainer.extends("Luca.Container")
241
243
  nestedContainer.defines
242
244
  name: "nested_container"
243
245
  components:[
@@ -0,0 +1,26 @@
1
+ describe 'The Event Helpers', ->
2
+ describe 'The Event Relayer', ->
3
+ beforeEach ->
4
+ @a = new Luca.View(name:"a")
5
+ @b = new Luca.View(name:"b")
6
+
7
+ (new Luca.EventRelayer
8
+ target: @a
9
+ source: @b
10
+ prefix: "prefix"
11
+ events:[
12
+ "event:one"
13
+ "event:two"
14
+ "event:three"
15
+ ]).setup()
16
+
17
+ xit 'should relay events from component a to component b', ->
18
+ @b.trigger("event:one")
19
+ @b.trigger("event:two")
20
+ @b.trigger("event:three")
21
+
22
+ expect( @a ).toHaveTriggered("prefix:event:one")
23
+ expect( @a ).toHaveTriggered("prefix:event:two")
24
+ expect( @a ).toHaveTriggered("prefix:event:three")
25
+
26
+
File without changes
@@ -1,4 +1,4 @@
1
- #= require "./helper"
1
+ #= require "../helper"
2
2
 
3
3
  describe "The Luca Framework", ->
4
4
  it "should specify a version", ->
File without changes
@@ -1,9 +1,9 @@
1
1
  describe 'The Luca Utilities', ->
2
2
  describe "Converting from component class to css class", ->
3
3
  it "should produce a css class from the component class name", ->
4
- component = "Luca.core.Container"
4
+ component = "Luca.Container"
5
5
  cssClass = Luca.util.toCssClass(component)
6
- expect( cssClass ).toEqual 'luca-core-container'
6
+ expect( cssClass ).toEqual 'luca-container'
7
7
 
8
8
  it "should produce a css class from the component class name", ->
9
9
  component = "Luca.components.MultiCollectionView"
@@ -1,3 +1,116 @@
1
+ describe "Inheriting Events", ->
2
+ beforeEach ->
3
+ eventTester = Luca.register("Luca.EventTester").extends("Luca.View")
4
+ eventTester.defines
5
+ _events:
6
+ "click input" : "clickHandler"
7
+
8
+ bodyTemplate: ()->
9
+ "<input type='text' />"
10
+
11
+ clickHandler: ()->
12
+ @trigger("clicked:on:me")
13
+
14
+ inheritor = Luca.register("Luca.EventInheritor").extends("Luca.EventTester")
15
+ inheritor.defines
16
+ events:
17
+ "blur input": "blurHandler"
18
+
19
+ hmm: ()->
20
+ @trigger("hmm:what")
21
+
22
+ blurHandler: ()->
23
+ @trigger("blurred:me")
24
+
25
+ it "should register event handlers", ->
26
+ view = new Luca.EventInheritor()
27
+ view.render()
28
+ view.registerEvent("keydown input", "hmm")
29
+ expect( view.events["keydown input"] ).toEqual "hmm"
30
+
31
+ it "should register event handlers", ->
32
+ view = new Luca.EventInheritor()
33
+ view.render()
34
+ expect( _(view.events).keys().length ).toEqual 2
35
+
36
+ it "should inherit dom events defined under _events", ->
37
+ view = new Luca.EventInheritor()
38
+ view.render()
39
+ view.$('input').trigger("click")
40
+ expect( view ).toHaveTriggered("clicked:on:me")
41
+
42
+ it "should rely on events as normal", ->
43
+ view = new Luca.EventInheritor()
44
+ view.render()
45
+ view.$('input').trigger("blur")
46
+ expect( view ).toHaveTriggered("blurred:me")
47
+
48
+
49
+
50
+
51
+ # In order to maintain backward compatibility with older apps,
52
+ # I feel compelled to keep around the old deferrable hack job that is in place.
53
+ #
54
+ # However, selectively, I will go through and upgrade the way
55
+ # render() gets wrapped on luca components, so that the API is easier
56
+ # to understand.
57
+ describe 'Rendering Strategies', ->
58
+ Luca.View.renderStrategies.spy = sinon.spy()
59
+ Luca.View.renderStrategies.spec = (_userSpecified)->
60
+ _userSpecified.call(@)
61
+ @trigger "strategy:trigger"
62
+ @
63
+
64
+ window.AlternativeRenderingStrategy = Luca.View.extend
65
+ renderStrategy: "spec"
66
+ render: ( window.strategySpy = sinon.spy() )
67
+
68
+ it "should use a different strategy", ->
69
+ view = new AlternativeRenderingStrategy(renderStrategy: "spy")
70
+ view.render()
71
+ expect( Luca.View.renderStrategies.spy ).toHaveBeenCalled()
72
+
73
+ it "should use a different strategy", ->
74
+ view = new AlternativeRenderingStrategy()
75
+ view.render()
76
+ expect( view ).toHaveTriggered("strategy:trigger")
77
+
78
+ it "should call the user specified method", ->
79
+ view = new AlternativeRenderingStrategy()
80
+ view.render()
81
+ expect( window.strategySpy ).toHaveBeenCalled()
82
+
83
+ # The improved rendering strategy is just that a view should be able
84
+ # to get rendered(), fire its beforeRender hooks, and then defer the
85
+ # 'expensive' part of the render
86
+
87
+ describe 'The Improved Rendering Strategy', ->
88
+ window.ImprovedRenderer = Luca.View.extend
89
+ renderStrategy: "improved"
90
+ render: ()->
91
+ window.improvedRenderSpy.call(@)
92
+
93
+ beforeEach ->
94
+ window.improvedRenderSpy = sinon.spy()
95
+
96
+ xit "should pause rendering if configured to be deferrable", ->
97
+ view = new ImprovedRenderer(deferrable:"wait:for:this")
98
+ view.render()
99
+ expect( view ).not.toHaveTriggered "after:render"
100
+
101
+ xit "should render normally if not configured to be deferrable", ->
102
+ view = new Luca.View(renderStrategy:"improved")
103
+ view.render()
104
+ expect( view ).toHaveTriggered("after:render")
105
+
106
+ xit "should resume rendering if configured to be deferrable", ->
107
+ view = new ImprovedRenderer(deferrable:"wait:for:this")
108
+ view.render()
109
+ view.trigger "wait:for:this"
110
+ expect( view ).toHaveTriggered("after:render")
111
+
112
+
113
+
1
114
  describe "Luca.View", ->
2
115
  it "should be defined", ->
3
116
  expect(Luca.View).toBeDefined()
@@ -38,43 +151,6 @@ describe "Luca.View", ->
38
151
  view = new Luca.View(additionalClassNames:"yes-yes yall")
39
152
  expect( view.$el.is(".yes-yes.yall") ).toEqual true
40
153
 
41
-
42
- describe "Development Tool Helpers", ->
43
- beforeEach ->
44
- _.def("Luca.views.IntrospectionView").extends("Luca.View").with
45
- include:["Luca.DevelopmentToolHelpers"]
46
-
47
- @view = new Luca.views.IntrospectionView
48
- events:
49
- "click .a" : "clickHandler"
50
- "hover .a" : "hoverHandler"
51
-
52
- clickHandler: ()-> "click"
53
- hoverHandler: ()-> "hover"
54
-
55
- collection_one: new Luca.Collection([],name:"collection_one")
56
- collection_two: new Luca.Collection([],name:"collection_two")
57
- view_one: new Luca.View(name:"view_one")
58
- view_two: new Luca.View(name:"view_two")
59
- model_one: new Luca.Model(name:"model_one")
60
- model_two: new Luca.Model(name:"model_two")
61
-
62
- it "should know the names of functions which are event handlers", ->
63
- names = @view.eventHandlerProperties()
64
- expect( names ).toEqual ["clickHandler","hoverHandler"]
65
-
66
- it "should know which properties are other views", ->
67
- viewNames = _( @view.views() ).pluck("name")
68
- expect( viewNames ).toEqual ["view_one","view_two"]
69
-
70
- it "should know which properties are other models", ->
71
- modelNames = _( @view.models() ).map (m)-> m.get('name')
72
- expect( modelNames ).toEqual ["model_one","model_two"]
73
-
74
- it "should know which properties are other collections", ->
75
- collectionNames = _( @view.collections() ).pluck("name")
76
- expect( collectionNames ).toEqual ["collection_one","collection_two"]
77
-
78
154
  describe "DOM Helper Methods", ->
79
155
  it "should use the $html method to inject into the $el", ->
80
156
  view = new Luca.View()
@@ -155,7 +231,7 @@ describe "The Collection Events API", ->
155
231
  @manager ||= new SampleManager()
156
232
  @collection = @manager.getOrCreate("sample")
157
233
 
158
- it "should call the resetHandler callback on the view", ->
234
+ xit "should call the resetHandler callback on the view", ->
159
235
  view = new SampleView()
160
236
  collection = @manager.get("sample")
161
237
  collection.reset([])
@@ -0,0 +1,3 @@
1
+ #= require jasmine
2
+ #= require jasmine-html
3
+ #= require sinon
File without changes
File without changes
@@ -0,0 +1,63 @@
1
+ require "spec_helper"
2
+
3
+ describe ComponentDefinition do
4
+ let(:path) { File.join(Rails.root,"spec","support","fixtures","component.coffee")}
5
+ let(:definition) { ComponentDefinition.new(path) }
6
+
7
+ it "should be valid" do
8
+ definition.should be_valid
9
+ end
10
+
11
+ it "should recognize the class being defined" do
12
+ definition.class_name.should == "Luca.SampleComponent"
13
+ end
14
+
15
+ it "should know the type alias" do
16
+ definition.type_alias.should == "sample_component"
17
+ end
18
+
19
+ it "should be view based" do
20
+ definition.should be_view_based
21
+ end
22
+
23
+ it "should have a css class identifier" do
24
+ definition.css_class_identifier.should == "luca-sample-component"
25
+ end
26
+
27
+ it "should know the class it extends" do
28
+ definition.extends.should == "Luca.View"
29
+ end
30
+
31
+ it "should detect the definition variable name" do
32
+ definition.definition_proxy_variable_name.should == "component"
33
+ end
34
+
35
+ it "should tell me which methods are defined" do
36
+ definition.defines_methods.should == ["methodOne","methodTwo"]
37
+ end
38
+
39
+ it "should tell me which properties are defined" do
40
+ definition.defines_properties.should == ["privateSetting","el","bodyClassName", "publicSetting"]
41
+ end
42
+
43
+ it "should tell me where a method is defined" do
44
+ definition.find_definition_of("methodOne").line_number.should > 0
45
+ end
46
+
47
+ it "should tell me where a property is defined" do
48
+ definition.find_definition_of("privateSetting").line_number.should > 0
49
+ end
50
+
51
+ it "should find the documentation for a method definition" do
52
+ definition.find_comments_above("methodOne").should_not be_empty
53
+ end
54
+
55
+ it "should produce human readable documentation for a method definition" do
56
+ definition.documentation_for("methodOne").should == "here is some documentation for methodOne"
57
+ end
58
+
59
+ it "should not pick up things which aren't documentation" do
60
+ definition.documentation_for("bodyClassName").should == ""
61
+ end
62
+
63
+ end
@@ -0,0 +1,9 @@
1
+ require "spec_helper"
2
+
3
+ describe AssetCompiler do
4
+ xit "should compile coffeescript" do
5
+ input = "console.log(foo) for foo in [1,2,3]"
6
+ compiler = AssetCompiler.new(mode:"coffeescript", input: input)
7
+ compiler.output.should == "haha"
8
+ end
9
+ end
@@ -0,0 +1,30 @@
1
+ require "spec_helper"
2
+
3
+ describe LucaApplication do
4
+ let(:repo) { LucaApplication.new("tools") }
5
+ let(:application_file_path) { File.join(repo.send(:coffeescripts_location),'tools_application.coffee') }
6
+
7
+ it "should retrieve source code for a component" do
8
+ source_length = repo.source_code_for_class("Tools.Application").length
9
+ file_length = File.size( repo.find_definition_file_for_class('Tools.Application') )
10
+ file_length.should be_within(5).of( source_length )
11
+ end
12
+
13
+ it "should map all component definitions to their respective files" do
14
+ map = repo.component_definition_filemap
15
+ map["Tools.Application"].should == application_file_path
16
+ end
17
+
18
+ xit "should find a template object by its filename" do
19
+ end
20
+
21
+ it "should find a component definition by class name" do
22
+ repo.find_component_definition_for_class('Tools.Application').should be_present
23
+ repo.find_component_definition_for_class('Tools.Collection').should be_present
24
+ end
25
+
26
+ it "should detect the namespace" do
27
+ repo.namespace.should == "Tools"
28
+ end
29
+
30
+ end