mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Added scaffold_controller.
This commit is contained in:
@@ -8,6 +8,7 @@ module Rails
|
||||
:migration => true,
|
||||
:orm => 'active_record',
|
||||
:resource_controller => 'controller',
|
||||
:scaffold_controller => 'scaffold_controller',
|
||||
:test_framework => 'test_unit',
|
||||
:template_engine => 'erb',
|
||||
:timestamps => true
|
||||
@@ -17,6 +18,7 @@ module Rails
|
||||
:fixture_replacement => '-r',
|
||||
:orm => '-o',
|
||||
:resource_controller => '-c',
|
||||
:scaffold_controller => '-c',
|
||||
:test_framework => '-t',
|
||||
:template_engine => '-e'
|
||||
}
|
||||
@@ -109,10 +111,11 @@ module Rails
|
||||
def self.hook_for(*names, &block)
|
||||
default_class_options(*names)
|
||||
options = names.extract_options!
|
||||
as = options.fetch(:as, generator_name)
|
||||
verbose = options.fetch(:verbose, :blue)
|
||||
|
||||
names.each do |name|
|
||||
invocations << [ name, base_name, generator_name ]
|
||||
invocations << [ name, base_name, as ]
|
||||
invocation_blocks[name] = block if block_given?
|
||||
|
||||
class_eval <<-METHOD, __FILE__, __LINE__
|
||||
@@ -120,7 +123,7 @@ module Rails
|
||||
return unless options[#{name.inspect}]
|
||||
|
||||
klass = Rails::Generators.find_by_namespace(options[#{name.inspect}],
|
||||
#{base_name.inspect}, #{generator_name.inspect})
|
||||
#{base_name.inspect}, #{as.inspect})
|
||||
|
||||
if klass
|
||||
say_status :invoke, options[#{name.inspect}], #{verbose.inspect}
|
||||
@@ -164,10 +167,11 @@ module Rails
|
||||
def self.invoke_if(*names, &block)
|
||||
conditional_class_options(*names)
|
||||
options = names.extract_options!
|
||||
as = options.fetch(:as, generator_name)
|
||||
verbose = options.fetch(:verbose, :blue)
|
||||
|
||||
names.each do |name|
|
||||
invocations << [ name, base_name, generator_name ]
|
||||
invocations << [ name, base_name, as ]
|
||||
invocation_blocks[name] = block if block_given?
|
||||
|
||||
class_eval <<-METHOD, __FILE__, __LINE__
|
||||
@@ -175,7 +179,7 @@ module Rails
|
||||
return unless options[#{name.inspect}]
|
||||
|
||||
klass = Rails::Generators.find_by_namespace(#{name.inspect},
|
||||
#{base_name.inspect}, #{generator_name.inspect})
|
||||
#{base_name.inspect}, #{as.inspect})
|
||||
|
||||
if klass
|
||||
say_status :invoke, #{name.inspect}, #{verbose.inspect}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
module Rails
|
||||
module Generators
|
||||
class MigrationGenerator < NamedBase
|
||||
class MigrationGenerator < NamedBase #metagenerator
|
||||
argument :attributes, :type => :hash, :default => {}, :banner => "field:type field:type"
|
||||
hook_for :orm
|
||||
end
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
module Rails
|
||||
module Generators
|
||||
class ModelGenerator < NamedBase
|
||||
class ModelGenerator < NamedBase #metagenerator
|
||||
argument :attributes, :type => :hash, :default => {}, :banner => "field:type field:type"
|
||||
hook_for :orm
|
||||
end
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
module Rails
|
||||
module Generators
|
||||
class ObserverGenerator < NamedBase
|
||||
class ObserverGenerator < NamedBase #metagenerator
|
||||
hook_for :orm
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,8 +2,9 @@ require 'generators/rails/resource/resource_generator'
|
||||
|
||||
module Rails
|
||||
module Generators
|
||||
class ScaffoldGenerator < ResourceGenerator
|
||||
class ScaffoldGenerator < ResourceGenerator #metagenerator
|
||||
remove_hook_for :actions, :resource_controller
|
||||
hook_for :scaffold_controller
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
18
railties/lib/generators/rails/scaffold_controller/USAGE
Normal file
18
railties/lib/generators/rails/scaffold_controller/USAGE
Normal file
@@ -0,0 +1,18 @@
|
||||
Description:
|
||||
Stubs out a scaffolded controller and its views. Pass the controller name,
|
||||
either CamelCased or under_scored, and a list of views as arguments.
|
||||
|
||||
To create a controller within a module, specify the controller name as a
|
||||
path like 'parent_module/controller_name'.
|
||||
|
||||
This generates a controller class in app/controllers and invokes helper,
|
||||
template engine and test framework generators.
|
||||
|
||||
Example:
|
||||
`./script/generate scaffold_controller CreditCard open debit credit close`
|
||||
|
||||
Credit card controller with URLs like /credit_card/debit.
|
||||
Controller: app/controllers/credit_card_controller.rb
|
||||
Functional Test: test/functional/credit_card_controller_test.rb
|
||||
Views: app/views/credit_card/debit.html.erb [...]
|
||||
Helper: app/helpers/credit_card_helper.rb
|
||||
@@ -0,0 +1,14 @@
|
||||
module Rails
|
||||
module Generators
|
||||
class ScaffoldControllerGenerator < NamedBase
|
||||
check_class_collision :suffix => "Controller"
|
||||
|
||||
def create_controller_files
|
||||
template 'controller.rb', File.join('app/controllers', class_path, "#{file_name}_controller.rb")
|
||||
end
|
||||
|
||||
hook_for :template_engine, :test_framework, :as => :scaffold
|
||||
invoke_if :helper
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,2 @@
|
||||
class <%= class_name %>Controller < ApplicationController
|
||||
end
|
||||
@@ -1,6 +1,6 @@
|
||||
module Rails
|
||||
module Generators
|
||||
class SessionMigrationGenerator < NamedBase
|
||||
class SessionMigrationGenerator < NamedBase #metagenerator
|
||||
argument :name, :type => :string, :default => "add_session_table"
|
||||
hook_for :orm
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user