model_base_generators 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +23 -0
- data/example/.gitignore +1 -0
- data/example/.model_base/controllers +5 -0
- data/example/.rubocop.yml +31 -0
- data/example/Gemfile +1 -1
- data/example/Gemfile.lock +14 -1
- data/example/app/controllers/concerns/authentication.rb +2 -2
- data/example/app/models/ability.rb +1 -2
- data/example/app/models/issue.rb +0 -1
- data/example/app/models/user.rb +3 -2
- data/example/app/views/issue_comments/_issue_comment.json.jbuilder +1 -1
- data/example/app/views/issue_comments/_table.html.erb +1 -1
- data/example/app/views/issue_comments/index.html.erb +1 -1
- data/example/app/views/issue_comments/index.json.jbuilder +1 -1
- data/example/app/views/issue_comments/show.json.jbuilder +1 -1
- data/example/app/views/issues/_table.html.erb +1 -1
- data/example/app/views/issues/index.html.erb +1 -1
- data/example/app/views/phases/_table.html.erb +1 -1
- data/example/app/views/phases/index.html.erb +1 -1
- data/example/app/views/project_assignments/_table.html.erb +1 -1
- data/example/app/views/project_assignments/index.html.erb +1 -1
- data/example/app/views/projects/_table.html.erb +1 -1
- data/example/app/views/projects/index.html.erb +1 -1
- data/example/config/application.rb +1 -1
- data/example/config/environments/development.rb +1 -1
- data/example/config/environments/production.rb +2 -2
- data/example/config/environments/test.rb +1 -1
- data/example/config/initializers/pretty_validation.rb +1 -1
- data/example/config/puma.rb +3 -3
- data/example/db/schema.rb +9 -9
- data/example/spec/controllers/issue_comments_controller_spec.rb +73 -61
- data/example/spec/controllers/issues_controller_spec.rb +71 -59
- data/example/spec/controllers/phases_controller_spec.rb +72 -60
- data/example/spec/controllers/project_assignments_controller_spec.rb +72 -60
- data/example/spec/controllers/projects_controller_spec.rb +70 -58
- data/example/spec/factories/issue_comments.rb +1 -1
- data/example/spec/factories/issues.rb +1 -1
- data/example/spec/factories/phases.rb +3 -3
- data/example/spec/factories/project_assignments.rb +2 -2
- data/example/spec/factories/projects.rb +1 -1
- data/example/spec/factories/users.rb +2 -2
- data/example/spec/rails_helper.rb +1 -1
- data/example/spec/requests/issue_comments_spec.rb +4 -4
- data/example/spec/routing/issue_comments_routing_spec.rb +18 -20
- data/example/spec/routing/issues_routing_spec.rb +18 -20
- data/example/spec/routing/phases_routing_spec.rb +18 -20
- data/example/spec/routing/project_assignments_routing_spec.rb +18 -20
- data/example/spec/routing/projects_routing_spec.rb +18 -20
- data/example/spec/spec_helper.rb +47 -49
- data/example/spec/support/controller_macros.rb +3 -3
- data/example/spec/support/devise.rb +2 -2
- data/example/spec/support/time_match_support.rb +9 -0
- data/example/spec/views/issue_comments/edit.html.erb_spec.rb +12 -11
- data/example/spec/views/issue_comments/index.html.erb_spec.rb +12 -12
- data/example/spec/views/issue_comments/new.html.erb_spec.rb +12 -11
- data/example/spec/views/issue_comments/show.html.erb_spec.rb +7 -6
- data/example/spec/views/issues/edit.html.erb_spec.rb +12 -11
- data/example/spec/views/issues/index.html.erb_spec.rb +13 -13
- data/example/spec/views/issues/new.html.erb_spec.rb +12 -11
- data/example/spec/views/issues/show.html.erb_spec.rb +6 -5
- data/example/spec/views/phases/edit.html.erb_spec.rb +9 -8
- data/example/spec/views/phases/index.html.erb_spec.rb +12 -12
- data/example/spec/views/phases/new.html.erb_spec.rb +9 -8
- data/example/spec/views/phases/show.html.erb_spec.rb +8 -7
- data/example/spec/views/project_assignments/edit.html.erb_spec.rb +10 -9
- data/example/spec/views/project_assignments/index.html.erb_spec.rb +11 -11
- data/example/spec/views/project_assignments/new.html.erb_spec.rb +10 -9
- data/example/spec/views/project_assignments/show.html.erb_spec.rb +8 -7
- data/example/spec/views/projects/edit.html.erb_spec.rb +9 -8
- data/example/spec/views/projects/index.html.erb_spec.rb +10 -10
- data/example/spec/views/projects/new.html.erb_spec.rb +9 -8
- data/example/spec/views/projects/show.html.erb_spec.rb +5 -4
- data/exe/model_base +33 -0
- data/lib/generators/model_base/install_generator.rb +1 -0
- data/lib/generators/model_base/templates/app/controllers/concerns/authentication.rb +2 -2
- data/lib/generators/model_base/templates/spec/support/time_match_support.rb +9 -0
- data/lib/model_base/column_attribute.rb +2 -2
- data/lib/model_base/config.rb +6 -0
- data/lib/model_base/generators/model_support.rb +8 -0
- data/lib/model_base/generators/rails/scaffold_controller.rb +25 -0
- data/lib/model_base/generators.rb +33 -0
- data/lib/model_base/meta_model.rb +2 -2
- data/lib/model_base/railtie.rb +1 -1
- data/lib/model_base/version.rb +1 -1
- data/lib/model_base.rb +24 -13
- data/lib/templates/erb/scaffold/_table.html.erb +1 -1
- data/lib/templates/erb/scaffold/index.html.erb +1 -1
- data/lib/templates/factory_girl/factory.rb +1 -1
- data/lib/templates/rspec/scaffold/controller_spec.rb +71 -59
- data/lib/templates/rspec/scaffold/edit_spec.rb +5 -4
- data/lib/templates/rspec/scaffold/index_spec.rb +8 -8
- data/lib/templates/rspec/scaffold/new_spec.rb +5 -4
- data/lib/templates/rspec/scaffold/routing_spec.rb +18 -20
- data/lib/templates/rspec/scaffold/show_spec.rb +4 -3
- metadata +11 -3
@@ -25,36 +25,34 @@ require 'rails_helper'
|
|
25
25
|
|
26
26
|
<% module_namespacing do -%>
|
27
27
|
RSpec.describe <%= controller_class_name %>Controller, <%= type_metatag(:controller) %> do
|
28
|
-
|
29
28
|
<%-
|
30
29
|
required_ref_attrs = model.columns_for(:params).select{|attr| attr.reference && attr.required? }
|
31
30
|
required_data_attrs = model.columns_for(:params).select{|attr| !attr.reference && attr.required? }
|
32
31
|
-%>
|
33
32
|
<%= model.factory_girl_let_definitions %>
|
34
|
-
before{ devise_user_login(user) }
|
35
|
-
|
36
33
|
<%-
|
37
34
|
unless required_ref_attrs.empty?
|
38
35
|
extra_attributes_to_merge = ".merge(%s)" % required_ref_attrs.map{|attr| "#{attr.name}: #{attr.ref_model.full_resource_name}.id"}.join(', ')
|
39
36
|
extra_attributes_for_factory = ", %s" % required_ref_attrs.map{|attr| "#{attr.reference.name}: #{attr.ref_model.full_resource_name}"}.join(', ')
|
40
37
|
end
|
41
38
|
-%>
|
42
|
-
let(:<%= file_name %>){ FactoryGirl.create(:<%= file_name %><%= extra_attributes_for_factory %>) }
|
39
|
+
let(:<%= file_name %>) { FactoryGirl.create(:<%= file_name %><%= extra_attributes_for_factory %>) }
|
40
|
+
before { devise_user_login(user) }
|
43
41
|
|
44
42
|
# This should return the minimal set of attributes required to create a valid
|
45
43
|
# <%= class_name %>. As you add validations to <%= class_name %>, be sure to
|
46
44
|
# adjust the attributes here as well.
|
47
|
-
let(:valid_parameters)
|
45
|
+
let(:valid_parameters) do
|
48
46
|
FactoryGirl.attributes_for(:<%= file_name %>)<%= extra_attributes_to_merge %>
|
49
|
-
|
47
|
+
end
|
50
48
|
|
51
|
-
let(:invalid_parameters)
|
49
|
+
let(:invalid_parameters) do
|
52
50
|
<%- if !required_data_attrs.empty? -%>
|
53
51
|
valid_parameters.symbolize_keys.merge(<%= required_data_attrs.first.name %>: '')
|
54
52
|
<%- else -%>
|
55
|
-
skip(
|
53
|
+
skip('Add a hash of attributes invalid for your model')
|
56
54
|
<%- end -%>
|
57
|
-
|
55
|
+
end
|
58
56
|
|
59
57
|
# This should return the minimal set of values that should be in the session
|
60
58
|
# in order to pass any filters (e.g. authentication) defined in
|
@@ -62,141 +60,155 @@ RSpec.describe <%= controller_class_name %>Controller, <%= type_metatag(:control
|
|
62
60
|
let(:valid_session) { {} }
|
63
61
|
|
64
62
|
<% unless options[:singleton] -%>
|
65
|
-
describe
|
66
|
-
it
|
67
|
-
get :index,
|
63
|
+
describe 'GET #index' do
|
64
|
+
it 'assigns all <%= table_name.pluralize %> as @<%= table_name.pluralize %>' do
|
65
|
+
get :index, session: valid_session,
|
66
|
+
params: {}
|
68
67
|
expect(assigns(:<%= table_name %>)).to eq([<%= file_name %>])
|
69
68
|
end
|
70
69
|
end
|
71
70
|
|
72
71
|
<% end -%>
|
73
|
-
describe
|
74
|
-
it
|
72
|
+
describe 'GET #show' do
|
73
|
+
it 'assigns the requested <%= file_name %> as @<%= file_name %>' do
|
75
74
|
<%= file_name %> # To create <%= file_name %>
|
76
|
-
get :show,
|
75
|
+
get :show, session: valid_session,
|
76
|
+
params: { id: <%= file_name %>.to_param }
|
77
77
|
expect(assigns(:<%= file_name %>)).to eq(<%= file_name %>)
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
-
describe
|
82
|
-
it
|
83
|
-
get :new,
|
81
|
+
describe 'GET #new' do
|
82
|
+
it 'assigns a new <%= file_name %> as @<%= file_name %>' do
|
83
|
+
get :new, session: valid_session,
|
84
|
+
params: {}
|
84
85
|
expect(assigns(:<%= file_name %>)).to be_a_new(<%= class_name %>)
|
85
86
|
end
|
86
87
|
end
|
87
88
|
|
88
|
-
describe
|
89
|
-
it
|
89
|
+
describe 'GET #edit' do
|
90
|
+
it 'assigns the requested <%= file_name %> as @<%= file_name %>' do
|
90
91
|
<%= file_name %> # To create <%= file_name %>
|
91
|
-
get :edit,
|
92
|
+
get :edit, session: valid_session,
|
93
|
+
params: { id: <%= file_name %>.to_param }
|
92
94
|
expect(assigns(:<%= file_name %>)).to eq(<%= file_name %>)
|
93
95
|
end
|
94
96
|
end
|
95
97
|
|
96
|
-
describe
|
97
|
-
context
|
98
|
-
it
|
98
|
+
describe 'POST #create' do
|
99
|
+
context 'with valid params' do
|
100
|
+
it 'creates a new <%= class_name %>' do
|
99
101
|
expect {
|
100
|
-
post :create,
|
102
|
+
post :create, session: valid_session,
|
103
|
+
params: { <%= file_name %>: valid_parameters }
|
101
104
|
}.to change(<%= class_name %>, :count).by(1)
|
102
105
|
end
|
103
106
|
|
104
|
-
it
|
105
|
-
post :create,
|
107
|
+
it 'assigns a newly created <%= file_name %> as @<%= file_name %>' do
|
108
|
+
post :create, session: valid_session,
|
109
|
+
params: { <%= file_name %>: valid_parameters }
|
106
110
|
expect(assigns(:<%= file_name %>)).to be_a(<%= class_name %>)
|
107
111
|
expect(assigns(:<%= file_name %>)).to be_persisted
|
108
112
|
end
|
109
113
|
|
110
|
-
it
|
111
|
-
post :create,
|
114
|
+
it 'redirects to the created <%= file_name %>' do
|
115
|
+
post :create, session: valid_session,
|
116
|
+
params: { <%= file_name %>: valid_parameters }
|
112
117
|
expect(response).to redirect_to(<%= class_name %>.last)
|
113
118
|
end
|
114
119
|
end
|
115
120
|
|
116
|
-
context
|
117
|
-
it
|
118
|
-
post :create,
|
121
|
+
context 'with invalid params' do
|
122
|
+
it 'assigns a newly created but unsaved <%= file_name %> as @<%= file_name %>' do
|
123
|
+
post :create, session: valid_session,
|
124
|
+
params: { <%= file_name %>: invalid_parameters }
|
119
125
|
expect(assigns(:<%= file_name %>)).to be_a_new(<%= class_name %>)
|
120
126
|
end
|
121
127
|
|
122
128
|
it "re-renders the 'new' template" do
|
123
|
-
post :create,
|
124
|
-
|
129
|
+
post :create, session: valid_session,
|
130
|
+
params: { <%= file_name %>: invalid_parameters }
|
131
|
+
expect(response).to render_template('new')
|
125
132
|
end
|
126
133
|
end
|
127
134
|
end
|
128
135
|
|
129
|
-
describe
|
130
|
-
context
|
136
|
+
describe 'PUT #update' do
|
137
|
+
context 'with valid params' do
|
131
138
|
<%- if !required_data_attrs.empty? -%>
|
132
139
|
<%- required_data_attrs.each do |required_data_attr| -%>
|
133
|
-
let(:new_<%= required_data_attr.name %>){ <%= required_data_attr.new_attribute_exp %> }
|
140
|
+
let(:new_<%= required_data_attr.name %>) { <%= required_data_attr.new_attribute_exp %> }
|
134
141
|
<%- end -%>
|
135
142
|
<%- end -%>
|
136
|
-
|
137
|
-
let(:new_parameters) {
|
143
|
+
let(:new_parameters) do
|
138
144
|
<%- if !required_data_attrs.empty? -%>
|
139
145
|
valid_parameters.merge(<%= required_data_attrs.map{|attr| "#{attr.name}: new_#{attr.name}"}.join(', ') %>)
|
140
146
|
<%- else required_data_attrs.empty? -%>
|
141
|
-
skip(
|
147
|
+
skip('Add a hash of attributes valid for your model')
|
142
148
|
<%- end -%>
|
143
|
-
|
149
|
+
end
|
144
150
|
|
145
|
-
it
|
151
|
+
it 'updates the requested <%= file_name %>' do
|
146
152
|
<%= file_name %> # To create <%= file_name %>
|
147
|
-
put :update,
|
153
|
+
put :update, session: valid_session,
|
154
|
+
params: { id: <%= file_name %>.to_param, <%= file_name %>: new_parameters }
|
148
155
|
<%= file_name %>.reload
|
149
156
|
<%- if !required_data_attrs.empty? -%>
|
150
157
|
<%- required_data_attrs.each do |attr| -%>
|
151
158
|
expect(<%= file_name %>.<%= attr.name %>).to eq new_<%= attr.name %>
|
152
159
|
<%- end -%>
|
153
160
|
<%- else -%>
|
154
|
-
skip(
|
161
|
+
skip('Add assertions for updated state')
|
155
162
|
<%- end -%>
|
156
163
|
end
|
157
164
|
|
158
|
-
it
|
165
|
+
it 'assigns the requested <%= file_name %> as @<%= file_name %>' do
|
159
166
|
<%= file_name %> # To create <%= file_name %>
|
160
|
-
put :update,
|
167
|
+
put :update, session: valid_session,
|
168
|
+
params: { id: <%= file_name %>.to_param, <%= file_name %>: new_parameters }
|
161
169
|
expect(assigns(:<%= file_name %>)).to eq(<%= file_name %>)
|
162
170
|
end
|
163
171
|
|
164
|
-
it
|
172
|
+
it 'redirects to the <%= file_name %>' do
|
165
173
|
<%= file_name %> # To create <%= file_name %>
|
166
|
-
put :update,
|
174
|
+
put :update, session: valid_session,
|
175
|
+
params: { id: <%= file_name %>.to_param, <%= file_name %>: new_parameters }
|
167
176
|
expect(response).to redirect_to(<%= file_name %>)
|
168
177
|
end
|
169
178
|
end
|
170
179
|
|
171
|
-
context
|
172
|
-
it
|
180
|
+
context 'with invalid params' do
|
181
|
+
it 'assigns the <%= file_name %> as @<%= file_name %>' do
|
173
182
|
<%= file_name %> # To create <%= file_name %>
|
174
|
-
put :update,
|
183
|
+
put :update, session: valid_session,
|
184
|
+
params: { id: <%= file_name %>.to_param, <%= file_name %>: invalid_parameters }
|
175
185
|
expect(assigns(:<%= file_name %>)).to eq(<%= file_name %>)
|
176
186
|
end
|
177
187
|
|
178
188
|
it "re-renders the 'edit' template" do
|
179
189
|
<%= file_name %> # To create <%= file_name %>
|
180
|
-
put :update,
|
181
|
-
|
190
|
+
put :update, session: valid_session,
|
191
|
+
params: { id: <%= file_name %>.to_param, <%= file_name %>: invalid_parameters }
|
192
|
+
expect(response).to render_template('edit')
|
182
193
|
end
|
183
194
|
end
|
184
195
|
end
|
185
196
|
|
186
|
-
describe
|
187
|
-
it
|
197
|
+
describe 'DELETE #destroy' do
|
198
|
+
it 'destroys the requested <%= file_name %>' do
|
188
199
|
<%= file_name %> # To create <%= file_name %>
|
189
200
|
expect {
|
190
|
-
delete :destroy,
|
201
|
+
delete :destroy, session: valid_session,
|
202
|
+
params: { id: <%= file_name %>.to_param }
|
191
203
|
}.to change(<%= class_name %>, :count).by(-1)
|
192
204
|
end
|
193
205
|
|
194
|
-
it
|
206
|
+
it 'redirects to the <%= table_name %> list' do
|
195
207
|
<%= file_name %> # To create <%= file_name %>
|
196
|
-
delete :destroy,
|
208
|
+
delete :destroy, session: valid_session,
|
209
|
+
params: { id: <%= file_name %>.to_param }
|
197
210
|
expect(response).to redirect_to(<%= index_helper %>_url)
|
198
211
|
end
|
199
212
|
end
|
200
|
-
|
201
213
|
end
|
202
214
|
<% end -%>
|
@@ -1,15 +1,16 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
RSpec.describe
|
3
|
+
RSpec.describe '<%= ns_table_name %>/edit', <%= type_metatag(:view) %> do
|
4
4
|
<%= model.factory_girl_let_definitions %>
|
5
|
+
<%= model.factory_girl_let_definition %>
|
5
6
|
before(:each) do
|
6
|
-
|
7
|
+
assign(:<%= model.full_resource_name %>, <%= model.full_resource_name %>)
|
7
8
|
end
|
8
9
|
|
9
|
-
it
|
10
|
+
it 'renders the edit <%= model.full_resource_name %> form' do
|
10
11
|
render
|
11
12
|
|
12
|
-
assert_select
|
13
|
+
assert_select 'form[action=?][method=?]', <%= model.full_resource_name %>_path(<%= model.full_resource_name %>), 'post' do
|
13
14
|
<% model.columns_for(:form).each do |attribute| -%>
|
14
15
|
<%= attribute.assert_select_exp %>
|
15
16
|
<% end -%>
|
@@ -1,28 +1,28 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
3
|
<% output_attributes = model.columns.reject{|attribute| [:datetime, :timestamp, :time, :date].index(attribute.type) } -%>
|
4
|
-
RSpec.describe
|
4
|
+
RSpec.describe '<%= ns_table_name %>/index', <%= type_metatag(:view) %> do
|
5
5
|
<%= model.factory_girl_let_definitions %>
|
6
6
|
before(:each) do
|
7
7
|
assign(:<%= table_name %>, [
|
8
8
|
<% [1,2].each_with_index do |id, model_index| -%>
|
9
9
|
<%- if tc = model.title_column -%>
|
10
|
-
|
10
|
+
<%= model.factory_girl_to(:create, extra: {tc.name.to_sym => tc.sample_value(model_index + 1)}) %>,
|
11
11
|
<%- else -%>
|
12
|
-
|
12
|
+
<%= model.factory_girl_to(:create, context: :spec_index, index: id, ) %>,
|
13
13
|
<%- end -%>
|
14
14
|
<% end -%>
|
15
|
-
|
15
|
+
])
|
16
16
|
end
|
17
17
|
|
18
|
-
it
|
18
|
+
it 'renders a list of <%= ns_table_name %>' do
|
19
19
|
render
|
20
20
|
<% model.columns_for(:spec_index).each do |attribute| -%>
|
21
21
|
<%- if attribute.single_sample_only? -%>
|
22
|
-
assert_select
|
22
|
+
assert_select 'tr>td', text: <%= attribute.sample_string_exp %>, count: 2
|
23
23
|
<%- else -%>
|
24
|
-
assert_select
|
25
|
-
assert_select
|
24
|
+
assert_select 'tr>td', text: <%= attribute.sample_string_exp(1) %>, count: 1
|
25
|
+
assert_select 'tr>td', text: <%= attribute.sample_string_exp(2) %>, count: 1
|
26
26
|
<%- end -%>
|
27
27
|
<% end -%>
|
28
28
|
end
|
@@ -1,16 +1,17 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
3
|
<% output_attributes = model.columns.reject{|attribute| [:datetime, :timestamp, :time, :date].index(attribute.type) } -%>
|
4
|
-
RSpec.describe
|
4
|
+
RSpec.describe '<%= ns_table_name %>/new', <%= type_metatag(:view) %> do
|
5
5
|
<%= model.factory_girl_let_definitions %>
|
6
|
+
<%= model.factory_girl_let_definition(action: :build) %>
|
6
7
|
before(:each) do
|
7
|
-
assign(:<%=
|
8
|
+
assign(:<%= model.full_resource_name %>, <%= model.full_resource_name %>)
|
8
9
|
end
|
9
10
|
|
10
|
-
it
|
11
|
+
it 'renders new <%= ns_file_name %> form' do
|
11
12
|
render
|
12
13
|
|
13
|
-
assert_select
|
14
|
+
assert_select 'form[action=?][method=?]', <%= index_helper %>_path, 'post' do
|
14
15
|
<% model.columns_for(:form).each do |attribute| -%>
|
15
16
|
<%= attribute.assert_select_exp %>
|
16
17
|
<% end -%>
|
@@ -1,45 +1,43 @@
|
|
1
|
-
require
|
1
|
+
require 'rails_helper'
|
2
2
|
|
3
3
|
<% module_namespacing do -%>
|
4
4
|
RSpec.describe <%= controller_class_name %>Controller, <%= type_metatag(:routing) %> do
|
5
|
-
describe
|
6
|
-
|
5
|
+
describe 'routing' do
|
7
6
|
<% unless options[:singleton] -%>
|
8
|
-
it
|
9
|
-
expect(:
|
7
|
+
it 'routes to #index' do
|
8
|
+
expect(get: '/<%= ns_table_name %>').to route_to('<%= ns_table_name %>#index')
|
10
9
|
end
|
11
10
|
|
12
11
|
<% end -%>
|
13
|
-
it
|
14
|
-
expect(:
|
12
|
+
it 'routes to #new' do
|
13
|
+
expect(get: '/<%= ns_table_name %>/new').to route_to('<%= ns_table_name %>#new')
|
15
14
|
end
|
16
15
|
|
17
|
-
it
|
18
|
-
expect(:
|
16
|
+
it 'routes to #show' do
|
17
|
+
expect(get: '/<%= ns_table_name %>/1').to route_to('<%= ns_table_name %>#show', id: '1')
|
19
18
|
end
|
20
19
|
|
21
|
-
it
|
22
|
-
expect(:
|
20
|
+
it 'routes to #edit' do
|
21
|
+
expect(get: '/<%= ns_table_name %>/1/edit').to route_to('<%= ns_table_name %>#edit', id: '1')
|
23
22
|
end
|
24
23
|
|
25
|
-
it
|
26
|
-
expect(:
|
24
|
+
it 'routes to #create' do
|
25
|
+
expect(post: '/<%= ns_table_name %>').to route_to('<%= ns_table_name %>#create')
|
27
26
|
end
|
28
27
|
|
29
|
-
it
|
30
|
-
expect(:
|
28
|
+
it 'routes to #update via PUT' do
|
29
|
+
expect(put: '/<%= ns_table_name %>/1').to route_to('<%= ns_table_name %>#update', id: '1')
|
31
30
|
end
|
32
31
|
|
33
32
|
<% if Rails::VERSION::STRING > '4' -%>
|
34
|
-
it
|
35
|
-
expect(:
|
33
|
+
it 'routes to #update via PATCH' do
|
34
|
+
expect(patch: '/<%= ns_table_name %>/1').to route_to('<%= ns_table_name %>#update', id: '1')
|
36
35
|
end
|
37
36
|
|
38
37
|
<% end -%>
|
39
|
-
it
|
40
|
-
expect(:
|
38
|
+
it 'routes to #destroy' do
|
39
|
+
expect(delete: '/<%= ns_table_name %>/1').to route_to('<%= ns_table_name %>#destroy', id: '1')
|
41
40
|
end
|
42
|
-
|
43
41
|
end
|
44
42
|
end
|
45
43
|
<% end -%>
|
@@ -1,12 +1,13 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
RSpec.describe
|
3
|
+
RSpec.describe '<%= ns_table_name %>/show', <%= type_metatag(:view) %> do
|
4
4
|
<%= model.factory_girl_let_definitions %>
|
5
|
+
<%= model.factory_girl_let_definition %>
|
5
6
|
before(:each) do
|
6
|
-
|
7
|
+
assign(:<%= model.full_resource_name %>, <%= model.full_resource_name %>)
|
7
8
|
end
|
8
9
|
|
9
|
-
it
|
10
|
+
it 'renders attributes in <p>' do
|
10
11
|
render
|
11
12
|
<% model.columns_for(:spec_show).each do |attribute| -%>
|
12
13
|
expect(rendered).to match(<%= attribute.sample_value_regexp_exp %>)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: model_base_generators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- akm
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -111,7 +111,8 @@ dependencies:
|
|
111
111
|
description: Provide generators for models with assocations.
|
112
112
|
email:
|
113
113
|
- akm2000@gmail.com
|
114
|
-
executables:
|
114
|
+
executables:
|
115
|
+
- model_base
|
115
116
|
extensions: []
|
116
117
|
extra_rdoc_files: []
|
117
118
|
files:
|
@@ -126,7 +127,9 @@ files:
|
|
126
127
|
- bin/console
|
127
128
|
- bin/setup
|
128
129
|
- example/.gitignore
|
130
|
+
- example/.model_base/controllers
|
129
131
|
- example/.rspec
|
132
|
+
- example/.rubocop.yml
|
130
133
|
- example/Gemfile
|
131
134
|
- example/Gemfile.lock
|
132
135
|
- example/Rakefile
|
@@ -270,6 +273,7 @@ files:
|
|
270
273
|
- example/spec/support/controller_macros.rb
|
271
274
|
- example/spec/support/devise.rb
|
272
275
|
- example/spec/support/field_assertions.rb
|
276
|
+
- example/spec/support/time_match_support.rb
|
273
277
|
- example/spec/views/issue_comments/edit.html.erb_spec.rb
|
274
278
|
- example/spec/views/issue_comments/index.html.erb_spec.rb
|
275
279
|
- example/spec/views/issue_comments/new.html.erb_spec.rb
|
@@ -291,18 +295,22 @@ files:
|
|
291
295
|
- example/spec/views/projects/new.html.erb_spec.rb
|
292
296
|
- example/spec/views/projects/show.html.erb_spec.rb
|
293
297
|
- example/tmp/.keep
|
298
|
+
- exe/model_base
|
294
299
|
- lib/generators/model_base/install_generator.rb
|
295
300
|
- lib/generators/model_base/templates/app/controllers/concerns/authentication.rb
|
296
301
|
- lib/generators/model_base/templates/spec/factories/users.rb
|
297
302
|
- lib/generators/model_base/templates/spec/support/controller_macros.rb
|
298
303
|
- lib/generators/model_base/templates/spec/support/devise.rb
|
299
304
|
- lib/generators/model_base/templates/spec/support/field_assertions.rb
|
305
|
+
- lib/generators/model_base/templates/spec/support/time_match_support.rb
|
300
306
|
- lib/model_base.rb
|
301
307
|
- lib/model_base/column_attribute.rb
|
302
308
|
- lib/model_base/config.rb
|
309
|
+
- lib/model_base/generators.rb
|
303
310
|
- lib/model_base/generators/erb/scaffold.rb
|
304
311
|
- lib/model_base/generators/factory_girl/model.rb
|
305
312
|
- lib/model_base/generators/model_support.rb
|
313
|
+
- lib/model_base/generators/rails/scaffold_controller.rb
|
306
314
|
- lib/model_base/meta_model.rb
|
307
315
|
- lib/model_base/railtie.rb
|
308
316
|
- lib/model_base/version.rb
|