Commit 223b8e80ba32a305b14b86520a7eae5b4abc85fa
1 parent
5306b580
Exists in
master
and in
1 other branch
updating blitz
Showing
4 changed files
with
37 additions
and
15 deletions
Show diff stats
vendor/plugins/blitz/features/step_definitions/view_steps.rb
@@ -45,3 +45,21 @@ Then /^an empty "(.*)" view for "posts" should be generated$/ do |view| | @@ -45,3 +45,21 @@ Then /^an empty "(.*)" view for "posts" should be generated$/ do |view| | ||
45 | assert_generated_empty_file("app/views/posts/#{view}.html.erb") | 45 | assert_generated_empty_file("app/views/posts/#{view}.html.erb") |
46 | end | 46 | end |
47 | 47 | ||
48 | +Then /^a model\-reflected "index" view for "posts" should be generated$/ do | ||
49 | + assert_generated_file("app/views/posts/index.html.erb") do | ||
50 | + "<h1>Posts</h1>\n\n" << | ||
51 | + "<ul>\n" << | ||
52 | + " <% @posts.each do |post| -%>\n" << | ||
53 | + " <li><%= link_to post.to_s, post_path(post) %></li>\n" << | ||
54 | + " <% end -%>\n" << | ||
55 | + "</ul>\n" | ||
56 | + end | ||
57 | +end | ||
58 | + | ||
59 | +Then /^a non\-model\-reflected "index" view for "posts" should be generated$/ do | ||
60 | + assert_generated_file("app/views/posts/index.html.erb") do | ||
61 | + "<h1>Posts</h1>" | ||
62 | + end | ||
63 | +end | ||
64 | + | ||
65 | + |
vendor/plugins/blitz/features/view_generator.feature
@@ -20,18 +20,19 @@ Feature: Rails view generator | @@ -20,18 +20,19 @@ Feature: Rails view generator | ||
20 | Given a Rails app | 20 | Given a Rails app |
21 | And the blitz plugin is installed | 21 | And the blitz plugin is installed |
22 | When I generate a Post model with title, body, and User | 22 | When I generate a Post model with title, body, and User |
23 | - When I generate a "new" view for "Posts" with the empty option | 23 | + And I generate a "new" view for "Posts" with the empty option |
24 | Then an empty "new" view for "posts" should be generated | 24 | Then an empty "new" view for "posts" should be generated |
25 | 25 | ||
26 | - Scenario: View generator for show action | 26 | + Scenario: View generator for index action |
27 | Given a Rails app | 27 | Given a Rails app |
28 | And the blitz plugin is installed | 28 | And the blitz plugin is installed |
29 | - When I generate a "show" view for "Posts" with the empty option | ||
30 | - Then an empty "show" view for "posts" should be generated | 29 | + When I generate a "index" view for "Posts" |
30 | + Then a non-model-reflected "index" view for "posts" should be generated | ||
31 | 31 | ||
32 | Scenario: View generator for index action | 32 | Scenario: View generator for index action |
33 | Given a Rails app | 33 | Given a Rails app |
34 | And the blitz plugin is installed | 34 | And the blitz plugin is installed |
35 | - When I generate a "index" view for "Posts" with the empty option | ||
36 | - Then an empty "index" view for "posts" should be generated | 35 | + When I generate a Post model with title, body, and User |
36 | + And I generate a "index" view for "Posts" | ||
37 | + Then a model-reflected "index" view for "posts" should be generated | ||
37 | 38 |
vendor/plugins/blitz/generators/view/templates/index.html.erb
1 | -<h1><%= resource %></h1> | ||
2 | - | ||
3 | -<%%= link_to 'Edit', edit_<%= resource %>_path(@<%= resource %>) %> | 1 | +<h1><%= resource_class.pluralize %></h1> |
2 | +<% if active_record_defined? -%> | ||
4 | 3 | ||
4 | +<ul> | ||
5 | + <%% @<%= resources %>.each do |<%= resource %>| -%> | ||
6 | + <li><%%= link_to <%= resource %>.to_s, <%= resource %>_path(<%= resource %>) %></li> | ||
7 | + <%% end -%> | ||
8 | +</ul> | ||
9 | +<% end -%> |
vendor/plugins/blitz/generators/view/view_generator.rb
@@ -14,12 +14,10 @@ class ViewGenerator < Rails::Generator::NamedBase | @@ -14,12 +14,10 @@ class ViewGenerator < Rails::Generator::NamedBase | ||
14 | else | 14 | else |
15 | m.template 'new.html.erb', path | 15 | m.template 'new.html.erb', path |
16 | end | 16 | end |
17 | - elsif %w(index show).any? { |action| actions.include?(action) } | ||
18 | - actions.each do |action| | ||
19 | - path = File.join('app/views', class_path, file_name, | ||
20 | - "#{action}.html.erb") | ||
21 | - m.file 'empty.html.erb', path | ||
22 | - end | 17 | + elsif actions.include?("index") |
18 | + path = File.join('app/views', class_path, file_name, | ||
19 | + "index.html.erb") | ||
20 | + m.template "index.html.erb", path | ||
23 | end | 21 | end |
24 | end | 22 | end |
25 | end | 23 | end |