class Bookwatch::ServerDirector

Attributes

app[R]

Public Class Methods

new(app: nil, directory: nil, port: 41722) click to toggle source
# File lib/bookwatch/server_director.rb, line 5
def initialize(app: nil, directory: nil, port: 41722)
  @app = app
  @directory = directory
  @port = port
end

Public Instance Methods

use_server() { |port| ... } click to toggle source
# 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