rails 1.0.0 → 7.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rails might be problematic. Click here for more details.

Files changed (156) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +103 -0
  3. metadata +228 -294
  4. data/CHANGELOG +0 -865
  5. data/MIT-LICENSE +0 -20
  6. data/README +0 -153
  7. data/Rakefile +0 -422
  8. data/bin/about +0 -3
  9. data/bin/breakpointer +0 -3
  10. data/bin/console +0 -3
  11. data/bin/destroy +0 -3
  12. data/bin/generate +0 -3
  13. data/bin/performance/benchmarker +0 -3
  14. data/bin/performance/profiler +0 -3
  15. data/bin/plugin +0 -3
  16. data/bin/process/reaper +0 -3
  17. data/bin/process/spawner +0 -3
  18. data/bin/process/spinner +0 -3
  19. data/bin/rails +0 -21
  20. data/bin/runner +0 -3
  21. data/bin/server +0 -3
  22. data/builtin/controllers/rails_info_controller.rb +0 -11
  23. data/configs/apache.conf +0 -40
  24. data/configs/database.yml +0 -85
  25. data/configs/empty.log +0 -0
  26. data/configs/lighttpd.conf +0 -40
  27. data/configs/routes.rb +0 -19
  28. data/dispatches/dispatch.fcgi +0 -24
  29. data/dispatches/dispatch.rb +0 -10
  30. data/dispatches/gateway.cgi +0 -97
  31. data/doc/README_FOR_APP +0 -2
  32. data/environments/boot.rb +0 -19
  33. data/environments/development.rb +0 -19
  34. data/environments/environment.rb +0 -53
  35. data/environments/production.rb +0 -19
  36. data/environments/test.rb +0 -19
  37. data/fresh_rakefile +0 -10
  38. data/helpers/application.rb +0 -4
  39. data/helpers/application_helper.rb +0 -3
  40. data/helpers/test_helper.rb +0 -28
  41. data/html/404.html +0 -8
  42. data/html/500.html +0 -8
  43. data/html/favicon.ico +0 -0
  44. data/html/images/rails.png +0 -0
  45. data/html/index.html +0 -277
  46. data/html/javascripts/controls.js +0 -750
  47. data/html/javascripts/dragdrop.js +0 -584
  48. data/html/javascripts/effects.js +0 -854
  49. data/html/javascripts/prototype.js +0 -1785
  50. data/html/robots.txt +0 -1
  51. data/lib/binding_of_caller.rb +0 -85
  52. data/lib/breakpoint.rb +0 -523
  53. data/lib/breakpoint_client.rb +0 -196
  54. data/lib/code_statistics.rb +0 -107
  55. data/lib/commands/about.rb +0 -2
  56. data/lib/commands/breakpointer.rb +0 -1
  57. data/lib/commands/console.rb +0 -23
  58. data/lib/commands/destroy.rb +0 -6
  59. data/lib/commands/generate.rb +0 -6
  60. data/lib/commands/ncgi/listener +0 -86
  61. data/lib/commands/ncgi/tracker +0 -69
  62. data/lib/commands/performance/benchmarker.rb +0 -24
  63. data/lib/commands/performance/profiler.rb +0 -34
  64. data/lib/commands/plugin.rb +0 -823
  65. data/lib/commands/process/reaper.rb +0 -130
  66. data/lib/commands/process/spawner.rb +0 -52
  67. data/lib/commands/process/spinner.rb +0 -57
  68. data/lib/commands/runner.rb +0 -27
  69. data/lib/commands/server.rb +0 -28
  70. data/lib/commands/servers/lighttpd.rb +0 -60
  71. data/lib/commands/servers/webrick.rb +0 -59
  72. data/lib/commands/update.rb +0 -4
  73. data/lib/commands.rb +0 -17
  74. data/lib/console_sandbox.rb +0 -6
  75. data/lib/dispatcher.rb +0 -99
  76. data/lib/fcgi_handler.rb +0 -189
  77. data/lib/initializer.rb +0 -553
  78. data/lib/rails_generator/base.rb +0 -203
  79. data/lib/rails_generator/commands.rb +0 -509
  80. data/lib/rails_generator/generators/applications/app/USAGE +0 -16
  81. data/lib/rails_generator/generators/applications/app/app_generator.rb +0 -140
  82. data/lib/rails_generator/generators/components/controller/USAGE +0 -30
  83. data/lib/rails_generator/generators/components/controller/controller_generator.rb +0 -38
  84. data/lib/rails_generator/generators/components/controller/templates/controller.rb +0 -10
  85. data/lib/rails_generator/generators/components/controller/templates/functional_test.rb +0 -18
  86. data/lib/rails_generator/generators/components/controller/templates/helper.rb +0 -2
  87. data/lib/rails_generator/generators/components/controller/templates/view.rhtml +0 -2
  88. data/lib/rails_generator/generators/components/mailer/USAGE +0 -18
  89. data/lib/rails_generator/generators/components/mailer/mailer_generator.rb +0 -32
  90. data/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +0 -3
  91. data/lib/rails_generator/generators/components/mailer/templates/mailer.rb +0 -13
  92. data/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +0 -37
  93. data/lib/rails_generator/generators/components/mailer/templates/view.rhtml +0 -3
  94. data/lib/rails_generator/generators/components/migration/USAGE +0 -14
  95. data/lib/rails_generator/generators/components/migration/migration_generator.rb +0 -7
  96. data/lib/rails_generator/generators/components/migration/templates/migration.rb +0 -7
  97. data/lib/rails_generator/generators/components/model/USAGE +0 -17
  98. data/lib/rails_generator/generators/components/model/model_generator.rb +0 -18
  99. data/lib/rails_generator/generators/components/model/templates/fixtures.yml +0 -5
  100. data/lib/rails_generator/generators/components/model/templates/model.rb +0 -2
  101. data/lib/rails_generator/generators/components/model/templates/unit_test.rb +0 -10
  102. data/lib/rails_generator/generators/components/plugin/USAGE +0 -33
  103. data/lib/rails_generator/generators/components/plugin/plugin_generator.rb +0 -33
  104. data/lib/rails_generator/generators/components/plugin/templates/README +0 -4
  105. data/lib/rails_generator/generators/components/plugin/templates/Rakefile +0 -22
  106. data/lib/rails_generator/generators/components/plugin/templates/USAGE +0 -8
  107. data/lib/rails_generator/generators/components/plugin/templates/generator.rb +0 -8
  108. data/lib/rails_generator/generators/components/plugin/templates/init.rb +0 -1
  109. data/lib/rails_generator/generators/components/plugin/templates/plugin.rb +0 -1
  110. data/lib/rails_generator/generators/components/plugin/templates/tasks.rake +0 -4
  111. data/lib/rails_generator/generators/components/plugin/templates/unit_test.rb +0 -8
  112. data/lib/rails_generator/generators/components/scaffold/USAGE +0 -32
  113. data/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +0 -184
  114. data/lib/rails_generator/generators/components/scaffold/templates/controller.rb +0 -54
  115. data/lib/rails_generator/generators/components/scaffold/templates/form.rhtml +0 -3
  116. data/lib/rails_generator/generators/components/scaffold/templates/form_scaffolding.rhtml +0 -1
  117. data/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +0 -98
  118. data/lib/rails_generator/generators/components/scaffold/templates/helper.rb +0 -2
  119. data/lib/rails_generator/generators/components/scaffold/templates/layout.rhtml +0 -13
  120. data/lib/rails_generator/generators/components/scaffold/templates/style.css +0 -74
  121. data/lib/rails_generator/generators/components/scaffold/templates/view_edit.rhtml +0 -9
  122. data/lib/rails_generator/generators/components/scaffold/templates/view_list.rhtml +0 -27
  123. data/lib/rails_generator/generators/components/scaffold/templates/view_new.rhtml +0 -8
  124. data/lib/rails_generator/generators/components/scaffold/templates/view_show.rhtml +0 -8
  125. data/lib/rails_generator/generators/components/session_migration/USAGE +0 -15
  126. data/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +0 -12
  127. data/lib/rails_generator/generators/components/session_migration/templates/migration.rb +0 -15
  128. data/lib/rails_generator/generators/components/web_service/USAGE +0 -28
  129. data/lib/rails_generator/generators/components/web_service/templates/api_definition.rb +0 -5
  130. data/lib/rails_generator/generators/components/web_service/templates/controller.rb +0 -8
  131. data/lib/rails_generator/generators/components/web_service/templates/functional_test.rb +0 -19
  132. data/lib/rails_generator/generators/components/web_service/web_service_generator.rb +0 -29
  133. data/lib/rails_generator/lookup.rb +0 -210
  134. data/lib/rails_generator/manifest.rb +0 -53
  135. data/lib/rails_generator/options.rb +0 -140
  136. data/lib/rails_generator/scripts/destroy.rb +0 -7
  137. data/lib/rails_generator/scripts/generate.rb +0 -7
  138. data/lib/rails_generator/scripts/update.rb +0 -12
  139. data/lib/rails_generator/scripts.rb +0 -83
  140. data/lib/rails_generator/simple_logger.rb +0 -46
  141. data/lib/rails_generator/spec.rb +0 -44
  142. data/lib/rails_generator.rb +0 -43
  143. data/lib/rails_info.rb +0 -104
  144. data/lib/rails_version.rb +0 -9
  145. data/lib/railties_path.rb +0 -1
  146. data/lib/rubyprof_ext.rb +0 -35
  147. data/lib/tasks/databases.rake +0 -158
  148. data/lib/tasks/documentation.rake +0 -76
  149. data/lib/tasks/framework.rake +0 -71
  150. data/lib/tasks/javascripts.rake +0 -6
  151. data/lib/tasks/misc.rake +0 -19
  152. data/lib/tasks/rails.rb +0 -8
  153. data/lib/tasks/statistics.rake +0 -16
  154. data/lib/tasks/testing.rake +0 -50
  155. data/lib/test_help.rb +0 -17
  156. data/lib/webrick_server.rb +0 -170
