ruboss_on_ruby 1.0.1

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 (102) hide show
  1. data/History.txt +3 -0
  2. data/Manifest.txt +101 -0
  3. data/README.txt +37 -0
  4. data/Rakefile +4 -0
  5. data/config/hoe.rb +72 -0
  6. data/config/requirements.rb +15 -0
  7. data/gpl-3.0.txt +674 -0
  8. data/lib/ruboss_on_ruby.rb +64 -0
  9. data/lib/ruboss_on_ruby/active_foo.rb +127 -0
  10. data/lib/ruboss_on_ruby/active_record_tasks.rb +75 -0
  11. data/lib/ruboss_on_ruby/configuration.rb +38 -0
  12. data/lib/ruboss_on_ruby/tasks.rb +74 -0
  13. data/lib/ruboss_on_ruby/version.rb +11 -0
  14. data/merb_generators/ruboss_config/USAGE +18 -0
  15. data/merb_generators/ruboss_config/ruboss_config_generator.rb +135 -0
  16. data/merb_generators/ruboss_config/templates/actionscript.properties +16 -0
  17. data/merb_generators/ruboss_config/templates/actionscriptair.properties +16 -0
  18. data/merb_generators/ruboss_config/templates/expressInstall.swf +0 -0
  19. data/merb_generators/ruboss_config/templates/flex.properties +2 -0
  20. data/merb_generators/ruboss_config/templates/html-template/AC_OETags.js +276 -0
  21. data/merb_generators/ruboss_config/templates/html-template/history/history.css +6 -0
  22. data/merb_generators/ruboss_config/templates/html-template/history/history.js +645 -0
  23. data/merb_generators/ruboss_config/templates/html-template/history/historyFrame.html +29 -0
  24. data/merb_generators/ruboss_config/templates/html-template/index.template.html +121 -0
  25. data/merb_generators/ruboss_config/templates/html-template/playerProductInstall.swf +0 -0
  26. data/merb_generators/ruboss_config/templates/index.html.erb +19 -0
  27. data/merb_generators/ruboss_config/templates/mainair-app.xml +134 -0
  28. data/merb_generators/ruboss_config/templates/mainapp.mxml +34 -0
  29. data/merb_generators/ruboss_config/templates/project.properties +18 -0
  30. data/merb_generators/ruboss_config/templates/projectair.properties +24 -0
  31. data/merb_generators/ruboss_config/templates/swfobject.js +5 -0
  32. data/merb_generators/ruboss_controller/USAGE +11 -0
  33. data/merb_generators/ruboss_controller/ruboss_controller_generator.rb +32 -0
  34. data/merb_generators/ruboss_controller/templates/controller.as.erb +35 -0
  35. data/merb_generators/ruboss_resource_controller/USAGE +5 -0
  36. data/merb_generators/ruboss_resource_controller/ruboss_resource_controller_generator.rb +70 -0
  37. data/merb_generators/ruboss_resource_controller/templates/app/controllers/%controller_file_name%.rb +55 -0
  38. data/merb_generators/ruboss_resource_controller/templates/app/helpers/%controller_file_name%_helper.rb +16 -0
  39. data/merb_generators/ruboss_scaffold/USAGE +5 -0
  40. data/merb_generators/ruboss_scaffold/ruboss_scaffold_generator.rb +190 -0
  41. data/merb_generators/ruboss_scaffold/templates/component.mxml.erb +148 -0
  42. data/merb_generators/ruboss_scaffold/templates/fixtures.yml.erb +35 -0
  43. data/merb_generators/ruboss_scaffold/templates/migration.rb.erb +19 -0
  44. data/merb_generators/ruboss_scaffold/templates/model.as.erb +42 -0
  45. data/merb_generators/ruboss_scaffold/templates/model.rb.erb +11 -0
  46. data/merb_generators/ruboss_yaml_scaffold/USAGE +5 -0
  47. data/merb_generators/ruboss_yaml_scaffold/ruboss_yaml_scaffold_generator.rb +53 -0
  48. data/rails_generators/ruboss_config/USAGE +18 -0
  49. data/rails_generators/ruboss_config/ruboss_config_generator.rb +126 -0
  50. data/rails_generators/ruboss_config/templates/actionscript.properties +16 -0
  51. data/rails_generators/ruboss_config/templates/actionscriptair.properties +16 -0
  52. data/rails_generators/ruboss_config/templates/expressInstall.swf +0 -0
  53. data/rails_generators/ruboss_config/templates/flex.properties +2 -0
  54. data/rails_generators/ruboss_config/templates/html-template/AC_OETags.js +276 -0
  55. data/rails_generators/ruboss_config/templates/html-template/history/history.css +6 -0
  56. data/rails_generators/ruboss_config/templates/html-template/history/history.js +645 -0
  57. data/rails_generators/ruboss_config/templates/html-template/history/historyFrame.html +29 -0
  58. data/rails_generators/ruboss_config/templates/html-template/index.template.html +121 -0
  59. data/rails_generators/ruboss_config/templates/html-template/playerProductInstall.swf +0 -0
  60. data/rails_generators/ruboss_config/templates/index.html.erb +19 -0
  61. data/rails_generators/ruboss_config/templates/mainair-app.xml +134 -0
  62. data/rails_generators/ruboss_config/templates/mainapp.mxml +34 -0
  63. data/rails_generators/ruboss_config/templates/project.properties +18 -0
  64. data/rails_generators/ruboss_config/templates/projectair.properties +24 -0
  65. data/rails_generators/ruboss_config/templates/ruboss_tasks.rake +15 -0
  66. data/rails_generators/ruboss_config/templates/swfobject.js +5 -0
  67. data/rails_generators/ruboss_controller/USAGE +11 -0
  68. data/rails_generators/ruboss_controller/ruboss_controller_generator.rb +46 -0
  69. data/rails_generators/ruboss_controller/templates/controller.as.erb +35 -0
  70. data/rails_generators/ruboss_scaffold/USAGE +35 -0
  71. data/rails_generators/ruboss_scaffold/ruboss_scaffold_generator.rb +193 -0
  72. data/rails_generators/ruboss_scaffold/templates/component.mxml.erb +148 -0
  73. data/rails_generators/ruboss_scaffold/templates/controller.rb.erb +97 -0
  74. data/rails_generators/ruboss_scaffold/templates/fixtures.yml.erb +35 -0
  75. data/rails_generators/ruboss_scaffold/templates/migration.rb.erb +19 -0
  76. data/rails_generators/ruboss_scaffold/templates/model.as.erb +42 -0
  77. data/rails_generators/ruboss_scaffold/templates/model.rb.erb +11 -0
  78. data/rails_generators/ruboss_yaml_scaffold/USAGE +14 -0
  79. data/rails_generators/ruboss_yaml_scaffold/ruboss_yaml_scaffold_generator.rb +45 -0
  80. data/rcl-1.0.txt +0 -0
  81. data/script/console +10 -0
  82. data/script/destroy +14 -0
  83. data/script/generate +14 -0
  84. data/script/txt2html +82 -0
  85. data/setup.rb +1585 -0
  86. data/tasks/deployment.rake +34 -0
  87. data/tasks/environment.rake +7 -0
  88. data/tasks/website.rake +17 -0
  89. data/test/active_foo_test.rb +16 -0
  90. data/test/test_generator_helper.rb +29 -0
  91. data/test/test_helper.rb +2 -0
  92. data/test/test_ruboss_config_generator.rb +45 -0
  93. data/test/test_ruboss_controller_generator.rb +45 -0
  94. data/test/test_ruboss_on_ruby.rb +11 -0
  95. data/test/test_ruboss_scaffold_generator.rb +45 -0
  96. data/test/test_ruboss_yaml_scaffold_generator.rb +46 -0
  97. data/website/index.html +86 -0
  98. data/website/index.txt +83 -0
  99. data/website/javascripts/rounded_corners_lite.inc.js +285 -0
  100. data/website/stylesheets/screen.css +138 -0
  101. data/website/template.html.erb +48 -0
  102. metadata +166 -0
