diff options
author | Jon Moss <me@jonathanmoss.me> | 2017-03-21 19:07:40 -0400 |
---|---|---|
committer | Jon Moss <me@jonathanmoss.me> | 2017-03-21 19:07:40 -0400 |
commit | d0accc23b3d01a7d35e73c5dc901014d883ef5f7 (patch) | |
tree | 9c344c7ee7abd7a5bb0a009c86b9b1b8b31ee28d /railties | |
parent | 88b16843f67bcd96395444ba8f139895351da0bc (diff) | |
download | rails-d0accc23b3d01a7d35e73c5dc901014d883ef5f7.tar.gz rails-d0accc23b3d01a7d35e73c5dc901014d883ef5f7.tar.bz2 rails-d0accc23b3d01a7d35e73c5dc901014d883ef5f7.zip |
CLI arg "host" has precedence over ENV var "host"
This is a regression from when the server command switched to its own
argument parser, as opposed to Rack's. Rack's argument parser, when
provided with a "host" argument, gives that value precedence over
environment variables.
Diffstat (limited to 'railties')
-rw-r--r-- | railties/lib/rails/commands/server/server_command.rb | 6 | ||||
-rw-r--r-- | railties/test/commands/server_test.rb | 8 |
2 files changed, 12 insertions, 2 deletions
diff --git a/railties/lib/rails/commands/server/server_command.rb b/railties/lib/rails/commands/server/server_command.rb index 7e8c86fb49..278fe63c51 100644 --- a/railties/lib/rails/commands/server/server_command.rb +++ b/railties/lib/rails/commands/server/server_command.rb @@ -188,10 +188,12 @@ module Rails end def host - unless (default_host = options[:binding]) + if options[:binding] + options[:binding] + else default_host = environment == "development" ? "localhost" : "0.0.0.0" + ENV.fetch("HOST", default_host) end - ENV.fetch("HOST", default_host) end def environment diff --git a/railties/test/commands/server_test.rb b/railties/test/commands/server_test.rb index d21a80982b..2d1f071969 100644 --- a/railties/test/commands/server_test.rb +++ b/railties/test/commands/server_test.rb @@ -139,6 +139,14 @@ class Rails::ServerTest < ActiveSupport::TestCase end end + def test_argument_precedence_over_environment_variable + switch_env "HOST", "1.2.3.4" do + args = ["-b", "127.0.0.1"] + options = parse_arguments(args) + assert_equal "127.0.0.1", options[:Host] + end + end + def test_records_user_supplied_options server_options = parse_arguments(["-p", 3001]) assert_equal [:Port], server_options[:user_supplied_options] |