aboutsummaryrefslogtreecommitdiffstats
path: root/railties/generators/controller/controller_generator.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/generators/controller/controller_generator.rb')
-rw-r--r--railties/generators/controller/controller_generator.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/railties/generators/controller/controller_generator.rb b/railties/generators/controller/controller_generator.rb
new file mode 100644
index 0000000000..4b53741565
--- /dev/null
+++ b/railties/generators/controller/controller_generator.rb
@@ -0,0 +1,22 @@
+require 'rails_generator'
+
+class ControllerGenerator < Rails::Generator::Base
+ attr_reader :actions
+
+ def generate
+ @actions = args
+
+ # Controller class, functional test, and helper class.
+ template "controller.rb", "app/controllers/#{file_name}_controller.rb"
+ template "functional_test.rb", "test/functional/#{file_name}_controller_test.rb"
+ template "helper.rb", "app/helpers/#{file_name}_helper.rb"
+
+ # Create the views directory even if there are no actions.
+ FileUtils.mkdir_p "app/views/#{file_name}"
+
+ # Create a view for each action.
+ actions.each do |action|
+ template "view.rhtml", "app/views/#{file_name}/#{action}.rhtml", binding
+ end
+ end
+end