flex_egenial_scaffold 0.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.
@@ -0,0 +1,3 @@
1
+ [2007-01-09]
2
+ 0.0.1 - Gera a tela com um cadastro, atualização, deleção e listagem de registros cadastrados, totalmente baseado em aplicações RIA desenvolvidas
3
+ com Flex 2.0.
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2007 Carlos Eduardo Gonçalves Franco
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README ADDED
@@ -0,0 +1,121 @@
1
+ Flex e-Genial Scaffold :::::::::::::::::::::::::::::
2
+
3
+ Este scaffold vai te ajudar a dar um ponta-p� inicial no mundo Ruby on Rails, ele leva junto algo que vai fazer a diferen�a,
4
+ gra�as a Web 2.0 aplica��es RIA esta em alta e se voc� instalou o Flex e-Genial Scaffold ou � porque j� entende do assunto
5
+ ou esta querendo fazer a diferen�a em suas aplica��es, ent�o seja bem vindo, ao mundo da produtividade !!!
6
+
7
+ Abaixo segue alguns pontos que devem ser levados ao p� da letra para o devido funcionamento do Flex e-Genial Scaffold:
8
+
9
+ ****** ESTAS DUAS CONFIGURA��ES S�O FEITAS SOMENTE UMA VEZ ******
10
+
11
+ 1� - A primeira vez que vocc� rodar
12
+ rails sua_aplica��o
13
+ cd sua_aplica��o
14
+ sua_aplica��o>ruby script/generate flex_egenial_scaffold Tabela(singular)
15
+
16
+ Ser� criado um arquivo chamado comp.rake dentro da pasta lib/tasks da sua aplica��o, edite este arquivo.
17
+ O primeiro passo � mostrar o caminho de onde voc� instalou ou extraiu o flex SDK
18
+ no exemplo estar�:
19
+
20
+ home = "F:/FAMILIA_ADOBE/FLEX_SDK_2"
21
+
22
+ Troque ent�o para:
23
+
24
+ home = "Caminho/de/onde/esta/a/instala��oo/do/Flex/SDK"
25
+
26
+ Observa��o: Lembrando que para compilar os fontes .mxml das aplica��es geradas pelo Flex SDK � preciso
27
+ ter instalado o JVM da Sun, e configurado as variaveis de ambiente corretamente, porque ao rodar ele ir� realizar a seguinte tarefa
28
+ quando voc� fizer: sua_aplica��o>rake comp:flex arq=Model
29
+
30
+ [ Tarefa realizada ]
31
+ java -jar ../lib/mxmlc.jar -load-config ../frameworks/flex-config.xml -file-specs public/sis/tabela/tabela.mxml
32
+
33
+ 2� - Como vamos usar o proprio compilador java do Flex, precisamos fazer a seguinte mudan�a
34
+
35
+ Dentro da pasta Caminho/de/onde/esta/a/instala��o/do/Flex/SDK/frameworks
36
+ Existe um arquivo chamado flex-config.xml encontre as linhas abaixo, e deixe descomentado conforme abaixo
37
+
38
+ <!-- File containing cached system font licensing information
39
+ produced via
40
+ java -cp mxmlc.jar flex2.tools.FontsSnapshot (fontpath)
41
+ Will default to winFonts.ser on Windows XP and
42
+ macFonts.ser on Mac OS X, so is commented out by default.
43
+ -->
44
+
45
+ <local-fonts-snapshot>localFonts.ser</local-fonts-snapshot>
46
+
47
+
48
+ 3� - Agora se voc� j� tem tudo acertado com o os dois simples passos acima, e j� criou seu primeiro scaffold com o flex_egenial_scaffold � hora de
49
+ colocar o touro para pular, agora fa�a:
50
+
51
+ sua_aplica��o>rake comp:flex arq=Model
52
+
53
+ Ele ir� criar o arquivo tabela.swf dentro de public/sis/tabela/
54
+ Levante o servidor da aplica��o e acesse http://localhost:porta/sis/tabela
55
+
56
+ Bem vindo ao mundo Web 2.0 de aplica��es RIA com desenvolvimento produtivo e criativo ;-)
57
+
58
+ Qualquer d�vida, bugs ou melhoria envie um email para carloseduardo@egenial.com.br
59
+
60
+ Boa sorte e grande abra�o.
61
+
62
+ ----
63
+ Flex e-Genial Scaffold :::::::::::::::::::::::::::::
64
+
65
+ This scaffold will help you enter in the Ruby on Rail world, it has something that's make difference.
66
+ Due Web 2.0, RIA applications are in the mainstream and if you installed the Flex e-Genial Scaffold that's
67
+ because you know it or you are trying to make your applications better. Welcome to the world of productivity!!!
68
+
69
+ Bellow are instructions to make Flex e-Genial Scaffold works as expected:
70
+
71
+ 1st - First time you run:
72
+ rails your_application
73
+ cd your_application
74
+ your_application> ruby script/generate flex_egenial_scaffold Table(singular)
75
+
76
+ That creates a file called "comp.rake" in your application forlder inside "lib/tasks". You need to edit this file.
77
+ First, point to Flex SDK path. The file has the following example:
78
+
79
+ home = "F:/FAMILIA_ADOBE/FLEX_SDK_2"
80
+
81
+ Change it to:
82
+
83
+ home = "path/where/you/installed/Flex/SDK"
84
+
85
+ To compile the .mxml source code generated by Flex SDK you need the Sun JVM installed and
86
+ its environment variables configured. That's because, when you run:
87
+
88
+ your_application> rake comp:flex arq=Model
89
+
90
+ It will do:
91
+
92
+ java -jar ../lib/mxmlc.jar -load-config ../frameworks/flex-config.xml -file-specs public/sis/table/table.mxml
93
+
94
+ 2nd - We are going to use the Flex java compiler. To do so, we need the following change:
95
+
96
+ Inside the folder "path/where/you/installed/Flex/SDK/frameworks" there is a file "flex-config.xml".
97
+ Find the lines bellow on it and remove the comment marks as indicated:
98
+
99
+ <!-- File containing cached system font licensing information
100
+ produced via
101
+ java -cp mxmlc.jar flex2.tools.FontsSnapshot (fontpath)
102
+ Will default to winFonts.ser on Windows XP and
103
+ macFonts.ser on Mac OS X, so is commented out by default.
104
+ -->
105
+
106
+ <local-fonts-snapshot>localFonts.ser</local-fonts-snapshot>
107
+
108
+ 3rd - Now that you did the steps above and you have your first sccafold created with flex_egenial_scaffold, it's time
109
+ to compile it.
110
+
111
+ your_application> rake comp:flex arq=Model
112
+
113
+ It will create the file table.swf inside the public/sis/table/ folder
114
+ Start the web server and go to http://localhost:port/sis/table
115
+
116
+ Welcome to the world of Web 2.0 of RIA applications with creative and productive development!
117
+
118
+ Any questions, bugs or improvements, please send an e-mail to carloseduardo@egenial.com.br
119
+
120
+ Good luck and a big hug.
121
+
@@ -0,0 +1,184 @@
1
+ require 'rails_generator/generators/components/scaffold/scaffold_generator'
2
+
3
+ class FlexEgenialScaffoldingSandbox < ScaffoldingSandbox
4
+
5
+
6
+ def default_input_block
7
+ Proc.new { |record, column| <<-END_ROW
8
+ <mx:FormItem label="#{column.human_name}" width="339" id="#{singular_name}_#{column.name}">
9
+ <mx:TextInput width="274" text="{ #{singular_name}_grid.selectedItem.#{column.name} }" id="#{column.name}" />
10
+ </mx:FormItem>
11
+ END_ROW
12
+ }
13
+ end # default_input_block
14
+
15
+ def default_grid_block
16
+ Proc.new { |record, column| <<-END_ROW
17
+ <mx:DataGridColumn headerText="#{column.human_name}" dataField="#{column.name}"/>
18
+ END_ROW
19
+ }
20
+
21
+ end # default_grid_block
22
+
23
+
24
+ def grid_tags(record, record_name, options)
25
+ input_block = options[:input_block] || default_grid_block
26
+
27
+ if !options[:exclude].blank?
28
+ filtered_content_columns = record.class.content_columns.reject { |column| options[:exclude].include?(column.name) }
29
+ else
30
+ filtered_content_columns = record.class.content_columns
31
+ end
32
+
33
+ filtered_content_columns.collect{ |column| input_block.call(record_name, column) }.join("\n")
34
+ end
35
+
36
+
37
+ def self.default_fields_block_as(record, record_name, options)
38
+ input_block = options[:input_block] || Proc.new { |record, column| <<-END_ROW
39
+ #{column.name}.text = "";
40
+ END_ROW
41
+ }
42
+ if !options[:exclude].blank?
43
+ filtered_content_columns = record.class.content_columns.reject { |column| options[:exclude].include?(column.name) }
44
+ else
45
+ filtered_content_columns = record.class.content_columns
46
+ end
47
+ filtered_content_columns.collect{ |column| input_block.call(record_name, column) }.join("\n")
48
+
49
+ end # default_fields_block_as
50
+
51
+
52
+ def self.default_fields_block_as_up(record, record_name, options)
53
+ input_block = options[:input_block] || Proc.new { |record, column|<<-END_ROW
54
+ #{record_name}['#{record_name}[#{column.name}]'] = #{column.name}.text;
55
+ END_ROW
56
+ }
57
+ if !options[:exclude].blank?
58
+ filtered_content_columns = record.class.content_columns.reject { |column| options[:exclude].include?(column.name) }
59
+ else
60
+ filtered_content_columns = record.class.content_columns
61
+ end
62
+ filtered_content_columns.collect{ |column| input_block.call(record_name, column) }.join("\n")
63
+
64
+ end # default_fields_block_as_up
65
+
66
+
67
+ def self.default_fields_block(record, record_name, options)
68
+ input_block = options[:input_block] || Proc.new { |record, column| <<-END_ROW
69
+ <#{column.name}>{#{column.name}.text}</#{column.name}>
70
+ END_ROW
71
+ }
72
+
73
+ if !options[:exclude].blank?
74
+ filtered_content_columns = record.class.content_columns.reject { |column| options[:exclude].include?(column.name) }
75
+ else
76
+ filtered_content_columns = record.class.content_columns
77
+ end
78
+ filtered_content_columns.collect{ |column| input_block.call(record_name, column) }.join("\n")
79
+
80
+ end # default_fields_block
81
+
82
+
83
+
84
+ end # class TableScaffoldingSandbox
85
+
86
+ class FlexEgenialScaffoldGenerator < ScaffoldGenerator
87
+
88
+ def create_sandbox
89
+ sandbox = FlexEgenialScaffoldingSandbox.new
90
+ sandbox.singular_name = singular_name
91
+ begin
92
+ sandbox.model_instance = model_instance
93
+ sandbox.instance_variable_set("@#{singular_name}", sandbox.model_instance)
94
+ rescue ActiveRecord::StatementInvalid => e
95
+ logger.error "Before updating scaffolding from new DB schema, try creating a table for your model (#{class_name})"
96
+ raise SystemExit
97
+ end
98
+ sandbox.suffix = suffix
99
+ sandbox
100
+ end # create_sandbox
101
+
102
+
103
+
104
+ def controller_file_path
105
+ "/" + base_controller_file_path
106
+ end
107
+
108
+ alias_method :base_controller_file_path, :controller_file_path
109
+
110
+ def manifest
111
+ record do |m|
112
+
113
+ # Check for class naming collisions.
114
+ m.class_collisions controller_class_path, "#{controller_class_name}Controller", "#{controller_class_name}ControllerTest", "#{controller_class_name}Helper"
115
+ m.class_collisions class_path, class_name, "#{singular_name}Test"
116
+
117
+ # Copia a tarefa para compilar os fontes xml.
118
+ m.template 'comp.rake',
119
+ File.join("lib/tasks", "comp.rake"),
120
+ :sandbox => lambda { create_sandbox }
121
+
122
+ m.directory File.join("public/sis")
123
+
124
+ # Templates do Flex
125
+ m.template 'crossdomain.xml', File.join('public/', "crossdomain.xml")
126
+ m.template 'AC_OETags.js', File.join('public/sis/', "AC_OETags.js")
127
+ m.template 'history.js', File.join('public/sis/', "history.js")
128
+ m.template 'history.swf', File.join('public/sis/', "history.swf")
129
+ m.template 'history.htm', File.join('public/sis/', "history.htm")
130
+ m.template 'playerProductInstall.swf', File.join('public/sis/', "playerProductInstall.swf")
131
+
132
+ # Model class, unit test, and fixtures.
133
+ m.template 'model.rb', File.join('app/models', "#{singular_name}.rb")
134
+
135
+ m.directory File.join("public/sis/#{plural_name}")
136
+ m.template 'index.html', File.join("public/sis/#{plural_name}", "index.html")
137
+
138
+ # Scaffolded forms Flex.
139
+ m.complex_template 'aplicacao.mxml',
140
+ File.join("public/sis/#{plural_name}", "#{plural_name}.mxml"),
141
+ :insert => 'form_scaffolding.rhtml',
142
+ :sandbox => lambda { create_sandbox },
143
+ :begin_mark => 'ScaffoldAdd',
144
+ :end_mark => 'ScaffoldAddEnd',
145
+ :mark_id => singular_name,
146
+ :assigns => {:campos_parametros => lambda {FlexEgenialScaffoldingSandbox.default_fields_block(model_instance, singular_name, {})},
147
+ :campos_as => lambda {FlexEgenialScaffoldingSandbox.default_fields_block_as(model_instance, singular_name, {})},
148
+ :campos_as_up => lambda {FlexEgenialScaffoldingSandbox.default_fields_block_as_up(model_instance, singular_name, {})}
149
+ }
150
+
151
+ # Scaffolded grid Flex.
152
+ m.complex_template '_listaGrid.mxml',
153
+ File.join("public/sis/#{plural_name}", "_listaGrid.mxml"),
154
+ :insert => 'view_list.rhtml',
155
+ :sandbox => lambda { create_sandbox },
156
+ :begin_mark => 'ScaffoldAdd',
157
+ :end_mark => 'ScaffoldAddEnd',
158
+ :mark_id => singular_name
159
+
160
+
161
+ # Controller class, functional test, helper, and views.
162
+ m.template 'controller.rb',
163
+ File.join('app/controllers', controller_class_path, "#{controller_file_name}_controller.rb")
164
+
165
+ m.template 'helper.rb',
166
+ File.join('app/helpers', controller_class_path, "#{controller_file_name}_helper.rb")
167
+
168
+ m.directory File.join("public/sis/css")
169
+ m.template 'flex_egenial.css', File.join("public/sis/css", "flex_egenial.css")
170
+
171
+ m.directory File.join("public/sis/assets")
172
+ scaffold_images.each do |image|
173
+ m.template image, "public/sis/assets/#{image}"
174
+ end
175
+
176
+ end
177
+
178
+ end
179
+
180
+ def scaffold_images
181
+ %w(cria_report.gif deleta_report.gif edita_report.gif pesquisar.gif table_16x16.gif)
182
+ end
183
+
184
+ end #class TableScaffoldGenerator
@@ -0,0 +1,269 @@
1
+ // Flash Player Version Detection - Rev 1.5
2
+ // Detect Client Browser type
3
+ // Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
4
+ var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
5
+ var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
6
+ var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
7
+
8
+ function ControlVersion()
9
+ {
10
+ var version;
11
+ var axo;
12
+ var e;
13
+
14
+ // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
15
+
16
+ try {
17
+ // version will be set for 7.X or greater players
18
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
19
+ version = axo.GetVariable("$version");
20
+ } catch (e) {
21
+ }
22
+
23
+ if (!version)
24
+ {
25
+ try {
26
+ // version will be set for 6.X players only
27
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
28
+
29
+ // installed player is some revision of 6.0
30
+ // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
31
+ // so we have to be careful.
32
+
33
+ // default to the first public version
34
+ version = "WIN 6,0,21,0";
35
+
36
+ // throws if AllowScripAccess does not exist (introduced in 6.0r47)
37
+ axo.AllowScriptAccess = "always";
38
+
39
+ // safe to call for 6.0r47 or greater
40
+ version = axo.GetVariable("$version");
41
+
42
+ } catch (e) {
43
+ }
44
+ }
45
+
46
+ if (!version)
47
+ {
48
+ try {
49
+ // version will be set for 4.X or 5.X player
50
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
51
+ version = axo.GetVariable("$version");
52
+ } catch (e) {
53
+ }
54
+ }
55
+
56
+ if (!version)
57
+ {
58
+ try {
59
+ // version will be set for 3.X player
60
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
61
+ version = "WIN 3,0,18,0";
62
+ } catch (e) {
63
+ }
64
+ }
65
+
66
+ if (!version)
67
+ {
68
+ try {
69
+ // version will be set for 2.X player
70
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
71
+ version = "WIN 2,0,0,11";
72
+ } catch (e) {
73
+ version = -1;
74
+ }
75
+ }
76
+
77
+ return version;
78
+ }
79
+
80
+ // JavaScript helper required to detect Flash Player PlugIn version information
81
+ function GetSwfVer(){
82
+ // NS/Opera version >= 3 check for Flash plugin in plugin array
83
+ var flashVer = -1;
84
+
85
+ if (navigator.plugins != null && navigator.plugins.length > 0) {
86
+ if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
87
+ var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
88
+ var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
89
+ var descArray = flashDescription.split(" ");
90
+ var tempArrayMajor = descArray[2].split(".");
91
+ var versionMajor = tempArrayMajor[0];
92
+ var versionMinor = tempArrayMajor[1];
93
+ if ( descArray[3] != "" ) {
94
+ tempArrayMinor = descArray[3].split("r");
95
+ } else {
96
+ tempArrayMinor = descArray[4].split("r");
97
+ }
98
+ var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
99
+ var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
100
+ }
101
+ }
102
+ // MSN/WebTV 2.6 supports Flash 4
103
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
104
+ // WebTV 2.5 supports Flash 3
105
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
106
+ // older WebTV supports Flash 2
107
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
108
+ else if ( isIE && isWin && !isOpera ) {
109
+ flashVer = ControlVersion();
110
+ }
111
+ return flashVer;
112
+ }
113
+
114
+ // When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
115
+ function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
116
+ {
117
+ versionStr = GetSwfVer();
118
+ if (versionStr == -1 ) {
119
+ return false;
120
+ } else if (versionStr != 0) {
121
+ if(isIE && isWin && !isOpera) {
122
+ // Given "WIN 2,0,0,11"
123
+ tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"]
124
+ tempString = tempArray[1]; // "2,0,0,11"
125
+ versionArray = tempString.split(","); // ['2', '0', '0', '11']
126
+ } else {
127
+ versionArray = versionStr.split(".");
128
+ }
129
+ var versionMajor = versionArray[0];
130
+ var versionMinor = versionArray[1];
131
+ var versionRevision = versionArray[2];
132
+
133
+ // is the major.revision >= requested major.revision AND the minor version >= requested minor
134
+ if (versionMajor > parseFloat(reqMajorVer)) {
135
+ return true;
136
+ } else if (versionMajor == parseFloat(reqMajorVer)) {
137
+ if (versionMinor > parseFloat(reqMinorVer))
138
+ return true;
139
+ else if (versionMinor == parseFloat(reqMinorVer)) {
140
+ if (versionRevision >= parseFloat(reqRevision))
141
+ return true;
142
+ }
143
+ }
144
+ return false;
145
+ }
146
+ }
147
+
148
+ function AC_AddExtension(src, ext)
149
+ {
150
+ if (src.indexOf('?') != -1)
151
+ return src.replace(/\?/, ext+'?');
152
+ else
153
+ return src + ext;
154
+ }
155
+
156
+ function AC_Generateobj(objAttrs, params, embedAttrs)
157
+ {
158
+ var str = '';
159
+ if (isIE && isWin && !isOpera)
160
+ {
161
+ str += '<object ';
162
+ for (var i in objAttrs)
163
+ str += i + '="' + objAttrs[i] + '" ';
164
+ for (var i in params)
165
+ str += '><param name="' + i + '" value="' + params[i] + '" /> ';
166
+ str += '></object>';
167
+ } else {
168
+ str += '<embed ';
169
+ for (var i in embedAttrs)
170
+ str += i + '="' + embedAttrs[i] + '" ';
171
+ str += '> </embed>';
172
+ }
173
+
174
+ document.write(str);
175
+ }
176
+
177
+ function AC_FL_RunContent(){
178
+ var ret =
179
+ AC_GetArgs
180
+ ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
181
+ , "application/x-shockwave-flash"
182
+ );
183
+ AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
184
+ }
185
+
186
+ function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
187
+ var ret = new Object();
188
+ ret.embedAttrs = new Object();
189
+ ret.params = new Object();
190
+ ret.objAttrs = new Object();
191
+ for (var i=0; i < args.length; i=i+2){
192
+ var currArg = args[i].toLowerCase();
193
+
194
+ switch (currArg){
195
+ case "classid":
196
+ break;
197
+ case "pluginspage":
198
+ ret.embedAttrs[args[i]] = args[i+1];
199
+ break;
200
+ case "src":
201
+ case "movie":
202
+ args[i+1] = AC_AddExtension(args[i+1], ext);
203
+ ret.embedAttrs["src"] = args[i+1];
204
+ ret.params[srcParamName] = args[i+1];
205
+ break;
206
+ case "onafterupdate":
207
+ case "onbeforeupdate":
208
+ case "onblur":
209
+ case "oncellchange":
210
+ case "onclick":
211
+ case "ondblClick":
212
+ case "ondrag":
213
+ case "ondragend":
214
+ case "ondragenter":
215
+ case "ondragleave":
216
+ case "ondragover":
217
+ case "ondrop":
218
+ case "onfinish":
219
+ case "onfocus":
220
+ case "onhelp":
221
+ case "onmousedown":
222
+ case "onmouseup":
223
+ case "onmouseover":
224
+ case "onmousemove":
225
+ case "onmouseout":
226
+ case "onkeypress":
227
+ case "onkeydown":
228
+ case "onkeyup":
229
+ case "onload":
230
+ case "onlosecapture":
231
+ case "onpropertychange":
232
+ case "onreadystatechange":
233
+ case "onrowsdelete":
234
+ case "onrowenter":
235
+ case "onrowexit":
236
+ case "onrowsinserted":
237
+ case "onstart":
238
+ case "onscroll":
239
+ case "onbeforeeditfocus":
240
+ case "onactivate":
241
+ case "onbeforedeactivate":
242
+ case "ondeactivate":
243
+ case "type":
244
+ case "codebase":
245
+ case "id":
246
+ ret.objAttrs[args[i]] = args[i+1];
247
+ break;
248
+ case "width":
249
+ case "height":
250
+ case "align":
251
+ case "vspace":
252
+ case "hspace":
253
+ case "class":
254
+ case "title":
255
+ case "accesskey":
256
+ case "name":
257
+ case "tabindex":
258
+ ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
259
+ break;
260
+ default:
261
+ ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
262
+ }
263
+ }
264
+ ret.objAttrs["classid"] = classid;
265
+ if (mimeType) ret.embedAttrs["type"] = mimeType;
266
+ return ret;
267
+ }
268
+
269
+
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!--
3
+ # Author:: Carlos Eduardo G. Franco
4
+ # Copyright:: Copyright (c) 2007 Carlos Eduardo G. Franco. All rights reserved.
5
+ # License:: MIT License.
6
+ -->
7
+ <mx:DataGrid xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="50%" cornerRadius="6" borderColor="#ffffff">
8
+ <mx:columns>
9
+ <%= template_for_inclusion %>
10
+ </mx:columns>
11
+ </mx:DataGrid>
@@ -0,0 +1,77 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+
3
+ <!--
4
+ # Author:: Carlos Eduardo G. Franco
5
+ # Copyright:: Copyright (c) 2007 Carlos Eduardo G. Franco. All rights reserved.
6
+ # License:: MIT License.
7
+ -->
8
+
9
+ <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
10
+ layout="absolute"
11
+ width="100%"
12
+ height="100%"
13
+ creationComplete="{listaRegistros.send();}"
14
+ xmlns:egenial="*"
15
+ backgroundColor="#808080"
16
+ backgroundGradientColors="[#808080, #ffffff]">
17
+
18
+ <mx:Style source="../css/flex_egenial.css"/>
19
+
20
+ <!-- HTTPServices -->
21
+
22
+ <mx:HTTPService id="listaRegistros" url="/<%= plural_name %>/getRegistros" useProxy="false" method="GET"/>
23
+ <mx:HTTPService id="update<%= singular_name %>" url="/<%= plural_name %>/update" useProxy="false" method="POST" result="listaRegistros.send()"/>
24
+ <mx:HTTPService id="delete<%= singular_name %>" url="/<%= plural_name %>/delete" useProxy="false" method="POST" result="listaRegistros.send()"/>
25
+ <mx:HTTPService id="create<%= singular_name %>" url="/<%= plural_name %>/create" useProxy="false" method="POST" result="listaRegistros.send()" contentType="application/xml">
26
+ <mx:request xmlns="">
27
+ <<%= singular_name %>>
28
+ <%= campos_parametros.call -%>
29
+ </<%= singular_name %>>
30
+ </mx:request>
31
+ </mx:HTTPService>
32
+
33
+ <!-- Fim -->
34
+
35
+ <mx:Script>
36
+ <![CDATA[
37
+
38
+ private function clearForm():void {
39
+ <%= campos_as.call -%>
40
+ }
41
+
42
+ private function send<%= singular_name %>Update():void {
43
+ var <%= singular_name %>:Object = new Object();
44
+ <%= singular_name %>['id'] = <%= singular_name %>_grid.selectedItem.id;
45
+ <%= campos_as_up.call -%>
46
+ update<%= singular_name %>.send(<%= singular_name %>);
47
+ }
48
+
49
+ ]]>
50
+ </mx:Script>
51
+
52
+ <mx:TitleWindow width="500" layout="absolute" title="Window: <%= plural_name.capitalize %>" cornerRadius="9" x="20" top="10" bottom="10">
53
+
54
+ <!-- Inicia o formulario -->
55
+ <mx:Form width="100%" height="50%" backgroundColor="#fcfcfc">
56
+
57
+ <%= template_for_inclusion%>
58
+
59
+ </mx:Form>
60
+ <!-- Fim -->
61
+
62
+
63
+ <!-- Inicia a Grid que lista os registros -->
64
+ <egenial:_listaGrid id="<%= singular_name %>_grid" dataProvider="{listaRegistros.lastResult.<%= plural_name %>.<%= singular_name %>}" height="50%" cornerRadius="6" borderColor="#808080" bottom="0" left="0" right="0"/>
65
+ <!-- Fim da grid -->
66
+
67
+ <mx:ApplicationControlBar x="0" y="705" dock="true" width="100%">
68
+ <mx:Button label="Cadastrar" id="btn_cadastrar" icon="@Embed('../assets/cria_report.gif')" click="create<%= singular_name %>.send(); clearForm()"/>
69
+ <mx:Button label="Atualizar" id="btn_atualizar" icon="@Embed('../assets/edita_report.gif')" click="send<%= singular_name %>Update(); clearForm()"/>
70
+ <mx:Button label="Deletar" id="btn_deletar" icon="@Embed('../assets/deleta_report.gif')" click="delete<%= singular_name %>.send({id:<%= singular_name %>_grid.selectedItem.id}); "/>
71
+ <!-- <mx:Button label="Pesquisar" id="btn_pesquisar" icon="@Embed('../assets/pesquisar.gif')"/>-->
72
+ <mx:Button label="Limpar" id="btn_limpar" icon="@Embed('../assets/table_16x16.gif')" click="clearForm()"/>
73
+ </mx:ApplicationControlBar>
74
+
75
+ </mx:TitleWindow>
76
+
77
+ </mx:Application>
@@ -0,0 +1,44 @@
1
+ # Tarefa responsavel por compilar os fontes mxml gerado pelo flex_egenial_scaffold
2
+
3
+ # Author:: Carlos Eduardo G. Franco
4
+ # Copyright:: Copyright (c) 2007 Carlos Eduardo G. Franco. All rights reserved.
5
+ # License:: MIT License.
6
+
7
+ home = "F:/FAMILIA_ADOBE/FLEX_SDK_2"
8
+ bin = "#{home}/bin"
9
+ lib = "#{home}/lib"
10
+ frameworks = "#{home}/frameworks"
11
+ compilador = "java -jar #{lib}/mxmlc.jar -load-config #{frameworks}/flex-config.xml -compiler.optimize -file-specs"
12
+
13
+ #java -jar ../lib/mxmlc.jar -load-config ../frameworks/flex-config.xml -file-specs c:/flex2/MyApp.mxml
14
+
15
+ namespace :comp do
16
+
17
+ task :flex => :environment do
18
+
19
+ puts ''
20
+ puts 'Executando tarefa de compilacao flex_egenial_scaffold'
21
+ puts ''
22
+ puts ENV['arq']
23
+
24
+ if File.exist?("public/sis/#{ENV['arq']}/#{ENV['arq']}.mxml")
25
+ puts 'Arquivo encontrado, preparando para a compilacao, aguarde...'
26
+ arquivo = "public/sis/#{ENV['arq']}/#{ENV['arq']}.mxml"
27
+ result = system("#{compilador} #{arquivo}")
28
+ puts 'Tarefa concluida ;-)'
29
+ raise("Houve uma falha na compilacao... msg: #{$?}") unless result
30
+ else
31
+ puts ' '
32
+ puts 'Arquivo nao encontrado'
33
+ puts '1 - Verifique se o nome do arquivo esta correto'
34
+ puts '2 - Verifique se realmente o arquivo foi gerado pelo flex_egenial_scaffold.'
35
+ end
36
+
37
+ puts ''
38
+
39
+
40
+ end
41
+
42
+ end
43
+
44
+
@@ -0,0 +1,31 @@
1
+ # Author:: Carlos Eduardo G. Franco
2
+ # Copyright:: Copyright (c) 2007 Carlos Eduardo G. Franco. All rights reserved.
3
+ # License:: MIT License.
4
+
5
+ class <%= controller_class_name %>Controller < ApplicationController
6
+
7
+ # Lista os dados da Grid
8
+ def getRegistros
9
+ result = <%= model_name %>.find(:all)
10
+ render :xml => result.to_xml
11
+ end
12
+
13
+ def create
14
+ @<%= model_name %> = <%= model_name %>.new(params[:<%= singular_name %>])
15
+ @<%= model_name %>.save
16
+ render :xml => @<%= model_name %>.to_xml
17
+ end
18
+
19
+ def update
20
+ @<%= model_name %> = <%= model_name %>.find(params[:id])
21
+ @<%= model_name %>.update_attributes(params[:<%= singular_name %>])
22
+ render :xml => @<%= model_name %>.to_xml
23
+ end
24
+
25
+ def delete
26
+ @<%= model_name %> = <%= model_name %>.find(params[:id])
27
+ @<%= model_name %>.destroy
28
+ render :xml => @<%= model_name %>.to_xml
29
+ end
30
+
31
+ end
Binary file
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0"?>
2
+ <cross-domain-policy>
3
+ <allow-access-from domain="*" />
4
+ </cross-domain-policy>
5
+
6
+
@@ -0,0 +1,37 @@
1
+ /*
2
+ # Author:: Carlos Eduardo G. Franco
3
+ # Copyright:: Copyright (c) 2007 Carlos Eduardo G. Franco. All rights reserved.
4
+ # License:: MIT License.
5
+ */
6
+
7
+ /*
8
+ Folha de estilo da aplicacao
9
+ Para maiores informações consulte a documentacao do flex.
10
+ */
11
+
12
+ Application {
13
+ themeColor:#808080;
14
+ color: #000000;
15
+ backgroundColor: #808080 ;
16
+ }
17
+
18
+ Panel {
19
+ cornerRadius: 9;
20
+ shadowDistance: 2;
21
+ headerColors: #ffffff, #cccccc;
22
+ footerColors: #e7e7e7, #c7c7c7;
23
+ }
24
+
25
+ DataGrid {
26
+ rollOverColor: #f5f5f5;
27
+ selectionColor: #808080;
28
+ }
29
+
30
+ TextInput {
31
+ backgroundAlpha: 1;
32
+ }
33
+
34
+ Button {
35
+ cornerRadius: 5;
36
+ }
37
+
@@ -0,0 +1 @@
1
+ <%= all_input_tags(@model_instance, @singular_name, {}) %>
@@ -0,0 +1,102 @@
1
+ # Author:: Carlos Eduardo G. Franco
2
+ # Copyright:: Copyright (c) 2007 Carlos Eduardo G. Franco. All rights reserved.
3
+ # License:: MIT License.
4
+
5
+ require File.dirname(__FILE__) + '<%= "/.." * controller_class_nesting_depth %>/../test_helper'
6
+ require '<%= controller_file_path %>_controller'
7
+
8
+ # Re-raise errors caught by the controller.
9
+ class <%= controller_class_name %>Controller; def rescue_action(e) raise e end; end
10
+
11
+ class <%= controller_class_name %>ControllerTest < Test::Unit::TestCase
12
+ fixtures :<%= table_name %>
13
+
14
+ def setup
15
+ @controller = <%= controller_class_name %>Controller.new
16
+ @request = ActionController::TestRequest.new
17
+ @response = ActionController::TestResponse.new
18
+ end
19
+
20
+ <% for action in unscaffolded_actions -%>
21
+ def test_<%= action %>
22
+ get :<%= action %>
23
+ assert_response :success
24
+ assert_template '<%= action %>'
25
+ end
26
+
27
+ <% end -%>
28
+ <% unless suffix -%>
29
+ def test_index
30
+ get :index
31
+ assert_response :success
32
+ assert_template 'list'
33
+ end
34
+
35
+ <% end -%>
36
+ def test_list<%= suffix %>
37
+ get :list<%= suffix %>
38
+
39
+ assert_response :success
40
+ assert_template 'list<%= suffix %>'
41
+
42
+ assert_not_nil assigns(:<%= plural_name %>)
43
+ end
44
+
45
+ def test_show<%= suffix %>
46
+ get :show<%= suffix %>, :id => 1
47
+
48
+ assert_response :success
49
+ assert_template 'show'
50
+
51
+ assert_not_nil assigns(:<%= singular_name %>)
52
+ assert assigns(:<%= singular_name %>).valid?
53
+ end
54
+
55
+ def test_new<%= suffix %>
56
+ get :new<%= suffix %>
57
+
58
+ assert_response :success
59
+ assert_template 'new<%= suffix %>'
60
+
61
+ assert_not_nil assigns(:<%= singular_name %>)
62
+ end
63
+
64
+ def test_create
65
+ num_<%= plural_name %> = <%= model_name %>.count
66
+
67
+ post :create<%= suffix %>, :<%= singular_name %> => {}
68
+
69
+ assert_response :redirect
70
+ assert_redirected_to :action => 'list<%= suffix %>'
71
+
72
+ assert_equal num_<%= plural_name %> + 1, <%= model_name %>.count
73
+ end
74
+
75
+ def test_edit<%= suffix %>
76
+ get :edit<%= suffix %>, :id => 1
77
+
78
+ assert_response :success
79
+ assert_template 'edit<%= suffix %>'
80
+
81
+ assert_not_nil assigns(:<%= singular_name %>)
82
+ assert assigns(:<%= singular_name %>).valid?
83
+ end
84
+
85
+ def test_update<%= suffix %>
86
+ post :update<%= suffix %>, :id => 1
87
+ assert_response :redirect
88
+ assert_redirected_to :action => 'show<%= suffix %>', :id => 1
89
+ end
90
+
91
+ def test_destroy<%= suffix %>
92
+ assert_not_nil <%= model_name %>.find(1)
93
+
94
+ post :destroy, :id => 1
95
+ assert_response :redirect
96
+ assert_redirected_to :action => 'list<%= suffix %>'
97
+
98
+ assert_raise(ActiveRecord::RecordNotFound) {
99
+ <%= model_name %>.find(1)
100
+ }
101
+ end
102
+ end
@@ -0,0 +1,6 @@
1
+ # Author:: Carlos Eduardo G. Franco
2
+ # Copyright:: Copyright (c) 2007 Carlos Eduardo G. Franco. All rights reserved.
3
+ # License:: MIT License.
4
+
5
+ module <%= controller_class_name %>Helper
6
+ end
@@ -0,0 +1,21 @@
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
4
+ <script type='text/javascript' language='JavaScript1.2' charset='utf-8'>
5
+ var v = new top.Vars(top.getSearch(window));
6
+ var fv = v.toString('$_');
7
+ </script>
8
+ </head>
9
+ <body >
10
+ <script type='text/javascript' language='JavaScript1.2' charset='utf-8'>
11
+ document.writeln('<object id=\"utility\" name=\" \" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"" + activexDownloadURL + "#version=7,0,14,0\" width=\"100\" height=\"50\">');
12
+ document.writeln('<param name=\"movie\" value=\"history.swf\" />');
13
+ document.writeln('<param name=\"FlashVars\" value=\"'+fv+'&$_lconid='+top.lc_id+'\"/>');
14
+ document.writeln('<param name=\"quality\" value=\"high\" />');
15
+ document.writeln('<param name=\"bgcolor\" value=\"#FFFFFF\" />');
16
+ document.writeln('<param name=\"profile\" value=\"false\" />');
17
+ document.writeln('<embed id=\"utilityEmbed\" name=\"history.swf\" src=\"history.swf\" type=\"application/x-shockwave-flash\" flashvars=\"'+fv+'&$_lconid='+top.lc_id+'\" profile=\"false\" quality=\"high\" bgcolor=\"#FFFFFF\" width=\"100\" height=\"50\" align=\"\" pluginspage=\"" + pluginDownloadURL + "\"></embed>');
18
+ document.writeln('</object>');
19
+ </script>
20
+ </body>
21
+ </html>
@@ -0,0 +1,48 @@
1
+ // $Revision: 1.49 $
2
+ // Vars
3
+ Vars = function(qStr) {
4
+ this.numVars = 0;
5
+ if(qStr != null) {
6
+ var nameValue, name;
7
+ var pairs = qStr.split('&');
8
+ var pairLen = pairs.length;
9
+ for(var i = 0; i < pairLen; i++) {
10
+ var pair = pairs[i];
11
+ if( (pair.indexOf('=')!= -1) && (pair.length > 3) ) {
12
+ var nameValue = pair.split('=');
13
+ var name = nameValue[0];
14
+ var value = nameValue[1];
15
+ if(this[name] == null && name.length > 0 && value.length > 0) {
16
+ this[name] = value;
17
+ this.numVars++;
18
+ }
19
+ }
20
+ }
21
+ }
22
+ }
23
+ Vars.prototype.toString = function(pre) {
24
+ var result = '';
25
+ if(pre == null) { pre = ''; }
26
+ for(var i in this) {
27
+ if(this[i] != null && typeof(this[i]) != 'object' && typeof(this[i]) != 'function' && i != 'numVars') {
28
+ result += pre + i + '=' + this[i] + '&';
29
+ }
30
+ }
31
+ if(result.length > 0) result = result.substr(0, result.length-1);
32
+ return result;
33
+ }
34
+ function getSearch(wRef) {
35
+ var searchStr = '';
36
+ if(wRef.location.search.length > 1) {
37
+ searchStr = new String(wRef.location.search);
38
+ searchStr = searchStr.substring(1, searchStr.length);
39
+ }
40
+ return searchStr;
41
+ }
42
+ var lc_id = Math.floor(Math.random() * 100000).toString(16);
43
+ if (this != top)
44
+ {
45
+ top.Vars = Vars;
46
+ top.getSearch = getSearch;
47
+ top.lc_id = lc_id;
48
+ }
Binary file
@@ -0,0 +1,112 @@
1
+ <!-- saved from url=(0014)about:internet -->
2
+ <html lang="en">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+ <title></title>
6
+ <script src="/sis/AC_OETags.js" language="javascript"></script>
7
+ <style>
8
+ body { margin: 0px; overflow:hidden }
9
+ </style>
10
+ <script language="JavaScript" type="text/javascript">
11
+ <!--
12
+ // -----------------------------------------------------------------------------
13
+ // Globals
14
+ // Major version of Flash required
15
+ var requiredMajorVersion = 9;
16
+ // Minor version of Flash required
17
+ var requiredMinorVersion = 0;
18
+ // Minor version of Flash required
19
+ var requiredRevision = 0;
20
+ // -----------------------------------------------------------------------------
21
+ // -->
22
+ </script>
23
+ </head>
24
+
25
+ <body scroll="no">
26
+ <script language="JavaScript" type="text/javascript" src="/sis/history.js"></script>
27
+ <script language="JavaScript" type="text/javascript">
28
+ <!--
29
+ // Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)
30
+ var hasProductInstall = DetectFlashVer(6, 0, 65);
31
+
32
+ // Version check based upon the values defined in globals
33
+ var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
34
+
35
+
36
+ // Check to see if a player with Flash Product Install is available and the version does not meet the requirements for playback
37
+ if ( hasProductInstall && !hasRequestedVersion ) {
38
+ // MMdoctitle is the stored document.title value used by the installation process to close the window that started the process
39
+ // This is necessary in order to close browser windows that are still utilizing the older version of the player after installation has completed
40
+ // DO NOT MODIFY THE FOLLOWING FOUR LINES
41
+ // Location visited after installation is complete if installation is required
42
+ var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
43
+ var MMredirectURL = window.location;
44
+ document.title = document.title.slice(0, 47) + " - Flash Player Installation";
45
+ var MMdoctitle = document.title;
46
+
47
+ AC_FL_RunContent(
48
+ "src", "playerProductInstall",
49
+ "FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
50
+ "width", "100%",
51
+ "height", "100%",
52
+ "align", "middle",
53
+ "id", "<%= plural_name %>",
54
+ "quality", "high",
55
+ "bgcolor", "#666666",
56
+ "name", "<%= plural_name %>",
57
+ "allowScriptAccess","sameDomain",
58
+ "type", "application/x-shockwave-flash",
59
+ "pluginspage", "http://www.adobe.com/go/getflashplayer"
60
+ );
61
+ } else if (hasRequestedVersion) {
62
+ // if we've detected an acceptable version
63
+ // embed the Flash Content SWF when all tests are passed
64
+ AC_FL_RunContent(
65
+ "src", "/sis/<%= plural_name %>/<%= plural_name %>",
66
+ "width", "100%",
67
+ "height", "100%",
68
+ "align", "middle",
69
+ "id", "<%= plural_name %>",
70
+ "quality", "high",
71
+ "bgcolor", "#666666",
72
+ "name", "<%= plural_name %>",
73
+ "flashvars",'historyUrl=/sis/history.htm%3F&lconid=' + lc_id + '',
74
+ "allowScriptAccess","sameDomain",
75
+ "type", "application/x-shockwave-flash",
76
+ "pluginspage", "http://www.adobe.com/go/getflashplayer"
77
+ );
78
+ } else { // flash is too old or we can't detect the plugin
79
+ var alternateContent = 'Alternate HTML content should be placed here. '
80
+ + 'This content requires the Adobe Flash Player. '
81
+ + '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
82
+ document.write(alternateContent); // insert non-flash content
83
+ }
84
+ // -->
85
+ </script>
86
+ <noscript>
87
+ <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
88
+ id="aplicacao" width="100%" height="100%"
89
+ codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
90
+ <param name="movie" value="/sis/<%= plural_name %>/<%= plural_name %>" />
91
+ <param name="quality" value="high" />
92
+ <param name="bgcolor" value="#666666" />
93
+ <param name="allowScriptAccess" value="sameDomain" />
94
+ <embed src="/sis/<%= plural_name %>/<%= plural_name %>" quality="high" bgcolor="#869ca7"
95
+ width="100%" height="100%" name="aplicacao" align="middle"
96
+ play="true"
97
+ loop="false"
98
+ quality="high"
99
+ allowScriptAccess="sameDomain"
100
+ type="application/x-shockwave-flash"
101
+ pluginspage="http://www.adobe.com/go/getflashplayer">
102
+ </embed>
103
+ </object>
104
+ </noscript>
105
+ <iframe name="_history" src="/sis/history.htm" frameborder="0" scrolling="no" width="22" height="0"></iframe>
106
+ </body>
107
+ <!--
108
+ # Author:: Carlos Eduardo G. Franco
109
+ # Copyright:: Copyright (c) 2007 Carlos Eduardo G. Franco. All rights reserved.
110
+ # License:: MIT License.
111
+ -->
112
+ </html>
@@ -0,0 +1,7 @@
1
+ # Author:: Carlos Eduardo G. Franco
2
+ # Copyright:: Copyright (c) 2007 Carlos Eduardo G. Franco. All rights reserved.
3
+ # License:: MIT License.
4
+
5
+ class <%= class_name %> < ActiveRecord::Base
6
+
7
+ end
Binary file
Binary file
@@ -0,0 +1 @@
1
+ <%= grid_tags(@model_instance, @singular_name, {}) %>
metadata ADDED
@@ -0,0 +1,72 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.0
3
+ specification_version: 1
4
+ name: flex_egenial_scaffold
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.0.1
7
+ date: 2007-01-09 00:00:00 -02:00
8
+ summary: Flex e-Genial Scaffol Generators
9
+ require_paths:
10
+ - lib
11
+ email: carloseduardo@egenial.com.br
12
+ homepage: http://blog.egenial.com.br
13
+ rubyforge_project:
14
+ description: Flex e-Genial Scaffold generator is a rails generator for Flexfied scaffolds
15
+ autorequire: rails_generator/generators/components/scaffold/scaffold_generator
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: false
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - Carlos Eduardo G. Franco
31
+ files:
32
+ - README
33
+ - CHANGELOG
34
+ - MIT-LICENSE
35
+ - flex_egenial_scaffold_generator.rb
36
+ - templates/
37
+ - templates/_listaGrid.mxml
38
+ - templates/AC_OETags.js
39
+ - templates/aplicacao.mxml
40
+ - templates/comp.rake
41
+ - templates/controller.rb
42
+ - templates/cria_report.gif
43
+ - templates/edita_report.gif
44
+ - templates/flex_egenial.css
45
+ - templates/form_scaffolding.rhtml
46
+ - templates/functional_test.rb
47
+ - templates/helper.rb
48
+ - templates/history.htm
49
+ - templates/history.js
50
+ - templates/history.swf
51
+ - templates/index.html
52
+ - templates/model.rb
53
+ - templates/pesquisar.gif
54
+ - templates/deleta_report.gif
55
+ - templates/playerProductInstall.swf
56
+ - templates/table_16x16.gif
57
+ - templates/view_list.rhtml
58
+ - templates/crossdomain.xml
59
+ test_files: []
60
+
61
+ rdoc_options: []
62
+
63
+ extra_rdoc_files: []
64
+
65
+ executables: []
66
+
67
+ extensions: []
68
+
69
+ requirements:
70
+ - none
71
+ dependencies: []
72
+