Class: RealWeb::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/realweb/server.rb

Direct Known Subclasses

ForkingServer, ThreadServer

Constant Summary collapse

DEFAULT_PORT_RANGE =
8000..10000
DEFAULT_HOST =
'127.0.0.1'
DEFAULT_LOGGER =
Logger.new(StringIO.new)

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config_ru, options = {}) {|_self| ... } ⇒ Server

Returns a new instance of Server.

Yields:

  • (_self)

Yield Parameters:



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

def initialize(config_ru, options = {})
  @config_ru  = config_ru
  @running    = false

  @port_range = options.delete(:port_range) || DEFAULT_PORT_RANGE
  @logger     = options.delete(:logger)     || DEFAULT_LOGGER
  @host       = options.delete(:host)       || DEFAULT_HOST

  @pre_spawn_callback = options.delete(:pre_spawn_callback)

  @rack_options = options

  yield self if block_given?
end

Instance Attribute Details

#hostObject (readonly)

Returns the value of attribute host.



3
4
5
# File 'lib/realweb/server.rb', line 3

def host
  @host
end

Class Method Details

.with_rackup(*args) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/realweb/server.rb', line 9

def self.with_rackup(*args)
  new(*args) do |server|
    server.start
    yield server if block_given?
    server.stop
  end
end

Instance Method Details

#base_uriObject



52
53
54
# File 'lib/realweb/server.rb', line 52

def base_uri
  URI.parse("http://#{host}:#{port}/")
end

#portObject



32
33
34
# File 'lib/realweb/server.rb', line 32

def port
  @port ||= find_port
end

#running?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/realweb/server.rb', line 36

def running?
  @running
end

#startObject



40
41
42
43
44
45
46
# File 'lib/realweb/server.rb', line 40

def start
  return if running?
  run_pre_spawn
  spawn_server
  wait_for_server
  @running = true
end

#stopObject



48
49
50
# File 'lib/realweb/server.rb', line 48

def stop
  @running = false
end