flex_egenial_scaffold_generator 0.0.1

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