diff options
author | José Valim <jose.valim@gmail.com> | 2010-01-18 13:44:32 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-01-18 16:21:11 +0100 |
commit | 9fffdc5cdb80b1824473a6d7ae1fedf9e74aa748 (patch) | |
tree | 88f429511bf65f1104efeab10d6310b68ab24837 /railties/lib/generators/erb/scaffold/scaffold_generator.rb | |
parent | e75ea474346e74e36d92febd47985c3571b1472b (diff) | |
download | rails-9fffdc5cdb80b1824473a6d7ae1fedf9e74aa748.tar.gz rails-9fffdc5cdb80b1824473a6d7ae1fedf9e74aa748.tar.bz2 rails-9fffdc5cdb80b1824473a6d7ae1fedf9e74aa748.zip |
Generators load path now will be Ruby load path. If you want to use rspec:install generator, you need generators/rspec/install_generator in your load path.
Diffstat (limited to 'railties/lib/generators/erb/scaffold/scaffold_generator.rb')
-rw-r--r-- | railties/lib/generators/erb/scaffold/scaffold_generator.rb | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/railties/lib/generators/erb/scaffold/scaffold_generator.rb b/railties/lib/generators/erb/scaffold/scaffold_generator.rb new file mode 100644 index 0000000000..846540476f --- /dev/null +++ b/railties/lib/generators/erb/scaffold/scaffold_generator.rb @@ -0,0 +1,53 @@ +require '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_index_file + return if options[:singleton] + copy_view :index + end + + def copy_edit_file + copy_view :edit + end + + def copy_show_file + copy_view :show + end + + def copy_new_file + copy_view :new + end + + def copy_form_file + copy_view :_form + end + + def copy_layout_file + return unless options[:layout] + template "layout.html.erb", + File.join("app/views/layouts", controller_class_path, "#{controller_file_name}.html.erb") + end + + protected + + def copy_view(view) + template "#{view}.html.erb", File.join("app/views", controller_file_path, "#{view}.html.erb") + end + + end + end +end |