Class: HTTPClient::Site

Inherits:
Object
  • Object
show all
Defined in:
lib/httpclient/session.rb

Overview

Represents a Site: protocol scheme, host String and port Number.

Constant Summary collapse

EMPTY =
Site.new.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(uri = nil) ⇒ Site

Creates a new Site based on the given URI.


39
40
41
42
43
44
45
46
47
48
49
# File 'lib/httpclient/session.rb', line 39

def initialize(uri = nil)
  if uri
    @scheme = uri.scheme || 'tcp'
    @host = uri.hostname || '0.0.0.0'
    @port = uri.port.to_i
  else
    @scheme = 'tcp'
    @host = '0.0.0.0'
    @port = 0
  end
end

Instance Attribute Details

#hostObject Also known as: hostname

Host String.


33
34
35
# File 'lib/httpclient/session.rb', line 33

def host
  @host
end

#portObject

Port number.


36
37
38
# File 'lib/httpclient/session.rb', line 36

def port
  @port
end

#schemeObject

Protocol scheme.


31
32
33
# File 'lib/httpclient/session.rb', line 31

def scheme
  @scheme
end

Instance Method Details

#==(rhs) ⇒ Object

Returns true is scheme, host and port are '=='


57
58
59
# File 'lib/httpclient/session.rb', line 57

def ==(rhs)
  (@scheme == rhs.scheme) and (@host == rhs.host) and (@port == rhs.port)
end

#addrObject

Returns address String.


52
53
54
# File 'lib/httpclient/session.rb', line 52

def addr
  "#{@scheme}://#{@host}:#{@port.to_s}"
end

#eql?(rhs) ⇒ Boolean

Same as ==.


62
63
64
# File 'lib/httpclient/session.rb', line 62

def eql?(rhs)
  self == rhs
end

#hashObject

:nodoc:


66
67
68
# File 'lib/httpclient/session.rb', line 66

def hash # :nodoc:
  [@scheme, @host, @port].hash
end

#inspectObject

:nodoc:


79
80
81
# File 'lib/httpclient/session.rb', line 79

def inspect # :nodoc:
  sprintf("#<%s:0x%x %s>", self.class.name, __id__, addr)
end

#match(uri) ⇒ Object

Returns true if scheme, host and port of the given URI matches with this.


75
76
77
# File 'lib/httpclient/session.rb', line 75

def match(uri)
  (@scheme == uri.scheme) and (@host == uri.host) and (@port == uri.port.to_i)
end

#to_sObject

:nodoc:


70
71
72
# File 'lib/httpclient/session.rb', line 70

def to_s # :nodoc:
  addr
end