diff options
author | Joshua Peek <josh@joshpeek.com> | 2009-08-03 10:33:18 -0500 |
---|---|---|
committer | Joshua Peek <josh@joshpeek.com> | 2009-08-03 12:25:57 -0500 |
commit | 488cf8091bb5d0262c784da40fa2b60d874e7303 (patch) | |
tree | 0a74f5e1a9293c87d2a708c703d2b6f59cc29b52 | |
parent | 9a1e52b240be1e8cb62989739fba4d7e46681a1d (diff) | |
download | rack-488cf8091bb5d0262c784da40fa2b60d874e7303.tar.gz |
Return an empty string for Request#host if HTTP_HOST and SERVER_NAME are both missing
-rw-r--r-- | lib/rack/request.rb | 2 | ||||
-rw-r--r-- | test/spec_rack_request.rb | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/rack/request.rb b/lib/rack/request.rb index be534a85..2f64bd6c 100644 --- a/lib/rack/request.rb +++ b/lib/rack/request.rb @@ -65,7 +65,7 @@ module Rack def host # Remove port number. - (@env["HTTP_HOST"] || @env["SERVER_NAME"]).gsub(/:\d+\z/, '') + (@env["HTTP_HOST"] || @env["SERVER_NAME"]).to_s.gsub(/:\d+\z/, '') end def script_name=(s); @env["SCRIPT_NAME"] = s.to_s end diff --git a/test/spec_rack_request.rb b/test/spec_rack_request.rb index 7e4be775..74e2f00a 100644 --- a/test/spec_rack_request.rb +++ b/test/spec_rack_request.rb @@ -37,6 +37,11 @@ context "Rack::Request" do req = Rack::Request.new \ Rack::MockRequest.env_for("/", "SERVER_NAME" => "example.org:9292") req.host.should.equal "example.org" + + env = Rack::MockRequest.env_for("/") + env.delete("SERVER_NAME") + req = Rack::Request.new(env) + req.host.should.equal "" end specify "can parse the query string" do |