zero_generators 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.
- data/README +38 -0
- data/generators/default_values.rb +21 -0
- data/generators/factory_scaffold/USAGE +15 -0
- data/generators/factory_scaffold/factory_scaffold_generator.rb +27 -0
- data/generators/factory_scaffold/templates/controller_spec.rb.erb +135 -0
- data/generators/factory_scaffold/templates/helper_spec.rb.erb +5 -0
- data/generators/factory_scaffold/templates/model_spec.rb.erb +8 -0
- data/generators/ferret_scaffold/USAGE +12 -0
- data/generators/ferret_scaffold/ferret_scaffold_generator.rb +92 -0
- data/generators/ferret_scaffold/templates/controller.rb.erb +128 -0
- data/generators/ferret_scaffold/templates/controller_spec.rb.erb +155 -0
- data/generators/ferret_scaffold/templates/helper.rb.erb +2 -0
- data/generators/ferret_scaffold/templates/helper_spec.rb.erb +7 -0
- data/generators/ferret_scaffold/templates/migration.rb.erb +20 -0
- data/generators/ferret_scaffold/templates/model.rb.erb +8 -0
- data/generators/ferret_scaffold/templates/model_spec.rb.erb +28 -0
- data/generators/ferret_scaffold/templates/views/_dados_busca.html.erb +11 -0
- data/generators/ferret_scaffold/templates/views/_dados_model.html.erb +8 -0
- data/generators/ferret_scaffold/templates/views/edit.html.erb +13 -0
- data/generators/ferret_scaffold/templates/views/index.html.erb +11 -0
- data/generators/ferret_scaffold/templates/views/layout.html.erb +18 -0
- data/generators/ferret_scaffold/templates/views/new.html.erb +12 -0
- data/generators/ferret_scaffold/templates/views/show.html.erb +16 -0
- data/generators/layout/USAGE +10 -0
- data/generators/layout/layout_generator.rb +22 -0
- data/generators/layout/templates/README +7 -0
- data/generators/layout/templates/layout.html.erb +26 -0
- data/generators/layout/templates/pt_BR.yml +109 -0
- data/generators/layout/templates/stylesheet.css +60 -0
- data/generators/tdd_controller/USAGE +9 -0
- data/generators/tdd_controller/tdd_controller_generator.rb +15 -0
- data/generators/tdd_controller/templates/controller_spec.rb.erb +29 -0
- data/generators/tdd_model/USAGE +10 -0
- data/generators/tdd_model/tdd_model_generator.rb +17 -0
- data/generators/tdd_model/templates/model_spec.rb.erb +24 -0
- data/generators/tdd_scaffold/USAGE +11 -0
- data/generators/tdd_scaffold/tdd_scaffold_generator.rb +32 -0
- data/generators/tdd_scaffold/templates/controller_spec.rb.erb +125 -0
- data/generators/tdd_scaffold/templates/helper_spec.rb.erb +7 -0
- data/generators/tdd_scaffold/templates/model_spec.rb.erb +28 -0
- data/generators/tdd_scaffold_stub/USAGE +17 -0
- data/generators/tdd_scaffold_stub/tdd_scaffold_stub_generator.rb +40 -0
- data/generators/tdd_scaffold_stub/templates/controller_spec.rb.erb +157 -0
- data/generators/tdd_scaffold_stub/templates/edit.html.erb_spec.rb.erb +14 -0
- data/generators/tdd_scaffold_stub/templates/helper_spec.rb.erb +7 -0
- data/generators/tdd_scaffold_stub/templates/index.html.erb_spec.rb.erb +14 -0
- data/generators/tdd_scaffold_stub/templates/model_spec.rb.erb +24 -0
- data/generators/tdd_scaffold_stub/templates/new.html.erb_spec.rb.erb +12 -0
- data/generators/tdd_scaffold_stub/templates/show.html.erb_spec.rb.erb +14 -0
- metadata +112 -0
data/README
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
Zero Generators
|
2
|
+
=======
|
3
|
+
|
4
|
+
Coletânea de geradores de código para Rails que eu acabo tendo que incluir em todos os projetos
|
5
|
+
que desenvolvo, e acabei por decidindo criar um plugin.
|
6
|
+
|
7
|
+
Geradores
|
8
|
+
=======
|
9
|
+
|
10
|
+
Basicamente, os geradores são:
|
11
|
+
|
12
|
+
* tdd_model, tdd_controller - Geradores que geram "stubs" de testes, em formato RSpec.
|
13
|
+
* tdd_scaffold - Gerador para um teste, em RSpec, de um scaffold padrão do Rails. Evita stubs sempre que possível.
|
14
|
+
* tdd_scaffold_stub - Gerador para um teste, em RSpec, de um scaffold padrão do Rails, usando stubs
|
15
|
+
sempre que possível (tenta imitar o formato padrão do spec_scaffold, porém em português).
|
16
|
+
* factory_scaffold - Gerador para um teste, em RSpec, de um scaffold padrão porém usando fixtures.
|
17
|
+
Utiliza stubs, porém a idéia é ser fácil de retirar estes stubs se for necessário.
|
18
|
+
* layout - Cria um layout, inclusive com o arquivo pt_BR.yml.
|
19
|
+
* ferret_scaffold - Cria um Scaffold usando Ferret.
|
20
|
+
|
21
|
+
NOTA
|
22
|
+
======
|
23
|
+
|
24
|
+
Estes geradores são altamente "opinados" - todos os geradores que geram também testes usam a sintaxe
|
25
|
+
do RSpec, e todos os testes evitam stubs. Na minha concepção, não existe "unit-test" em Controller
|
26
|
+
(e, na verdade, o BDD meio que surgiu para evitar a idéia de "unit-test") portanto isolar o Controller
|
27
|
+
da Model, em testes, não parece fazer sentido. Isso faz com que uma alteração na Model muitas vezes
|
28
|
+
quebre testes no Controller, mas sejamos sinceros, se isso acontecer é porque provavelmente o seu
|
29
|
+
Controller está com bugs mesmo, e se o teste não serve para capturar isso, qual o uso dele?
|
30
|
+
|
31
|
+
Este é um projeto em andamento, e provavelmente com o tempo o número de geradores aumentará bastante.
|
32
|
+
|
33
|
+
Exemplos
|
34
|
+
=======
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
Copyright (c) 2009 Maurício Szabo, desenvolvido sobre a Artistic License - versão 2.0
|
@@ -0,0 +1,21 @@
|
|
1
|
+
#coding: utf-8
|
2
|
+
#Copiado na íntegra do RSpec-Rails
|
3
|
+
module Rails
|
4
|
+
module Generator
|
5
|
+
class GeneratedAttribute
|
6
|
+
def default_value
|
7
|
+
@default_value ||= case type
|
8
|
+
when :int, :integer then "\"1\""
|
9
|
+
when :float then "\"1.5\""
|
10
|
+
when :decimal then "\"9.99\""
|
11
|
+
when :datetime, :timestamp, :time then "Time.now"
|
12
|
+
when :date then "Date.today"
|
13
|
+
when :string, :text then "\"valor para #{@name}\""
|
14
|
+
when :boolean then "false"
|
15
|
+
else
|
16
|
+
"\"\""
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Descrição:
|
2
|
+
Gera um teste, em RSpec, para um scaffold padrão do Rails, usando Factories.
|
3
|
+
|
4
|
+
Examplo:
|
5
|
+
./script/generate factory_scaffold Aluno
|
6
|
+
|
7
|
+
Isto vai criar:
|
8
|
+
spec/models/aluno_spec.rb
|
9
|
+
spec/fixtures/alunos.yml
|
10
|
+
spec/controller/alunos_controller_spec.rb
|
11
|
+
spec/helpers/alunos_helper_spec.rb
|
12
|
+
|
13
|
+
NOTA: Este teste não cria as factories automaticamente, nem adiciona nenhuma informação
|
14
|
+
no arquivo spec_helper de como incluí-las. É necessário criar as factories manualmente
|
15
|
+
após gerar o factory_scaffold.
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class FactoryScaffoldGenerator < Rails::Generator::NamedBase
|
2
|
+
attr_reader :file_plural, :class_plural
|
3
|
+
|
4
|
+
def manifest
|
5
|
+
record do |m|
|
6
|
+
# m.directory "lib"
|
7
|
+
# m.template 'README', "README"
|
8
|
+
m.class_collisions class_path, class_name
|
9
|
+
|
10
|
+
@file_plural = file_name.pluralize
|
11
|
+
@class_plural = class_name.pluralize
|
12
|
+
|
13
|
+
m.directory 'spec'
|
14
|
+
m.directory 'spec/controllers'
|
15
|
+
m.directory File.join('spec/controllers', class_path)
|
16
|
+
m.template 'controller_spec.rb.erb', File.join('spec/controllers', class_path, "#{@file_plural}_controller_spec.rb")
|
17
|
+
|
18
|
+
m.directory 'spec/models'
|
19
|
+
m.directory File.join('spec/models', class_path)
|
20
|
+
m.template 'model_spec.rb.erb', File.join('spec/models', class_path, "#{file_name}_spec.rb")
|
21
|
+
|
22
|
+
m.directory 'spec/helpers'
|
23
|
+
m.directory File.join('spec/helpers', class_path)
|
24
|
+
m.template 'helper_spec.rb.erb', File.join('spec/helpers', class_path, "#{@file_plural}_helper_spec.rb")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,135 @@
|
|
1
|
+
require 'spec/spec_helper'
|
2
|
+
|
3
|
+
describe <%= class_plural %>Controller do
|
4
|
+
integrate_views
|
5
|
+
|
6
|
+
context 'durante a exibição das telas (GET)' do
|
7
|
+
it 'deve exibir corretamente uma listagem' do
|
8
|
+
stub_<%= file_name %>
|
9
|
+
get :index
|
10
|
+
response.body.should include('Nome')
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'deve exibir corretamente uma listagem XML' do
|
14
|
+
stub_<%= file_name %>
|
15
|
+
get :index, :format => 'xml'
|
16
|
+
response.should have_tag('nome', :text => 'Nome')
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'deve exibir corretamente o dado de um <%= file_name %>' do
|
20
|
+
stub_<%= file_name %>
|
21
|
+
get :show, :id => @<%= file_name %>.id
|
22
|
+
response.body.should include('Nome')
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'deve exibir corretamente o dado de um <%= file_name %> via XML' do
|
26
|
+
stub_<%= file_name %>
|
27
|
+
get :show, :id => @<%= file_name %>.id, :format => 'xml'
|
28
|
+
response.should have_tag('nome', :text => 'Nome')
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'deve exibir corretamente uma tela de edição' do
|
32
|
+
stub_<%= file_name %>
|
33
|
+
get :edit, :id => @<%= file_name %>.id
|
34
|
+
response.should have_tag('form')
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'deve exibir corretamente uma tela de criação' do
|
38
|
+
get :new
|
39
|
+
response.should have_tag('form')
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'deve exibir corretamente uma tela de criação via XML' do
|
43
|
+
get :new, :format => 'xml'
|
44
|
+
response.should be_success
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context 'na edição ou criação de <%= file_plural %>' do
|
49
|
+
context 'com atributos válidos' do
|
50
|
+
it 'deve criar um registro corretamente e redirecionar para ele' do
|
51
|
+
post :create, :<%= file_name %> => Factory.attributes_for(:<%= file_name %>)
|
52
|
+
response.should redirect_to(<%= file_name %>_url(<%= class_name %>.last))
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'deve criar um registro corretamente via REST e apontar para sua URI' do
|
56
|
+
post :create, :<%= file_name %> => Factory.attributes_for(:<%= file_name %>), :format => 'xml'
|
57
|
+
response.response_code.should == 201
|
58
|
+
response.location.should == <%= file_name %>_url(<%= class_name %>.last)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'deve atualizar um registro corretamente e redirecionar para ele' do
|
62
|
+
stub_<%= file_name %>
|
63
|
+
@<%= file_name %>.should_receive(:save).and_return(true)
|
64
|
+
put :update, :<%= file_name %> => @<%= file_name %>.attributes
|
65
|
+
response.should redirect_to(<%= file_name %>_url(@<%= file_name %>))
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'deve atualizar um registro corretamente via REST' do
|
69
|
+
stub_<%= file_name %>
|
70
|
+
@<%= file_name %>.should_receive(:save).and_return(true)
|
71
|
+
put :update, :<%= file_name %> => @<%= file_name %>.attributes, :format => 'xml'
|
72
|
+
response.should be_success
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
context 'com atributos inválidos' do
|
77
|
+
it 'deve impedir a criação de um registro, apresentar os erros e renderizar novamente a tela' do
|
78
|
+
stub_<%= file_name %>
|
79
|
+
<%= class_name %>.stub!(:new).and_return(@<%= file_name %>)
|
80
|
+
@<%= file_name %>.should_receive(:save).and_return(false)
|
81
|
+
@<%= file_name %>.errors.add(:atributo, 'possui um erro')
|
82
|
+
post :create, :<%= file_name %> => Factory.attributes_for(:<%= file_name %>)
|
83
|
+
response.should render_template('new')
|
84
|
+
response.body.should include('Atributo possui um erro')
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'deve impedir a criação de um registro e apresentar um XML com os erros' do
|
88
|
+
stub_<%= file_name %>
|
89
|
+
<%= class_name %>.stub!(:new).and_return(@<%= file_name %>)
|
90
|
+
@<%= file_name %>.should_receive(:save).and_return(false)
|
91
|
+
post :create, :<%= file_name %> => Factory.attributes_for(:<%= file_name %>), :format => 'xml'
|
92
|
+
response.response_code.should == 422
|
93
|
+
response.should have_tag('errors')
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'deve impedir a edição, apresentar os erros e renderizar novamente a tela' do
|
97
|
+
stub_<%= file_name %>
|
98
|
+
@<%= file_name %>.should_receive(:save).and_return(false)
|
99
|
+
@<%= file_name %>.errors.add(:atributo, 'possui um erro')
|
100
|
+
put :update, :<%= file_name %> => @<%= file_name %>.attributes
|
101
|
+
response.should render_template('edit')
|
102
|
+
response.body.should include('Atributo possui um erro')
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'deve impedir a edição apresentar um XML com os erros' do
|
106
|
+
stub_<%= file_name %>
|
107
|
+
@<%= file_name %>.should_receive(:save).and_return(false)
|
108
|
+
put :update, :<%= file_name %> => @<%= file_name %>.attributes, :format => 'xml'
|
109
|
+
response.should have_tag('errors')
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
context 'na destruição de um registro' do
|
115
|
+
it 'deve remover o registro e redirecionar para a listagem' do
|
116
|
+
stub_<%= file_name %>
|
117
|
+
@<%= file_name %>.should_receive(:destroy).and_return(true)
|
118
|
+
delete :destroy, :id => @<%= file_name %>.id
|
119
|
+
response.should redirect_to(<%= file_plural %>_url)
|
120
|
+
end
|
121
|
+
|
122
|
+
it 'deve remover o registro via REST' do
|
123
|
+
stub_<%= file_name %>
|
124
|
+
@<%= file_name %>.should_receive(:destroy).and_return(true)
|
125
|
+
delete :destroy, :id => @<%= file_name %>.id, :format => 'xml'
|
126
|
+
response.should be_success
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
def stub_<%= file_name %>(atributos = {})
|
132
|
+
@<%= file_name %> = Factory.stub :<%= file_name %>, atributos
|
133
|
+
<%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
|
134
|
+
<%= class_name %>.stub!(:all).and_return([@<%= file_name %>])
|
135
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Descrição:
|
2
|
+
ferret_scaffold é semelhante ao scaffold normal do Rails, porém cria telas
|
3
|
+
mais simples, em português, e com suporte para o Ferret (inclusive
|
4
|
+
removendo acentuação das strings de busca).
|
5
|
+
|
6
|
+
Passe o nome do modelo no singular, e uma lista de atributos:tipo, assim
|
7
|
+
como seria feito no scaffold normal.
|
8
|
+
|
9
|
+
Exemplos:
|
10
|
+
`./script/generate ferret_scaffold post`
|
11
|
+
`./script/generate ferret_scaffold post title:string body:text published:boolean`
|
12
|
+
`./script/generate ferret_scaffold purchase order_id:integer amount:decimal`
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../default_values'
|
2
|
+
|
3
|
+
class FerretScaffoldGenerator < Rails::Generator::NamedBase
|
4
|
+
default_options :skip_timestamps => false, :skip_migration => false, :force_plural => false, :skip_spec => false
|
5
|
+
|
6
|
+
attr_reader :file_plural, :class_plural
|
7
|
+
|
8
|
+
def manifest
|
9
|
+
record do |m|
|
10
|
+
m.class_collisions class_path, class_name
|
11
|
+
|
12
|
+
@file_plural = file_name.pluralize
|
13
|
+
@class_plural = class_name.pluralize
|
14
|
+
|
15
|
+
m.directory 'app'
|
16
|
+
m.directory 'app/controllers'
|
17
|
+
m.directory File.join('app/controllers', class_path)
|
18
|
+
m.template 'controller.rb.erb', File.join('app/controllers', class_path, "#{@file_plural}_controller.rb")
|
19
|
+
|
20
|
+
m.directory 'app'
|
21
|
+
m.directory 'app/models'
|
22
|
+
m.directory File.join('app/models', class_path)
|
23
|
+
m.template 'model.rb.erb', File.join('app/models', class_path, "#{file_name}.rb")
|
24
|
+
|
25
|
+
m.directory 'app'
|
26
|
+
m.directory 'app/helpers'
|
27
|
+
m.directory File.join('app/helpers', class_path)
|
28
|
+
m.template 'helper.rb.erb', File.join('app/helpers', class_path, "#{@file_plural}_helper.rb")
|
29
|
+
|
30
|
+
m.directory 'app'
|
31
|
+
m.directory 'app/views'
|
32
|
+
m.directory "app/views/#{@file_plural}"
|
33
|
+
m.template 'views/_dados_model.html.erb', File.join("app/views/#{@file_plural}", class_path, "_dados_#{file_name}.html.erb")
|
34
|
+
m.template 'views/_dados_busca.html.erb', File.join("app/views/#{@file_plural}", class_path, "_dados_busca.html.erb")
|
35
|
+
m.template 'views/index.html.erb', File.join("app/views/#{@file_plural}", class_path, "index.html.erb")
|
36
|
+
m.template 'views/new.html.erb', File.join("app/views/#{@file_plural}", class_path, "new.html.erb")
|
37
|
+
m.template 'views/edit.html.erb', File.join("app/views/#{@file_plural}", class_path, "edit.html.erb")
|
38
|
+
m.template 'views/show.html.erb', File.join("app/views/#{@file_plural}", class_path, "show.html.erb")
|
39
|
+
|
40
|
+
m.route_resources @file_plural
|
41
|
+
|
42
|
+
unless options[:skip_specs]
|
43
|
+
m.directory 'spec'
|
44
|
+
m.directory 'spec/controllers'
|
45
|
+
m.directory File.join('spec/controllers', class_path)
|
46
|
+
m.template 'controller_spec.rb.erb', File.join('spec/controllers', class_path, "#{@file_plural}_controller_spec.rb")
|
47
|
+
|
48
|
+
m.directory 'spec'
|
49
|
+
m.directory 'spec/models'
|
50
|
+
m.directory File.join('spec/models', class_path)
|
51
|
+
m.template 'model_spec.rb.erb', File.join('spec/models', class_path, "#{file_name}_spec.rb")
|
52
|
+
|
53
|
+
m.directory 'spec'
|
54
|
+
m.directory 'spec/helpers'
|
55
|
+
m.directory File.join('spec/helpers', class_path)
|
56
|
+
m.template 'helper_spec.rb.erb', File.join('spec/helpers', class_path, "#{@file_plural}_helper_spec.rb")
|
57
|
+
|
58
|
+
m.directory 'spec/fixtures'
|
59
|
+
m.template 'model:fixtures.yml', File.join('spec/fixtures', "#{table_name}.yml")
|
60
|
+
end
|
61
|
+
|
62
|
+
unless options[:skip_migrations]
|
63
|
+
m.migration_template(
|
64
|
+
'migration.rb.erb', 'db/migrate',
|
65
|
+
:assigns => {
|
66
|
+
:migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}",
|
67
|
+
:attributes => attributes
|
68
|
+
},
|
69
|
+
:migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}"
|
70
|
+
)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
protected
|
76
|
+
def banner
|
77
|
+
"Uso: #{$0} ferret_scaffold NomeModelo [campo:tipo campo:tipo ...] [opções]"
|
78
|
+
end
|
79
|
+
|
80
|
+
def add_options!(opt)
|
81
|
+
opt.separator ''
|
82
|
+
opt.separator 'Opções:'
|
83
|
+
opt.on("--skip-timestamps",
|
84
|
+
"Não adiciona a hora de criação e de alteração no modelo") { |v| options[:skip_timestamps] = v }
|
85
|
+
opt.on("--skip-migration",
|
86
|
+
"Não gera um migration para o modelo") { |v| options[:skip_migration] = v }
|
87
|
+
opt.on("--skip-specs",
|
88
|
+
"Não gera os SPECs para o código gerado") { |v| options[:skip_specs] = v }
|
89
|
+
opt.on('--skip-lock',
|
90
|
+
'Não cria o lock_version na base de dados') { |v| options[:skip_lock] = v }
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,128 @@
|
|
1
|
+
class <%= class_plural %>Controller < ApplicationController
|
2
|
+
# GET /<%= file_plural %>
|
3
|
+
# GET /<%= file_plural %>.xml
|
4
|
+
# GET /<%= file_plural %>.xml?busca=filtro
|
5
|
+
# GET /<%= file_plural %>.xml?atributo=valor
|
6
|
+
#
|
7
|
+
#Quando pede um XML, apresenta ou todos os registros, ou quando for buscado
|
8
|
+
#por um atributo, apresenta apenas os registros que satisfazem aquele atributo.
|
9
|
+
#Também é possível passar o parâmetro "busca", e fazer a busca com Ferret.
|
10
|
+
def index
|
11
|
+
respond_to do |format|
|
12
|
+
format.html # index.html.erb
|
13
|
+
format.xml do
|
14
|
+
if(params[:busca])
|
15
|
+
@<%= file_plural %> = <%= class_name %>.find_with_ferret(params[:busca])
|
16
|
+
else
|
17
|
+
conditions = {}
|
18
|
+
<%= class_name %>.column_names.each do |campo|
|
19
|
+
conditions.update(campo => params[campo]) if(params[campo])
|
20
|
+
end
|
21
|
+
@<%= file_plural %> = <%= class_name %>.all :conditions => conditions
|
22
|
+
end
|
23
|
+
render :xml => @<%= file_plural %>
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# GET /<%= file_plural %>/1
|
29
|
+
# GET /<%= file_plural %>/1.xml
|
30
|
+
#
|
31
|
+
#Exibe uma tela com os dados do <%= file_name %>, ou um XML com os dados do <%= file_name %>.
|
32
|
+
def show
|
33
|
+
@<%= file_name %> = <%= class_name %>.find(params[:id])
|
34
|
+
|
35
|
+
respond_to do |format|
|
36
|
+
format.html # show.html.erb
|
37
|
+
format.xml { render :xml => @<%= file_name %> }
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# GET /<%= file_plural %>/new
|
42
|
+
# GET /<%= file_plural %>/new.xml
|
43
|
+
#
|
44
|
+
#Renderiza uma tela com um formulário de adição de <%= file_plural %>.
|
45
|
+
def new
|
46
|
+
@<%= file_name %> = <%= class_name %>.new
|
47
|
+
|
48
|
+
respond_to do |format|
|
49
|
+
format.html # new.html.erb
|
50
|
+
format.xml { render :xml => @<%= file_name %> }
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# GET /<%= file_plural %>/1/edit
|
55
|
+
#
|
56
|
+
#Renderiza uma tela de edição para um <%= file_name %>.
|
57
|
+
def edit
|
58
|
+
@<%= file_name %> = <%= class_name %>.find(params[:id])
|
59
|
+
end
|
60
|
+
|
61
|
+
# POST /<%= file_plural %>/buscar
|
62
|
+
#
|
63
|
+
#Busca, com o Ferret, os dados dos <%= file_plural %>.
|
64
|
+
def buscar
|
65
|
+
@<%= file_plural %> = <%= class_name %>.find_with_ferret(params[:busca])
|
66
|
+
render :partial => 'dados_busca'
|
67
|
+
end
|
68
|
+
|
69
|
+
# POST /<%= file_plural %>
|
70
|
+
# POST /<%= file_plural %>.xml
|
71
|
+
#
|
72
|
+
#Cria um <%= file_name %>, rodando suas validações e redirecionando para o
|
73
|
+
#registro criado.
|
74
|
+
def create
|
75
|
+
@<%= file_name %> = <%= class_name %>.new(params[:<%= file_name %>])
|
76
|
+
|
77
|
+
respond_to do |format|
|
78
|
+
if @<%= file_name %>.save
|
79
|
+
flash[:notice] = '<%= class_name %> foi criado com sucesso.'
|
80
|
+
format.html { redirect_to(@<%= file_name %>) }
|
81
|
+
format.xml { render :xml => @<%= file_name %>, :status => :created, :location => @<%= file_name %> }
|
82
|
+
else
|
83
|
+
format.html { render :action => "new" }
|
84
|
+
format.xml { render :xml => @<%= file_name %>.errors, :status => :unprocessable_entity }
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
# PUT /<%= file_plural %>/1
|
90
|
+
# PUT /<%= file_plural %>/1.xml
|
91
|
+
#
|
92
|
+
#Atualiza os dados de um <%= file_name %>, rodando suas validações, e redirecionando
|
93
|
+
#para o registro atualizado.
|
94
|
+
def update
|
95
|
+
@<%= file_name %> = <%= class_name %>.find(params[:id])
|
96
|
+
|
97
|
+
respond_to do |format|
|
98
|
+
if @<%= file_name %>.update_attributes(params[:<%= file_name %>])
|
99
|
+
flash[:notice] = '<%= class_name %> foi atualizado com sucesso.'
|
100
|
+
format.html { redirect_to(@<%= file_name %>) }
|
101
|
+
format.xml { head :ok }
|
102
|
+
else
|
103
|
+
format.html { render :action => "edit" }
|
104
|
+
format.xml { render :xml => @<%= file_name %>.errors, :status => :unprocessable_entity }
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
# DELETE /<%= file_plural %>/1
|
110
|
+
# DELETE /<%= file_plural %>/1.xml
|
111
|
+
#
|
112
|
+
#Deleta um registro.
|
113
|
+
def destroy
|
114
|
+
@<%= file_name %> = <%= class_name %>.find(params[:id])
|
115
|
+
|
116
|
+
respond_to do |format|
|
117
|
+
if(@<%= file_name %>.destroy)
|
118
|
+
format.html { redirect_to(<%= file_plural %>_url) }
|
119
|
+
format.xml { head :ok }
|
120
|
+
else
|
121
|
+
dependents = @<%= file_name %>.errors.collect { |campo, erros| campo }
|
122
|
+
flash[:notice] = "Não foi possível deletar. Há #{dependents.join(' ou ')} cadastrados."
|
123
|
+
format.html { redirect_to(<%= file_plural %>_url) }
|
124
|
+
format.xml { render :xml => @<%= file_name %>.errors, :status => :unprocessable_entity }
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|