aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails_generator/generators/components/scaffold/templates
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-02-07 13:14:05 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-02-07 13:14:05 +0000
commitdaee6fd92ac16878f6806c3382a9e74592aa9656 (patch)
treed477c6502960cb141403f8b4640dd483b487e5df /railties/lib/rails_generator/generators/components/scaffold/templates
parent838c5a3d82367977d13ced01f9e28c22ccff32ef (diff)
downloadrails-daee6fd92ac16878f6806c3382a9e74592aa9656.tar.gz
rails-daee6fd92ac16878f6806c3382a9e74592aa9656.tar.bz2
rails-daee6fd92ac16878f6806c3382a9e74592aa9656.zip
Added new generator framework that informs about its doings on generation and enables updating and destruction of generated artifacts. See the new script/destroy and script/update for more details #487 [bitsweat]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@518 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'railties/lib/rails_generator/generators/components/scaffold/templates')
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb55
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold/templates/form.rhtml5
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb80
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold/templates/layout.rhtml11
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold/templates/style.css53
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.rhtml7
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold/templates/view_list.rhtml24
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold/templates/view_new.rhtml6
-rw-r--r--railties/lib/rails_generator/generators/components/scaffold/templates/view_show.rhtml8
9 files changed, 249 insertions, 0 deletions
diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb b/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb
new file mode 100644
index 0000000000..c409284cb1
--- /dev/null
+++ b/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb
@@ -0,0 +1,55 @@
+class <%= controller_class_name %>Controller < ApplicationController
+<% unless suffix -%>
+
+ def index
+ list
+ render_action 'list'
+ end
+<% end -%>
+
+<% for action in unscaffolded_actions -%>
+ def <%= action %><%= suffix %>
+ end
+
+<% end -%>
+ def list<%= suffix %>
+ @<%= plural_name %> = <%= class_name %>.find_all
+ end
+
+ def show<%= suffix %>
+ @<%= singular_name %> = <%= class_name %>.find(@params['id'])
+ end
+
+ def new<%= suffix %>
+ @<%= singular_name %> = <%= class_name %>.new
+ end
+
+ def create<%= suffix %>
+ @<%= singular_name %> = <%= class_name %>.new(@params['<%= singular_name %>'])
+ if @<%= singular_name %>.save
+ flash['notice'] = '<%= class_name %> was successfully created.'
+ redirect_to :action => 'list<%= suffix %>'
+ else
+ render_action 'new<%= suffix %>'
+ end
+ end
+
+ def edit<%= suffix %>
+ @<%= singular_name %> = <%= class_name %>.find(@params['id'])
+ end
+
+ def update
+ @<%= singular_name %> = <%= class_name %>.find(@params['<%= singular_name %>']['id'])
+ if @<%= singular_name %>.update_attributes(@params['<%= singular_name %>'])
+ flash['notice'] = '<%= class_name %> was successfully updated.'
+ redirect_to :action => 'show<%= suffix %>', :id => @<%= singular_name %>.id
+ else
+ render_action 'edit<%= suffix %>'
+ end
+ end
+
+ def destroy<%= suffix %>
+ <%= class_name %>.find(@params['id']).destroy
+ redirect_to :action => 'list<%= suffix %>'
+ end
+end
diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/form.rhtml b/railties/lib/rails_generator/generators/components/scaffold/templates/form.rhtml
new file mode 100644
index 0000000000..d314c5f6b5
--- /dev/null
+++ b/railties/lib/rails_generator/generators/components/scaffold/templates/form.rhtml
@@ -0,0 +1,5 @@
+<%%= start_form_tag :action => '<%= @form_action %><%= @suffix %>' %>
+<%%= hidden_field '<%= @singular_name %>', 'id' %>
+<%= all_input_tags(@model_instance, @singular_name, {}) %>
+<input type="submit" value="<%= @form_action.to_s.capitalize %>" />
+<%%= end_form_tag %>
diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb b/railties/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb
new file mode 100644
index 0000000000..ea9c8e4e94
--- /dev/null
+++ b/railties/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb
@@ -0,0 +1,80 @@
+require File.dirname(__FILE__) + '/../test_helper'
+require '<%= controller_file_name %>_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
+ $base_id = 1000001
+ @controller = <%= controller_class_name %>Controller.new
+ @request, @response = ActionController::TestRequest.new, ActionController::TestResponse.new
+ end
+
+<% for action in unscaffolded_actions -%>
+ def test_<%= action %>
+ process :<%= action %>
+ assert_rendered_file '<%= action %>'
+ end
+
+<% end -%>
+<% unless suffix -%>
+ def test_index
+ process :index
+ assert_rendered_file 'list'
+ end
+
+<% end -%>
+ def test_list<%= suffix %>
+ process :list<%= suffix %>
+ assert_rendered_file 'list<%= suffix %>'
+ assert_template_has '<%= plural_name %>'
+ end
+
+ def test_show<%= suffix %>
+ process :show<%= suffix %>, 'id' => $base_id
+ assert_rendered_file 'show'
+ assert_template_has '<%= singular_name %>'
+ assert_valid_record '<%= singular_name %>'
+ end
+
+ def test_new<%= suffix %>
+ process :new<%= suffix %>
+ assert_rendered_file 'new<%= suffix %>'
+ assert_template_has '<%= singular_name %>'
+ end
+
+ def test_create
+ num_<%= plural_name %> = <%= class_name %>.find_all.size
+
+ process :create<%= suffix %>, '<%= singular_name %>' => { }
+ assert_redirected_to :action => 'list<%= suffix %>'
+
+ assert_equal num_<%= plural_name %> + 1, <%= class_name %>.find_all.size
+ end
+
+ def test_edit<%= suffix %>
+ process :edit<%= suffix %>, 'id' => $base_id
+ assert_rendered_file 'edit<%= suffix %>'
+ assert_template_has '<%= singular_name %>'
+ assert_valid_record '<%= singular_name %>'
+ end
+
+ def test_update<%= suffix %>
+ process :update<%= suffix %>, '<%= singular_name %>' => { 'id' => $base_id }
+ assert_redirected_to :action => 'show<%= suffix %>', :id => $base_id
+ end
+
+ def test_destroy<%= suffix %>
+ assert_not_nil <%= class_name %>.find($base_id)
+
+ process :destroy, 'id' => $base_id
+ assert_redirected_to :action => 'list<%= suffix %>'
+
+ assert_raise(ActiveRecord::RecordNotFound) {
+ <%= singular_name %> = <%= class_name %>.find($base_id)
+ }
+ end
+end
diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/layout.rhtml b/railties/lib/rails_generator/generators/components/scaffold/templates/layout.rhtml
new file mode 100644
index 0000000000..c4815bd0a3
--- /dev/null
+++ b/railties/lib/rails_generator/generators/components/scaffold/templates/layout.rhtml
@@ -0,0 +1,11 @@
+<html>
+<head>
+ <title><%= controller_class_name %>: <%%= controller.action_name %></title>
+ <link href="/stylesheets/scaffold.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<%%= @content_for_layout %>
+
+</body>
+</html>
diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/style.css b/railties/lib/rails_generator/generators/components/scaffold/templates/style.css
new file mode 100644
index 0000000000..95a3c4668c
--- /dev/null
+++ b/railties/lib/rails_generator/generators/components/scaffold/templates/style.css
@@ -0,0 +1,53 @@
+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;
+}
diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.rhtml b/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.rhtml
new file mode 100644
index 0000000000..4ad70f537a
--- /dev/null
+++ b/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.rhtml
@@ -0,0 +1,7 @@
+<h1>Editing <%= singular_name %></h1>
+
+<%%= error_messages_for '<%= singular_name %>' %>
+<%= template_for_inclusion %>
+
+<%%= link_to 'Show', :action => 'show<%= suffix %>', :id => @<%= singular_name %>.id %> |
+<%%= link_to 'Back', :action => 'list<%= suffix %>' %>
diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/view_list.rhtml b/railties/lib/rails_generator/generators/components/scaffold/templates/view_list.rhtml
new file mode 100644
index 0000000000..068fd67472
--- /dev/null
+++ b/railties/lib/rails_generator/generators/components/scaffold/templates/view_list.rhtml
@@ -0,0 +1,24 @@
+<h1>Listing <%= plural_name %></h1>
+
+<table>
+ <tr>
+<%% for column in <%= class_name %>.content_columns %>
+ <th><%%= column.human_name %></th>
+<%% end %>
+ </tr>
+
+<%% for <%= singular_name %> in @<%= plural_name %> %>
+ <tr>
+ <%% for column in <%= class_name %>.content_columns %>
+ <td><%%=h <%= singular_name %>[column.name] %></td>
+ <%% end %>
+ <td><%%= link_to 'Show', :action => 'show<%= suffix %>', :id => <%= singular_name %>.id %></td>
+ <td><%%= link_to 'Edit', :action => 'edit<%= suffix %>', :id => <%= singular_name %>.id %></td>
+ <td><%%= link_to 'Destroy', :action => 'destroy<%= suffix %>', :id => <%= singular_name %>.id %></td>
+ </tr>
+<%% end %>
+</table>
+
+<br />
+
+<%%= link_to 'New <%= singular_name %>', :action => 'new<%= suffix %>' %>
diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.rhtml b/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.rhtml
new file mode 100644
index 0000000000..fcf5a3c54b
--- /dev/null
+++ b/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.rhtml
@@ -0,0 +1,6 @@
+<h1>New <%= @singular_name %></h1>
+
+<%%= error_messages_for '<%= singular_name %>' %>
+<%= template_for_inclusion %>
+
+<%%= link_to 'Back', :action => 'list<%= suffix %>' %>
diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.rhtml b/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.rhtml
new file mode 100644
index 0000000000..ba8f3616dd
--- /dev/null
+++ b/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.rhtml
@@ -0,0 +1,8 @@
+<%% for column in <%= class_name %>.content_columns %>
+<p>
+ <b><%%= column.human_name %>:</b> <%%= @<%= singular_name %>.send(column.name) %>
+</p>
+<%% end %>
+
+<%%= link_to 'Edit', :action => 'edit<%= suffix %>', :id => @<%= singular_name %>.id %> |
+<%%= link_to 'Back', :action => 'list<%= suffix %>' %>