diff options
| -rw-r--r-- | lib/zero/request/server.rb | 7 | ||||
| -rw-r--r-- | spec/unit/zero/request/server/name_spec.rb | 20 | 
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 + | 
