diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2017-08-08 15:10:31 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-08 15:10:31 -0400 |
commit | 21c9c5782e0eaf00769e01164e73d3fa6d3709ac (patch) | |
tree | 5346e312df76dc825120534e254437815266d6a2 /railties | |
parent | 1422e9f9c90462c10d1b0abe6f63f4f6639a8bc3 (diff) | |
parent | f2173648938b418d120f5a68d8f3862d8ae9dace (diff) | |
download | rails-21c9c5782e0eaf00769e01164e73d3fa6d3709ac.tar.gz rails-21c9c5782e0eaf00769e01164e73d3fa6d3709ac.tar.bz2 rails-21c9c5782e0eaf00769e01164e73d3fa6d3709ac.zip |
Merge pull request #30127 from y-yagi/deprecate_support_of_older_config_ru
Deprecate support of older `config.ru`
Diffstat (limited to 'railties')
-rw-r--r-- | railties/CHANGELOG.md | 4 | ||||
-rw-r--r-- | railties/lib/rails/commands/server/server_command.rb | 9 | ||||
-rw-r--r-- | railties/test/application/server_test.rb | 31 |
3 files changed, 43 insertions, 1 deletions
diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md index 43210ead16..73793be78c 100644 --- a/railties/CHANGELOG.md +++ b/railties/CHANGELOG.md @@ -1,3 +1,7 @@ +* Deprecate support of use `Rails::Application` subclass to start Rails server. + + *Yuji Yaginuma* + * Add `ruby x.x.x` version to `Gemfile` and create `.ruby-version` root file containing the current Ruby version when new Rails applications are created. diff --git a/railties/lib/rails/commands/server/server_command.rb b/railties/lib/rails/commands/server/server_command.rb index ce258341f6..de69b4586b 100644 --- a/railties/lib/rails/commands/server/server_command.rb +++ b/railties/lib/rails/commands/server/server_command.rb @@ -2,6 +2,8 @@ require "fileutils" require "optparse" require "action_dispatch" require "rails" +require "active_support/deprecation" +require "active_support/core_ext/string/filters" require_relative "../../dev_caching" module Rails @@ -18,10 +20,15 @@ module Rails set_environment end - # TODO: this is no longer required but we keep it for the moment to support older config.ru files. def app @app ||= begin app = super + if app.is_a?(Class) + ActiveSupport::Deprecation.warn(<<-MSG.squish) + Use `Rails::Application` subclass to start the server is deprecated and will be removed in Rails 6.0. + Please change `run #{app}` to `run Rails.application` in config.ru. + MSG + end app.respond_to?(:to_app) ? app.to_app : app end end diff --git a/railties/test/application/server_test.rb b/railties/test/application/server_test.rb new file mode 100644 index 0000000000..07880a5025 --- /dev/null +++ b/railties/test/application/server_test.rb @@ -0,0 +1,31 @@ +require "isolation/abstract_unit" +require "rails/command" +require "rails/commands/server/server_command" + +module ApplicationTests + class ServerTest < ActiveSupport::TestCase + include ActiveSupport::Testing::Isolation + + def setup + build_app + end + + def teardown + teardown_app + end + + test "deprecate support of older `config.ru`" do + remove_file "config.ru" + app_file "config.ru", <<-RUBY + require_relative 'config/environment' + run AppTemplate::Application + RUBY + + server = Rails::Server.new(config: "#{app_path}/config.ru") + server.app + + log = File.read(Rails.application.config.paths["log"].first) + assert_match(/DEPRECATION WARNING: Use `Rails::Application` subclass to start the server is deprecated/, log) + end + end +end |