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 +