Class: SiteDiff::Webserver

Inherits:
Object
  • Object
show all
Defined in:
lib/sitediff/webserver.rb,
lib/sitediff/webserver/resultserver.rb

Overview

SiteDiff Web Server.

Direct Known Subclasses

FixtureServer, ResultServer

Defined Under Namespace

Classes: FixtureServer, ResultServer

Constant Summary collapse

DEFAULT_PORT =

Simple web server for testing purposes.

13_080

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(start_port, dirs, opts = {}) ⇒ Webserver

Serve a list of directories.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/sitediff/webserver.rb', line 15

def initialize(start_port, dirs, opts = {})
  start_port ||= DEFAULT_PORT
  @ports = (start_port...(start_port + dirs.size)).to_a
  @dirs = dirs
  @opts = opts

  setup
  start_servers

  if block_given?
    yield self
    kill
  end
end

Instance Attribute Details

#portsObject

Returns the value of attribute ports.



11
12
13
# File 'lib/sitediff/webserver.rb', line 11

def ports
  @ports
end

Instance Method Details

#killObject

Kills the server.



32
33
34
# File 'lib/sitediff/webserver.rb', line 32

def kill
  @threads.each(&:kill)
end

#urisObject

Maps URIs to defined ports and returns a list of URIs.



44
45
46
# File 'lib/sitediff/webserver.rb', line 44

def uris
  ports.map { |p| "http://localhost:#{p}" }
end

#waitObject

Waits for the server.



38
39
40
# File 'lib/sitediff/webserver.rb', line 38

def wait
  @threads.each(&:join)
end