riojs 0.0.0
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.
- data/LICENSE +20 -0
- data/README.rdoc +24 -0
- data/VERSION +1 -0
- data/bin/rio +5 -0
- data/generators/rio_app/USAGE +19 -0
- data/generators/rio_app/rio_app_generator.rb +40 -0
- data/generators/rio_app/templates/app.build +10 -0
- data/generators/rio_app/templates/app.css +0 -0
- data/generators/rio_app/templates/app.js +20 -0
- data/generators/rio_app/templates/app_view.html.erb +19 -0
- data/generators/rio_app/templates/fixture.js +4 -0
- data/generators/rio_app/templates/rio.html.erb +18 -0
- data/generators/rio_app/templates/rio_controller.rb +2 -0
- data/generators/rio_app/templates/spec.js +7 -0
- data/generators/rio_component/USAGE +13 -0
- data/generators/rio_component/rio_component_generator.rb +16 -0
- data/generators/rio_component/templates/component.css +0 -0
- data/generators/rio_component/templates/component.js +11 -0
- data/generators/rio_component/templates/fixture.js +3 -0
- data/generators/rio_component/templates/spec.js +6 -0
- data/generators/rio_model/USAGE +12 -0
- data/generators/rio_model/rio_model_generator.rb +21 -0
- data/generators/rio_model/templates/fixture.js +3 -0
- data/generators/rio_model/templates/model.js +9 -0
- data/generators/rio_model/templates/spec.js +6 -0
- data/generators/rio_page/USAGE +14 -0
- data/generators/rio_page/rio_page_generator.rb +16 -0
- data/generators/rio_page/templates/fixture.js +3 -0
- data/generators/rio_page/templates/page.css +12 -0
- data/generators/rio_page/templates/page.js +12 -0
- data/generators/rio_page/templates/page.jst +64 -0
- data/generators/rio_page/templates/spec.js +6 -0
- data/generators/rio_resource/USAGE +20 -0
- data/generators/rio_resource/rio_resource_generator.rb +10 -0
- data/generators/rio_resource/templates/controller.rb +3 -0
- data/init.rb +4 -0
- data/install/config/juggernaut_hosts.yml +18 -0
- data/install/lib/tasks/rio.rake +1 -0
- data/install/script/rio_server +37 -0
- data/lib/rio/autospec.rb +86 -0
- data/lib/rio/install.rb +90 -0
- data/lib/rio/juggernaut.rb +212 -0
- data/lib/rio/path.rb +3 -0
- data/lib/rio/rio_compressor.rb +219 -0
- data/lib/rio/rio_file_controller.rb +16 -0
- data/lib/rio/rio_on_rails.rb +586 -0
- data/lib/rio/rio_proxy_controller.rb +60 -0
- data/lib/rio/rio_push_controller.rb +48 -0
- data/lib/rio/rio_routes.rb +24 -0
- data/lib/rio/rio_spec_controller.rb +70 -0
- data/lib/riojs.rb +14 -0
- data/lib/tasks/rio.rb +63 -0
- data/public/images/background-chiffon.png +0 -0
- data/public/images/button-gradient-overlay-down.png +0 -0
- data/public/images/button-gradient-overlay.png +0 -0
- data/public/images/icons/add.png +0 -0
- data/public/images/icons/error-big.png +0 -0
- data/public/images/icons/warning-big.png +0 -0
- data/public/images/rio-logo-big.png +0 -0
- data/public/images/rio-logo.png +0 -0
- data/public/images/splitter-handle-horizontal.png +0 -0
- data/public/images/splitter-handle-vertical.png +0 -0
- data/public/images/tab-bar-gradient-overlay.png +0 -0
- data/public/images/title-gradient-overlay.png +0 -0
- data/public/images/trash.gif +0 -0
- data/public/javascripts/components/accordion.js +144 -0
- data/public/javascripts/components/alert_box.js +59 -0
- data/public/javascripts/components/base.js +47 -0
- data/public/javascripts/components/box.js +63 -0
- data/public/javascripts/components/button.js +98 -0
- data/public/javascripts/components/checkbox.js +44 -0
- data/public/javascripts/components/container.js +265 -0
- data/public/javascripts/components/grid_view.js +107 -0
- data/public/javascripts/components/image.js +19 -0
- data/public/javascripts/components/input.js +171 -0
- data/public/javascripts/components/label.js +15 -0
- data/public/javascripts/components/lightbox.js +160 -0
- data/public/javascripts/components/link.js +43 -0
- data/public/javascripts/components/list_item.js +44 -0
- data/public/javascripts/components/list_view.js +192 -0
- data/public/javascripts/components/marquee.js +131 -0
- data/public/javascripts/components/menu.js +89 -0
- data/public/javascripts/components/notification.js +75 -0
- data/public/javascripts/components/overlay.js +134 -0
- data/public/javascripts/components/panel.js +146 -0
- data/public/javascripts/components/radio.js +46 -0
- data/public/javascripts/components/splitter.js +65 -0
- data/public/javascripts/components/tab_bar.js +64 -0
- data/public/javascripts/components/tab_panel.js +57 -0
- data/public/javascripts/components/textarea.js +223 -0
- data/public/javascripts/components/toggle_button.js +22 -0
- data/public/javascripts/components/tooltip.js +80 -0
- data/public/javascripts/lib/application.js +482 -0
- data/public/javascripts/lib/attr.js +760 -0
- data/public/javascripts/lib/benchmark.js +235 -0
- data/public/javascripts/lib/blank.html +39 -0
- data/public/javascripts/lib/boot.js +300 -0
- data/public/javascripts/lib/clipboard.js +96 -0
- data/public/javascripts/lib/collection_entity.js +46 -0
- data/public/javascripts/lib/component.js +129 -0
- data/public/javascripts/lib/console.js +75 -0
- data/public/javascripts/lib/console/apps/console.build +43 -0
- data/public/javascripts/lib/console/apps/console.js +28 -0
- data/public/javascripts/lib/console/blank.html +39 -0
- data/public/javascripts/lib/console/components/benchmark.js +196 -0
- data/public/javascripts/lib/console/components/console.js +352 -0
- data/public/javascripts/lib/console/components/dependencies_list.js +17 -0
- data/public/javascripts/lib/console/components/docs.js +66 -0
- data/public/javascripts/lib/console/components/playground.js +30 -0
- data/public/javascripts/lib/console/console.html +27 -0
- data/public/javascripts/lib/console/console_commands.js +287 -0
- data/public/javascripts/lib/console/console_commands.js.rej +21 -0
- data/public/javascripts/lib/console/console_mixin.js +22 -0
- data/public/javascripts/lib/console/docs/files.html +579 -0
- data/public/javascripts/lib/console/docs/index.html +323 -0
- data/public/javascripts/lib/console/docs/symbols/Object.html +291 -0
- data/public/javascripts/lib/console/docs/symbols/_global_.html +413 -0
- data/public/javascripts/lib/console/docs/symbols/rio.AIM.html +490 -0
- data/public/javascripts/lib/console/docs/symbols/rio.Application.html +841 -0
- data/public/javascripts/lib/console/docs/symbols/rio.Attr.html +1075 -0
- data/public/javascripts/lib/console/docs/symbols/rio.Binding.html +272 -0
- data/public/javascripts/lib/console/docs/symbols/rio.Component.html +419 -0
- data/public/javascripts/lib/console/docs/symbols/rio.Cookie.html +543 -0
- data/public/javascripts/lib/console/docs/symbols/rio.DelayedTask#initialize.html +270 -0
- data/public/javascripts/lib/console/docs/symbols/rio.DelayedTask.html +391 -0
- data/public/javascripts/lib/console/docs/symbols/rio.JsTemplate.html +271 -0
- data/public/javascripts/lib/console/docs/symbols/rio.Juggernaut.html +329 -0
- data/public/javascripts/lib/console/docs/symbols/rio.Model.html +822 -0
- data/public/javascripts/lib/console/docs/symbols/rio.Page.html +383 -0
- data/public/javascripts/lib/console/docs/symbols/rio.Template.html +328 -0
- data/public/javascripts/lib/console/docs/symbols/rio.Utils.html +617 -0
- data/public/javascripts/lib/console/docs/symbols/rio.html +506 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_components_base.js.html +54 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_application.js.html +490 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_attr.js.html +768 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_boot.js.html +308 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_clipboard.js.html +103 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_collection_entity.js.html +53 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_component.js.html +137 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_cookie.js.html +81 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_delayed_task.js.html +68 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_file.js.html +80 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_flash_detect.js.html +129 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_form.js.html +95 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_id.js.html +50 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_inflector.js.html +167 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_js_template.js.html +283 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_juggernaut.js.html +303 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_key_map.js.html +68 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_layout_manager.js.html +175 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_log.js.html +17 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_model.js.html +1074 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_page.js.html +246 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_parameters.js.html +66 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_protohack.js.html +305 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_push.js.html +12 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_rsh.js.html +659 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_swfobject.js.html +12 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_tag.js.html +60 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_template.js.html +64 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_theme.js.html +105 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_undo.js.html +142 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_utils.js.html +87 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_yaml.js.html +88 -0
- data/public/javascripts/lib/console/file-small.png +0 -0
- data/public/javascripts/lib/console/green-circle.png +0 -0
- data/public/javascripts/lib/console/loading.gif +0 -0
- data/public/javascripts/lib/console/pages/console_page.js +149 -0
- data/public/javascripts/lib/console/pages/console_page.jst +27 -0
- data/public/javascripts/lib/console/red-circle.png +0 -0
- data/public/javascripts/lib/cookie.js +74 -0
- data/public/javascripts/lib/delayed_task.js +61 -0
- data/public/javascripts/lib/dependencies.js +76 -0
- data/public/javascripts/lib/environment.js +30 -0
- data/public/javascripts/lib/event.simulate.js +137 -0
- data/public/javascripts/lib/expressinstall.swf +0 -0
- data/public/javascripts/lib/file.js +72 -0
- data/public/javascripts/lib/flash_detect.js +122 -0
- data/public/javascripts/lib/flashembed.min.js +16 -0
- data/public/javascripts/lib/form.js +88 -0
- data/public/javascripts/lib/id.js +43 -0
- data/public/javascripts/lib/inflector.js +160 -0
- data/public/javascripts/lib/instrumenter.js +106 -0
- data/public/javascripts/lib/js_template.js +275 -0
- data/public/javascripts/lib/jslint.js +4950 -0
- data/public/javascripts/lib/juggernaut.js +295 -0
- data/public/javascripts/lib/juggernaut.swf +0 -0
- data/public/javascripts/lib/key_map.js +60 -0
- data/public/javascripts/lib/layout_manager.js +167 -0
- data/public/javascripts/lib/model.js +1067 -0
- data/public/javascripts/lib/page.js +238 -0
- data/public/javascripts/lib/parameters.js +59 -0
- data/public/javascripts/lib/png_fix.js +75 -0
- data/public/javascripts/lib/protohack.js +297 -0
- data/public/javascripts/lib/push.js +5 -0
- data/public/javascripts/lib/rio.build +28 -0
- data/public/javascripts/lib/rio_development.build +5 -0
- data/public/javascripts/lib/rio_lint.js +66 -0
- data/public/javascripts/lib/rsh.js +651 -0
- data/public/javascripts/lib/spec.js +545 -0
- data/public/javascripts/lib/spec_runner.js +242 -0
- data/public/javascripts/lib/swfobject.js +5 -0
- data/public/javascripts/lib/tag.js +52 -0
- data/public/javascripts/lib/undo.js +134 -0
- data/public/javascripts/lib/utils.js +80 -0
- data/public/javascripts/lib/yaml.js +80 -0
- data/public/javascripts/pages/playground_page.js +15 -0
- data/public/javascripts/prototype/builder.js +146 -0
- data/public/javascripts/prototype/controls.js +1004 -0
- data/public/javascripts/prototype/dragdrop.js +1030 -0
- data/public/javascripts/prototype/effects.js +1137 -0
- data/public/javascripts/prototype/prototype.js +4320 -0
- data/public/javascripts/prototype/slider.js +283 -0
- data/public/javascripts/prototype/sound.js +67 -0
- data/public/javascripts/specs/components/box_spec.js +6 -0
- data/public/javascripts/specs/components/checkbox_spec.js +26 -0
- data/public/javascripts/specs/components/container_spec.js +6 -0
- data/public/javascripts/specs/components/input_spec.js +71 -0
- data/public/javascripts/specs/components/panel_spec.js +6 -0
- data/public/javascripts/specs/components/radio_spec.js +40 -0
- data/public/javascripts/specs/fixtures/components/box.js +3 -0
- data/public/javascripts/specs/fixtures/components/checkbox.js +9 -0
- data/public/javascripts/specs/fixtures/components/container.js +3 -0
- data/public/javascripts/specs/fixtures/components/input.js +12 -0
- data/public/javascripts/specs/fixtures/components/menu.js +19 -0
- data/public/javascripts/specs/fixtures/components/menu_item.js +18 -0
- data/public/javascripts/specs/fixtures/components/radio.js +11 -0
- data/public/javascripts/specs/lib/application_spec.js +281 -0
- data/public/javascripts/specs/lib/attr_spec.js +1514 -0
- data/public/javascripts/specs/lib/benchmark_spec.js +361 -0
- data/public/javascripts/specs/lib/collection_entity_spec.js +131 -0
- data/public/javascripts/specs/lib/component_spec.js +86 -0
- data/public/javascripts/specs/lib/form_spec.js +171 -0
- data/public/javascripts/specs/lib/id_spec.js +21 -0
- data/public/javascripts/specs/lib/instrumenter_spec.js +5 -0
- data/public/javascripts/specs/lib/js_template_spec.js +131 -0
- data/public/javascripts/specs/lib/key_map_spec.js +227 -0
- data/public/javascripts/specs/lib/model_spec.js +2268 -0
- data/public/javascripts/specs/lib/parameters_spec.js +94 -0
- data/public/javascripts/specs/lib/spec_spec.js +943 -0
- data/public/javascripts/specs/lib/undo_spec.js +105 -0
- data/public/javascripts/specs/lib/yaml_spec.js +127 -0
- data/public/sounds/basso.wav +0 -0
- data/public/sounds/purr.wav +0 -0
- data/public/stylesheets/components/accordion.css +24 -0
- data/public/stylesheets/components/alert_box.css +35 -0
- data/public/stylesheets/components/box.css +0 -0
- data/public/stylesheets/components/button.css +39 -0
- data/public/stylesheets/components/checkbox.css +9 -0
- data/public/stylesheets/components/container.css +3 -0
- data/public/stylesheets/components/grid_view.css +52 -0
- data/public/stylesheets/components/input.css +10 -0
- data/public/stylesheets/components/label.css +3 -0
- data/public/stylesheets/components/lightbox.css +31 -0
- data/public/stylesheets/components/link.css +4 -0
- data/public/stylesheets/components/list_view.css +23 -0
- data/public/stylesheets/components/marquee.css +29 -0
- data/public/stylesheets/components/menu.css +34 -0
- data/public/stylesheets/components/notification.css +52 -0
- data/public/stylesheets/components/overlay.css +8 -0
- data/public/stylesheets/components/panel.css +36 -0
- data/public/stylesheets/components/radio.css +9 -0
- data/public/stylesheets/components/splitter.css +35 -0
- data/public/stylesheets/components/tab_bar.css +59 -0
- data/public/stylesheets/components/tab_panel.css +15 -0
- data/public/stylesheets/components/textarea.css +11 -0
- data/public/stylesheets/components/tooltip.css +10 -0
- data/public/stylesheets/console.css +151 -0
- data/public/stylesheets/css_reset.css +55 -0
- metadata +343 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
|
|
2
|
+
.KEYW {color: #933;}
|
|
3
|
+
.COMM {color: #bbb; font-style: italic;}
|
|
4
|
+
.NUMB {color: #393;}
|
|
5
|
+
.STRN {color: #393;}
|
|
6
|
+
.REGX {color: #339;}
|
|
7
|
+
.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
|
|
8
|
+
</style></head><body><pre><span class='line'> 1</span> <span class="COMM">// Based on the work of Tj Holowaychuk</span><span class="WHIT">
|
|
9
|
+
<span class='line'> 2</span> </span><span class="COMM">// http://refactormycode.com/codes/1045-js-yaml-parser</span><span class="WHIT">
|
|
10
|
+
<span class='line'> 3</span> </span><span class="COMM">//</span><span class="WHIT">
|
|
11
|
+
<span class='line'> 4</span> </span><span class="COMM">// This implementation is not complete</span><span class="WHIT">
|
|
12
|
+
<span class='line'> 5</span>
|
|
13
|
+
<span class='line'> 6</span> </span><span class="NAME">rio.Yaml</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
14
|
+
<span class='line'> 7</span> </span><span class="NAME">dump</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">indent</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
15
|
+
<span class='line'> 8</span> </span><span class="NAME">indent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">indent</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
|
16
|
+
<span class='line'> 9</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">indentText</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">" "</span><span class="PUNC">.</span><span class="NAME">times</span><span class="PUNC">(</span><span class="NAME">indent</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
17
|
+
<span class='line'> 10</span>
|
|
18
|
+
<span class='line'> 11</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Object.isArray</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
19
|
+
<span class='line'> 12</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">obj.map</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">item</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
20
|
+
<span class='line'> 13</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">indentText</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"- "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">item</span><span class="PUNC">;</span><span class="WHIT">
|
|
21
|
+
<span class='line'> 14</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">join</span><span class="PUNC">(</span><span class="STRN">"\n"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
22
|
+
<span class='line'> 15</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
23
|
+
<span class='line'> 16</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">map</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
24
|
+
<span class='line'> 17</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
|
25
|
+
<span class='line'> 18</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._isPrimitive</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
26
|
+
<span class='line'> 19</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">indentText</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">": "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
|
|
27
|
+
<span class='line'> 20</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
28
|
+
<span class='line'> 21</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">indentText</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">":\n"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.dump</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">indent</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
29
|
+
<span class='line'> 22</span> </span><span class="PUNC">}</span><span class="WHIT">
|
|
30
|
+
<span class='line'> 23</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">join</span><span class="PUNC">(</span><span class="STRN">"\n"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
31
|
+
<span class='line'> 24</span> </span><span class="PUNC">}</span><span class="WHIT">
|
|
32
|
+
<span class='line'> 25</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
|
|
33
|
+
<span class='line'> 26</span>
|
|
34
|
+
<span class='line'> 27</span> </span><span class="NAME">parse</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
35
|
+
<span class='line'> 28</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._parse</span><span class="PUNC">(</span><span class="NAME">this._tokenize</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
36
|
+
<span class='line'> 29</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
|
|
37
|
+
<span class='line'> 30</span>
|
|
38
|
+
<span class='line'> 31</span> </span><span class="NAME">_isPrimitive</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
39
|
+
<span class='line'> 32</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Object.isNumber</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">Object.isString</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
40
|
+
<span class='line'> 33</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
|
|
41
|
+
<span class='line'> 34</span>
|
|
42
|
+
<span class='line'> 35</span> </span><span class="NAME">_valueOf</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">token</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
43
|
+
<span class='line'> 36</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
44
|
+
<span class='line'> 37</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">eval</span><span class="PUNC">(</span><span class="STRN">'('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">token</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
45
|
+
<span class='line'> 38</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
46
|
+
<span class='line'> 39</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">token</span><span class="PUNC">;</span><span class="WHIT">
|
|
47
|
+
<span class='line'> 40</span> </span><span class="PUNC">}</span><span class="WHIT">
|
|
48
|
+
<span class='line'> 41</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
|
|
49
|
+
<span class='line'> 42</span>
|
|
50
|
+
<span class='line'> 43</span> </span><span class="NAME">_tokenize</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
51
|
+
<span class='line'> 44</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str.match</span><span class="PUNC">(</span><span class="REGX">/(---|true|false|null|#(.*)|\[(.*?)\]|\{(.*?)\}|[^\w\n]*[\/\.\w\-]+:|[^\w\n]*-(.+)|\d+\.\d+|\d+|\n+|\w.+)/g</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
52
|
+
<span class='line'> 45</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
|
|
53
|
+
<span class='line'> 46</span>
|
|
54
|
+
<span class='line'> 47</span> </span><span class="NAME">_indentLevel</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">token</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
55
|
+
<span class='line'> 48</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">token</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">Math.max</span><span class="PUNC">(</span><span class="NAME">token.match</span><span class="PUNC">(</span><span class="REGX">/^(\t*).*/</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">token.match</span><span class="PUNC">(</span><span class="REGX">/^([\s]*).*/</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
|
56
|
+
<span class='line'> 49</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
|
|
57
|
+
<span class='line'> 50</span>
|
|
58
|
+
<span class='line'> 51</span> </span><span class="NAME">_parse</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">tokens</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
59
|
+
<span class='line'> 52</span> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">tokens</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">"\n"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">tokens.shift</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
60
|
+
<span class='line'> 53</span>
|
|
61
|
+
<span class='line'> 54</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">token</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">list</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/-(.*)/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/([\/\.\w\-]+):/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">stack</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
|
62
|
+
<span class='line'> 55</span>
|
|
63
|
+
<span class='line'> 56</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">indentLevel</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._indentLevel</span><span class="PUNC">(</span><span class="NAME">tokens</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
64
|
+
<span class='line'> 57</span>
|
|
65
|
+
<span class='line'> 58</span> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tokens</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._indentLevel</span><span class="PUNC">(</span><span class="NAME">tokens</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">indentLevel</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">tokens</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">"\n"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
66
|
+
<span class='line'> 59</span> </span><span class="NAME">token</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tokens.shift</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
67
|
+
<span class='line'> 60</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">token</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'#'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">token</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'---'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">token</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">"\n"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
68
|
+
<span class='line'> 61</span> </span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
|
|
69
|
+
<span class='line'> 62</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">key.exec</span><span class="PUNC">(</span><span class="NAME">token</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
70
|
+
<span class='line'> 63</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">keyName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.$1.strip</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
71
|
+
<span class='line'> 64</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">tokens</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">"\n"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
72
|
+
<span class='line'> 65</span> </span><span class="NAME">tokens.shift</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
73
|
+
<span class='line'> 66</span> </span><span class="NAME">stack</span><span class="PUNC">[</span><span class="NAME">keyName</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._parse</span><span class="PUNC">(</span><span class="NAME">tokens</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
74
|
+
<span class='line'> 67</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
75
|
+
<span class='line'> 68</span> </span><span class="NAME">stack</span><span class="PUNC">[</span><span class="NAME">keyName</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._valueOf</span><span class="PUNC">(</span><span class="NAME">tokens.shift</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
76
|
+
<span class='line'> 69</span> </span><span class="PUNC">}</span><span class="WHIT">
|
|
77
|
+
<span class='line'> 70</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">list.exec</span><span class="PUNC">(</span><span class="NAME">token</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
78
|
+
<span class='line'> 71</span> </span><span class="PUNC">(</span><span class="NAME">Object.isArray</span><span class="PUNC">(</span><span class="NAME">stack</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">stack</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">stack</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">push</span><span class="PUNC">(</span><span class="NAME">RegExp.$1.strip</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
79
|
+
<span class='line'> 72</span> </span><span class="PUNC">}</span><span class="WHIT">
|
|
80
|
+
<span class='line'> 73</span> </span><span class="PUNC">}</span><span class="WHIT">
|
|
81
|
+
<span class='line'> 74</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">stack</span><span class="PUNC">;</span><span class="WHIT">
|
|
82
|
+
<span class='line'> 75</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
|
|
83
|
+
<span class='line'> 76</span>
|
|
84
|
+
<span class='line'> 77</span> </span><span class="NAME">toString</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
85
|
+
<span class='line'> 78</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"Yaml"</span><span class="PUNC">;</span><span class="WHIT">
|
|
86
|
+
<span class='line'> 79</span> </span><span class="PUNC">}</span><span class="WHIT">
|
|
87
|
+
<span class='line'> 80</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
|
88
|
+
<span class='line'> 81</span> </span></pre></body></html>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
rio.pages.ConsolePage = rio.Page.create("ConsolePage", {
|
|
2
|
+
require: [
|
|
3
|
+
"lib/dependencies",
|
|
4
|
+
"components/tab_bar",
|
|
5
|
+
"lib/console/components/dependencies_list",
|
|
6
|
+
"lib/console/components/console",
|
|
7
|
+
"lib/console/components/docs",
|
|
8
|
+
"lib/console/components/playground",
|
|
9
|
+
"lib/console/components/benchmark",
|
|
10
|
+
"components/image"
|
|
11
|
+
],
|
|
12
|
+
template: "console_page",
|
|
13
|
+
methods: {
|
|
14
|
+
|
|
15
|
+
render: function() {
|
|
16
|
+
this.getConsoleTab().selected.bind(function(selected) {
|
|
17
|
+
this.getConsole()[selected ? "show" : "hide"]();
|
|
18
|
+
this.getConsole().focus.bind(this.getConsole()).defer();
|
|
19
|
+
}.bind(this));
|
|
20
|
+
this.getPlaygroundTab().selected.bind(function(selected) {
|
|
21
|
+
this.getPlayground()[selected ? "show" : "hide"]();
|
|
22
|
+
this.getPlayground().focus.bind(this.getPlayground()).defer();
|
|
23
|
+
}.bind(this));
|
|
24
|
+
this.getBenchmarkTab().selected.bind(function(selected) {
|
|
25
|
+
this.getBenchmark()[selected ? "show" : "hide"]();
|
|
26
|
+
}.bind(this));
|
|
27
|
+
this.getDependenciesTab().selected.bind(function(selected) {
|
|
28
|
+
this.getDependenciesList()[selected ? "show" : "hide"]();
|
|
29
|
+
}.bind(this));
|
|
30
|
+
this.getDocsTab().selected.bind(function(selected) {
|
|
31
|
+
this.getDocs()[selected ? "show" : "hide"]();
|
|
32
|
+
}.bind(this));
|
|
33
|
+
|
|
34
|
+
var loadedMessage = "Booted: " + opener.rio.boot.appName + (opener.rio.boot.bootCompressed ? " (compressed)" : "");
|
|
35
|
+
this.log(loadedMessage);
|
|
36
|
+
opener.rio.console.onload();
|
|
37
|
+
this.getConsole().focus.bind(this.getConsole()).defer();
|
|
38
|
+
|
|
39
|
+
if (opener.rio.push) {
|
|
40
|
+
opener.rio.push.live.bind(function(live) {
|
|
41
|
+
this.getPushConnectionIndicator().setSrc(live ? "green-circle.png" : "red-circle.png");
|
|
42
|
+
}.bind(this));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
Event.observe(window, "load", function() {
|
|
46
|
+
(function() { rio.ContainerLayout.resize(); }).defer();
|
|
47
|
+
(function() { rio.ContainerLayout.resize(); }).delay(1);
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
setApplication: function(options) {
|
|
52
|
+
var dependencies = this.checkDependencies({
|
|
53
|
+
app: "apps/" + options.name,
|
|
54
|
+
loadedScripts: options.scripts,
|
|
55
|
+
loadedStylesheets: options.stylesheets,
|
|
56
|
+
loadedTemplates: options.templates,
|
|
57
|
+
onFailure: function() {
|
|
58
|
+
this.getDependenciesTab().setName("Dependencies (out of sync)");
|
|
59
|
+
this.getDependenciesTab().html().setStyle({ color: "#B41C00", fontWeight: 700 });
|
|
60
|
+
}.bind(this)
|
|
61
|
+
});
|
|
62
|
+
this.getDependenciesList().setContent(dependencies.yaml());
|
|
63
|
+
|
|
64
|
+
this.checkDependencies({
|
|
65
|
+
app: "lib/console/apps/console",
|
|
66
|
+
loadedScripts: rio.boot.appScripts(),
|
|
67
|
+
loadedStylesheets: rio.boot.loadedStylesheets,
|
|
68
|
+
loadedTemplates: rio.boot.loadedTemplates
|
|
69
|
+
});
|
|
70
|
+
},
|
|
71
|
+
|
|
72
|
+
checkDependencies: function(options) {
|
|
73
|
+
var dependencies = new rio.Dependencies({
|
|
74
|
+
app: options.app,
|
|
75
|
+
loadedScripts: options.loadedScripts,
|
|
76
|
+
loadedStylesheets: options.loadedStylesheets,
|
|
77
|
+
loadedTemplates: options.loadedTemplates
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
var syncInProgress = rio.Tag.img("", {
|
|
81
|
+
src: "/javascripts/lib/console/loading.gif",
|
|
82
|
+
style: "display: none; position: relative; top: 3px;"
|
|
83
|
+
});
|
|
84
|
+
var syncComplete = rio.Tag.span("[synchronized]", { style: "display: none; color: #999; font-size: 11px" });
|
|
85
|
+
var syncButton = new rio.components.Button({
|
|
86
|
+
text: "synchronize",
|
|
87
|
+
onClick: function() {
|
|
88
|
+
syncButton.hide();
|
|
89
|
+
syncInProgress.show();
|
|
90
|
+
dependencies.synchronize({
|
|
91
|
+
onSuccess: function() {
|
|
92
|
+
syncInProgress.hide();
|
|
93
|
+
syncComplete.show();
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
dependencies.matchLoadedFiles({
|
|
100
|
+
onFailure: function() {
|
|
101
|
+
if (opener.rio.boot.bootCompressed) { return; }
|
|
102
|
+
this.logHtml([
|
|
103
|
+
"> " + options.app + ": Dependencies out of sync. ",
|
|
104
|
+
rio.Tag.span([syncButton, syncInProgress, syncComplete])
|
|
105
|
+
], "errorLogItem");
|
|
106
|
+
(options.onFailure || Prototype.emptyFunction)();
|
|
107
|
+
}.bind(this)
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
return dependencies;
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
keyPress: function(e) {
|
|
114
|
+
switch(e.keyCode) {
|
|
115
|
+
case Event.KEY_LEFT:
|
|
116
|
+
if (e.ctrlKey && e.shiftKey) {
|
|
117
|
+
this.getTabs().selectPrevious();
|
|
118
|
+
e.stop();
|
|
119
|
+
}
|
|
120
|
+
break;
|
|
121
|
+
case Event.KEY_RIGHT:
|
|
122
|
+
if (e.ctrlKey && e.shiftKey) {
|
|
123
|
+
this.getTabs().selectNext();
|
|
124
|
+
e.stop();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
|
|
129
|
+
log: function(msg, className, prefix) {
|
|
130
|
+
this.getConsole().log(msg, className, prefix);
|
|
131
|
+
},
|
|
132
|
+
|
|
133
|
+
logHtml: function(msg, className) {
|
|
134
|
+
this.getConsole().logHtml(msg, className);
|
|
135
|
+
},
|
|
136
|
+
|
|
137
|
+
touch: function(files) {
|
|
138
|
+
this.getConsole().touch(files);
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
selectDependenciesPane: function() {
|
|
142
|
+
this.getDependenciesTab().setSelected(true);
|
|
143
|
+
},
|
|
144
|
+
|
|
145
|
+
selectPlaygroundPane: function() {
|
|
146
|
+
this.getPlaygroundTab().setSelected(true);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<rio:Container layout="true" height="100%">
|
|
2
|
+
<items>
|
|
3
|
+
<rio:Container region="north" padding="5px 0px 0px 0px" backgroundColor="#eee">
|
|
4
|
+
<items>
|
|
5
|
+
<rio:Image rio:id="pushConnectionIndicator" src="red-circle.png" className="pushConnectionIndicator" />
|
|
6
|
+
<rio:TabBar rio:id="tabs">
|
|
7
|
+
<tabs>
|
|
8
|
+
<rio:Tab rio:id="consoleTab" name="Console" selected="true" />
|
|
9
|
+
<rio:Tab rio:id="playgroundTab" name="Playground" />
|
|
10
|
+
<rio:Tab rio:id="benchmarkTab" name="Benchmark" />
|
|
11
|
+
<rio:Tab rio:id="dependenciesTab" name="Dependencies" />
|
|
12
|
+
<rio:Tab rio:id="docsTab" name="Docs" />
|
|
13
|
+
</tabs>
|
|
14
|
+
</rio:TabBar>
|
|
15
|
+
</items>
|
|
16
|
+
</rio:Container>
|
|
17
|
+
<rio:Container region="center" border="none" overflow="hidden">
|
|
18
|
+
<items>
|
|
19
|
+
<rio:Console rio:id="console" onNavigateToPlayground="{this.selectPlaygroundPane.bind(this)}" />
|
|
20
|
+
<rio:Playground rio:id="playground" />
|
|
21
|
+
<rio:Benchmark rio:id="benchmark" />
|
|
22
|
+
<rio:DependenciesList rio:id="dependenciesList" />
|
|
23
|
+
<rio:Docs rio:id="docs" />
|
|
24
|
+
</items>
|
|
25
|
+
</rio:Container>
|
|
26
|
+
</items>
|
|
27
|
+
</rio:Container>
|
|
Binary file
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
@namespace
|
|
3
|
+
|
|
4
|
+
Methods for managing cookies.
|
|
5
|
+
*/
|
|
6
|
+
rio.Cookie = {
|
|
7
|
+
|
|
8
|
+
key: "_RIO_",
|
|
9
|
+
bindings: {},
|
|
10
|
+
observers: {},
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
Gets the value of a cookie.
|
|
14
|
+
|
|
15
|
+
@param {String} name The name of the cookie to get.
|
|
16
|
+
*/
|
|
17
|
+
get: function(name) {
|
|
18
|
+
var cookies = document.cookie.match(this.key + name + '=(.*?)(;|$)');
|
|
19
|
+
return (cookies) ? unescape(cookies[1]) : null;
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
Sets the value of a cookie.
|
|
24
|
+
|
|
25
|
+
@param {String} name The name of the cookie to set.
|
|
26
|
+
@param {Object} value The value to set in the cookie.
|
|
27
|
+
*/
|
|
28
|
+
set: function(name, value) {
|
|
29
|
+
// Set to 5000 days
|
|
30
|
+
var expires = new Date(new Date().getTime()+(1000*60*60*24*5000)).toGMTString();
|
|
31
|
+
var cookie = this.key + name + "=" + escape((value || "").toString());
|
|
32
|
+
try {
|
|
33
|
+
document.cookie = cookie + "; expires=" + expires;
|
|
34
|
+
this["_" + name] = value;
|
|
35
|
+
(this.observers[name] || []).each(function(observer) { observer(value); });
|
|
36
|
+
} catch (e) {
|
|
37
|
+
rio.log("Cookie.js - " + e);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
Set a default value for a cookie if the cookie is not yet defined
|
|
43
|
+
|
|
44
|
+
@param {String} name The name of the cookie to set.
|
|
45
|
+
@param {Object} value The default value to set in the cookie.
|
|
46
|
+
*/
|
|
47
|
+
setDefault: function(name, value) {
|
|
48
|
+
if (document.cookie.match(this.key + name + '=(.*?)(;|$)') == undefined) {
|
|
49
|
+
this.set(name, value);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
bind: function(name, observer) {
|
|
54
|
+
if (this.observers[name] == undefined) { this.observers[name] = []; }
|
|
55
|
+
|
|
56
|
+
this.observers[name].push(observer);
|
|
57
|
+
observer(this.get(name));
|
|
58
|
+
},
|
|
59
|
+
|
|
60
|
+
binding: function(name, defaultValue) {
|
|
61
|
+
if (defaultValue) {
|
|
62
|
+
this.setDefault(name, defaultValue);
|
|
63
|
+
}
|
|
64
|
+
if (this.bindings[name]) { return this.bindings[name]; }
|
|
65
|
+
|
|
66
|
+
this["_" + name] = this.get(name);
|
|
67
|
+
this.bindings[name] = new rio.Binding(this, name);
|
|
68
|
+
|
|
69
|
+
this[("get-" + name).camelize()] = this.get.curry(name).bind(this);
|
|
70
|
+
this[("set-" + name).camelize()] = this.set.curry(name).bind(this);
|
|
71
|
+
|
|
72
|
+
return this.bindings[name];
|
|
73
|
+
}
|
|
74
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
@class
|
|
3
|
+
|
|
4
|
+
DelayedTask will execute a function after a delay. Every time delay is called, any pending execution
|
|
5
|
+
will be canceled.
|
|
6
|
+
*/
|
|
7
|
+
rio.DelayedTask = Class.create(/** @scope rio.DelayedTask.prototype */{
|
|
8
|
+
/** @constructor */
|
|
9
|
+
initialize: function() {
|
|
10
|
+
this.id = null;
|
|
11
|
+
this.start = null;
|
|
12
|
+
this.delayLength = null;
|
|
13
|
+
this.task = null;
|
|
14
|
+
this.args = [];
|
|
15
|
+
this.scope = this;
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
/** @private */
|
|
19
|
+
timeout: function() {
|
|
20
|
+
if (new Date().getTime() - this.start >= this.delayLength) {
|
|
21
|
+
clearInterval(this.id);
|
|
22
|
+
this.id = null;
|
|
23
|
+
this.task.apply(this.scope, this.args || []);
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
Executes the passed in task after a delay. This will also cancel any pending tasks.
|
|
29
|
+
|
|
30
|
+
@param {Number} delayLength The delay in milliseconds
|
|
31
|
+
@param {Function} task Task to execute after the delay
|
|
32
|
+
@param {Object} scope (optional) The scope in which to execute the task
|
|
33
|
+
@param {Array} args (optional) Arguments to pass into the task function
|
|
34
|
+
*/
|
|
35
|
+
delay: function(delayLength, task, scope, args) {
|
|
36
|
+
if (this.id && delayLength != this.delayLength) {
|
|
37
|
+
this.cancel();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
this.delayLength = delayLength;
|
|
41
|
+
this.task = task;
|
|
42
|
+
this.scope = scope;
|
|
43
|
+
this.args = args;
|
|
44
|
+
|
|
45
|
+
this.start = new Date().getTime();
|
|
46
|
+
|
|
47
|
+
if (!this.id) {
|
|
48
|
+
this.id = setInterval(this.timeout.bind(this), this.delayLength);
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Cancels the queued task
|
|
54
|
+
*/
|
|
55
|
+
cancel: function() {
|
|
56
|
+
if (this.id) {
|
|
57
|
+
clearInterval(this.id);
|
|
58
|
+
this.id = null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
rio.Dependencies = Class.create({
|
|
2
|
+
initialize: function(options) {
|
|
3
|
+
this._app = options.app;
|
|
4
|
+
this._loadedScripts = options.loadedScripts;
|
|
5
|
+
this._loadedStylesheets = options.loadedStylesheets;
|
|
6
|
+
this._loadedTemplates = options.loadedTemplates;
|
|
7
|
+
},
|
|
8
|
+
|
|
9
|
+
storedDependencies: function(onSuccess) {
|
|
10
|
+
rio.File.open("/javascripts/" + this._app + ".build", {
|
|
11
|
+
onSuccess: function(file) {
|
|
12
|
+
onSuccess(file);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
matchLoadedFiles: function(options) {
|
|
18
|
+
|
|
19
|
+
var checkDependencies = function(stored, loaded) {
|
|
20
|
+
var match = true;
|
|
21
|
+
if (loaded.length == 0) {
|
|
22
|
+
match = match && (stored == undefined);
|
|
23
|
+
} else {
|
|
24
|
+
match = match && loaded.length == stored.length;
|
|
25
|
+
for (var i=0, length = loaded.length; i < length; i++) {
|
|
26
|
+
match = match && loaded[i] == stored[i];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return match;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
this.storedDependencies(function(file) {
|
|
33
|
+
var match = true;
|
|
34
|
+
try {
|
|
35
|
+
var storedDependencies = rio.Yaml.parse(file);
|
|
36
|
+
|
|
37
|
+
match = match && checkDependencies(storedDependencies.scripts, this._loadedScripts);
|
|
38
|
+
match = match && checkDependencies(storedDependencies.templates, this._loadedTemplates);
|
|
39
|
+
match = match && checkDependencies(storedDependencies.stylesheets, this._loadedStylesheets);
|
|
40
|
+
} catch(e) {
|
|
41
|
+
match = false;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (match) {
|
|
45
|
+
(options.onSuccess || Prototype.emptyFunction)();
|
|
46
|
+
} else {
|
|
47
|
+
options.onFailure();
|
|
48
|
+
}
|
|
49
|
+
}.bind(this));
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
synchronize: function(options) {
|
|
53
|
+
rio.File.write("/javascripts/" + this._app + ".build", this.yaml(), {
|
|
54
|
+
onSuccess: options.onSuccess
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
yaml: function() {
|
|
59
|
+
var dependenciesFile = rio.File.open("/javascripts/" + this._app + ".build", { asynchronous: false });
|
|
60
|
+
var dependencies = rio.Yaml.parse(dependenciesFile);
|
|
61
|
+
|
|
62
|
+
dependencies.scripts = this._loadedScripts;
|
|
63
|
+
if (!this._loadedTemplates.empty()) {
|
|
64
|
+
dependencies.templates = this._loadedTemplates;
|
|
65
|
+
} else {
|
|
66
|
+
delete dependencies.templates;
|
|
67
|
+
}
|
|
68
|
+
if (!this._loadedStylesheets.empty()) {
|
|
69
|
+
dependencies.stylesheets = this._loadedStylesheets;
|
|
70
|
+
} else {
|
|
71
|
+
delete dependencies.stylesheets;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return rio.Yaml.dump(dependencies);
|
|
75
|
+
}
|
|
76
|
+
});
|