Class: DeepTest::DRbBindAllTCPSocket

Inherits:
DRb::DRbTCPSocket
  • Object
show all
Defined in:
lib/deep_test/extensions/drb_extension.rb

Class Method Summary collapse

Class Method Details

.open_server(uri, config) ⇒ Object

Open a server listening for connections at uri using configuration config.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/deep_test/extensions/drb_extension.rb', line 17

def self.open_server(uri, config)
  uri = 'drubyall://:0' unless uri
  host, port, opt = parse_uri(uri)

  if host.size == 0
    host = getservername
  end

  DeepTest.logger.debug("Listening on port #{port}, all addresses.")
 soc = TCPServer.open('0.0.0.0', port)  	    
  port = soc.addr[1] if port == 0
  uri = "druby://#{host}:#{port}"
  self.new(uri, soc, config)
end

.parse_uri(uri) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
# File 'lib/deep_test/extensions/drb_extension.rb', line 3

def self.parse_uri(uri)
  if uri =~ /^drubyall:\/\/(.*?):(\d+)(\?(.*))?$/
  	host = $1
  	port = $2.to_i
  	option = $4
  	[host, port, option]
  else
  	raise(DRb::DRbBadScheme, uri) unless uri =~ /^drubyall:/
  	raise(DRb::DRbBadURI, 'can\'t parse uri:' + uri)
	end
end