From 056fdc74d52833ac2755713e990bd9f3f9a8c415 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 16 May 2007 01:24:25 +0000 Subject: Scaffold resource is now scaffold git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6746 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- .../generators/components/scaffold_resource/USAGE | 37 --------- .../scaffold_resource_generator.rb | 92 ---------------------- .../scaffold_resource/templates/controller.rb | 85 -------------------- .../scaffold_resource/templates/fixtures.yml | 11 --- .../scaffold_resource/templates/functional_test.rb | 57 -------------- .../scaffold_resource/templates/helper.rb | 2 - .../scaffold_resource/templates/layout.html.erb | 17 ---- .../scaffold_resource/templates/migration.rb | 13 --- .../scaffold_resource/templates/model.rb | 2 - .../scaffold_resource/templates/style.css | 74 ----------------- .../scaffold_resource/templates/unit_test.rb | 10 --- .../scaffold_resource/templates/view_edit.html.erb | 19 ----- .../templates/view_index.html.erb | 24 ------ .../scaffold_resource/templates/view_new.html.erb | 18 ----- .../scaffold_resource/templates/view_show.html.erb | 10 --- 15 files changed, 471 deletions(-) delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/USAGE delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/scaffold_resource_generator.rb delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/templates/controller.rb delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/templates/fixtures.yml delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/templates/functional_test.rb delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/templates/helper.rb delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/templates/layout.html.erb delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/templates/migration.rb delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/templates/model.rb delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/templates/style.css delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/templates/unit_test.rb delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_edit.html.erb delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_index.html.erb delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_new.html.erb delete mode 100644 railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_show.html.erb (limited to 'railties/lib/rails_generator/generators/components/scaffold_resource') diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/USAGE b/railties/lib/rails_generator/generators/components/scaffold_resource/USAGE deleted file mode 100644 index 60e13c770f..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/USAGE +++ /dev/null @@ -1,37 +0,0 @@ -Description: - The scaffold resource generator creates a model, a controller, and a - set of templates that's ready to use as the starting point for your - REST-like, resource-oriented application. This basically means that it - follows a set of conventions to exploit the full set of HTTP verbs - (GET/POST/PUT/DELETE) and is prepared for multi-client access (like one - view for HTML, one for an XML API, one for ATOM, etc). Everything comes - with sample unit and functional tests as well. - - The generator takes the name of the model as its first argument. This - model name is then pluralized to get the controller name. So - "scaffold_resource post" will generate a Post model and a - PostsController and will be intended for URLs like /posts and - /posts/45. - - As additional parameters, the generator will take attribute pairs - described by name and type. These attributes will be used to - prepopulate the migration to create the table for the model and to give - you a set of templates for the view. For example, "scaffold_resource - post title:string created_on:date body:text published:boolean" will - give you a model with those four attributes, forms to create and edit - those models from, and an index that'll list them all. - - You don't have to think up all attributes up front, but it's a good - idea of adding just the baseline of what's needed to start really - working with the resource. - - The generator also adds a declaration to your config/routes.rb file - to hook up the rules that'll point URLs to this new resource. If you - create a resource like "scaffold_resource post", it will add - "map.resources :posts" (notice the plural form) in the routes file, - making your new resource accessible from /posts. - -Examples: - ./script/generate scaffold_resource post # no attributes, view will be anemic - ./script/generate scaffold_resource post title:string created_on:date body:text published:boolean - ./script/generate scaffold_resource purchase order_id:integer created_at:datetime amount:decimal diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/scaffold_resource_generator.rb b/railties/lib/rails_generator/generators/components/scaffold_resource/scaffold_resource_generator.rb deleted file mode 100644 index a10f7f12b3..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/scaffold_resource_generator.rb +++ /dev/null @@ -1,92 +0,0 @@ -class ScaffoldResourceGenerator < Rails::Generator::NamedBase - attr_reader :controller_name, - :controller_class_path, - :controller_file_path, - :controller_class_nesting, - :controller_class_nesting_depth, - :controller_class_name, - :controller_singular_name, - :controller_plural_name - alias_method :controller_file_name, :controller_singular_name - alias_method :controller_table_name, :controller_plural_name - - def initialize(runtime_args, runtime_options = {}) - super - - @controller_name = @name.pluralize - - base_name, @controller_class_path, @controller_file_path, @controller_class_nesting, @controller_class_nesting_depth = extract_modules(@controller_name) - @controller_class_name_without_nesting, @controller_singular_name, @controller_plural_name = inflect_names(base_name) - - if @controller_class_nesting.empty? - @controller_class_name = @controller_class_name_without_nesting - else - @controller_class_name = "#{@controller_class_nesting}::#{@controller_class_name_without_nesting}" - end - end - - def manifest - record do |m| - # Check for class naming collisions. - m.class_collisions(controller_class_path, "#{controller_class_name}Controller", "#{controller_class_name}Helper") - m.class_collisions(class_path, "#{class_name}") - - # Controller, helper, views, and test directories. - m.directory(File.join('app/models', class_path)) - m.directory(File.join('app/controllers', controller_class_path)) - m.directory(File.join('app/helpers', controller_class_path)) - m.directory(File.join('app/views', controller_class_path, controller_file_name)) - m.directory(File.join('test/functional', controller_class_path)) - m.directory(File.join('test/unit', class_path)) - - for action in scaffold_views - m.template( - "view_#{action}.html.erb", - File.join('app/views', controller_class_path, controller_file_name, "#{action}.html.erb") - ) - end - - # Layout and stylesheet. - m.template('layout.html.erb', File.join('app/views/layouts', controller_class_path, "#{controller_file_name}.html.erb")) - m.template('style.css', 'public/stylesheets/scaffold.css') - - m.template('model.rb', File.join('app/models', class_path, "#{file_name}.rb")) - - m.template( - 'controller.rb', File.join('app/controllers', controller_class_path, "#{controller_file_name}_controller.rb") - ) - - m.template('functional_test.rb', File.join('test/functional', controller_class_path, "#{controller_file_name}_controller_test.rb")) - m.template('helper.rb', File.join('app/helpers', controller_class_path, "#{controller_file_name}_helper.rb")) - m.template('unit_test.rb', File.join('test/unit', class_path, "#{file_name}_test.rb")) - m.template('fixtures.yml', File.join('test/fixtures', "#{table_name}.yml")) - - unless options[:skip_migration] - m.migration_template( - 'migration.rb', 'db/migrate', - :assigns => { - :migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}", - :attributes => attributes - }, - :migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}" - ) - end - - m.route_resources controller_file_name - end - end - - protected - # Override with your own usage banner. - def banner - "Usage: #{$0} scaffold_resource ModelName [field:type, field:type]" - end - - def scaffold_views - %w[ index show new edit ] - end - - def model_name - class_name.demodulize - end -end diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/controller.rb b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/controller.rb deleted file mode 100644 index f28f364af0..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/controller.rb +++ /dev/null @@ -1,85 +0,0 @@ -class <%= controller_class_name %>Controller < ApplicationController - # GET /<%= table_name %> - # GET /<%= table_name %>.xml - def index - @<%= table_name %> = <%= class_name %>.find(:all) - - respond_to do |format| - format.html # index.html.erb - format.xml { render :xml => @<%= table_name %> } - end - end - - # GET /<%= table_name %>/1 - # GET /<%= table_name %>/1.xml - def show - @<%= file_name %> = <%= class_name %>.find(params[:id]) - - respond_to do |format| - format.html # show.html.erb - format.xml { render :xml => @<%= file_name %> } - end - end - - # GET /<%= table_name %>/new - # GET /<%= table_name %>/new.xml - def new - @<%= file_name %> = <%= class_name %>.new - - respond_to do |format| - format.html # new.html.erb - format.xml { render :xml => @<%= file_name %> } - end - end - - # GET /<%= table_name %>/1;edit - def edit - @<%= file_name %> = <%= class_name %>.find(params[:id]) - end - - # POST /<%= table_name %> - # POST /<%= table_name %>.xml - def create - @<%= file_name %> = <%= class_name %>.new(params[:<%= file_name %>]) - - respond_to do |format| - if @<%= file_name %>.save - flash[:notice] = '<%= class_name %> was successfully created.' - format.html { redirect_to <%= file_name %>_url(@<%= file_name %>) } - format.xml { render :xml => @<%= file_name %>, :status => :created, :location => <%= file_name %>_url(@<%= file_name %>) } - else - format.html { render :action => "new" } - format.xml { render :xml => @<%= file_name %>.errors } - end - end - end - - # PUT /<%= table_name %>/1 - # PUT /<%= table_name %>/1.xml - def update - @<%= file_name %> = <%= class_name %>.find(params[:id]) - - respond_to do |format| - if @<%= file_name %>.update_attributes(params[:<%= file_name %>]) - flash[:notice] = '<%= class_name %> was successfully updated.' - format.html { redirect_to <%= file_name %>_url(@<%= file_name %>) } - format.xml { head :ok } - else - format.html { render :action => "edit" } - format.xml { render :xml => @<%= file_name %>.errors } - end - end - end - - # DELETE /<%= table_name %>/1 - # DELETE /<%= table_name %>/1.xml - def destroy - @<%= file_name %> = <%= class_name %>.find(params[:id]) - @<%= file_name %>.destroy - - respond_to do |format| - format.html { redirect_to <%= table_name %>_url } - format.xml { head :ok } - end - end -end diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/fixtures.yml b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/fixtures.yml deleted file mode 100644 index 9f5ae29a81..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/fixtures.yml +++ /dev/null @@ -1,11 +0,0 @@ -# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html -one: - id: 1 -<% for attribute in attributes -%> - <%= attribute.name %>: <%= attribute.default %> -<% end -%> -two: - id: 2 -<% for attribute in attributes -%> - <%= attribute.name %>: <%= attribute.default %> -<% end -%> \ No newline at end of file diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/functional_test.rb b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/functional_test.rb deleted file mode 100644 index 0c68fd3122..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/functional_test.rb +++ /dev/null @@ -1,57 +0,0 @@ -require File.dirname(__FILE__) + '<%= '/..' * controller_class_nesting_depth %>/../test_helper' -require '<%= controller_file_path %>_controller' - -# Re-raise errors caught by the controller. -class <%= controller_class_name %>Controller; def rescue_action(e) raise e end; end - -class <%= controller_class_name %>ControllerTest < Test::Unit::TestCase - fixtures :<%= table_name %> - - def setup - @controller = <%= controller_class_name %>Controller.new - @request = ActionController::TestRequest.new - @response = ActionController::TestResponse.new - end - - def test_should_get_index - get :index - assert_response :success - assert assigns(:<%= table_name %>) - end - - def test_should_get_new - get :new - assert_response :success - end - - def test_should_create_<%= file_name %> - old_count = <%= class_name %>.count - post :create, :<%= file_name %> => { } - assert_equal old_count+1, <%= class_name %>.count - - assert_redirected_to <%= file_name %>_path(assigns(:<%= file_name %>)) - end - - def test_should_show_<%= file_name %> - get :show, :id => 1 - assert_response :success - end - - def test_should_get_edit - get :edit, :id => 1 - assert_response :success - end - - def test_should_update_<%= file_name %> - put :update, :id => 1, :<%= file_name %> => { } - assert_redirected_to <%= file_name %>_path(assigns(:<%= file_name %>)) - end - - def test_should_destroy_<%= file_name %> - old_count = <%= class_name %>.count - delete :destroy, :id => 1 - assert_equal old_count-1, <%= class_name %>.count - - assert_redirected_to <%= table_name %>_path - end -end diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/helper.rb b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/helper.rb deleted file mode 100644 index 9bd821b1b2..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module <%= controller_class_name %>Helper -end diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/layout.html.erb b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/layout.html.erb deleted file mode 100644 index 5c1f304232..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/layout.html.erb +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - <%= controller_class_name %>: <%%= controller.action_name %> - <%%= stylesheet_link_tag 'scaffold' %> - - - -

