Class: Testjour::Bonjour

Inherits:
Object
  • Object
show all
Defined in:
lib/testjour/bonjour.rb

Defined Under Namespace

Classes: Server

Class Method Summary collapse

Class Method Details

.listObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/testjour/bonjour.rb', line 29

def self.list
  hosts = []

  service = DNSSD.browse(SERVICE) do |reply|
    DNSSD.resolve(reply.name, reply.type, reply.domain) do |rr|
      server = Server.new(reply.name, rr.target, rr.port)
      hosts << server unless hosts.any? { |h| h == server }
    end
  end

  sleep 3
  service.stop
  return hosts
end

.serve(port) ⇒ Object



44
45
46
47
48
49
50
51
52
53
# File 'lib/testjour/bonjour.rb', line 44

def self.serve(port)
  name = ENV['USER']

  tr = DNSSD::TextRecord.new
  tr['description'] = "#{name}'s testjour server"

  DNSSD.register(name, SERVICE, "local", port, tr.encode) do |reply|
    Testjour.logger.info "Broadcasting: Ready to run tests under name '#{name}' on port #{port}..."
  end
end