diff options
author | José Valim <jose.valim@gmail.com> | 2010-03-23 13:40:19 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-03-23 13:40:41 +0100 |
commit | b61f6f59805eec4f5bb873a85910c9fe00e839a9 (patch) | |
tree | 485dc3cee827ab4d79756e90d639ccc4dad464e1 /railties/lib/rails/generators/erb/scaffold/scaffold_generator.rb | |
parent | b144b56d8288246f0de7437d10361a0f1ed2bd83 (diff) | |
download | rails-b61f6f59805eec4f5bb873a85910c9fe00e839a9.tar.gz rails-b61f6f59805eec4f5bb873a85910c9fe00e839a9.tar.bz2 rails-b61f6f59805eec4f5bb873a85910c9fe00e839a9.zip |
Load generators from both lib/rails/generators and lib/generators. Using the former since it's less obstrusive.
Diffstat (limited to 'railties/lib/rails/generators/erb/scaffold/scaffold_generator.rb')
-rw-r--r-- | railties/lib/rails/generators/erb/scaffold/scaffold_generator.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/railties/lib/rails/generators/erb/scaffold/scaffold_generator.rb b/railties/lib/rails/generators/erb/scaffold/scaffold_generator.rb new file mode 100644 index 0000000000..f607e580a5 --- /dev/null +++ b/railties/lib/rails/generators/erb/scaffold/scaffold_generator.rb @@ -0,0 +1,41 @@ +require 'rails/generators/erb' +require 'rails/generators/resource_helpers' + +module Erb + module Generators + class ScaffoldGenerator < Base + include Rails::Generators::ResourceHelpers + + argument :attributes, :type => :array, :default => [], :banner => "field:type field:type" + + class_option :layout, :type => :boolean + 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| + filename = filename_with_extensions(view) + template filename, File.join("app/views", controller_file_path, filename) + end + end + + def copy_layout_file + return unless options[:layout] + template filename_with_extensions(:layout), + File.join("app/views/layouts", controller_class_path, filename_with_extensions(controller_file_name)) + end + + protected + + def available_views + %w(index edit show new _form) + end + end + end +end |