Remove the --singeleton option from scaffold generator.

It turned out to be that scaffold for singeleton resource will always depend on another model, and it's not possible at the moment to make the application tests pass after generate the singeleton scafold. So, it would be better to remove it for now and probably provide another generator, such as singeleton_scaffold, in which also require the depended model name.

[#4863 state:resolved]

Signed-off-by: José Valim <jose.valim@gmail.com>
This commit is contained in:
Prem Sichanugrist
2010-06-24 22:05:27 +07:00
committed by José Valim
parent 7a7c608a26
commit 67ee6c38b9
9 changed files with 3 additions and 51 deletions

View File

@@ -50,7 +50,6 @@ module Rails
:performance_tool => nil,
:resource_controller => :controller,
:scaffold_controller => :scaffold_controller,
:singleton => false,
:stylesheets => true,
:test_framework => nil,
:template_engine => :erb
@@ -334,4 +333,4 @@ module Rails
paths
end
end
end
end

View File

@@ -8,17 +8,12 @@ module Erb
argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
class_option :singleton, :type => :boolean, :desc => "Supply to skip index view"
def create_root_folder
empty_directory File.join("app/views", controller_file_path)
end
def copy_view_files
views = available_views
views.delete("index") if options[:singleton]
views.each do |view|
available_views.each do |view|
filename = filename_with_extensions(view)
template filename, File.join("app/views", controller_file_path, filename)
end

View File

@@ -14,26 +14,13 @@ module Rails
class_option :actions, :type => :array, :banner => "ACTION ACTION", :default => [],
:desc => "Actions for the resource controller"
class_option :singleton, :type => :boolean, :desc => "Supply to create a singleton controller"
def add_resource_route
return if options[:actions].present?
route_config = class_path.collect{|namespace| "namespace :#{namespace} do " }.join(" ")
route_config << "resource#{:s unless options[:singleton]} :#{pluralize?(file_name)}"
route_config << "resources :#{file_name.pluralize}"
route_config << " end" * class_path.size
route route_config
end
protected
def pluralize?(name)
if options[:singleton]
name
else
name.pluralize
end
end
end
end
end

View File

@@ -10,8 +10,6 @@ module Rails
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, "#{controller_file_name}_controller.rb")
end

View File

@@ -1,5 +1,4 @@
class <%= controller_class_name %>Controller < ApplicationController
<% unless options[:singleton] -%>
# GET <%= route_url %>
# GET <%= route_url %>.xml
def index
@@ -10,7 +9,6 @@ class <%= controller_class_name %>Controller < ApplicationController
format.xml { render :xml => @<%= plural_table_name %> }
end
end
<% end -%>
# GET <%= route_url %>/1
# GET <%= route_url %>/1.xml

View File

@@ -6,7 +6,6 @@ module TestUnit
class ScaffoldGenerator < Base
include Rails::Generators::ResourceHelpers
class_option :singleton, :type => :boolean, :desc => "Supply to create a singleton controller"
check_class_collision :suffix => "ControllerTest"
def create_test_files

View File

@@ -5,13 +5,11 @@ class <%= controller_class_name %>ControllerTest < ActionController::TestCase
@<%= singular_table_name %> = <%= table_name %>(:one)
end
<% 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

View File

@@ -59,14 +59,6 @@ class ResourceGeneratorTest < Rails::Generators::TestCase
end
end
def test_singleton_resource
run_generator ["account", "--singleton"]
assert_file "config/routes.rb" do |route|
assert_match /resource :account$/, route
end
end
def test_plural_names_are_singularized
content = run_generator ["accounts".freeze]
assert_file "app/models/account.rb", /class Account < ActiveRecord::Base/

View File

@@ -78,20 +78,6 @@ class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase
end
end
def test_generates_singleton_controller
run_generator ["User", "name:string", "age:integer", "--singleton"]
assert_file "app/controllers/users_controller.rb" do |content|
assert_no_match /def index/, content
end
assert_file "test/functional/users_controller_test.rb" do |content|
assert_no_match /test "should get index"/, content
end
assert_no_file "app/views/users/index.html.erb"
end
def test_skip_helper_if_required
run_generator ["User", "name:string", "age:integer", "--no-helper"]
assert_no_file "app/helpers/users_helper.rb"