提交 ff4c6004 编写于 作者: J José Valim

Added singleton support to resource controller.

上级 9413dba4
......@@ -8,6 +8,9 @@ class ResourceGenerator < ModelGenerator
class_option :actions, :type => :array, :default => [], :banner => "ACTION ACTION",
:desc => "Actions for the resource controller", :aliases => "-a"
class_option :singleton, :type => :boolean, :default => false, :aliases => "-i",
:desc => "Supply to create a singleton controller"
def invoke_for_resource_controller
return unless options[:resource_controller]
......@@ -15,7 +18,7 @@ def invoke_for_resource_controller
if klass
args = []
args << class_name.pluralize
args << pluralize?(class_name)
args << options[:actions]
say_status :invoke, options[:resource_controller], :blue
......@@ -25,11 +28,20 @@ def invoke_for_resource_controller
end
end
# TODO Add singleton support
def add_resource_route
route "map.resources :#{file_name.pluralize}"
route "map.resource#{"s" unless options[:singleton]} :#{pluralize?(file_name)}"
end
protected
def pluralize?(name)
if options[:singleton]
name
else
name.pluralize
end
end
end
end
end
......@@ -78,6 +78,20 @@ def test_resource_routes_are_added
end
end
def test_singleton_resource
run_generator ["account", "--singleton"]
assert_file "app/controllers/account_controller.rb", /class AccountController < ApplicationController/
assert_file "test/functional/account_controller_test.rb", /class AccountControllerTest < ActionController::TestCase/
assert_file "app/helpers/account_helper.rb", /module AccountHelper/
assert_file "test/unit/helpers/account_helper_test.rb", /class AccountHelperTest < ActionView::TestCase/
assert_file "config/routes.rb" do |route|
assert_match /map\.resource :account$/, route
end
end
protected
def run_generator(args=["account"])
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册