aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-07-01 20:12:29 +0200
committerJosé Valim <jose.valim@gmail.com>2009-07-02 10:27:40 +0200
commit1a4d8aca8a675aa02cead4b1db53ba5a3f9aa326 (patch)
tree788c5de55db47408ee4e1376ba1cdc11d3923b5c /railties/lib
parent86ff07410145430d08e97a8296486c4cd4304cde (diff)
downloadrails-1a4d8aca8a675aa02cead4b1db53ba5a3f9aa326.tar.gz
rails-1a4d8aca8a675aa02cead4b1db53ba5a3f9aa326.tar.bz2
rails-1a4d8aca8a675aa02cead4b1db53ba5a3f9aa326.zip
Added tests to scaffold controller.
Diffstat (limited to 'railties/lib')
-rw-r--r--railties/lib/generators/base.rb1
-rw-r--r--railties/lib/generators/erb/scaffold/scaffold_generator.rb5
-rw-r--r--railties/lib/generators/erb/scaffold/templates/show.html.erb4
-rw-r--r--railties/lib/generators/rails/scaffold/scaffold_generator.rb2
-rw-r--r--railties/lib/generators/rails/scaffold_controller/scaffold_controller_generator.rb16
-rw-r--r--railties/lib/generators/test_unit/scaffold/scaffold_generator.rb2
-rw-r--r--railties/lib/generators/test_unit/scaffold/templates/functional_test.rb2
7 files changed, 22 insertions, 10 deletions
diff --git a/railties/lib/generators/base.rb b/railties/lib/generators/base.rb
index 769311b6c1..81f6c7b343 100644
--- a/railties/lib/generators/base.rb
+++ b/railties/lib/generators/base.rb
@@ -7,6 +7,7 @@ module Rails
:fixture => true,
:force_plural => false,
:helper => true,
+ :layout => true,
:migration => true,
:orm => 'active_record',
:resource_controller => 'controller',
diff --git a/railties/lib/generators/erb/scaffold/scaffold_generator.rb b/railties/lib/generators/erb/scaffold/scaffold_generator.rb
index c8723785f4..ad40fe47ae 100644
--- a/railties/lib/generators/erb/scaffold/scaffold_generator.rb
+++ b/railties/lib/generators/erb/scaffold/scaffold_generator.rb
@@ -6,9 +6,10 @@ module Erb
include Rails::Generators::ControllerNamedBase
argument :attributes, :type => :hash, :default => {}, :banner => "field:type field:type"
+
class_option :singleton, :type => :boolean, :desc => "Supply to skip index action"
+ class_option :layout, :type => :boolean
- # TODO Spec me
def copy_index_file
return if options[:singleton]
copy_view :index
@@ -26,8 +27,8 @@ module Erb
copy_view :new
end
- # TODO invoke_if?
def copy_layout_file
+ return unless options[:layout]
template "layout.html.erb",
File.join("app/views/layouts", controller_class_path, "#{controller_file_name}.html.erb")
end
diff --git a/railties/lib/generators/erb/scaffold/templates/show.html.erb b/railties/lib/generators/erb/scaffold/templates/show.html.erb
index adecaf70c6..25567957be 100644
--- a/railties/lib/generators/erb/scaffold/templates/show.html.erb
+++ b/railties/lib/generators/erb/scaffold/templates/show.html.erb
@@ -1,10 +1,10 @@
<% for attribute in attributes -%>
<p>
- <b><%= attribute.column.human_name %>:</b>
+ <b><%= attribute.human_name %>:</b>
<%%=h @<%= singular_name %>.<%= attribute.name %> %>
</p>
<% end -%>
<%%= link_to 'Edit', edit_<%= singular_name %>_path(@<%= singular_name %>) %> |
-<%%= link_to 'Back', <%= plural_name %>_path %> \ No newline at end of file
+<%%= link_to 'Back', <%= plural_name %>_path %>
diff --git a/railties/lib/generators/rails/scaffold/scaffold_generator.rb b/railties/lib/generators/rails/scaffold/scaffold_generator.rb
index be86de7572..0bfbed42a0 100644
--- a/railties/lib/generators/rails/scaffold/scaffold_generator.rb
+++ b/railties/lib/generators/rails/scaffold/scaffold_generator.rb
@@ -3,8 +3,6 @@ require 'generators/rails/resource/resource_generator'
module Rails
module Generators
class ScaffoldGenerator < ResourceGenerator #metagenerator
- class_option :test_framework, :banner => "NAME", :desc => "Test framework to be invoked"
-
remove_hook_for :actions, :resource_controller
hook_for :scaffold_controller, :required => true
diff --git a/railties/lib/generators/rails/scaffold_controller/scaffold_controller_generator.rb b/railties/lib/generators/rails/scaffold_controller/scaffold_controller_generator.rb
index 7fbbf90105..e73c139e96 100644
--- a/railties/lib/generators/rails/scaffold_controller/scaffold_controller_generator.rb
+++ b/railties/lib/generators/rails/scaffold_controller/scaffold_controller_generator.rb
@@ -4,11 +4,14 @@ module Rails
include ControllerNamedBase
check_class_collision :suffix => "Controller"
- class_option :orm, :desc => "ORM to generate the controller for", :banner => "NAME", :type => :string
- class_option :singleton, :type => :boolean, :desc => "Supply to create a singleton controller" # TODO Spec me
+
+ class_option :orm, :banner => "NAME", :type => :string, :required => true,
+ :desc => "ORM to generate the controller for"
+
+ class_option :singleton, :type => :boolean, :desc => "Supply to create a singleton controller"
def create_controller_files
- template 'controller.rb', File.join('app/controllers', class_path, "#{file_name}_controller.rb")
+ template 'controller.rb', File.join('app/controllers', class_path, "#{controller_file_name}_controller.rb")
end
hook_for :template_engine, :test_framework, :as => :scaffold
@@ -22,7 +25,12 @@ module Rails
protected
def orm_class
- @orm_class ||= "#{options[:orm].to_s.classify}::Generators::ActionORM".constantize
+ @orm_class ||= begin
+ action_orm = "#{options[:orm].to_s.classify}::Generators::ActionORM"
+ action_orm.constantize
+ rescue NameError => e
+ raise Error, "Could not load #{action_orm}, skipping controller. Error: #{e.message}."
+ end
end
def orm_instance
diff --git a/railties/lib/generators/test_unit/scaffold/scaffold_generator.rb b/railties/lib/generators/test_unit/scaffold/scaffold_generator.rb
index 7c73a23267..0f6255383e 100644
--- a/railties/lib/generators/test_unit/scaffold/scaffold_generator.rb
+++ b/railties/lib/generators/test_unit/scaffold/scaffold_generator.rb
@@ -4,6 +4,8 @@ module TestUnit
module Generators
class ScaffoldGenerator < Base
include Rails::Generators::ControllerNamedBase
+
+ class_option :singleton, :type => :boolean, :desc => "Supply to create a singleton controller"
check_class_collision :suffix => "ControllerTest"
def create_test_files
diff --git a/railties/lib/generators/test_unit/scaffold/templates/functional_test.rb b/railties/lib/generators/test_unit/scaffold/templates/functional_test.rb
index cd2fc578bf..e4bf4035da 100644
--- a/railties/lib/generators/test_unit/scaffold/templates/functional_test.rb
+++ b/railties/lib/generators/test_unit/scaffold/templates/functional_test.rb
@@ -1,11 +1,13 @@
require 'test_helper'
class <%= controller_class_name %>ControllerTest < ActionController::TestCase
+<% unless options[:singleton] -%>
test "should get index" do
get :index
assert_response :success
assert_not_nil assigns(:<%= table_name %>)
end
+<% end -%>
test "should get new" do
get :new