luca 0.9.2 → 0.9.4

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 (129) hide show
  1. data/.gitignore +1 -0
  2. data/.rvmrc +1 -1
  3. data/CHANGELOG +46 -2
  4. data/Gemfile +1 -1
  5. data/Gemfile.lock +2 -2
  6. data/Guardfile +1 -1
  7. data/README.md +64 -27
  8. data/ROADMAP +17 -2
  9. data/Rakefile +49 -1
  10. data/app.rb +38 -2
  11. data/assets/javascripts/luca-ui-base.coffee +1 -20
  12. data/assets/javascripts/luca-ui-full.js +3 -0
  13. data/assets/javascripts/luca-ui.coffee +0 -5
  14. data/assets/javascripts/sandbox/application.coffee +24 -18
  15. data/assets/javascripts/sandbox/router.coffee +16 -6
  16. data/assets/javascripts/sandbox/templates/builder/component_list.luca +1 -0
  17. data/assets/javascripts/sandbox/templates/builder.luca +2 -0
  18. data/assets/javascripts/sandbox/templates/main.luca +4 -3
  19. data/assets/javascripts/sandbox/templates/sandbox/docs_index.luca +1 -0
  20. data/assets/javascripts/sandbox/templates/sandbox/navigation.luca +6 -1
  21. data/assets/javascripts/sandbox/templates/sandbox/readme.luca +30 -0
  22. data/assets/javascripts/sandbox/views/builder/builder_canvas.coffee +3 -0
  23. data/assets/javascripts/sandbox/views/builder/builder_editor.coffee +6 -0
  24. data/assets/javascripts/sandbox/views/builder/component_list.coffee +38 -0
  25. data/assets/javascripts/sandbox/views/builder/project_browser.coffee +14 -0
  26. data/assets/javascripts/sandbox/views/builder.coffee +133 -0
  27. data/assets/javascripts/sandbox/views/docs_controller.coffee +7 -0
  28. data/assets/javascripts/sandbox/views/inspector/instance_filter.coffee +18 -0
  29. data/assets/javascripts/sandbox/{collections/sample.coffee → views/inspector/instance_list.coffee} +0 -0
  30. data/assets/javascripts/sandbox/views/inspector.coffee +11 -0
  31. data/assets/javascripts/sandbox.coffee +2 -0
  32. data/assets/stylesheets/luca-ui-full.css +3 -0
  33. data/assets/stylesheets/sandbox/builder.scss +79 -0
  34. data/assets/stylesheets/sandbox/sandbox.scss +2 -1
  35. data/docs/application.md +41 -0
  36. data/docs/collection.md +79 -0
  37. data/docs/collection_manager.md +76 -0
  38. data/docs/container_philosophy.md +122 -0
  39. data/docs/event_binding_helpers.md +164 -0
  40. data/docs/method_caching_and_computed_properties.md +77 -0
  41. data/docs/view.md +119 -0
  42. data/lib/luca/rails/version.rb +1 -1
  43. data/lib/luca/template.rb +9 -9
  44. data/site/assets/bootstrap.min.js +7 -0
  45. data/site/assets/luca-ui-bootstrap.css +19 -1
  46. data/site/assets/luca-ui-development-tools.css +10 -0
  47. data/site/assets/luca-ui-development-tools.min.js +15 -0
  48. data/site/assets/luca-ui-full.min.js +8 -0
  49. data/site/assets/luca-ui.min.js +4 -0
  50. data/site/assets/sandbox.css +52 -4
  51. data/site/assets/sandbox.js +368 -30
  52. data/site/docs/application.html +41 -0
  53. data/site/docs/caching.html +43 -0
  54. data/site/docs/collection.html +75 -0
  55. data/site/docs/collection_manager.html +71 -0
  56. data/site/docs/containers.html +118 -0
  57. data/site/docs/events.html +153 -0
  58. data/site/docs/view.html +128 -0
  59. data/site/img/glyphicons-halflings-white.png +0 -0
  60. data/site/img/glyphicons-halflings.png +0 -0
  61. data/site/source-map.js +1 -0
  62. data/spec/core/view_spec.coffee +5 -17
  63. data/spec/managers/collection_manager_spec.coffee +4 -7
  64. data/src/components/application.coffee +202 -77
  65. data/src/components/base_toolbar.coffee +1 -1
  66. data/src/components/collection_view.coffee +38 -10
  67. data/src/components/controller.coffee +24 -1
  68. data/src/components/fields/checkbox_field.coffee +9 -12
  69. data/src/components/fields/label_field.coffee +14 -0
  70. data/src/components/fields/select_field.coffee +2 -2
  71. data/src/components/fields/text_field.coffee +12 -7
  72. data/src/components/fields/type_ahead_field.coffee +1 -0
  73. data/src/components/form_view.coffee +44 -25
  74. data/src/components/page_controller.coffee +2 -0
  75. data/src/containers/card_view.coffee +4 -1
  76. data/src/containers/column_view.coffee +2 -1
  77. data/src/containers/modal_view.coffee +6 -2
  78. data/src/containers/page_view.coffee +2 -0
  79. data/src/containers/panel_toolbar.coffee +0 -5
  80. data/src/containers/viewport.coffee +28 -10
  81. data/src/core/collection.coffee +7 -1
  82. data/src/core/container.coffee +57 -30
  83. data/src/core/core.coffee +0 -186
  84. data/src/core/field.coffee +11 -3
  85. data/src/core/model.coffee +31 -16
  86. data/src/core/panel.coffee +6 -46
  87. data/src/core/registry.coffee +19 -2
  88. data/src/core/script_loader.coffee +32 -0
  89. data/src/core/view.coffee +112 -139
  90. data/src/define.coffee +110 -0
  91. data/src/framework.coffee +8 -2
  92. data/src/luca.coffee +22 -0
  93. data/src/managers/collection_manager.coffee +65 -31
  94. data/src/modules/load_mask.coffee +47 -0
  95. data/src/plugins/development_tool_helpers.coffee +21 -0
  96. data/src/plugins/events.coffee +54 -0
  97. data/src/stylesheets/components/viewport.scss +15 -0
  98. data/src/stylesheets/containers/container.scss +1 -4
  99. data/src/stylesheets/tools/component_tester.scss +18 -0
  100. data/src/templates/fields/select_field.luca +6 -5
  101. data/src/templates/fields/text_field.luca +10 -9
  102. data/src/tools/application_inspector.coffee +2 -0
  103. data/src/tools/coffee_script_editor.coffee +28 -6
  104. data/src/tools/collections/components.coffee +59 -0
  105. data/src/tools/collections/instances.coffee +15 -0
  106. data/src/tools/component_tester.coffee +12 -22
  107. data/src/tools/console.coffee +22 -4
  108. data/src/tools/models/components.coffee +16 -54
  109. data/src/tools/models/instance.coffee +2 -0
  110. data/src/{core/util.coffee → util.coffee} +10 -1
  111. data/vendor/assets/javascripts/luca-ui-base.js +132 -137
  112. data/vendor/assets/javascripts/luca-ui-development-tools.js +191 -219
  113. data/vendor/assets/javascripts/luca-ui-development-tools.min.js +2 -2
  114. data/vendor/assets/javascripts/luca-ui-full.js +4680 -0
  115. data/vendor/assets/javascripts/luca-ui-full.min.js +8 -0
  116. data/vendor/assets/javascripts/luca-ui-spec.js +291 -225
  117. data/vendor/assets/javascripts/luca-ui.js +1001 -724
  118. data/vendor/assets/javascripts/luca-ui.min.js +4 -4
  119. data/vendor/assets/stylesheets/luca-ui-bootstrap.css +19 -1
  120. data/vendor/assets/stylesheets/luca-ui-development-tools.css +10 -0
  121. data/vendor/assets/stylesheets/luca-ui-full.css +1334 -0
  122. data/vendor/assets/stylesheets/luca-ui-spec.css +19 -1
  123. data/vendor/assets/stylesheets/luca-ui.css +19 -1
  124. data/views/index.erb +2 -5
  125. metadata +58 -9
  126. data/lib/sprockets/luca_template.rb +0 -49
  127. data/src/tools/class_browser.coffee +0 -39
  128. data/src/tools/components/class_browser_detail.coffee +0 -10
  129. data/src/tools/components/class_browser_list.coffee +0 -74
