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 | 45 | assert_generated_empty_file("app/views/posts/#{view}.html.erb") |
| 46 | 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 | 20 | Given a Rails app |
| 21 | 21 | And the blitz plugin is installed |
| 22 | 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 | 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 | 27 | Given a Rails app |
| 28 | 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 | 32 | Scenario: View generator for index action |
| 33 | 33 | Given a Rails app |
| 34 | 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 | 14 | else |
| 15 | 15 | m.template 'new.html.erb', path |
| 16 | 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 | 21 | end |
| 24 | 22 | end |
| 25 | 23 | end | ... | ... |