aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails_generator/generators/components/scaffold_resource/templates
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2006-09-17 22:20:18 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2006-09-17 22:20:18 +0000
commit8f2221da85ca1d7a1fa08d6f81e7a6fbb711051d (patch)
tree5c9e3cd36564a400d042c40d29ba47397d4be3eb /railties/lib/rails_generator/generators/components/scaffold_resource/templates
parentcaa8a005202b267b75baf521d5f613f3a2bce600 (diff)
downloadrails-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')
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold_resource/templates/controller.rb82
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold_resource/templates/fixtures.yml5
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold_resource/templates/functional_test.rb57
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold_resource/templates/helper.rb2
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold_resource/templates/migration.rb13
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold_resource/templates/model.rb2
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold_resource/templates/unit_test.rb10
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_edit.rhtml6
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_index.rhtml24
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_new.rhtml5
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold_resource/templates/view_show.rhtml8
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