Class: Teaspoon::Server

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeServer

Returns a new instance of Server.



9
10
11
12
# File 'lib/teaspoon/server.rb', line 9

def initialize
  @host = Teaspoon.configuration.server_host || "127.0.0.1"
  @port = Teaspoon.configuration.server_port || find_available_port
end

Instance Attribute Details

#hostObject

Returns the value of attribute host.



7
8
9
# File 'lib/teaspoon/server.rb', line 7

def host
  @host
end

#portObject

Returns the value of attribute port.



7
8
9
# File 'lib/teaspoon/server.rb', line 7

def port
  @port
end

Instance Method Details

#responsive?Boolean

Returns:

  • (Boolean)


27
28
29
30
31
32
# File 'lib/teaspoon/server.rb', line 27

def responsive?
  TCPSocket.new(host, port).close
  true
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
  false
end

#startObject



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/teaspoon/server.rb', line 14

def start
  return if responsive?

  thread = Thread.new do
    disable_logging
    server = Rack::Server.new(rack_options)
    server.start
  end
  wait_until_started(thread)
rescue => e
  raise Teaspoon::ServerError.new(desc: e.message)
end

#urlObject



34
35
36
# File 'lib/teaspoon/server.rb', line 34

def url
  "http://#{host}:#{port}"
end