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.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(uri = nil) ⇒ Site

Creates a new Site based on the given URI.


35
36
37
38
39
40
41
42
43
44
45
# File 'lib/httpclient/session.rb', line 35

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

Instance Attribute Details

#hostObject (readonly)

Host String.


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

def host
  @host
end

#portObject (readonly)

Port number.


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

def port
  @port
end

#schemeObject

Protocol scheme.


28
29
30
# File 'lib/httpclient/session.rb', line 28

def scheme
  @scheme
end

Instance Method Details

#==(rhs) ⇒ Object

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


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

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

#addrObject

Returns address String.


48
49
50
# File 'lib/httpclient/session.rb', line 48

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

#eql?(rhs) ⇒ Boolean

Same as ==.

Returns:

  • (Boolean)

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

def eql?(rhs)
  self == rhs
end

#hashObject

:nodoc:


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

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

#inspectObject

:nodoc:


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

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.


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

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

#to_sObject

:nodoc:


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

def to_s # :nodoc:
  addr
end