diff --git a/vendor/plugins/coulda/features/step_definitions/model_steps.rb b/vendor/plugins/coulda/features/step_definitions/model_steps.rb
index 343275d..a89f90f 100644
--- a/vendor/plugins/coulda/features/step_definitions/model_steps.rb
+++ b/vendor/plugins/coulda/features/step_definitions/model_steps.rb
@@ -26,6 +26,13 @@ When /^I generate a model "(.*)" with file "(.*)"$/ do |model, file|
"cd .."
end
+When /^I generate a Post model with title, body, and User$/ do
+ system "cd #{@rails_root} && " <<
+ "script/generate model Post title:string body:text user:belongs_to && " <<
+ "rake db:migrate " <<
+ "cd .."
+end
+
# MODEL
Then /^the "(.*)" model should have "(.*)" macro$/ do |model, macro|
diff --git a/vendor/plugins/coulda/features/step_definitions/view_steps.rb b/vendor/plugins/coulda/features/step_definitions/view_steps.rb
index 2919643..e8e8158 100644
--- a/vendor/plugins/coulda/features/step_definitions/view_steps.rb
+++ b/vendor/plugins/coulda/features/step_definitions/view_steps.rb
@@ -4,12 +4,32 @@ When /^I generate a "([^\"]*)" view for "([^\"]*)"$/ do |view, resource|
"cd .."
end
-When /^a standard "new" view for "posts" should be generated$/ do
+When /^a SemiFormal "new" view for "posts" should be generated$/ do
assert_generated_file("app/views/posts/new.html.erb") do
- "
\n\n" <<
+ "<% form_for(@post) do |form| %>\n" <<
+ " <%= form.error_messages %>\n" <<
+ " \n" <<
+ " \n" <<
+ "<% end %>"
+ end
+end
+
+Then /^a SemiFormal "new" view for "posts" should be generated with fields$/ do
+ assert_generated_file("app/views/posts/new.html.erb") do
+ "
New post
\n\n" <<
+ "<% form_for(@post) do |form| %>\n" <<
+ " <%= form.error_messages %>\n" <<
+ " \n" <<
+ " \n" <<
"<% end %>"
end
end
diff --git a/vendor/plugins/coulda/features/view_generator.feature b/vendor/plugins/coulda/features/view_generator.feature
index f8d8e17..a5730d0 100644
--- a/vendor/plugins/coulda/features/view_generator.feature
+++ b/vendor/plugins/coulda/features/view_generator.feature
@@ -7,5 +7,12 @@ Feature: Rails view generator
Given a Rails app
And the coulda plugin is installed
When I generate a "new" view for "Posts"
- Then a standard "new" view for "posts" should be generated
+ Then a SemiFormal "new" view for "posts" should be generated
+
+ Scenario: View generator for new action
+ Given a Rails app
+ And the coulda plugin is installed
+ When I generate a Post model with title, body, and User
+ And I generate a "new" view for "Posts"
+ Then a SemiFormal "new" view for "posts" should be generated with fields
diff --git a/vendor/plugins/coulda/generators/support/generator_helper.rb b/vendor/plugins/coulda/generators/support/generator_helper.rb
index 435e41e..1419516 100644
--- a/vendor/plugins/coulda/generators/support/generator_helper.rb
+++ b/vendor/plugins/coulda/generators/support/generator_helper.rb
@@ -18,9 +18,21 @@ module Coulda
end
def columns_for_form
- resource_class.content_columns.
+ resource_class.constantize.content_columns.
collect { |column| [column.name, column.type] }.
- delete_if { |column| REMOVABLE_COLUMNS.include?(column.first) }
+ delete_if { |column| remove_column?(column.first) }
+ end
+
+ def active_record_defined?
+ models = Dir.glob(File.join( RAILS_ROOT, 'app', 'models', '*.rb')).
+ collect { |path| path[/.+\/(.+).rb/,1] }.
+ collect {|model| model.classify }
+ models.include?(resource_class)
+ end
+
+ def remove_column?(column)
+ REMOVABLE_COLUMNS.include?(column) ||
+ !(column =~ /_id$/).nil?
end
end
end
diff --git a/vendor/plugins/coulda/generators/view/templates/view_new.html.erb b/vendor/plugins/coulda/generators/view/templates/view_new.html.erb
index a85dd14..6174b80 100644
--- a/vendor/plugins/coulda/generators/view/templates/view_new.html.erb
+++ b/vendor/plugins/coulda/generators/view/templates/view_new.html.erb
@@ -2,5 +2,14 @@
<%% form_for(@<%= resource %>) do |form| %>
<%%= form.error_messages %>
- <%%= form.submit 'Create', :disable_with => 'Please wait...' %>
+
+
<%% end %>
--
libgit2 0.21.2