aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGibheer <gibheer@gmail.com>2013-07-22 15:17:28 +0200
committerGibheer <gibheer@gmail.com>2013-07-22 15:17:28 +0200
commit94a2d399eb81d59f9d66c5d16121611c4d1ae0cd (patch)
tree8bbeeb9ddf8909bbbd35789595952998eb38af12
parent7fd2f6b25b2abd48a7292f7598e53ebd357e24f7 (diff)
generate a name from the server details
-rw-r--r--lib/zero/request/server.rb7
-rw-r--r--spec/unit/zero/request/server/name_spec.rb20
2 files changed, 27 insertions, 0 deletions
diff --git a/lib/zero/request/server.rb b/lib/zero/request/server.rb
index 0aa82c8..c301fd1 100644
--- a/lib/zero/request/server.rb
+++ b/lib/zero/request/server.rb
@@ -36,6 +36,13 @@ module Zero
# get the server software
# @return [String] the server software name
attr_reader :software
+
+ # returns the full name of the server
+ # @return [String] the full address to the server
+ def name
+ return @name if @name
+ @name = protocol + '://' + hostname + ':' + port.to_s
+ end
end
end
end
diff --git a/spec/unit/zero/request/server/name_spec.rb b/spec/unit/zero/request/server/name_spec.rb
new file mode 100644
index 0000000..0537fb7
--- /dev/null
+++ b/spec/unit/zero/request/server/name_spec.rb
@@ -0,0 +1,20 @@
+require 'spec_helper'
+
+describe Zero::Request::Server, '#name' do
+ subject { Zero::Request::Server.new(env) }
+ let(:hostname) { 'FooName' }
+ let(:port) { '80' }
+ let(:protocol) { 'http' }
+ let(:result) { 'http://FooName:80' }
+
+ let(:env) { EnvGenerator.get('/foo', {
+ 'SERVER_NAME' => hostname,
+ 'SERVER_PROTOCOL' => protocol,
+ 'SERVER_PORT' => port
+ }) }
+
+ it "generates a name" do
+ expect(subject.name).to match(result)
+ end
+end
+