@@ -119,8 +119,16 @@
119
119
  .with-mask .load-mask .progress {
120
120
  margin: 50px auto;
121
121
  width: 50%; }
122
+ html.luca-ui-fullscreen, body.luca-ui-fullscreen {
123
+ height: 100%; }
124
+
125
+ .luca-ui-fullscreen .fluid-viewport-wrapper {
126
+ padding-top: 40px; }
127
+ .luca-ui-fullscreen .luca-ui-viewport, .luca-ui-fullscreen .fullscreen-container {
128
+ min-height: 100%;
129
+ height: auto !important;
130
+ height: 100%; }
122
131
  .toolbar-container {
123
- overflow: hidden;
124
132
  clear: both; }
125
133
 
126
134
  .toolbar-container.top {
@@ -558,6 +566,16 @@ ul.typeahead.dropdown-menu {
558
566
  .font-large .CodeMirror {
559
567
  font-size: 18px;
560
568
  line-height: 1.7; }
569
+
570
+ #component_tester #editor_container .toolbar-container.bottom {
571
+ margin: 0px; }
572
+ #component_tester #editor_container .toolbar-container.bottom .luca-ui-toolbar {
573
+ margin: 0px;
574
+ padding: 0px; }
575
+ #component_tester [data-luca-owner="component_detail"] {
576
+ max-height: 600px;
577
+ overflow: scroll;
578
+ min-height: 400px; }
561
579
  .luca-ui-console .CodeMirror {
562
580
  font-family: "Monaco";
563
581
  font-size: 14px;
@@ -119,8 +119,16 @@
119
119
  .with-mask .load-mask .progress {
120
120
  margin: 50px auto;
121
121
  width: 50%; }
122
+ html.luca-ui-fullscreen, body.luca-ui-fullscreen {
123
+ height: 100%; }
124
+
125
+ .luca-ui-fullscreen .fluid-viewport-wrapper {
126
+ padding-top: 40px; }
127
+ .luca-ui-fullscreen .luca-ui-viewport, .luca-ui-fullscreen .fullscreen-container {
128
+ min-height: 100%;
129
+ height: auto !important;
130
+ height: 100%; }
122
131
  .toolbar-container {
123
- overflow: hidden;
124
132
  clear: both; }
125
133
 
126
134
  .toolbar-container.top {
@@ -558,6 +566,16 @@ ul.typeahead.dropdown-menu {
558
566
  .font-large .CodeMirror {
559
567
  font-size: 18px;
560
568
  line-height: 1.7; }
569
+
570
+ #component_tester #editor_container .toolbar-container.bottom {
571
+ margin: 0px; }
572
+ #component_tester #editor_container .toolbar-container.bottom .luca-ui-toolbar {
573
+ margin: 0px;
574
+ padding: 0px; }
575
+ #component_tester [data-luca-owner="component_detail"] {
576
+ max-height: 600px;
577
+ overflow: scroll;
578
+ min-height: 400px; }
561
579
  .luca-ui-console .CodeMirror {
562
580
  font-family: "Monaco";
563
581
  font-size: 14px;
data/views/index.erb CHANGED
@@ -5,17 +5,14 @@
5
5
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
6
6
  <title>Luca. Container Framework For Backbone Views</title>
7
7
  <meta name="viewport" content="width=device-width,initial-scale=1">
8
- <link rel="stylesheet" href="<%= asset_path('luca-ui-bootstrap.css') %>">
8
+ <link rel="stylesheet" href="<%= asset_path('luca-ui-full.css') %>">
9
9
  <link rel="stylesheet" href="<%= asset_path('luca-ui-development-tools.css') %>">
10
10
  <link rel="stylesheet" href="<%= asset_path('sandbox.css') %>">
11
- <link rel="stylesheet" href="<%= asset_path('prettify.css') %>">
12
11
  </head>
13
12
  <body>
14
13
  <div id="viewport"></div>
15
14
 
16
- <script src="<%= asset_path('dependencies.js') %>"></script>
17
- <script src="<%= asset_path('luca-ui-bootstrap.js') %>"></script>
18
- <script src="<%= asset_path('luca-ui.js') %>"></script>
15
+ <script src="<%= asset_path('luca-ui-full.js') %>"></script>
19
16
  <script src="<%= asset_path('luca-ui-development-tools.js') %>"></script>
20
17
  <script src="<%= asset_path('sandbox.js') %>"></script>
21
18
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: luca
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-02 00:00:00.000000000 Z
12
+ date: 2012-11-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
@@ -136,16 +136,29 @@ files:
136
136
  - assets/javascripts/luca-ui-base.coffee
137
137
  - assets/javascripts/luca-ui-bootstrap.js
138
138
  - assets/javascripts/luca-ui-development-tools.coffee
139
+ - assets/javascripts/luca-ui-full.js
139
140
  - assets/javascripts/luca-ui-spec.coffee
140
141
  - assets/javascripts/luca-ui.coffee
141
142
  - assets/javascripts/sandbox.coffee
142
143
  - assets/javascripts/sandbox/application.coffee
143
- - assets/javascripts/sandbox/collections/sample.coffee
144
144
  - assets/javascripts/sandbox/config.coffee
145
145
  - assets/javascripts/sandbox/router.coffee
146
+ - assets/javascripts/sandbox/templates/builder.luca
147
+ - assets/javascripts/sandbox/templates/builder/component_list.luca
146
148
  - assets/javascripts/sandbox/templates/main.luca
147
149
  - assets/javascripts/sandbox/templates/sandbox.luca
150
+ - assets/javascripts/sandbox/templates/sandbox/docs_index.luca
148
151
  - assets/javascripts/sandbox/templates/sandbox/navigation.luca
152
+ - assets/javascripts/sandbox/templates/sandbox/readme.luca
153
+ - assets/javascripts/sandbox/views/builder.coffee
154
+ - assets/javascripts/sandbox/views/builder/builder_canvas.coffee
155
+ - assets/javascripts/sandbox/views/builder/builder_editor.coffee
156
+ - assets/javascripts/sandbox/views/builder/component_list.coffee
157
+ - assets/javascripts/sandbox/views/builder/project_browser.coffee
158
+ - assets/javascripts/sandbox/views/docs_controller.coffee
159
+ - assets/javascripts/sandbox/views/inspector.coffee
160
+ - assets/javascripts/sandbox/views/inspector/instance_filter.coffee
161
+ - assets/javascripts/sandbox/views/inspector/instance_list.coffee
149
162
  - assets/javascripts/sandbox/views/top_navigation.coffee
150
163
  - assets/javascripts/spec-dependencies.coffee
151
164
  - assets/stylesheets/bootstrap-responsive.min.css
@@ -156,15 +169,24 @@ files:
156
169
  - assets/stylesheets/jasmine.css
157
170
  - assets/stylesheets/luca-ui-bootstrap.css
158
171
  - assets/stylesheets/luca-ui-development-tools.css
172
+ - assets/stylesheets/luca-ui-full.css
159
173
  - assets/stylesheets/luca-ui-spec.css
160
174
  - assets/stylesheets/luca-ui.css
161
175
  - assets/stylesheets/prettify.css
162
176
  - assets/stylesheets/sandbox.css
177
+ - assets/stylesheets/sandbox/builder.scss
163
178
  - assets/stylesheets/sandbox/sandbox.scss
164
179
  - assets/stylesheets/themes/amelia-bootstrap.css
165
180
  - assets/stylesheets/themes/slate-bootstrap.css
166
181
  - assets/stylesheets/themes/superhero-bootstrap.css
167
182
  - config.ru
183
+ - docs/application.md
184
+ - docs/collection.md
185
+ - docs/collection_manager.md
186
+ - docs/container_philosophy.md
187
+ - docs/event_binding_helpers.md
188
+ - docs/method_caching_and_computed_properties.md
189
+ - docs/view.md
168
190
  - lib/luca.rb
169
191
  - lib/luca/code_browser.rb
170
192
  - lib/luca/command_line.rb
@@ -173,12 +195,12 @@ files:
173
195
  - lib/luca/rails/version.rb
174
196
  - lib/luca/template.rb
175
197
  - lib/luca/test_harness.rb
176
- - lib/sprockets/luca_template.rb
177
198
  - lib/templates/spec_manifest_javascripts.erb
178
199
  - lib/templates/spec_manifest_stylesheets.erb
179
200
  - luca.gemspec
180
201
  - public/jasmine/index.html
181
202
  - public/sandbox/api.js
203
+ - site/assets/bootstrap.min.js
182
204
  - site/assets/dependencies.js
183
205
  - site/assets/glyphicons-halflings-white.png
184
206
  - site/assets/glyphicons-halflings.png
@@ -186,9 +208,22 @@ files:
186
208
  - site/assets/luca-ui-bootstrap.js
187
209
  - site/assets/luca-ui-development-tools.css
188
210
  - site/assets/luca-ui-development-tools.js
211
+ - site/assets/luca-ui-development-tools.min.js
212
+ - site/assets/luca-ui-full.min.js
213
+ - site/assets/luca-ui.min.js
189
214
  - site/assets/sandbox.css
190
215
  - site/assets/sandbox.js
216
+ - site/docs/application.html
217
+ - site/docs/caching.html
218
+ - site/docs/collection.html
219
+ - site/docs/collection_manager.html
220
+ - site/docs/containers.html
221
+ - site/docs/events.html
222
+ - site/docs/view.html
223
+ - site/img/glyphicons-halflings-white.png
224
+ - site/img/glyphicons-halflings.png
191
225
  - site/index.html
226
+ - site/source-map.js
192
227
  - spec/components/application_spec.coffee
193
228
  - spec/components/collection_loader_view_spec.coffee
194
229
  - spec/components/controller_spec.coffee
@@ -224,6 +259,7 @@ files:
224
259
  - src/components/fields/checkbox_field.coffee
225
260
  - src/components/fields/file_upload_field.coffee
226
261
  - src/components/fields/hidden_field.coffee
262
+ - src/components/fields/label_field.coffee
227
263
  - src/components/fields/select_field.coffee
228
264
  - src/components/fields/text_area_field.coffee
229
265
  - src/components/fields/text_field.coffee
@@ -233,6 +269,7 @@ files:
233
269
  - src/components/grid_view.coffee
234
270
  - src/components/load_mask.coffee
235
271
  - src/components/nav_bar.coffee
272
+ - src/components/page_controller.coffee
236
273
  - src/components/record_manager.coffee
237
274
  - src/components/router.coffee
238
275
  - src/components/template.coffee
@@ -240,6 +277,7 @@ files:
240
277
  - src/containers/card_view.coffee
241
278
  - src/containers/column_view.coffee
242
279
  - src/containers/modal_view.coffee
280
+ - src/containers/page_view.coffee
243
281
  - src/containers/panel_toolbar.coffee
244
282
  - src/containers/panel_view.coffee
245
283
  - src/containers/split_view.coffee
@@ -253,14 +291,19 @@ files:
253
291
  - src/core/observer.coffee
254
292
  - src/core/panel.coffee
255
293
  - src/core/registry.coffee
256
- - src/core/util.coffee
294
+ - src/core/script_loader.coffee
257
295
  - src/core/view.coffee
296
+ - src/define.coffee
258
297
  - src/framework.coffee
259
298
  - src/index.coffee
299
+ - src/luca.coffee
260
300
  - src/managers/collection_manager.coffee
261
301
  - src/managers/socket_manager.coffee
262
302
  - src/modules/deferrable.coffee
303
+ - src/modules/load_mask.coffee
263
304
  - src/modules/local_storage.coffee
305
+ - src/plugins/development_tool_helpers.coffee
306
+ - src/plugins/events.coffee
264
307
  - src/samples/definition.coffee
265
308
  - src/stylesheets/base.scss
266
309
  - src/stylesheets/components/checkbox_array.scss
@@ -268,6 +311,7 @@ files:
268
311
  - src/stylesheets/components/grid_view.scss
269
312
  - src/stylesheets/components/load_mask.scss
270
313
  - src/stylesheets/components/toolbar.scss
314
+ - src/stylesheets/components/viewport.scss
271
315
  - src/stylesheets/containers/container.scss
272
316
  - src/stylesheets/containers/modal_view.scss
273
317
  - src/stylesheets/containers/panels.scss
@@ -301,17 +345,19 @@ files:
301
345
  - src/templates/fields/text_field.luca
302
346
  - src/templates/sample/contents.luca
303
347
  - src/templates/sample/welcome.luca
304
- - src/tools/class_browser.coffee
348
+ - src/tools/application_inspector.coffee
305
349
  - src/tools/code_editor.coffee
306
350
  - src/tools/code_mirror_field.coffee
307
351
  - src/tools/coffee_script_editor.coffee
308
352
  - src/tools/collection_inspector.coffee
353
+ - src/tools/collections/components.coffee
354
+ - src/tools/collections/instances.coffee
309
355
  - src/tools/component_tester.coffee
310
- - src/tools/components/class_browser_detail.coffee
311
- - src/tools/components/class_browser_list.coffee
312
356
  - src/tools/console.coffee
313
357
  - src/tools/models/components.coffee
358
+ - src/tools/models/instance.coffee
314
359
  - src/tools/templates/component_tester/help.luca
360
+ - src/util.coffee
315
361
  - vendor/assets/images/glyphicons-halflings-white.png
316
362
  - vendor/assets/images/glyphicons-halflings.png
317
363
  - vendor/assets/javascripts/coffee-script.js
@@ -322,6 +368,8 @@ files:
322
368
  - vendor/assets/javascripts/luca-ui-development-dependencies.js
323
369
  - vendor/assets/javascripts/luca-ui-development-tools.js
324
370
  - vendor/assets/javascripts/luca-ui-development-tools.min.js
371
+ - vendor/assets/javascripts/luca-ui-full.js
372
+ - vendor/assets/javascripts/luca-ui-full.min.js
325
373
  - vendor/assets/javascripts/luca-ui-spec.js
326
374
  - vendor/assets/javascripts/luca-ui.js
327
375
  - vendor/assets/javascripts/luca-ui.min.js
@@ -397,6 +445,7 @@ files:
397
445
  - vendor/assets/stylesheets/luca-spec-dependencies.css
398
446
  - vendor/assets/stylesheets/luca-ui-bootstrap.css
399
447
  - vendor/assets/stylesheets/luca-ui-development-tools.css
448
+ - vendor/assets/stylesheets/luca-ui-full.css
400
449
  - vendor/assets/stylesheets/luca-ui-spec.css
401
450
  - vendor/assets/stylesheets/luca-ui.css
402
451
  - views/index.erb
@@ -422,7 +471,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
422
471
  version: 1.3.6
423
472
  requirements: []
424
473
  rubyforge_project:
425
- rubygems_version: 1.8.21
474
+ rubygems_version: 1.8.24
426
475
  signing_key:
427
476
  specification_version: 3
428
477
  summary: A Backbone.JS Component Framework
@@ -1,49 +0,0 @@
1
- require 'tilt'
2
-
3
- module Sprockets
4
- class LucaTemplate < Tilt::Template
5
- attr_accessor :namespace
6
- def self.default_mime_type
7
- 'application/javascript'
8
- end
9
-
10
- def self.engine_initialized?
11
- defined? ::EJS
12
- defined? ::Haml
13
- end
14
-
15
- def initialize_engine
16
- require_template_library 'ejs'
17
- require_template_library 'haml'
18
- end
19
-
20
- def prepare
21
- options = @options.merge(:filename => eval_file, :line => line, :escape_attrs => false)
22
- @engine = ::Haml::Engine.new(data, options)
23
- self.namespace = "Luca.templates"
24
- end
25
-
26
- def evaluate(scope, locals, &block)
27
- compiled = @engine.render(scope, locals, &block)
28
- code = EJS.compile(compiled)
29
- tmpl = scope.logical_path
30
-
31
- tmpl.gsub! /^.*\/templates\//, ''
32
-
33
- <<-JST
34
- (function() {
35
- #{namespace} || (#{namespace} = {});
36
- #{namespace}[#{ tmpl.inspect }] = #{indent(code)};
37
- }).call(this);
38
- JST
39
- end
40
-
41
- private
42
-
43
- def indent(string)
44
- string.gsub(/$(.)/m, "\\1 ").strip
45
- end
46
-
47
- end
48
- end
49
-
@@ -1,39 +0,0 @@
1
- # The Class Browser takes a map of your application's source code and the
2
- # classes it defines and allows you to view and even edit the source code
3
- # for a given class in the browser.
4
-
5
- # We do this by combining the functionality of a Luca CollectionList View
6
- # which inspects the Luca component registry, and a CodeMirror Editor instance
7
- # which compiles coffeescript and evaluates it on the fly. The Luca Framework
8
- # is capable of updating all of the application components with the changes
9
- # you make to their code.
10
- _.def("Luca.tools.ClassBrowser").extends("Luca.containers.SplitView").with
11
-
12
- name: "class_browser"
13
-
14
- className: "luca-class-browser row"
15
-
16
- layout:["span3","span9"]
17
- # Composite views can be made up by specifying a list of components
18
- # either as a collection of object configurations, or as a list
19
- # of names corresponding to component types. The various types of
20
- # Luca containers will handle rendering these components and arranging
21
- # them visually
22
- components:["class_browser_list","class_browser_detail"]
23
-
24
- # The container is responsible for handling communication between components.
25
- # We provide a nice API for this via the @componentEvents property.
26
- componentEvents:
27
- "class_browser_list component:loaded" : "loadSourceCode"
28
-
29
- bottomToolbar:
30
- buttons:[
31
- label: "Add New"
32
- icon: "plus"
33
- color: "primary"
34
- white: true
35
- align: 'right'
36
- ]
37
-
38
- loadSourceCode: (model, response)->
39
- Luca("class_browser_detail").loadComponent( model )
@@ -1,10 +0,0 @@
1
- _.def("Luca.tools.ClassBrowserDetail").extends('Luca.core.Container').with
2
-
3
- components:[
4
- ctype: "code_editor"
5
- ]
6
-
7
- loadComponent: (model)->
8
- @components[0].compiled = undefined
9
- @components[0].editor.setValue( model.get('source') )
10
-
@@ -1,74 +0,0 @@
1
- _.def("Luca.tools.ClassBrowserList").extends("Luca.View").with
2
- tagName: "ul"
3
- className: "nav nav-list class-browser-list"
4
-
5
- autoBindEventHandlers: true
6
-
7
- events:
8
- "click li.namespace a" : "namespaceClickHandler"
9
- "click li.className a" : "classClickHandler"
10
-
11
- initialize: (@options={})->
12
- @deferrable = @collection = new Luca.collections.Components()
13
-
14
- collapseAllNamespaceLists: ()->
15
- @$('ul.classList').collapse('hide')
16
-
17
- namespaceClickHandler: (e)->
18
- me = my = $( e.target )
19
- classList = my.siblings('.classList')
20
- classList.collapse('toggle')
21
-
22
- classClickHandler: (e)->
23
- e.preventDefault()
24
-
25
- me = my = $( e.currentTarget )
26
- className = my.data('component')
27
- list = @
28
-
29
- model = @collection.detect (component)->
30
- component.get("className") is className
31
-
32
- if model and !model.get("contents")
33
- # TODO Why is this firing twice?
34
- model.fetch success: _.once (model, response)->
35
- list.trigger "component:loaded", model, response
36
-
37
- afterRender: ()->
38
- @collapseAllNamespaceLists()
39
- Luca.View::afterRender?.apply(@, arguments)
40
-
41
- attach: _.once( Luca.View::$attach )
42
-
43
- render: ()->
44
- tree = @
45
- data = @collection.asTree()
46
-
47
- _( data ).each (namespace, root)->
48
- target = tree.make("a",{},root)
49
- li = tree.make("li",class:"root", target)
50
- namespaceList = _( namespace ).keys()
51
-
52
- namespaceElements = _( namespaceList ).map (namespace)->
53
- classId = namespace.toLowerCase().replace(/\./g, '-')
54
- target = tree.make("a",{},namespace)
55
- nli = tree.make "li", {class:"namespace #{ classId }"}, target
56
-
57
- resolved = Luca.util.resolve(namespace, (window || global))
58
- classes = _( resolved ).keys()
59
- classElements = _( classes ).map (componentClass)->
60
- fullName = "#{ namespace }.#{ componentClass }"
61
- link = tree.make("a",{"data-component":fullName}, fullName)
62
- classId = fullName.toLowerCase().replace(/\./g, '-')
63
- tree.make "li", {class:"className #{ classId }"}, link
64
-
65
- cul = tree.make "ul", {class:"classList"}, classElements
66
- $( nli ).append( cul )
67
- nli
68
-
69
- ul = tree.make "ul",{class:"namespace"}, namespaceElements
70
-
71
- $( li ).append(ul)
72
- tree.$append( li )
73
-
74
- @attach()