<%%= flash[:notice] %>

- -<%%= yield %> - - - diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/migration.rb b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/migration.rb deleted file mode 100644 index cb1ddd399e..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/migration.rb +++ /dev/null @@ -1,13 +0,0 @@ -class <%= migration_name %> < ActiveRecord::Migration - def self.up - create_table :<%= table_name %> do |t| -<% for attribute in attributes -%> - t.<%= attribute.type %> :<%= attribute.name %> -<% end -%> - end - end - - def self.down - drop_table :<%= table_name %> - end -end diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/model.rb b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/model.rb deleted file mode 100644 index 8d4c89e912..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/model.rb +++ /dev/null @@ -1,2 +0,0 @@ -class <%= class_name %> < ActiveRecord::Base -end diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/style.css b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/style.css deleted file mode 100644 index 8f239a3597..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/style.css +++ /dev/null @@ -1,74 +0,0 @@ -body { background-color: #fff; color: #333; } - -body, p, ol, ul, td { - font-family: verdana, arial, helvetica, sans-serif; - font-size: 13px; - line-height: 18px; -} - -pre { - background-color: #eee; - padding: 10px; - font-size: 11px; -} - -a { color: #000; } -a:visited { color: #666; } -a:hover { color: #fff; background-color:#000; } - -.fieldWithErrors { - padding: 2px; - background-color: red; - display: table; -} - -#errorExplanation { - width: 400px; - border: 2px solid red; - padding: 7px; - padding-bottom: 12px; - margin-bottom: 20px; - background-color: #f0f0f0; -} - -#errorExplanation h2 { - text-align: left; - font-weight: bold; - padding: 5px 5px 5px 15px; - font-size: 12px; - margin: -7px; - background-color: #c00; - color: #fff; -} - -#errorExplanation p { - color: #333; - margin-bottom: 0; - padding: 5px; -} - -#errorExplanation ul li { - font-size: 12px; - list-style: square; -} - -div.uploadStatus { - margin: 5px; -} - -div.progressBar { - margin: 5px; -} - -div.progressBar div.border { - background-color: #fff; - border: 1px solid grey; - width: 100%; -} - -div.progressBar div.background { - background-color: #333; - height: 18px; - width: 0%; -} - diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/unit_test.rb b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/unit_test.rb deleted file mode 100644 index b464de47a2..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/unit_test.rb +++ /dev/null @@ -1,10 +0,0 @@ -require File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../test_helper' - -class <%= class_name %>Test < Test::Unit::TestCase - fixtures :<%= table_name %> - - # Replace this with your real tests. - def test_truth - assert true - end -end diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_edit.html.erb b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_edit.html.erb deleted file mode 100644 index bf165e02be..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_edit.html.erb +++ /dev/null @@ -1,19 +0,0 @@ -

Editing <%= singular_name %>

- -<%%= error_messages_for :<%= singular_name %> %> - -<%% form_for(:<%= singular_name %>, :url => <%= singular_name %>_path(@<%= singular_name %>), :html => { :method => :put }) do |f| %> -<% for attribute in attributes -%> -

- <%= attribute.column.human_name %>
- <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %> -

- -<% end -%> -

- <%%= submit_tag "Update" %> -

-<%% end %> - -<%%= link_to 'Show', <%= singular_name %>_path(@<%= singular_name %>) %> | -<%%= link_to 'Back', <%= plural_name %>_path %> \ No newline at end of file diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_index.html.erb b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_index.html.erb deleted file mode 100644 index 9ad899465c..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_index.html.erb +++ /dev/null @@ -1,24 +0,0 @@ -

Listing <%= plural_name %>

- - - -<% for attribute in attributes -%> - -<% end -%> - - -<%% for <%= singular_name %> in @<%= plural_name %> %> - -<% for attribute in attributes -%> - -<% end -%> - - - - -<%% end %> -
<%= attribute.column.human_name %>
<%%=h <%= singular_name %>.<%= attribute.name %> %><%%= link_to 'Show', <%= singular_name %>_path(<%= singular_name %>) %><%%= link_to 'Edit', edit_<%= singular_name %>_path(<%= singular_name %>) %><%%= link_to 'Destroy', <%= singular_name %>_path(<%= singular_name %>), :confirm => 'Are you sure?', :method => :delete %>
- -
- -<%%= link_to 'New <%= singular_name %>', new_<%= singular_name %>_path %> \ No newline at end of file diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_new.html.erb b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_new.html.erb deleted file mode 100644 index b3b6f91453..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_new.html.erb +++ /dev/null @@ -1,18 +0,0 @@ -

New <%= singular_name %>

- -<%%= error_messages_for :<%= singular_name %> %> - -<%% form_for(:<%= singular_name %>, :url => <%= plural_name %>_path) do |f| %> -<% for attribute in attributes -%> -

- <%= attribute.column.human_name %>
- <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %> -

- -<% end -%> -

- <%%= submit_tag "Create" %> -

-<%% end %> - -<%%= link_to 'Back', <%= plural_name %>_path %> \ No newline at end of file diff --git a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_show.html.erb b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_show.html.erb deleted file mode 100644 index adecaf70c6..0000000000 --- a/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_show.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -<% for attribute in attributes -%> -

- <%= attribute.column.human_name %>: - <%%=h @<%= singular_name %>.<%= attribute.name %> %> -

- -<% end -%> - -<%%= link_to 'Edit', edit_<%= singular_name %>_path(@<%= singular_name %>) %> | -<%%= link_to 'Back', <%= plural_name %>_path %> \ No newline at end of file -- cgit v1.2.3