Class: Bookwatch::ServerDirector

Inherits:
Object
  • Object
show all
Defined in:
lib/bookwatch/server_director.rb

Instance Method Summary collapse

Constructor Details

#initialize(app: nil, directory: nil, port: 41722) ⇒ ServerDirector

Returns a new instance of ServerDirector.



5
6
7
8
9
# File 'lib/bookwatch/server_director.rb', line 5

def initialize(app: nil, directory: nil, port: 41722)
  @app = app
  @directory = directory
  @port = port
end

Instance Method Details

#use_serverObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/bookwatch/server_director.rb', line 11

def use_server
  Dir.chdir(@directory) do
    events = Puma::Events.new $stdout, $stderr
    server = Puma::Server.new app, events
    server.add_tcp_listener "localhost", @port
    server.run
    begin
      result = yield @port
    ensure
      server.stop(true)
    end
    result
  end
end