@@ -1,38 +0,0 @@
1
- class ControllerGenerator < Rails::Generator::NamedBase
2
- def manifest
3
- record do |m|
4
- # Check for class naming collisions.
5
- m.class_collisions class_path, "#{class_name}Controller", "#{class_name}ControllerTest", "#{class_name}Helper"
6
-
7
- # Controller, helper, views, and test directories.
8
- m.directory File.join('app/controllers', class_path)
9
- m.directory File.join('app/helpers', class_path)
10
- m.directory File.join('app/views', class_path, file_name)
11
- m.directory File.join('test/functional', class_path)
12
-
13
- # Controller class, functional test, and helper class.
14
- m.template 'controller.rb',
15
- File.join('app/controllers',
16
- class_path,
17
- "#{file_name}_controller.rb")
18
-
19
- m.template 'functional_test.rb',
20
- File.join('test/functional',
21
- class_path,
22
- "#{file_name}_controller_test.rb")
23
-
24
- m.template 'helper.rb',
25
- File.join('app/helpers',
26
- class_path,
27
- "#{file_name}_helper.rb")
28
-
29
- # View template for each action.
30
- actions.each do |action|
31
- path = File.join('app/views', class_path, file_name, "#{action}.rhtml")
32
- m.template 'view.rhtml',
33
- path,
34
- :assigns => { :action => action, :path => path }
35
- end
36
- end
37
- end
38
- end
@@ -1,10 +0,0 @@
1
- class <%= class_name %>Controller < ApplicationController
2
- <% if options[:scaffold] -%>
3
- scaffold :<%= singular_name %>
4
- <% end -%>
5
- <% for action in actions -%>
6
-
7
- def <%= action %>
8
- end
9
- <% end -%>
10
- end
@@ -1,18 +0,0 @@
1
- require File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../test_helper'
2
- require '<%= file_path %>_controller'
3
-
4
- # Re-raise errors caught by the controller.
5
- class <%= class_name %>Controller; def rescue_action(e) raise e end; end
6
-
7
- class <%= class_name %>ControllerTest < Test::Unit::TestCase
8
- def setup
9
- @controller = <%= class_name %>Controller.new
10
- @request = ActionController::TestRequest.new
11
- @response = ActionController::TestResponse.new
12
- end
13
-
14
- # Replace this with your real tests.
15
- def test_truth
16
- assert true
17
- end
18
- end
@@ -1,2 +0,0 @@
1
- module <%= class_name %>Helper
2
- end
@@ -1,2 +0,0 @@
1
- <h1><%= class_name %>#<%= action %></h1>
2
- <p>Find me in <%= path %></p>
@@ -1,18 +0,0 @@
1
- Description:
2
- The mailer generator creates stubs for a new mailer and its views.
3
-
4
- The generator takes a mailer name and a list of views as arguments.
5
- The mailer name may be given in CamelCase or under_score.
6
-
7
- The generator creates a mailer class in app/models with view templates
8
- in app/views/mailer_name, and a test suite with fixtures in test/unit.
9
-
10
- Example:
11
- ./script/generate mailer Notifications signup forgot_password invoice
12
-
13
- This will create a Notifications mailer class:
14
- Mailer: app/models/notifications.rb
15
- Views: app/views/notifications/signup.rhtml [...]
16
- Test: test/unit/credit_card_controller_test.rb
17
- Fixtures: test/fixtures/notifications/signup [...]
18
-
@@ -1,32 +0,0 @@
1
- class MailerGenerator < Rails::Generator::NamedBase
2
- def manifest
3
- record do |m|
4
- # Check for class naming collisions.
5
- m.class_collisions class_path, class_name, "#{class_name}Test"
6
-
7
- # Mailer, view, test, and fixture directories.
8
- m.directory File.join('app/models', class_path)
9
- m.directory File.join('app/views', class_path, file_name)
10
- m.directory File.join('test/unit', class_path)
11
- m.directory File.join('test/fixtures', class_path, file_name)
12
-
13
- # Mailer class and unit test.
14
- m.template "mailer.rb", File.join('app/models',
15
- class_path,
16
- "#{file_name}.rb")
17
- m.template "unit_test.rb", File.join('test/unit',
18
- class_path,
19
- "#{file_name}_test.rb")
20
-
21
- # View template and fixture for each action.
22
- actions.each do |action|
23
- m.template "view.rhtml",
24
- File.join('app/views', class_path, file_name, "#{action}.rhtml"),
25
- :assigns => { :action => action }
26
- m.template "fixture.rhtml",
27
- File.join('test/fixtures', class_path, file_name, action),
28
- :assigns => { :action => action }
29
- end
30
- end
31
- end
32
- end
@@ -1,3 +0,0 @@
1
- <%= class_name %>#<%= action %>
2
-
3
- Find me in app/views/<%= file_name %>/<%= action %>.rhtml
@@ -1,13 +0,0 @@
1
- class <%= class_name %> < ActionMailer::Base
2
- <% for action in actions -%>
3
-
4
- def <%= action %>(sent_at = Time.now)
5
- @subject = '<%= class_name %>#<%= action %>'
6
- @body = {}
7
- @recipients = ''
8
- @from = ''
9
- @sent_on = sent_at
10
- @headers = {}
11
- end
12
- <% end -%>
13
- end
@@ -1,37 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
- require '<%= file_name %>'
3
-
4
- class <%= class_name %>Test < Test::Unit::TestCase
5
- FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures'
6
- CHARSET = "utf-8"
7
-
8
- include ActionMailer::Quoting
9
-
10
- def setup
11
- ActionMailer::Base.delivery_method = :test
12
- ActionMailer::Base.perform_deliveries = true
13
- ActionMailer::Base.deliveries = []
14
-
15
- @expected = TMail::Mail.new
16
- @expected.set_content_type "text", "plain", { "charset" => CHARSET }
17
- end
18
-
19
- <% for action in actions -%>
20
- def test_<%= action %>
21
- @expected.subject = '<%= class_name %>#<%= action %>'
22
- @expected.body = read_fixture('<%= action %>')
23
- @expected.date = Time.now
24
-
25
- assert_equal @expected.encoded, <%= class_name %>.create_<%= action %>(@expected.date).encoded
26
- end
27
-
28
- <% end -%>
29
- private
30
- def read_fixture(action)
31
- IO.readlines("#{FIXTURES_PATH}/<%= file_name %>/#{action}")
32
- end
33
-
34
- def encode(subject)
35
- quoted_printable(subject, CHARSET)
36
- end
37
- end
@@ -1,3 +0,0 @@
1
- <%= class_name %>#<%= action %>
2
-
3
- Find me in app/views/<%= file_name %>/<%= action %>.rhtml
@@ -1,14 +0,0 @@
1
- Description:
2
- The migration generator creates a stub for a new database migration.
3
-
4
- The generator takes a migration name as its argument. The migration name may be
5
- given in CamelCase or under_score.
6
-
7
- The generator creates a migration class in db/migrate prefixed by its number
8
- in the queue.
9
-
10
- Example:
11
- ./script/generate migration AddSslFlag
12
-
13
- With 4 existing migrations, this will create an AddSslFlag migration in the
14
- file db/migrate/5_add_ssl_flag.rb
@@ -1,7 +0,0 @@
1
- class MigrationGenerator < Rails::Generator::NamedBase
2
- def manifest
3
- record do |m|
4
- m.migration_template 'migration.rb', 'db/migrate'
5
- end
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- class <%= class_name %> < ActiveRecord::Migration
2
- def self.up
3
- end
4
-
5
- def self.down
6
- end
7
- end
@@ -1,17 +0,0 @@
1
- Description:
2
- The model generator creates stubs for a new model.
3
-
4
- The generator takes a model name as its argument. The model name may be
5
- given in CamelCase or under_score and should not be suffixed with 'Model'.
6
-
7
- The generator creates a model class in app/models, a test suite in
8
- test/unit, and test fixtures in test/fixtures/singular_name.yml.
9
-
10
- Example:
11
- ./script/generate model Account
12
-
13
- This will create an Account model:
14
- Model: app/models/account.rb
15
- Test: test/unit/account_test.rb
16
- Fixtures: test/fixtures/accounts.yml
17
-
@@ -1,18 +0,0 @@
1
- class ModelGenerator < Rails::Generator::NamedBase
2
- def manifest
3
- record do |m|
4
- # Check for class naming collisions.
5
- m.class_collisions class_path, class_name, "#{class_name}Test"
6
-
7
- # Model, test, and fixture directories.
8
- m.directory File.join('app/models', class_path)
9
- m.directory File.join('test/unit', class_path)
10
- m.directory File.join('test/fixtures', class_path)
11
-
12
- # Model class, unit test, and fixtures.
13
- m.template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb")
14
- m.template 'unit_test.rb', File.join('test/unit', class_path, "#{file_name}_test.rb")
15
- m.template 'fixtures.yml', File.join('test/fixtures', class_path, "#{table_name}.yml")
16
- end
17
- end
18
- end
@@ -1,5 +0,0 @@
1
- # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
- first:
3
- id: 1
4
- another:
5
- id: 2
@@ -1,2 +0,0 @@
1
- class <%= class_name %> < ActiveRecord::Base
2
- end
@@ -1,10 +0,0 @@
1
- require File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../test_helper'
2
-
3
- class <%= class_name %>Test < Test::Unit::TestCase
4
- fixtures :<%= table_name %>
5
-
6
- # Replace this with your real tests.
7
- def test_truth
8
- assert_kind_of <%= class_name %>, <%= table_name %>(:first)
9
- end
10
- end
@@ -1,33 +0,0 @@
1
- Description:
2
- The plugin generator creates stubs for a new plugin.
3
-
4
- The generator takes a plugin name as its argument. The plugin name may be
5
- given in CamelCase or under_score and should not be suffixed with 'Plugin'.
6
-
7
- The generator creates a plugin directory in vendor/plugins that includes
8
- both init.rb and README files as well as lib, task, and test directories.
9
-
10
- It's also possible to generate stub files for a generator to go with the
11
- plugin by using --with-generator
12
-
13
- Example:
14
- ./script/generate plugin BrowserFilters
15
-
16
- This will create:
17
- vendor/plugins/browser_filters/README
18
- vendor/plugins/browser_filters/init.rb
19
- vendor/plugins/browser_filters/lib/browser_filters.rb
20
- vendor/plugins/browser_filters/test/browser_filters_test.rb
21
- vendor/plugins/browser_filters/tasks/browser_filters_tasks.rake
22
-
23
- ./script/generate plugin BrowserFilters --with-generator
24
-
25
- This will create:
26
- vendor/plugins/browser_filters/README
27
- vendor/plugins/browser_filters/init.rb
28
- vendor/plugins/browser_filters/lib/browser_filters.rb
29
- vendor/plugins/browser_filters/test/browser_filters_test.rb
30
- vendor/plugins/browser_filters/tasks/browser_filters_tasks.rake
31
- vendor/plugins/browser_filters/generators/browser_filters/browser_filters_generator.rb
32
- vendor/plugins/browser_filters/generators/browser_filters/USAGE
33
- vendor/plugins/browser_filters/generators/browser_filters/templates/
@@ -1,33 +0,0 @@
1
- class PluginGenerator < Rails::Generator::NamedBase
2
- attr_reader :plugin_path
3
-
4
- def initialize(runtime_args, runtime_options = {})
5
- @with_generator = runtime_args.delete("--with-generator")
6
- super
7
- @plugin_path = "vendor/plugins/#{file_name}"
8
- end
9
-
10
- def manifest
11
- record do |m|
12
- m.directory "#{plugin_path}/lib"
13
- m.directory "#{plugin_path}/tasks"
14
- m.directory "#{plugin_path}/test"
15
-
16
- m.template 'README', "#{plugin_path}/README"
17
- m.template 'Rakefile', "#{plugin_path}/Rakefile"
18
- m.template 'init.rb', "#{plugin_path}/init.rb"
19
- m.template 'plugin.rb', "#{plugin_path}/lib/#{file_name}.rb"
20
- m.template 'tasks.rake', "#{plugin_path}/tasks/#{file_name}_tasks.rake"
21
- m.template 'unit_test.rb', "#{plugin_path}/test/#{file_name}_test.rb"
22
-
23
- if @with_generator
24
- m.directory "#{plugin_path}/generators"
25
- m.directory "#{plugin_path}/generators/#{file_name}"
26
- m.directory "#{plugin_path}/generators/#{file_name}/templates"
27
-
28
- m.template 'generator.rb', "#{plugin_path}/generators/#{file_name}/#{file_name}_generator.rb"
29
- m.template 'USAGE', "#{plugin_path}/generators/#{file_name}/USAGE"
30
- end
31
- end
32
- end
33
- end
@@ -1,4 +0,0 @@
1
- <%= class_name %>
2
- <%= "=" * class_name.size %>
3
-
4
- Description goes here
@@ -1,22 +0,0 @@
1
- require 'rake'
2
- require 'rake/testtask'
3
- require 'rake/rdoctask'
4
-
5
- desc 'Default: run unit tests.'
6
- task :default => :test
7
-
8
- desc 'Test the <%= file_name %> plugin.'
9
- Rake::TestTask.new(:test) do |t|
10
- t.libs << 'lib'
11
- t.pattern = 'test/**/*_test.rb'
12
- t.verbose = true
13
- end
14
-
15
- desc 'Generate documentation for the <%= file_name %> plugin.'
16
- Rake::RDocTask.new(:rdoc) do |rdoc|
17
- rdoc.rdoc_dir = 'rdoc'
18
- rdoc.title = '<%= class_name %>'
19
- rdoc.options << '--line-numbers --inline-source'
20
- rdoc.rdoc_files.include('README')
21
- rdoc.rdoc_files.include('lib/**/*.rb')
22
- end
@@ -1,8 +0,0 @@
1
- Description:
2
- Explain the generator
3
-
4
- Example:
5
- ./script/generate <%= file_name %> Thing
6
-
7
- This will create:
8
- what/will/it/create
@@ -1,8 +0,0 @@
1
- class <%= class_name %>Generator < Rails::Generator::NamedBase
2
- def manifest
3
- record do |m|
4
- # m.directory "lib"
5
- # m.template 'README', "README"
6
- end
7
- end
8
- end
@@ -1 +0,0 @@
1
- # Include hook code here
@@ -1 +0,0 @@
1
- # <%= class_name %>
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :<%= file_name %> do
3
- # # Task goes here
4
- # end
@@ -1,8 +0,0 @@
1
- require 'test/unit'
2
-
3
- class <%= class_name %>Test < Test::Unit::TestCase
4
- # Replace this with your real tests.
5
- def test_this_plugin
6
- flunk
7
- end
8
- end
@@ -1,32 +0,0 @@
1
- Description:
2
- The scaffold generator creates a controller to interact with a model.
3
- If the model does not exist, it creates the model as well. The generated
4
- code is equivalent to the "scaffold :model" declaration, making it easy
5
- to migrate when you wish to customize your controller and views.
6
-
7
- The generator takes a model name, an optional controller name, and a
8
- list of views as arguments. Scaffolded actions and views are created
9
- automatically. Any views left over generate empty stubs.
10
-
11
- The scaffolded actions and views are:
12
- index, list, show, new, create, edit, update, destroy
13
-
14
- If a controller name is not given, the plural form of the model name
15
- will be used. The model and controller names may be given in CamelCase
16
- or under_score and should not be suffixed with 'Model' or 'Controller'.
17
- Both model and controller names may be prefixed with a module like a
18
- file path; see the Modules Example for usage.
19
-
20
- Example:
21
- ./script/generate scaffold Account Bank debit credit
22
-
23
- This will generate an Account model and BankController with a full test
24
- suite and a basic user interface. Now create the accounts table in your
25
- database and browse to http://localhost/bank/ -- voila, you're on Rails!
26
-
27
- Modules Example:
28
- ./script/generate scaffold CreditCard 'admin/credit_card' suspend late_fee
29
-
30
- This will generate a CreditCard model and CreditCardController controller
31
- in the admin module.
32
-
@@ -1,184 +0,0 @@
1
- class ScaffoldingSandbox
2
- include ActionView::Helpers::ActiveRecordHelper
3
-
4
- attr_accessor :form_action, :singular_name, :suffix, :model_instance
5
-
6
- def sandbox_binding
7
- binding
8
- end
9
-
10
- def default_input_block
11
- Proc.new { |record, column| "<p><label for=\"#{record}_#{column.name}\">#{column.human_name}</label><br/>\n#{input(record, column.name)}</p>\n" }
12
- end
13
-
14
- end
15
-
16
- class ActionView::Helpers::InstanceTag
17
- def to_input_field_tag(field_type, options={})
18
- field_meth = "#{field_type}_field"
19
- "<%= #{field_meth} '#{@object_name}', '#{@method_name}' #{options.empty? ? '' : ', '+options.inspect} %>"
20
- end
21
-
22
- def to_text_area_tag(options = {})
23
- "<%= text_area '#{@object_name}', '#{@method_name}' #{options.empty? ? '' : ', '+ options.inspect} %>"
24
- end
25
-
26
- def to_date_select_tag(options = {})
27
- "<%= date_select '#{@object_name}', '#{@method_name}' #{options.empty? ? '' : ', '+ options.inspect} %>"
28
- end
29
-
30
- def to_datetime_select_tag(options = {})
31
- "<%= datetime_select '#{@object_name}', '#{@method_name}' #{options.empty? ? '' : ', '+ options.inspect} %>"
32
- end
33
- end
34
-
35
- class ScaffoldGenerator < Rails::Generator::NamedBase
36
- attr_reader :controller_name,
37
- :controller_class_path,
38
- :controller_file_path,
39
- :controller_class_nesting,
40
- :controller_class_nesting_depth,
41
- :controller_class_name,
42
- :controller_singular_name,
43
- :controller_plural_name
44
- alias_method :controller_file_name, :controller_singular_name
45
- alias_method :controller_table_name, :controller_plural_name
46
-
47
- def initialize(runtime_args, runtime_options = {})
48
- super
49
-
50
- # Take controller name from the next argument. Default to the pluralized model name.
51
- @controller_name = args.shift
52
- @controller_name ||= ActiveRecord::Base.pluralize_table_names ? @name.pluralize : @name
53
-
54
- base_name, @controller_class_path, @controller_file_path, @controller_class_nesting, @controller_class_nesting_depth = extract_modules(@controller_name)
55
- @controller_class_name_without_nesting, @controller_singular_name, @controller_plural_name = inflect_names(base_name)
56
-
57
- if @controller_class_nesting.empty?
58
- @controller_class_name = @controller_class_name_without_nesting
59
- else
60
- @controller_class_name = "#{@controller_class_nesting}::#{@controller_class_name_without_nesting}"
61
- end
62
- end
63
-
64
- def manifest
65
- record do |m|
66
- # Check for class naming collisions.
67
- m.class_collisions controller_class_path, "#{controller_class_name}Controller", "#{controller_class_name}ControllerTest", "#{controller_class_name}Helper"
68
-
69
- # Controller, helper, views, and test directories.
70
- m.directory File.join('app/controllers', controller_class_path)
71
- m.directory File.join('app/helpers', controller_class_path)
72
- m.directory File.join('app/views', controller_class_path, controller_file_name)
73
- m.directory File.join('test/functional', controller_class_path)
74
-
75
- # Depend on model generator but skip if the model exists.
76
- m.dependency 'model', [singular_name], :collision => :skip
77
-
78
- # Scaffolded forms.
79
- m.complex_template "form.rhtml",
80
- File.join('app/views',
81
- controller_class_path,
82
- controller_file_name,
83
- "_form.rhtml"),
84
- :insert => 'form_scaffolding.rhtml',
85
- :sandbox => lambda { create_sandbox },
86
- :begin_mark => 'form',
87
- :end_mark => 'eoform',
88
- :mark_id => singular_name
89
-
90
-
91
- # Scaffolded views.
92
- scaffold_views.each do |action|
93
- m.template "view_#{action}.rhtml",
94
- File.join('app/views',
95
- controller_class_path,
96
- controller_file_name,
97
- "#{action}.rhtml"),
98
- :assigns => { :action => action }
99
- end
100
-
101
- # Controller class, functional test, helper, and views.
102
- m.template 'controller.rb',
103
- File.join('app/controllers',
104
- controller_class_path,
105
- "#{controller_file_name}_controller.rb")
106
-
107
- m.template 'functional_test.rb',
108
- File.join('test/functional',
109
- controller_class_path,
110
- "#{controller_file_name}_controller_test.rb")
111
-
112
- m.template 'helper.rb',
113
- File.join('app/helpers',
114
- controller_class_path,
115
- "#{controller_file_name}_helper.rb")
116
-
117
- # Layout and stylesheet.
118
- m.template 'layout.rhtml', "app/views/layouts/#{controller_file_name}.rhtml"
119
- m.template 'style.css', 'public/stylesheets/scaffold.css'
120
-
121
-
122
- # Unscaffolded views.
123
- unscaffolded_actions.each do |action|
124
- path = File.join('app/views',
125
- controller_class_path,
126
- controller_file_name,
127
- "#{action}.rhtml")
128
- m.template "controller:view.rhtml", path,
129
- :assigns => { :action => action, :path => path}
130
- end
131
- end
132
- end
133
-
134
- protected
135
- # Override with your own usage banner.
136
- def banner
137
- "Usage: #{$0} scaffold ModelName [ControllerName] [action, ...]"
138
- end
139
-
140
- def scaffold_views
141
- %w(list show new edit)
142
- end
143
-
144
- def scaffold_actions
145
- scaffold_views + %w(index create update destroy)
146
- end
147
-
148
- def model_name
149
- class_name.demodulize
150
- end
151
-
152
- def unscaffolded_actions
153
- args - scaffold_actions
154
- end
155
-
156
- def suffix
157
- "_#{singular_name}" if options[:suffix]
158
- end
159
-
160
- def create_sandbox
161
- sandbox = ScaffoldingSandbox.new
162
- sandbox.singular_name = singular_name
163
- begin
164
- sandbox.model_instance = model_instance
165
- sandbox.instance_variable_set("@#{singular_name}", sandbox.model_instance)
166
- rescue ActiveRecord::StatementInvalid => e
167
- logger.error "Before updating scaffolding from new DB schema, try creating a table for your model (#{class_name})"
168
- raise SystemExit
169
- end
170
- sandbox.suffix = suffix
171
- sandbox
172
- end
173
-
174
- def model_instance
175
- base = class_nesting.split('::').inject(Object) do |base, nested|
176
- break base.const_get(nested) if base.const_defined?(nested)
177
- base.const_set(nested, Module.new)
178
- end
179
- unless base.const_defined?(@class_name_without_nesting)
180
- base.const_set(@class_name_without_nesting, Class.new(ActiveRecord::Base))
181
- end
182
- class_name.constantize.new
183
- end
184
- end