luca 0.9.2 → 0.9.4

Sign up to get free protection for your applications and to get access to all the features.
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()