@@ -0,0 +1,29 @@
1
+ <html>
2
+ <head>
3
+ <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
4
+ <META HTTP-EQUIV="Expires" CONTENT="-1">
5
+ </head>
6
+ <body>
7
+ <script>
8
+ function processUrl()
9
+ {
10
+
11
+ var pos = url.indexOf("?");
12
+ url = pos != -1 ? url.substr(pos + 1) : "";
13
+ if (!parent._ie_firstload) {
14
+ parent.BrowserHistory.setBrowserURL(url);
15
+ try {
16
+ parent.BrowserHistory.browserURLChange(url);
17
+ } catch(e) { }
18
+ } else {
19
+ parent._ie_firstload = false;
20
+ }
21
+ }
22
+
23
+ var url = document.location.href;
24
+ processUrl();
25
+ document.write(url);
26
+ </script>
27
+ Hidden frame for Browser History support.
28
+ </body>
29
+ </html>
@@ -0,0 +1,121 @@
1
+ <!-- saved from url=(0014)about:internet -->
2
+ <html lang="en">
3
+
4
+ <!--
5
+ Smart developers always View Source.
6
+
7
+ This application was built using Adobe Flex, an open source framework
8
+ for building rich Internet applications that get delivered via the
9
+ Flash Player or to desktops via Adobe AIR.
10
+
11
+ Learn more about Flex at http://flex.org
12
+ // -->
13
+
14
+ <head>
15
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
16
+
17
+ <!-- BEGIN Browser History required section -->
18
+ <link rel="stylesheet" type="text/css" href="history/history.css" />
19
+ <!-- END Browser History required section -->
20
+
21
+ <title>${title}</title>
22
+ <script src="AC_OETags.js" language="javascript"></script>
23
+
24
+ <!-- BEGIN Browser History required section -->
25
+ <script src="history/history.js" language="javascript"></script>
26
+ <!-- END Browser History required section -->
27
+
28
+ <style>
29
+ body { margin: 0px; overflow:hidden }
30
+ </style>
31
+ <script language="JavaScript" type="text/javascript">
32
+ <!--
33
+ // -----------------------------------------------------------------------------
34
+ // Globals
35
+ // Major version of Flash required
36
+ var requiredMajorVersion = ${version_major};
37
+ // Minor version of Flash required
38
+ var requiredMinorVersion = ${version_minor};
39
+ // Minor version of Flash required
40
+ var requiredRevision = ${version_revision};
41
+ // -----------------------------------------------------------------------------
42
+ // -->
43
+ </script>
44
+ </head>
45
+
46
+ <body scroll="no">
47
+ <script language="JavaScript" type="text/javascript">
48
+ <!--
49
+ // Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)
50
+ var hasProductInstall = DetectFlashVer(6, 0, 65);
51
+
52
+ // Version check based upon the values defined in globals
53
+ var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
54
+
55
+ if ( hasProductInstall && !hasRequestedVersion ) {
56
+ // DO NOT MODIFY THE FOLLOWING FOUR LINES
57
+ // Location visited after installation is complete if installation is required
58
+ var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
59
+ var MMredirectURL = window.location;
60
+ document.title = document.title.slice(0, 47) + " - Flash Player Installation";
61
+ var MMdoctitle = document.title;
62
+
63
+ AC_FL_RunContent(
64
+ "src", "playerProductInstall",
65
+ "FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
66
+ "width", "${width}",
67
+ "height", "${height}",
68
+ "align", "middle",
69
+ "id", "${application}",
70
+ "quality", "high",
71
+ "bgcolor", "${bgcolor}",
72
+ "name", "${application}",
73
+ "allowScriptAccess","sameDomain",
74
+ "type", "application/x-shockwave-flash",
75
+ "pluginspage", "http://www.adobe.com/go/getflashplayer"
76
+ );
77
+ } else if (hasRequestedVersion) {
78
+ // if we've detected an acceptable version
79
+ // embed the Flash Content SWF when all tests are passed
80
+ AC_FL_RunContent(
81
+ "src", "${swf}",
82
+ "width", "${width}",
83
+ "height", "${height}",
84
+ "align", "middle",
85
+ "id", "${application}",
86
+ "quality", "high",
87
+ "bgcolor", "${bgcolor}",
88
+ "name", "${application}",
89
+ "allowScriptAccess","sameDomain",
90
+ "type", "application/x-shockwave-flash",
91
+ "pluginspage", "http://www.adobe.com/go/getflashplayer"
92
+ );
93
+ } else { // flash is too old or we can't detect the plugin
94
+ var alternateContent = 'Alternate HTML content should be placed here. '
95
+ + 'This content requires the Adobe Flash Player. '
96
+ + '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
97
+ document.write(alternateContent); // insert non-flash content
98
+ }
99
+ // -->
100
+ </script>
101
+ <noscript>
102
+ <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
103
+ id="${application}" width="${width}" height="${height}"
104
+ codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
105
+ <param name="movie" value="${swf}.swf" />
106
+ <param name="quality" value="high" />
107
+ <param name="bgcolor" value="${bgcolor}" />
108
+ <param name="allowScriptAccess" value="sameDomain" />
109
+ <embed src="${swf}.swf" quality="high" bgcolor="${bgcolor}"
110
+ width="${width}" height="${height}" name="${application}" align="middle"
111
+ play="true"
112
+ loop="false"
113
+ quality="high"
114
+ allowScriptAccess="sameDomain"
115
+ type="application/x-shockwave-flash"
116
+ pluginspage="http://www.adobe.com/go/getflashplayer">
117
+ </embed>
118
+ </object>
119
+ </noscript>
120
+ </body>
121
+ </html>
@@ -0,0 +1,19 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
3
+ <head>
4
+ <title><%= project_name %></title>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
6
+ <script type="text/javascript" src="/javascripts/swfobject.js"></script>
7
+ <script type="text/javascript">
8
+ swfobject.embedSWF("/bin/<%= project_name %>.swf", "mainApp", "100%", "100%", "9.0.0", "expressInstall.swf");
9
+ </script>
10
+ <style>
11
+ body { margin: 0px; overflow: hidden; }
12
+ </style>
13
+ </head>
14
+ <body>
15
+ <div id="mainApp">
16
+ <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
17
+ </div>
18
+ </body>
19
+ </html>
@@ -0,0 +1,134 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <application xmlns="http://ns.adobe.com/air/application/1.0">
3
+
4
+ <!-- Adobe AIR Application Descriptor File Template.
5
+
6
+ Specifies parameters for identifying, installing, and launching AIR applications.
7
+ See http://www.adobe.com/go/air_1.0_application_descriptor for complete documentation.
8
+
9
+ xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/1.0
10
+ The last segment of the namespace specifies the version
11
+ of the AIR runtime required for this application to run.
12
+
13
+ minimumPatchLevel - The minimum patch level of the AIR runtime required to run
14
+ the application. Optional.
15
+ -->
16
+
17
+ <!-- The application identifier string, unique to this application. Required. -->
18
+ <id><%= project_name %></id>
19
+
20
+ <!-- Used as the filename for the application. Required. -->
21
+ <filename><%= project_name %></filename>
22
+
23
+ <!-- The name that is displayed in the AIR application installer. Optional. -->
24
+ <name><%= project_name %></name>
25
+
26
+ <!-- An application version designator (such as "v1", "2.5", or "Alpha 1"). Required. -->
27
+ <version>v1</version>
28
+
29
+ <!-- Description, displayed in the AIR application installer. Optional. -->
30
+ <!-- <description></description> -->
31
+
32
+ <!-- Copyright information. Optional -->
33
+ <!-- <copyright></copyright> -->
34
+
35
+ <!-- Settings for the application's initial window. Required. -->
36
+ <initialWindow>
37
+ <!-- The main SWF or HTML file of the application. Required. -->
38
+ <!-- Note: In Flex Builder, the SWF reference is set automatically. -->
39
+ <content>[This value will be overwritten by Flex Builder in the output app.xml]</content>
40
+
41
+ <!-- The title of the main window. Optional. -->
42
+ <!-- <title></title> -->
43
+
44
+ <!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. -->
45
+ <!-- <systemChrome></systemChrome> -->
46
+
47
+ <!-- Whether the window is transparent. Only applicable when systemChrome is false. Optional. Default false. -->
48
+ <!-- <transparent></transparent> -->
49
+
50
+ <!-- Whether the window is initially visible. Optional. Default false. -->
51
+ <!-- <visible></visible> -->
52
+
53
+ <!-- Whether the user can minimize the window. Optional. Default true. -->
54
+ <!-- <minimizable></minimizable> -->
55
+
56
+ <!-- Whether the user can maximize the window. Optional. Default true. -->
57
+ <!-- <maximizable></maximizable> -->
58
+
59
+ <!-- Whether the user can resize the window. Optional. Default true. -->
60
+ <!-- <resizable></resizable> -->
61
+
62
+ <!-- The window's initial width. Optional. -->
63
+ <!-- <width></width> -->
64
+
65
+ <!-- The window's initial height. Optional. -->
66
+ <!-- <height></height> -->
67
+
68
+ <!-- The window's initial x position. Optional. -->
69
+ <!-- <x></x> -->
70
+
71
+ <!-- The window's initial y position. Optional. -->
72
+ <!-- <y></y> -->
73
+
74
+ <!-- The window's minimum size, specified as a width/height pair, such as "400 200". Optional. -->
75
+ <!-- <minSize></minSize> -->
76
+
77
+ <!-- The window's initial maximum size, specified as a width/height pair, such as "1600 1200". Optional. -->
78
+ <!-- <maxSize></maxSize> -->
79
+ </initialWindow>
80
+
81
+ <!-- The subpath of the standard default installation location to use. Optional. -->
82
+ <!-- <installFolder></installFolder> -->
83
+
84
+ <!-- The subpath of the Windows Start/Programs menu to use. Optional. -->
85
+ <!-- <programMenuFolder></programMenuFolder> -->
86
+
87
+ <!-- The icon the system uses for the application. For at least one resolution,
88
+ specify the path to a PNG file included in the AIR package. Optional. -->
89
+ <!-- <icon>
90
+ <image16x16></image16x16>
91
+ <image32x32></image32x32>
92
+ <image48x48></image48x48>
93
+ <image128x128></image128x128>
94
+ </icon> -->
95
+
96
+ <!-- Whether the application handles the update when a user double-clicks an update version
97
+ of the AIR file (true), or the default AIR application installer handles the update (false).
98
+ Optional. Default false. -->
99
+ <!-- <customUpdateUI></customUpdateUI> -->
100
+
101
+ <!-- Whether the application can be launched when the user clicks a link in a web browser.
102
+ Optional. Default false. -->
103
+ <!-- <allowBrowserInvocation></allowBrowserInvocation> -->
104
+
105
+ <!-- Listing of file types for which the application can register. Optional. -->
106
+ <!-- <fileTypes> -->
107
+
108
+ <!-- Defines one file type. Optional. -->
109
+ <!-- <fileType> -->
110
+
111
+ <!-- The name that the system displays for the registered file type. Required. -->
112
+ <!-- <name></name> -->
113
+
114
+ <!-- The extension to register. Required. -->
115
+ <!-- <extension></extension> -->
116
+
117
+ <!-- The description of the file type. Optional. -->
118
+ <!-- <description></description> -->
119
+
120
+ <!-- The MIME type. Optional. -->
121
+ <!-- <contentType></contentType> -->
122
+
123
+ <!-- The icon to display for the file type. Optional. -->
124
+ <!-- <icon>
125
+ <image16x16></image16x16>
126
+ <image32x32></image32x32>
127
+ <image48x48></image48x48>
128
+ <image128x128></image128x128>
129
+ </icon> -->
130
+
131
+ <!-- </fileType> -->
132
+ <!-- </fileTypes> -->
133
+
134
+ </application>
@@ -0,0 +1,34 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <mx:<%= application_tag %> xmlns:mx="http://www.adobe.com/2006/mxml"
3
+ xmlns:generated="<%= base_package %>.components.generated.*"
4
+ layout="vertical"
5
+ styleName="plain"
6
+ initialize="init()">
7
+ <mx:Script>
8
+ <![CDATA[
9
+ <% if use_air -%>
10
+ import org.ruboss.services.air.AIRServiceProvider;
11
+ <% end -%>
12
+ import org.ruboss.Ruboss;
13
+ import <%= base_package %>.controllers.<%= command_controller_name %>;
14
+
15
+ private function init():void {
16
+ <% if use_air -%>
17
+ <%= command_controller_name %>.initialize([AIRServiceProvider], AIRServiceProvider.ID, "<%= base_package %>");
18
+ <% else -%>
19
+ <%= command_controller_name %>.initialize();
20
+ <% end -%>
21
+ }
22
+ ]]>
23
+ </mx:Script>
24
+ <mx:ApplicationControlBar dock="true" width="100%">
25
+ <mx:LinkBar dataProvider="{mainViewStack}"/>
26
+ </mx:ApplicationControlBar>
27
+ <mx:ViewStack id="mainViewStack" width="100%" height="100%">
28
+ <!-- For a simple demo, put all the components here. -->
29
+ <% for component in component_names -%>
30
+ <generated:<%= component %>/>
31
+ <% end -%>
32
+ </mx:ViewStack>
33
+ </mx:<%= application_tag %>>
34
+
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name><%= flex_project_name %></name>
4
+ <comment></comment>
5
+ <projects>
6
+ </projects>
7
+ <buildSpec>
8
+ <buildCommand>
9
+ <name>com.adobe.flexbuilder.project.flexbuilder</name>
10
+ <arguments>
11
+ </arguments>
12
+ </buildCommand>
13
+ </buildSpec>
14
+ <natures>
15
+ <nature>com.adobe.flexbuilder.project.flexnature</nature>
16
+ <nature>com.adobe.flexbuilder.project.actionscriptnature</nature>
17
+ </natures>
18
+ </projectDescription>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name><%= flex_project_name %></name>
4
+ <comment></comment>
5
+ <projects>
6
+ </projects>
7
+ <buildSpec>
8
+ <buildCommand>
9
+ <name>com.adobe.flexbuilder.project.flexbuilder</name>
10
+ <arguments>
11
+ </arguments>
12
+ </buildCommand>
13
+ <buildCommand>
14
+ <name>com.adobe.flexbuilder.apollo.apollobuilder</name>
15
+ <arguments>
16
+ </arguments>
17
+ </buildCommand>
18
+ </buildSpec>
19
+ <natures>
20
+ <nature>com.adobe.flexbuilder.apollo.apollonature</nature>
21
+ <nature>com.adobe.flexbuilder.project.flexnature</nature>
22
+ <nature>com.adobe.flexbuilder.project.actionscriptnature</nature>
23
+ </natures>
24
+ </projectDescription>
@@ -0,0 +1,15 @@
1
+ ################################################################################
2
+ # Copyright 2008, Ruboss Technology Corporation.
3
+ #
4
+ # This software is dual-licensed under both the terms of the Ruboss Commercial
5
+ # License v1 (RCL v1) as published by Ruboss Technology Corporation and under
6
+ # the terms of the GNU General Public License v3 (GPL v3) as published by the
7
+ # Free Software Foundation.
8
+ #
9
+ # Both the RCL v1 (rcl-1.0.txt) and the GPL v3 (gpl-3.0.txt) are included in
10
+ # the source code. If you have purchased a commercial license then only the
11
+ # RCL v1 applies; otherwise, only the GPL v3 applies. To learn more or to buy a
12
+ # commercial license, please go to http://ruboss.com.
13
+ ################################################################################
14
+ require 'ruboss_on_ruby/active_record_tasks'
15
+
@@ -0,0 +1,5 @@
1
+ /* SWFObject v2.0 <http://code.google.com/p/swfobject/>
2
+ Copyright (c) 2007 Geoff Stearns, Michael Williams, and Bobby van der Sluis
3
+ This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
4
+ */
5
+ var swfobject=function(){var Z="undefined",P="object",B="Shockwave Flash",h="ShockwaveFlash.ShockwaveFlash",W="application/x-shockwave-flash",K="SWFObjectExprInst",G=window,g=document,N=navigator,f=[],H=[],Q=null,L=null,T=null,S=false,C=false;var a=function(){var l=typeof g.getElementById!=Z&&typeof g.getElementsByTagName!=Z&&typeof g.createElement!=Z&&typeof g.appendChild!=Z&&typeof g.replaceChild!=Z&&typeof g.removeChild!=Z&&typeof g.cloneNode!=Z,t=[0,0,0],n=null;if(typeof N.plugins!=Z&&typeof N.plugins[B]==P){n=N.plugins[B].description;if(n){n=n.replace(/^.*\s+(\S+\s+\S+$)/,"$1");t[0]=parseInt(n.replace(/^(.*)\..*$/,"$1"),10);t[1]=parseInt(n.replace(/^.*\.(.*)\s.*$/,"$1"),10);t[2]=/r/.test(n)?parseInt(n.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof G.ActiveXObject!=Z){var o=null,s=false;try{o=new ActiveXObject(h+".7")}catch(k){try{o=new ActiveXObject(h+".6");t=[6,0,21];o.AllowScriptAccess="always"}catch(k){if(t[0]==6){s=true}}if(!s){try{o=new ActiveXObject(h)}catch(k){}}}if(!s&&o){try{n=o.GetVariable("$version");if(n){n=n.split(" ")[1].split(",");t=[parseInt(n[0],10),parseInt(n[1],10),parseInt(n[2],10)]}}catch(k){}}}}var v=N.userAgent.toLowerCase(),j=N.platform.toLowerCase(),r=/webkit/.test(v)?parseFloat(v.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,i=false,q=j?/win/.test(j):/win/.test(v),m=j?/mac/.test(j):/mac/.test(v);/*@cc_on i=true;@if(@_win32)q=true;@elif(@_mac)m=true;@end@*/return{w3cdom:l,pv:t,webkit:r,ie:i,win:q,mac:m}}();var e=function(){if(!a.w3cdom){return }J(I);if(a.ie&&a.win){try{g.write("<script id=__ie_ondomload defer=true src=//:><\/script>");var i=c("__ie_ondomload");if(i){i.onreadystatechange=function(){if(this.readyState=="complete"){this.parentNode.removeChild(this);V()}}}}catch(j){}}if(a.webkit&&typeof g.readyState!=Z){Q=setInterval(function(){if(/loaded|complete/.test(g.readyState)){V()}},10)}if(typeof g.addEventListener!=Z){g.addEventListener("DOMContentLoaded",V,null)}M(V)}();function V(){if(S){return }if(a.ie&&a.win){var m=Y("span");try{var l=g.getElementsByTagName("body")[0].appendChild(m);l.parentNode.removeChild(l)}catch(n){return }}S=true;if(Q){clearInterval(Q);Q=null}var j=f.length;for(var k=0;k<j;k++){f[k]()}}function J(i){if(S){i()}else{f[f.length]=i}}function M(j){if(typeof G.addEventListener!=Z){G.addEventListener("load",j,false)}else{if(typeof g.addEventListener!=Z){g.addEventListener("load",j,false)}else{if(typeof G.attachEvent!=Z){G.attachEvent("onload",j)}else{if(typeof G.onload=="function"){var i=G.onload;G.onload=function(){i();j()}}else{G.onload=j}}}}}function I(){var l=H.length;for(var j=0;j<l;j++){var m=H[j].id;if(a.pv[0]>0){var k=c(m);if(k){H[j].width=k.getAttribute("width")?k.getAttribute("width"):"0";H[j].height=k.getAttribute("height")?k.getAttribute("height"):"0";if(O(H[j].swfVersion)){if(a.webkit&&a.webkit<312){U(k)}X(m,true)}else{if(H[j].expressInstall&&!C&&O("6.0.65")&&(a.win||a.mac)){D(H[j])}else{d(k)}}}}else{X(m,true)}}}function U(m){var k=m.getElementsByTagName(P)[0];if(k){var p=Y("embed"),r=k.attributes;if(r){var o=r.length;for(var n=0;n<o;n++){if(r[n].nodeName.toLowerCase()=="data"){p.setAttribute("src",r[n].nodeValue)}else{p.setAttribute(r[n].nodeName,r[n].nodeValue)}}}var q=k.childNodes;if(q){var s=q.length;for(var l=0;l<s;l++){if(q[l].nodeType==1&&q[l].nodeName.toLowerCase()=="param"){p.setAttribute(q[l].getAttribute("name"),q[l].getAttribute("value"))}}}m.parentNode.replaceChild(p,m)}}function F(i){if(a.ie&&a.win&&O("8.0.0")){G.attachEvent("onunload",function(){var k=c(i);if(k){for(var j in k){if(typeof k[j]=="function"){k[j]=function(){}}}k.parentNode.removeChild(k)}})}}function D(j){C=true;var o=c(j.id);if(o){if(j.altContentId){var l=c(j.altContentId);if(l){L=l;T=j.altContentId}}else{L=b(o)}if(!(/%$/.test(j.width))&&parseInt(j.width,10)<310){j.width="310"}if(!(/%$/.test(j.height))&&parseInt(j.height,10)<137){j.height="137"}g.title=g.title.slice(0,47)+" - Flash Player Installation";var n=a.ie&&a.win?"ActiveX":"PlugIn",k=g.title,m="MMredirectURL="+G.location+"&MMplayerType="+n+"&MMdoctitle="+k,p=j.id;if(a.ie&&a.win&&o.readyState!=4){var i=Y("div");p+="SWFObjectNew";i.setAttribute("id",p);o.parentNode.insertBefore(i,o);o.style.display="none";G.attachEvent("onload",function(){o.parentNode.removeChild(o)})}R({data:j.expressInstall,id:K,width:j.width,height:j.height},{flashvars:m},p)}}function d(j){if(a.ie&&a.win&&j.readyState!=4){var i=Y("div");j.parentNode.insertBefore(i,j);i.parentNode.replaceChild(b(j),i);j.style.display="none";G.attachEvent("onload",function(){j.parentNode.removeChild(j)})}else{j.parentNode.replaceChild(b(j),j)}}function b(n){var m=Y("div");if(a.win&&a.ie){m.innerHTML=n.innerHTML}else{var k=n.getElementsByTagName(P)[0];if(k){var o=k.childNodes;if(o){var j=o.length;for(var l=0;l<j;l++){if(!(o[l].nodeType==1&&o[l].nodeName.toLowerCase()=="param")&&!(o[l].nodeType==8)){m.appendChild(o[l].cloneNode(true))}}}}}return m}function R(AE,AC,q){var p,t=c(q);if(typeof AE.id==Z){AE.id=q}if(a.ie&&a.win){var AD="";for(var z in AE){if(AE[z]!=Object.prototype[z]){if(z=="data"){AC.movie=AE[z]}else{if(z.toLowerCase()=="styleclass"){AD+=' class="'+AE[z]+'"'}else{if(z!="classid"){AD+=" "+z+'="'+AE[z]+'"'}}}}}var AB="";for(var y in AC){if(AC[y]!=Object.prototype[y]){AB+='<param name="'+y+'" value="'+AC[y]+'" />'}}t.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AD+">"+AB+"</object>";F(AE.id);p=c(AE.id)}else{if(a.webkit&&a.webkit<312){var AA=Y("embed");AA.setAttribute("type",W);for(var x in AE){if(AE[x]!=Object.prototype[x]){if(x=="data"){AA.setAttribute("src",AE[x])}else{if(x.toLowerCase()=="styleclass"){AA.setAttribute("class",AE[x])}else{if(x!="classid"){AA.setAttribute(x,AE[x])}}}}}for(var w in AC){if(AC[w]!=Object.prototype[w]){if(w!="movie"){AA.setAttribute(w,AC[w])}}}t.parentNode.replaceChild(AA,t);p=AA}else{var s=Y(P);s.setAttribute("type",W);for(var v in AE){if(AE[v]!=Object.prototype[v]){if(v.toLowerCase()=="styleclass"){s.setAttribute("class",AE[v])}else{if(v!="classid"){s.setAttribute(v,AE[v])}}}}for(var u in AC){if(AC[u]!=Object.prototype[u]&&u!="movie"){E(s,u,AC[u])}}t.parentNode.replaceChild(s,t);p=s}}return p}function E(k,i,j){var l=Y("param");l.setAttribute("name",i);l.setAttribute("value",j);k.appendChild(l)}function c(i){return g.getElementById(i)}function Y(i){return g.createElement(i)}function O(k){var j=a.pv,i=k.split(".");i[0]=parseInt(i[0],10);i[1]=parseInt(i[1],10);i[2]=parseInt(i[2],10);return(j[0]>i[0]||(j[0]==i[0]&&j[1]>i[1])||(j[0]==i[0]&&j[1]==i[1]&&j[2]>=i[2]))?true:false}function A(m,j){if(a.ie&&a.mac){return }var l=g.getElementsByTagName("head")[0],k=Y("style");k.setAttribute("type","text/css");k.setAttribute("media","screen");if(!(a.ie&&a.win)&&typeof g.createTextNode!=Z){k.appendChild(g.createTextNode(m+" {"+j+"}"))}l.appendChild(k);if(a.ie&&a.win&&typeof g.styleSheets!=Z&&g.styleSheets.length>0){var i=g.styleSheets[g.styleSheets.length-1];if(typeof i.addRule==P){i.addRule(m,j)}}}function X(k,i){var j=i?"visible":"hidden";if(S){c(k).style.visibility=j}else{A("#"+k,"visibility:"+j)}}return{registerObject:function(l,i,k){if(!a.w3cdom||!l||!i){return }var j={};j.id=l;j.swfVersion=i;j.expressInstall=k?k:false;H[H.length]=j;X(l,false)},getObjectById:function(l){var i=null;if(a.w3cdom&&S){var j=c(l);if(j){var k=j.getElementsByTagName(P)[0];if(!k||(k&&typeof j.SetVariable!=Z)){i=j}else{if(typeof k.SetVariable!=Z){i=k}}}}return i},embedSWF:function(n,u,r,t,j,m,k,p,s){if(!a.w3cdom||!n||!u||!r||!t||!j){return }r+="";t+="";if(O(j)){X(u,false);var q=(typeof s==P)?s:{};q.data=n;q.width=r;q.height=t;var o=(typeof p==P)?p:{};if(typeof k==P){for(var l in k){if(k[l]!=Object.prototype[l]){if(typeof o.flashvars!=Z){o.flashvars+="&"+l+"="+k[l]}else{o.flashvars=l+"="+k[l]}}}}J(function(){R(q,o,u);if(q.id==u){X(u,true)}})}else{if(m&&!C&&O("6.0.65")&&(a.win||a.mac)){X(u,false);J(function(){var i={};i.id=i.altContentId=u;i.width=r;i.height=t;i.expressInstall=m;D(i)})}}},getFlashPlayerVersion:function(){return{major:a.pv[0],minor:a.pv[1],release:a.pv[2]}},hasFlashPlayerVersion:O,createSWF:function(k,j,i){if(a.w3cdom&&S){return R(k,j,i)}else{return undefined}},createCSS:function(j,i){if(a.w3cdom){A(j,i)}},addDomLoadEvent:J,addLoadEvent:M,getQueryParamValue:function(m){var l=g.location.search||g.location.hash;if(m==null){return l}if(l){var k=l.substring(1).split("&");for(var j=0;j<k.length;j++){if(k[j].substring(0,k[j].indexOf("="))==m){return k[j].substring((k[j].indexOf("=")+1))}}}return""},expressInstallCallback:function(){if(C&&L){var i=c(K);if(i){i.parentNode.replaceChild(L,i);if(T){X(T,true);if(a.ie&&a.win){L.style.display="block"}}L=null;T=null;C=false}}}}}();
@@ -0,0 +1,11 @@
1
+ Description:
2
+ Generates/updates the main Flex application controller, typically
3
+ app/flex/<yourappname>/controllers/<YourAppName>Controller.as, e.g.
4
+ app/flex/pomodo/controllers/PomodoController.as
5
+
6
+ It pulls out all available models and commands from respective
7
+ folders and makes sure they'll be pulled into the Flex application
8
+ at runtime. Doesn't require any arguments or options.
9
+
10
+ Examples:
11
+ `./script/generate ruboss_controller`
@@ -0,0 +1,46 @@
1
+ ################################################################################
2
+ # Copyright 2008, Ruboss Technology Corporation.
3
+ #
4
+ # This software is dual-licensed under both the terms of the Ruboss Commercial
5
+ # License v1 (RCL v1) as published by Ruboss Technology Corporation and under
6
+ # the terms of the GNU General Public License v3 (GPL v3) as published by the
7
+ # Free Software Foundation.
8
+ #
9
+ # Both the RCL v1 (rcl-1.0.txt) and the GPL v3 (gpl-3.0.txt) are included in
10
+ # the source code. If you have purchased a commercial license then only the
11
+ # RCL v1 applies; otherwise, only the GPL v3 applies. To learn more or to buy a
12
+ # commercial license, please go to http://ruboss.com.
13
+ ################################################################################
14
+ require 'ruboss_on_ruby/configuration'
15
+
16
+ class RubossControllerGenerator < Rails::Generator::Base
17
+ include RubossOnRuby::Configuration
18
+
19
+ attr_reader :project_name,
20
+ :flex_project_name,
21
+ :base_package,
22
+ :base_folder,
23
+ :command_controller_name,
24
+ :model_names,
25
+ :command_names
26
+
27
+ def initialize(runtime_args, runtime_options = {})
28
+ super
29
+ @project_name, @flex_project_name, @command_controller_name, @base_package, @base_folder = extract_names
30
+
31
+ @model_names = list_as_files("app/flex/#{base_folder}/models")
32
+ @command_names = list_as_files("app/flex/#{base_folder}/commands")
33
+ end
34
+
35
+ def manifest
36
+ record do |m|
37
+ m.template 'controller.as.erb', File.join("app/flex/#{base_folder}/controllers",
38
+ "#{command_controller_name}.as")
39
+ end
40
+ end
41
+
42
+ protected
43
+ def banner
44
+ "Usage: #{$0} #{spec.name}"
45
+ end
46
+ end