railties 3.0.0.beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +2201 -0
- data/README +286 -0
- data/bin/rails +11 -0
- data/builtin/rails_info/rails/info.rb +147 -0
- data/builtin/rails_info/rails/info_controller.rb +15 -0
- data/builtin/rails_info/rails/info_helper.rb +2 -0
- data/builtin/routes.rb +3 -0
- data/guides/files/javascripts/code_highlighter.js +188 -0
- data/guides/files/javascripts/guides.js +7 -0
- data/guides/files/javascripts/highlighters.js +90 -0
- data/guides/files/stylesheets/main.css +441 -0
- data/guides/files/stylesheets/print.css +52 -0
- data/guides/files/stylesheets/reset.css +43 -0
- data/guides/files/stylesheets/style.css +13 -0
- data/guides/files/stylesheets/syntax.css +31 -0
- data/guides/images/belongs_to.png +0 -0
- data/guides/images/book_icon.gif +0 -0
- data/guides/images/bullet.gif +0 -0
- data/guides/images/chapters_icon.gif +0 -0
- data/guides/images/check_bullet.gif +0 -0
- data/guides/images/credits_pic_blank.gif +0 -0
- data/guides/images/csrf.png +0 -0
- data/guides/images/customized_error_messages.png +0 -0
- data/guides/images/error_messages.png +0 -0
- data/guides/images/feature_tile.gif +0 -0
- data/guides/images/footer_tile.gif +0 -0
- data/guides/images/fxn.png +0 -0
- data/guides/images/grey_bullet.gif +0 -0
- data/guides/images/habtm.png +0 -0
- data/guides/images/has_many.png +0 -0
- data/guides/images/has_many_through.png +0 -0
- data/guides/images/has_one.png +0 -0
- data/guides/images/has_one_through.png +0 -0
- data/guides/images/header_backdrop.png +0 -0
- data/guides/images/header_tile.gif +0 -0
- data/guides/images/i18n/demo_localized_pirate.png +0 -0
- data/guides/images/i18n/demo_translated_en.png +0 -0
- data/guides/images/i18n/demo_translated_pirate.png +0 -0
- data/guides/images/i18n/demo_translation_missing.png +0 -0
- data/guides/images/i18n/demo_untranslated.png +0 -0
- data/guides/images/icons/README +5 -0
- data/guides/images/icons/callouts/1.png +0 -0
- data/guides/images/icons/callouts/10.png +0 -0
- data/guides/images/icons/callouts/11.png +0 -0
- data/guides/images/icons/callouts/12.png +0 -0
- data/guides/images/icons/callouts/13.png +0 -0
- data/guides/images/icons/callouts/14.png +0 -0
- data/guides/images/icons/callouts/15.png +0 -0
- data/guides/images/icons/callouts/2.png +0 -0
- data/guides/images/icons/callouts/3.png +0 -0
- data/guides/images/icons/callouts/4.png +0 -0
- data/guides/images/icons/callouts/5.png +0 -0
- data/guides/images/icons/callouts/6.png +0 -0
- data/guides/images/icons/callouts/7.png +0 -0
- data/guides/images/icons/callouts/8.png +0 -0
- data/guides/images/icons/callouts/9.png +0 -0
- data/guides/images/icons/caution.png +0 -0
- data/guides/images/icons/example.png +0 -0
- data/guides/images/icons/home.png +0 -0
- data/guides/images/icons/important.png +0 -0
- data/guides/images/icons/next.png +0 -0
- data/guides/images/icons/note.png +0 -0
- data/guides/images/icons/prev.png +0 -0
- data/guides/images/icons/tip.png +0 -0
- data/guides/images/icons/up.png +0 -0
- data/guides/images/icons/warning.png +0 -0
- data/guides/images/nav_arrow.gif +0 -0
- data/guides/images/polymorphic.png +0 -0
- data/guides/images/posts_index.png +0 -0
- data/guides/images/rails_guides_logo.gif +0 -0
- data/guides/images/rails_logo_remix.gif +0 -0
- data/guides/images/rails_welcome.png +0 -0
- data/guides/images/session_fixation.png +0 -0
- data/guides/images/tab_grey.gif +0 -0
- data/guides/images/tab_info.gif +0 -0
- data/guides/images/tab_note.gif +0 -0
- data/guides/images/tab_red.gif +0 -0
- data/guides/images/tab_yellow.gif +0 -0
- data/guides/images/tab_yellow.png +0 -0
- data/guides/images/validation_error_messages.png +0 -0
- data/guides/rails_guides.rb +44 -0
- data/guides/rails_guides/generator.rb +178 -0
- data/guides/rails_guides/helpers.rb +34 -0
- data/guides/rails_guides/indexer.rb +55 -0
- data/guides/rails_guides/levenshtein.rb +31 -0
- data/guides/rails_guides/textile_extensions.rb +41 -0
- data/guides/source/2_2_release_notes.textile +422 -0
- data/guides/source/2_3_release_notes.textile +610 -0
- data/guides/source/3_0_release_notes.textile +560 -0
- data/guides/source/action_controller_overview.textile +783 -0
- data/guides/source/action_mailer_basics.textile +437 -0
- data/guides/source/action_view_overview.textile +1481 -0
- data/guides/source/active_record_basics.textile +204 -0
- data/guides/source/active_record_querying.textile +961 -0
- data/guides/source/active_support_core_extensions.textile +1835 -0
- data/guides/source/activerecord_validations_callbacks.textile +1127 -0
- data/guides/source/ajax_on_rails.textile +342 -0
- data/guides/source/association_basics.textile +1816 -0
- data/guides/source/caching_with_rails.textile +390 -0
- data/guides/source/command_line.textile +589 -0
- data/guides/source/configuring.textile +290 -0
- data/guides/source/contribute.textile +71 -0
- data/guides/source/contributing_to_rails.textile +272 -0
- data/guides/source/credits.textile.erb +52 -0
- data/guides/source/debugging_rails_applications.textile +709 -0
- data/guides/source/form_helpers.textile +768 -0
- data/guides/source/generators.textile +378 -0
- data/guides/source/getting_started.textile +1310 -0
- data/guides/source/i18n.textile +879 -0
- data/guides/source/index.textile.erb +124 -0
- data/guides/source/layout.html.erb +103 -0
- data/guides/source/layouts_and_rendering.textile +979 -0
- data/guides/source/migrations.textile +591 -0
- data/guides/source/nested_model_forms.textile +222 -0
- data/guides/source/performance_testing.textile +531 -0
- data/guides/source/plugins.textile +1512 -0
- data/guides/source/rails_application_templates.textile +238 -0
- data/guides/source/rails_on_rack.textile +306 -0
- data/guides/source/routing.textile +903 -0
- data/guides/source/security.textile +984 -0
- data/guides/source/testing.textile +946 -0
- data/lib/generators/erb.rb +8 -0
- data/lib/generators/erb/controller/controller_generator.rb +21 -0
- data/lib/generators/erb/controller/templates/view.html.erb +2 -0
- data/lib/generators/erb/mailer/mailer_generator.rb +20 -0
- data/lib/generators/erb/mailer/templates/view.text.erb +3 -0
- data/lib/generators/erb/scaffold/scaffold_generator.rb +53 -0
- data/lib/generators/erb/scaffold/templates/_form.html.erb +13 -0
- data/lib/generators/erb/scaffold/templates/edit.html.erb +6 -0
- data/lib/generators/erb/scaffold/templates/index.html.erb +27 -0
- data/lib/generators/erb/scaffold/templates/layout.html.erb +16 -0
- data/lib/generators/erb/scaffold/templates/new.html.erb +5 -0
- data/lib/generators/erb/scaffold/templates/show.html.erb +10 -0
- data/lib/generators/rails/app/USAGE +9 -0
- data/lib/generators/rails/app/app_generator.rb +262 -0
- data/lib/generators/rails/app/templates/Gemfile +34 -0
- data/lib/generators/rails/app/templates/README +243 -0
- data/lib/generators/rails/app/templates/Rakefile +10 -0
- data/lib/generators/rails/app/templates/app/controllers/application_controller.rb +3 -0
- data/lib/generators/rails/app/templates/app/helpers/application_helper.rb +2 -0
- data/lib/generators/rails/app/templates/app/models/.empty_directory +0 -0
- data/lib/generators/rails/app/templates/app/views/layouts/.empty_directory +0 -0
- data/lib/generators/rails/app/templates/config.ru +4 -0
- data/lib/generators/rails/app/templates/config/application.rb +51 -0
- data/lib/generators/rails/app/templates/config/boot.rb +17 -0
- data/lib/generators/rails/app/templates/config/databases/frontbase.yml +28 -0
- data/lib/generators/rails/app/templates/config/databases/ibm_db.yml +71 -0
- data/lib/generators/rails/app/templates/config/databases/mysql.yml +60 -0
- data/lib/generators/rails/app/templates/config/databases/oracle.yml +39 -0
- data/lib/generators/rails/app/templates/config/databases/postgresql.yml +51 -0
- data/lib/generators/rails/app/templates/config/databases/sqlite3.yml +22 -0
- data/lib/generators/rails/app/templates/config/environment.rb +5 -0
- data/lib/generators/rails/app/templates/config/environments/development.rb.tt +19 -0
- data/lib/generators/rails/app/templates/config/environments/production.rb.tt +33 -0
- data/lib/generators/rails/app/templates/config/environments/test.rb.tt +29 -0
- data/lib/generators/rails/app/templates/config/initializers/backtrace_silencers.rb +7 -0
- data/lib/generators/rails/app/templates/config/initializers/cookie_verification_secret.rb.tt +7 -0
- data/lib/generators/rails/app/templates/config/initializers/inflections.rb +10 -0
- data/lib/generators/rails/app/templates/config/initializers/mime_types.rb +5 -0
- data/lib/generators/rails/app/templates/config/initializers/session_store.rb.tt +15 -0
- data/lib/generators/rails/app/templates/config/locales/en.yml +5 -0
- data/lib/generators/rails/app/templates/config/routes.rb +58 -0
- data/lib/generators/rails/app/templates/db/seeds.rb +7 -0
- data/lib/generators/rails/app/templates/doc/README_FOR_APP +2 -0
- data/lib/generators/rails/app/templates/gitignore +4 -0
- data/lib/generators/rails/app/templates/public/404.html +26 -0
- data/lib/generators/rails/app/templates/public/422.html +26 -0
- data/lib/generators/rails/app/templates/public/500.html +26 -0
- data/lib/generators/rails/app/templates/public/favicon.ico +0 -0
- data/lib/generators/rails/app/templates/public/images/rails.png +0 -0
- data/lib/generators/rails/app/templates/public/index.html +278 -0
- data/lib/generators/rails/app/templates/public/javascripts/application.js +2 -0
- data/lib/generators/rails/app/templates/public/javascripts/controls.js +963 -0
- data/lib/generators/rails/app/templates/public/javascripts/dragdrop.js +973 -0
- data/lib/generators/rails/app/templates/public/javascripts/effects.js +1128 -0
- data/lib/generators/rails/app/templates/public/javascripts/prototype.js +4320 -0
- data/lib/generators/rails/app/templates/public/javascripts/rails.js +110 -0
- data/lib/generators/rails/app/templates/public/robots.txt +5 -0
- data/lib/generators/rails/app/templates/public/stylesheets/.empty_directory +0 -0
- data/lib/generators/rails/app/templates/script/rails +9 -0
- data/lib/generators/rails/app/templates/test/fixtures/.empty_directory +0 -0
- data/lib/generators/rails/app/templates/test/functional/.empty_directory +0 -0
- data/lib/generators/rails/app/templates/test/integration/.empty_directory +0 -0
- data/lib/generators/rails/app/templates/test/performance/browsing_test.rb +9 -0
- data/lib/generators/rails/app/templates/test/test_helper.rb +13 -0
- data/lib/generators/rails/app/templates/test/unit/.empty_directory +0 -0
- data/lib/generators/rails/controller/USAGE +18 -0
- data/lib/generators/rails/controller/controller_generator.rb +14 -0
- data/lib/generators/rails/controller/templates/controller.rb +7 -0
- data/lib/generators/rails/generator/USAGE +11 -0
- data/lib/generators/rails/generator/generator_generator.rb +25 -0
- data/lib/generators/rails/generator/templates/%file_name%_generator.rb.tt +5 -0
- data/lib/generators/rails/generator/templates/USAGE.tt +8 -0
- data/lib/generators/rails/generator/templates/templates/.empty_directory +0 -0
- data/lib/generators/rails/helper/USAGE +17 -0
- data/lib/generators/rails/helper/helper_generator.rb +13 -0
- data/lib/generators/rails/helper/templates/helper.rb +2 -0
- data/lib/generators/rails/integration_test/USAGE +10 -0
- data/lib/generators/rails/integration_test/integration_test_generator.rb +7 -0
- data/lib/generators/rails/mailer/USAGE +15 -0
- data/lib/generators/rails/mailer/mailer_generator.rb +14 -0
- data/lib/generators/rails/mailer/templates/mailer.rb +16 -0
- data/lib/generators/rails/metal/USAGE +8 -0
- data/lib/generators/rails/metal/metal_generator.rb +11 -0
- data/lib/generators/rails/metal/templates/metal.rb +12 -0
- data/lib/generators/rails/migration/USAGE +29 -0
- data/lib/generators/rails/migration/migration_generator.rb +8 -0
- data/lib/generators/rails/model/USAGE +30 -0
- data/lib/generators/rails/model/model_generator.rb +8 -0
- data/lib/generators/rails/model_subclass/model_subclass_generator.rb +12 -0
- data/lib/generators/rails/observer/USAGE +12 -0
- data/lib/generators/rails/observer/observer_generator.rb +7 -0
- data/lib/generators/rails/performance_test/USAGE +10 -0
- data/lib/generators/rails/performance_test/performance_test_generator.rb +7 -0
- data/lib/generators/rails/plugin/USAGE +13 -0
- data/lib/generators/rails/plugin/plugin_generator.rb +47 -0
- data/lib/generators/rails/plugin/templates/MIT-LICENSE.tt +20 -0
- data/lib/generators/rails/plugin/templates/README.tt +13 -0
- data/lib/generators/rails/plugin/templates/Rakefile.tt +10 -0
- data/lib/generators/rails/plugin/templates/init.rb +1 -0
- data/lib/generators/rails/plugin/templates/install.rb +1 -0
- data/lib/generators/rails/plugin/templates/lib/%file_name%.rb.tt +1 -0
- data/lib/generators/rails/plugin/templates/lib/tasks/%file_name%_tasks.rake.tt +4 -0
- data/lib/generators/rails/plugin/templates/uninstall.rb +1 -0
- data/lib/generators/rails/resource/USAGE +23 -0
- data/lib/generators/rails/resource/resource_generator.rb +34 -0
- data/lib/generators/rails/scaffold/USAGE +29 -0
- data/lib/generators/rails/scaffold/scaffold_generator.rb +13 -0
- data/lib/generators/rails/scaffold_controller/USAGE +20 -0
- data/lib/generators/rails/scaffold_controller/scaffold_controller_generator.rb +27 -0
- data/lib/generators/rails/scaffold_controller/templates/controller.rb +85 -0
- data/lib/generators/rails/session_migration/USAGE +8 -0
- data/lib/generators/rails/session_migration/session_migration_generator.rb +8 -0
- data/lib/generators/rails/stylesheets/USAGE +5 -0
- data/lib/generators/rails/stylesheets/stylesheets_generator.rb +9 -0
- data/lib/generators/rails/stylesheets/templates/scaffold.css +61 -0
- data/lib/generators/test_unit.rb +8 -0
- data/lib/generators/test_unit/controller/controller_generator.rb +14 -0
- data/lib/generators/test_unit/controller/templates/functional_test.rb +8 -0
- data/lib/generators/test_unit/helper/helper_generator.rb +13 -0
- data/lib/generators/test_unit/helper/templates/helper_test.rb +4 -0
- data/lib/generators/test_unit/integration/integration_generator.rb +13 -0
- data/lib/generators/test_unit/integration/templates/integration_test.rb +10 -0
- data/lib/generators/test_unit/mailer/mailer_generator.rb +21 -0
- data/lib/generators/test_unit/mailer/templates/fixture +3 -0
- data/lib/generators/test_unit/mailer/templates/functional_test.rb +22 -0
- data/lib/generators/test_unit/model/model_generator.rb +24 -0
- data/lib/generators/test_unit/model/templates/fixtures.yml +23 -0
- data/lib/generators/test_unit/model/templates/unit_test.rb +8 -0
- data/lib/generators/test_unit/observer/observer_generator.rb +13 -0
- data/lib/generators/test_unit/observer/templates/unit_test.rb +8 -0
- data/lib/generators/test_unit/performance/performance_generator.rb +13 -0
- data/lib/generators/test_unit/performance/templates/performance_test.rb +9 -0
- data/lib/generators/test_unit/plugin/plugin_generator.rb +13 -0
- data/lib/generators/test_unit/plugin/templates/%file_name%_test.rb.tt +8 -0
- data/lib/generators/test_unit/plugin/templates/test_helper.rb +3 -0
- data/lib/generators/test_unit/scaffold/scaffold_generator.rb +18 -0
- data/lib/generators/test_unit/scaffold/templates/functional_test.rb +47 -0
- data/lib/rails.rb +95 -0
- data/lib/rails/all.rb +14 -0
- data/lib/rails/application.rb +125 -0
- data/lib/rails/application/bootstrap.rb +85 -0
- data/lib/rails/application/configurable.rb +19 -0
- data/lib/rails/application/configuration.rb +86 -0
- data/lib/rails/application/finisher.rb +49 -0
- data/lib/rails/application/metal_loader.rb +50 -0
- data/lib/rails/application/railties.rb +31 -0
- data/lib/rails/application/routes_reloader.rb +46 -0
- data/lib/rails/backtrace_cleaner.rb +54 -0
- data/lib/rails/code_statistics.rb +107 -0
- data/lib/rails/commands.rb +72 -0
- data/lib/rails/commands/application.rb +13 -0
- data/lib/rails/commands/console.rb +55 -0
- data/lib/rails/commands/dbconsole.rb +104 -0
- data/lib/rails/commands/destroy.rb +9 -0
- data/lib/rails/commands/generate.rb +9 -0
- data/lib/rails/commands/performance/benchmarker.rb +23 -0
- data/lib/rails/commands/performance/profiler.rb +46 -0
- data/lib/rails/commands/plugin.rb +542 -0
- data/lib/rails/commands/runner.rb +51 -0
- data/lib/rails/commands/server.rb +75 -0
- data/lib/rails/commands/update.rb +9 -0
- data/lib/rails/configuration.rb +191 -0
- data/lib/rails/console/app.rb +33 -0
- data/lib/rails/console/helpers.rb +5 -0
- data/lib/rails/console/sandbox.rb +6 -0
- data/lib/rails/deprecation.rb +62 -0
- data/lib/rails/dispatcher.rb +24 -0
- data/lib/rails/engine.rb +130 -0
- data/lib/rails/engine/configurable.rb +25 -0
- data/lib/rails/engine/configuration.rb +49 -0
- data/lib/rails/generators.rb +289 -0
- data/lib/rails/generators/actions.rb +309 -0
- data/lib/rails/generators/active_model.rb +78 -0
- data/lib/rails/generators/base.rb +362 -0
- data/lib/rails/generators/generated_attribute.rb +48 -0
- data/lib/rails/generators/migration.rb +64 -0
- data/lib/rails/generators/named_base.rb +95 -0
- data/lib/rails/generators/resource_helpers.rb +80 -0
- data/lib/rails/generators/test_case.rb +239 -0
- data/lib/rails/initializable.rb +97 -0
- data/lib/rails/paths.rb +144 -0
- data/lib/rails/performance_test_help.rb +3 -0
- data/lib/rails/plugin.rb +64 -0
- data/lib/rails/rack.rb +8 -0
- data/lib/rails/rack/debugger.rb +23 -0
- data/lib/rails/rack/log_tailer.rb +33 -0
- data/lib/rails/rack/logger.rb +34 -0
- data/lib/rails/rack/static.rb +5 -0
- data/lib/rails/railtie.rb +74 -0
- data/lib/rails/railtie/configurable.rb +23 -0
- data/lib/rails/railtie/configuration.rb +9 -0
- data/lib/rails/railties_path.rb +1 -0
- data/lib/rails/ruby_version_check.rb +10 -0
- data/lib/rails/rubyprof_ext.rb +35 -0
- data/lib/rails/source_annotation_extractor.rb +102 -0
- data/lib/rails/subscriber.rb +108 -0
- data/lib/rails/subscriber/test_helper.rb +98 -0
- data/lib/rails/tasks.rb +16 -0
- data/lib/rails/tasks/annotations.rake +20 -0
- data/lib/rails/tasks/documentation.rake +96 -0
- data/lib/rails/tasks/framework.rake +69 -0
- data/lib/rails/tasks/log.rake +9 -0
- data/lib/rails/tasks/middleware.rake +7 -0
- data/lib/rails/tasks/misc.rake +71 -0
- data/lib/rails/tasks/routes.rake +17 -0
- data/lib/rails/tasks/statistics.rake +16 -0
- data/lib/rails/tasks/tmp.rake +37 -0
- data/lib/rails/test_help.rb +30 -0
- data/lib/rails/test_unit/railtie.rb +17 -0
- data/lib/rails/test_unit/testing.rake +130 -0
- data/lib/rails/version.rb +9 -0
- data/lib/rails/webrick_server.rb +156 -0
- metadata +427 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
require 'optparse'
|
|
2
|
+
|
|
3
|
+
options = { :environment => (ENV['RAILS_ENV'] || "development").dup }
|
|
4
|
+
code_or_file = nil
|
|
5
|
+
|
|
6
|
+
ARGV.clone.options do |opts|
|
|
7
|
+
script_name = File.basename($0)
|
|
8
|
+
opts.banner = "Usage: runner [options] ('Some.ruby(code)' or a filename)"
|
|
9
|
+
|
|
10
|
+
opts.separator ""
|
|
11
|
+
|
|
12
|
+
opts.on("-e", "--environment=name", String,
|
|
13
|
+
"Specifies the environment for the runner to operate under (test/development/production).",
|
|
14
|
+
"Default: development") { |v| options[:environment] = v }
|
|
15
|
+
|
|
16
|
+
opts.separator ""
|
|
17
|
+
|
|
18
|
+
opts.on("-h", "--help",
|
|
19
|
+
"Show this help message.") { $stderr.puts opts; exit }
|
|
20
|
+
|
|
21
|
+
if RUBY_PLATFORM !~ /mswin/
|
|
22
|
+
opts.separator ""
|
|
23
|
+
opts.separator "You can also use runner as a shebang line for your scripts like this:"
|
|
24
|
+
opts.separator "-------------------------------------------------------------"
|
|
25
|
+
opts.separator "#!/usr/bin/env #{File.expand_path($0)}"
|
|
26
|
+
opts.separator ""
|
|
27
|
+
opts.separator "Product.find(:all).each { |p| p.price *= 2 ; p.save! }"
|
|
28
|
+
opts.separator "-------------------------------------------------------------"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
opts.order! { |o| code_or_file ||= o } rescue retry
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
ARGV.delete(code_or_file)
|
|
35
|
+
|
|
36
|
+
ENV["RAILS_ENV"] = options[:environment]
|
|
37
|
+
|
|
38
|
+
begin
|
|
39
|
+
if code_or_file.nil?
|
|
40
|
+
$stderr.puts "Run '#{$0} -h' for help."
|
|
41
|
+
exit 1
|
|
42
|
+
elsif File.exist?(code_or_file)
|
|
43
|
+
eval(File.read(code_or_file), nil, code_or_file)
|
|
44
|
+
else
|
|
45
|
+
eval(code_or_file)
|
|
46
|
+
end
|
|
47
|
+
ensure
|
|
48
|
+
if defined? Rails
|
|
49
|
+
Rails.logger.flush if Rails.logger.respond_to?(:flush)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
require 'fileutils'
|
|
2
|
+
require 'optparse'
|
|
3
|
+
require 'action_dispatch'
|
|
4
|
+
|
|
5
|
+
module Rails
|
|
6
|
+
class Server < ::Rack::Server
|
|
7
|
+
class Options
|
|
8
|
+
def parse!(args)
|
|
9
|
+
options = {}
|
|
10
|
+
args = args.dup
|
|
11
|
+
opt_parser = OptionParser.new do |opts|
|
|
12
|
+
opts.on("-p", "--port=port", Integer,
|
|
13
|
+
"Runs Rails on the specified port.", "Default: #{options[:Port]}") { |v| options[:Port] = v }
|
|
14
|
+
opts.on("-b", "--binding=ip", String,
|
|
15
|
+
"Binds Rails to the specified ip.", "Default: #{options[:Host]}") { |v| options[:Host] = v }
|
|
16
|
+
opts.on("-c", "--config=file", String,
|
|
17
|
+
"Use custom rackup configuration file") { |v| options[:config] = v }
|
|
18
|
+
opts.on("-d", "--daemon", "Make server run as a Daemon.") { options[:daemonize] = true }
|
|
19
|
+
opts.on("-u", "--debugger", "Enable ruby-debugging for the server.") { options[:debugger] = true }
|
|
20
|
+
opts.on("-e", "--environment=name", String,
|
|
21
|
+
"Specifies the environment to run this server under (test/development/production).",
|
|
22
|
+
"Default: #{options[:environment]}") { |v| options[:environment] = v }
|
|
23
|
+
|
|
24
|
+
opts.separator ""
|
|
25
|
+
|
|
26
|
+
opts.on("-h", "--help", "Show this help message.") { puts opts; exit }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
opt_parser.parse! args
|
|
30
|
+
|
|
31
|
+
options[:server] = args.shift
|
|
32
|
+
options
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def opt_parser
|
|
37
|
+
Options.new
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def start
|
|
41
|
+
ENV["RAILS_ENV"] = options[:environment]
|
|
42
|
+
|
|
43
|
+
puts "=> Booting #{ActiveSupport::Inflector.demodulize(server)}"
|
|
44
|
+
puts "=> Rails #{Rails.version} application starting in #{Rails.env} on http://#{options[:Host]}:#{options[:Port]}"
|
|
45
|
+
puts "=> Call with -d to detach" unless options[:daemonize]
|
|
46
|
+
trap(:INT) { exit }
|
|
47
|
+
puts "=> Ctrl-C to shutdown server" unless options[:daemonize]
|
|
48
|
+
|
|
49
|
+
super
|
|
50
|
+
ensure
|
|
51
|
+
puts 'Exiting' unless options[:daemonize]
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def middleware
|
|
55
|
+
middlewares = []
|
|
56
|
+
middlewares << [Rails::Rack::LogTailer, log_path] unless options[:daemonize]
|
|
57
|
+
middlewares << [Rails::Rack::Debugger] if options[:debugger]
|
|
58
|
+
Hash.new(middlewares)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def log_path
|
|
62
|
+
"log/#{options[:environment]}.log"
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def default_options
|
|
66
|
+
super.merge({
|
|
67
|
+
:Port => 3000,
|
|
68
|
+
:environment => (ENV['RAILS_ENV'] || "development").dup,
|
|
69
|
+
:daemonize => false,
|
|
70
|
+
:debugger => false,
|
|
71
|
+
:pid => "tmp/pids/server.pid"
|
|
72
|
+
})
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
require 'active_support/ordered_options'
|
|
2
|
+
require 'rails/paths'
|
|
3
|
+
require 'rails/rack'
|
|
4
|
+
|
|
5
|
+
module Rails
|
|
6
|
+
module Configuration
|
|
7
|
+
module Shared
|
|
8
|
+
def middleware
|
|
9
|
+
@@default_middleware_stack ||= ActionDispatch::MiddlewareStack.new.tap do |middleware|
|
|
10
|
+
middleware.use('::ActionDispatch::Static', lambda { Rails.public_path }, :if => lambda { Rails.application.config.serve_static_assets })
|
|
11
|
+
middleware.use('::Rack::Lock', :if => lambda { !Rails.application.config.allow_concurrency })
|
|
12
|
+
middleware.use('::Rack::Runtime')
|
|
13
|
+
middleware.use('::Rails::Rack::Logger')
|
|
14
|
+
middleware.use('::ActionDispatch::ShowExceptions', lambda { Rails.application.config.consider_all_requests_local })
|
|
15
|
+
middleware.use('::ActionDispatch::Callbacks', lambda { !Rails.application.config.cache_classes })
|
|
16
|
+
middleware.use('::ActionDispatch::Cookies')
|
|
17
|
+
middleware.use(lambda { ActionController::Base.session_store }, lambda { ActionController::Base.session_options })
|
|
18
|
+
middleware.use('::ActionDispatch::Flash', :if => lambda { ActionController::Base.session_store })
|
|
19
|
+
middleware.use(lambda { Rails.application.metal_loader.build_middleware(Rails.application.config.metals) }, :if => lambda { Rails.application.metal_loader.metals.any? })
|
|
20
|
+
middleware.use('ActionDispatch::ParamsParser')
|
|
21
|
+
middleware.use('::Rack::MethodOverride')
|
|
22
|
+
middleware.use('::ActionDispatch::Head')
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Holds generators configuration:
|
|
27
|
+
#
|
|
28
|
+
# config.generators do |g|
|
|
29
|
+
# g.orm :datamapper, :migration => true
|
|
30
|
+
# g.template_engine :haml
|
|
31
|
+
# g.test_framework :rspec
|
|
32
|
+
# end
|
|
33
|
+
#
|
|
34
|
+
# If you want to disable color in console, do:
|
|
35
|
+
#
|
|
36
|
+
# config.generators.colorize_logging = false
|
|
37
|
+
#
|
|
38
|
+
def generators
|
|
39
|
+
@@generators ||= Rails::Configuration::Generators.new
|
|
40
|
+
if block_given?
|
|
41
|
+
yield @@generators
|
|
42
|
+
else
|
|
43
|
+
@@generators
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def after_initialize_blocks
|
|
48
|
+
@@after_initialize_blocks ||= []
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def after_initialize(&blk)
|
|
52
|
+
after_initialize_blocks << blk if blk
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def to_prepare_blocks
|
|
56
|
+
@@to_prepare_blocks ||= []
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def to_prepare(&blk)
|
|
60
|
+
to_prepare_blocks << blk if blk
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def respond_to?(name)
|
|
64
|
+
super || name.to_s =~ config_key_regexp
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
private
|
|
68
|
+
|
|
69
|
+
def method_missing(name, *args, &blk)
|
|
70
|
+
if name.to_s =~ config_key_regexp
|
|
71
|
+
return $2 == '=' ? options[$1] = args.first : options[$1]
|
|
72
|
+
end
|
|
73
|
+
super
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def config_key_regexp
|
|
77
|
+
bits = config_keys.map { |n| Regexp.escape(n.to_s) }.join('|')
|
|
78
|
+
/^(#{bits})(?:=)?$/
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def config_keys
|
|
82
|
+
(Railtie.railtie_names + Engine.engine_names).map { |n| n.to_s }.uniq
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def options
|
|
86
|
+
@@options ||= Hash.new { |h,k| h[k] = ActiveSupport::OrderedOptions.new }
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
class Generators #:nodoc:
|
|
91
|
+
attr_accessor :aliases, :options, :fallbacks, :colorize_logging
|
|
92
|
+
|
|
93
|
+
def initialize
|
|
94
|
+
@aliases = Hash.new { |h,k| h[k] = {} }
|
|
95
|
+
@options = Hash.new { |h,k| h[k] = {} }
|
|
96
|
+
@fallbacks = {}
|
|
97
|
+
@colorize_logging = true
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def method_missing(method, *args)
|
|
101
|
+
method = method.to_s.sub(/=$/, '').to_sym
|
|
102
|
+
|
|
103
|
+
return @options[method] if args.empty?
|
|
104
|
+
|
|
105
|
+
if method == :rails
|
|
106
|
+
namespace, configuration = :rails, args.shift
|
|
107
|
+
elsif args.first.is_a?(Hash)
|
|
108
|
+
namespace, configuration = method, args.shift
|
|
109
|
+
else
|
|
110
|
+
namespace, configuration = args.shift, args.shift
|
|
111
|
+
@options[:rails][method] = namespace
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
if configuration
|
|
115
|
+
aliases = configuration.delete(:aliases)
|
|
116
|
+
@aliases[namespace].merge!(aliases) if aliases
|
|
117
|
+
@options[namespace].merge!(configuration)
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
module Deprecated
|
|
123
|
+
def frameworks(*args)
|
|
124
|
+
raise "config.frameworks in no longer supported. See the generated " \
|
|
125
|
+
"config/boot.rb for steps on how to limit the frameworks that " \
|
|
126
|
+
"will be loaded"
|
|
127
|
+
end
|
|
128
|
+
alias :frameworks= :frameworks
|
|
129
|
+
|
|
130
|
+
def view_path=(value)
|
|
131
|
+
ActiveSupport::Deprecation.warn "config.view_path= is deprecated, " <<
|
|
132
|
+
"please do paths.app.views= instead", caller
|
|
133
|
+
paths.app.views = value
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def view_path
|
|
137
|
+
ActiveSupport::Deprecation.warn "config.view_path is deprecated, " <<
|
|
138
|
+
"please do paths.app.views instead", caller
|
|
139
|
+
paths.app.views.to_a.first
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def routes_configuration_file=(value)
|
|
143
|
+
ActiveSupport::Deprecation.warn "config.routes_configuration_file= is deprecated, " <<
|
|
144
|
+
"please do paths.config.routes= instead", caller
|
|
145
|
+
paths.config.routes = value
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def routes_configuration_file
|
|
149
|
+
ActiveSupport::Deprecation.warn "config.routes_configuration_file is deprecated, " <<
|
|
150
|
+
"please do paths.config.routes instead", caller
|
|
151
|
+
paths.config.routes.to_a.first
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def database_configuration_file=(value)
|
|
155
|
+
ActiveSupport::Deprecation.warn "config.database_configuration_file= is deprecated, " <<
|
|
156
|
+
"please do paths.config.database= instead", caller
|
|
157
|
+
paths.config.database = value
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def database_configuration_file
|
|
161
|
+
ActiveSupport::Deprecation.warn "config.database_configuration_file is deprecated, " <<
|
|
162
|
+
"please do paths.config.database instead", caller
|
|
163
|
+
paths.config.database.to_a.first
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
def log_path=(value)
|
|
167
|
+
ActiveSupport::Deprecation.warn "config.log_path= is deprecated, " <<
|
|
168
|
+
"please do paths.log= instead", caller
|
|
169
|
+
paths.config.log = value
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def log_path
|
|
173
|
+
ActiveSupport::Deprecation.warn "config.log_path is deprecated, " <<
|
|
174
|
+
"please do paths.log instead", caller
|
|
175
|
+
paths.config.log.to_a.first
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
def controller_paths=(value)
|
|
179
|
+
ActiveSupport::Deprecation.warn "config.controller_paths= is deprecated, " <<
|
|
180
|
+
"please do paths.app.controllers= instead", caller
|
|
181
|
+
paths.app.controllers = value
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
def controller_paths
|
|
185
|
+
ActiveSupport::Deprecation.warn "config.controller_paths is deprecated, " <<
|
|
186
|
+
"please do paths.app.controllers instead", caller
|
|
187
|
+
paths.app.controllers.to_a.uniq
|
|
188
|
+
end
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'active_support/all'
|
|
2
|
+
require 'active_support/test_case'
|
|
3
|
+
require 'action_controller'
|
|
4
|
+
|
|
5
|
+
# work around the at_exit hook in test/unit, which kills IRB
|
|
6
|
+
Test::Unit.run = true if Test::Unit.respond_to?(:run=)
|
|
7
|
+
|
|
8
|
+
# reference the global "app" instance, created on demand. To recreate the
|
|
9
|
+
# instance, pass a non-false value as the parameter.
|
|
10
|
+
def app(create=false)
|
|
11
|
+
@app_integration_instance = nil if create
|
|
12
|
+
@app_integration_instance ||= new_session do |sess|
|
|
13
|
+
sess.host! "www.example.com"
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# create a new session. If a block is given, the new session will be yielded
|
|
18
|
+
# to the block before being returned.
|
|
19
|
+
def new_session
|
|
20
|
+
app = ActionController::Dispatcher.new
|
|
21
|
+
session = ActionController::Integration::Session.new(app)
|
|
22
|
+
yield session if block_given?
|
|
23
|
+
session
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# reloads the environment
|
|
27
|
+
def reload!(print=true)
|
|
28
|
+
puts "Reloading..." if print
|
|
29
|
+
ActionDispatch::Callbacks.new(lambda {}, false)
|
|
30
|
+
true
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
reload!(false)
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
require "active_support/string_inquirer"
|
|
2
|
+
require "active_support/deprecation"
|
|
3
|
+
|
|
4
|
+
RAILS_ROOT = (Class.new(ActiveSupport::Deprecation::DeprecationProxy) do
|
|
5
|
+
cattr_accessor :warned
|
|
6
|
+
self.warned = false
|
|
7
|
+
|
|
8
|
+
def target
|
|
9
|
+
Rails.root
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def replace(*args)
|
|
13
|
+
warn(caller, :replace, *args)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def warn(callstack, called, args)
|
|
17
|
+
unless warned
|
|
18
|
+
ActiveSupport::Deprecation.warn("RAILS_ROOT is deprecated! Use Rails.root instead", callstack)
|
|
19
|
+
self.warned = true
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end).new
|
|
23
|
+
|
|
24
|
+
RAILS_ENV = (Class.new(ActiveSupport::Deprecation::DeprecationProxy) do
|
|
25
|
+
cattr_accessor :warned
|
|
26
|
+
self.warned = false
|
|
27
|
+
|
|
28
|
+
def target
|
|
29
|
+
Rails.env
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def replace(*args)
|
|
33
|
+
warn(caller, :replace, *args)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def warn(callstack, called, args)
|
|
37
|
+
unless warned
|
|
38
|
+
ActiveSupport::Deprecation.warn("RAILS_ENV is deprecated! Use Rails.env instead", callstack)
|
|
39
|
+
self.warned = true
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end).new
|
|
43
|
+
|
|
44
|
+
RAILS_DEFAULT_LOGGER = (Class.new(ActiveSupport::Deprecation::DeprecationProxy) do
|
|
45
|
+
cattr_accessor :warned
|
|
46
|
+
self.warned = false
|
|
47
|
+
|
|
48
|
+
def target
|
|
49
|
+
Rails.logger
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def replace(*args)
|
|
53
|
+
warn(caller, :replace, *args)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def warn(callstack, called, args)
|
|
57
|
+
unless warned
|
|
58
|
+
ActiveSupport::Deprecation.warn("RAILS_DEFAULT_LOGGER is deprecated! Use Rails.logger instead", callstack)
|
|
59
|
+
self.warned = true
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end).new
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Copyright (c) 2004-2010 David Heinemeier Hansson
|
|
3
|
+
#
|
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
|
+
# a copy of this software and associated documentation files (the
|
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
10
|
+
# the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be
|
|
13
|
+
# included in all copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
|
+
#++
|
|
23
|
+
require 'action_controller/deprecated/dispatcher'
|
|
24
|
+
Dispatcher = ActionController::Dispatcher
|