diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2006-09-17 22:20:18 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2006-09-17 22:20:18 +0000 |
commit | 8f2221da85ca1d7a1fa08d6f81e7a6fbb711051d (patch) | |
tree | 5c9e3cd36564a400d042c40d29ba47397d4be3eb /railties/lib/rails_generator/generators/components/scaffold_resource/templates | |
parent | caa8a005202b267b75baf521d5f613f3a2bce600 (diff) | |
download | rails-8f2221da85ca1d7a1fa08d6f81e7a6fbb711051d.tar.gz rails-8f2221da85ca1d7a1fa08d6f81e7a6fbb711051d.tar.bz2 rails-8f2221da85ca1d7a1fa08d6f81e7a6fbb711051d.zip |
Work-in-progress scaffolder for resources [DHH/Rick Olson]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5132 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'railties/lib/rails_generator/generators/components/scaffold_resource/templates')
11 files changed, 214 insertions, 0 deletions
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 new file mode 100644 index 0000000000..110a4688fa --- /dev/null +++ b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/controller.rb @@ -0,0 +1,82 @@ +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.rhtml + format.xml { render :xml => @<%= table_name %>.to_xml } + 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.rhtml + format.xml { render :xml => @<%= file_name %>.to_xml } + end + end + + # GET /<%= table_name %>/new + def new + @<%= file_name %> = <%= class_name %>.new + 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 do + headers["Location"] = <%= file_name %>_url(@<%= file_name %>) + render :nothing => true, :status => "201 Created" + end + else + format.html { render :action => "new" } + format.xml { render :xml => @<%= file_name %>.errors.to_xml } + 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 %>]) + format.html { redirect_to <%= file_name %>_url(@<%= file_name %>) } + format.xml { render :nothing => true } + else + format.html { render :action => "edit" } + format.xml { render :xml => @<%= file_name %>.errors.to_xml } + 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 { render :nothing => true } + end + end +end
\ No newline at end of file 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 new file mode 100644 index 0000000000..8794d28ae4 --- /dev/null +++ b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/fixtures.yml @@ -0,0 +1,5 @@ +# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html +first: + id: 1 +another: + id: 2 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 new file mode 100644 index 0000000000..0c68fd3122 --- /dev/null +++ b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/functional_test.rb @@ -0,0 +1,57 @@ +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 new file mode 100644 index 0000000000..9bd821b1b2 --- /dev/null +++ b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/helper.rb @@ -0,0 +1,2 @@ +module <%= controller_class_name %>Helper +end 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 new file mode 100644 index 0000000000..e0e4886598 --- /dev/null +++ b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/migration.rb @@ -0,0 +1,13 @@ +class <%= migration_name %> < ActiveRecord::Migration + def self.up + create_table :<%= table_name %> do |t| + t.column :name, :string + t.column :description, :text + t.column :created_at, :datetime + 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 new file mode 100644 index 0000000000..8d4c89e912 --- /dev/null +++ b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/model.rb @@ -0,0 +1,2 @@ +class <%= class_name %> < ActiveRecord::Base +end 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 new file mode 100644 index 0000000000..b464de47a2 --- /dev/null +++ b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/unit_test.rb @@ -0,0 +1,10 @@ +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.rhtml b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_edit.rhtml new file mode 100644 index 0000000000..7781ad8ead --- /dev/null +++ b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_edit.rhtml @@ -0,0 +1,6 @@ +<h1>Editing <%= singular_name %></h1> + +<%%= form(@<%= singular_name %>) %> + +<%%= 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.rhtml b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_index.rhtml new file mode 100644 index 0000000000..c2bbdce9e8 --- /dev/null +++ b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_index.rhtml @@ -0,0 +1,24 @@ +<h1>Listing <%= plural_name %></h1> + +<table> + <tr> + <%% for column in <%= model_name %>.content_columns %> + <th><%%= column.human_name %></th> + <%% end %> + </tr> + +<%% for <%= singular_name %> in @<%= plural_name %> %> + <tr> + <%% for column in <%= model_name %>.content_columns %> + <td><%%=h <%= singular_name %>.send(column.name) %></td> + <%% end %> + <td><%%= link_to 'Show', <%= singular_name %>_path(<%= singular_name %>) %></td> + <td><%%= link_to 'Edit', edit_<%= singular_name %>_path(<%= singular_name %>) %></td> + <td><%%= link_to 'Destroy', <%= singular_name %>_path(<%= singular_name %>), :confirm => 'Are you sure?', :method => :delete %></td> + </tr> +<%% end %> +</table> + +<br /> + +<%%= 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.rhtml b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_new.rhtml new file mode 100644 index 0000000000..35232a5486 --- /dev/null +++ b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_new.rhtml @@ -0,0 +1,5 @@ +<h1>New <%= singular_name %></h1> + +<%%= form(@<%= 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_show.rhtml b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_show.rhtml new file mode 100644 index 0000000000..e0fea3a9b5 --- /dev/null +++ b/railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_show.rhtml @@ -0,0 +1,8 @@ +<%% for column in <%= model_name %>.content_columns %> +<p> + <b><%%= column.human_name %>:</b> <%%=h @<%= singular_name %>.send(column.name) %> +</p> +<%% end %> + +<%%= link_to 'Edit', edit_<%= singular_name %>_path(@<%= singular_name %>) %> | +<%%= link_to 'Back', <%= plural_name %>_path %>
\ No newline at end of file |