Class: Cosensee::WebServer

Inherits:
Object
  • Object
show all
Defined in:
lib/cosensee/web_server.rb,
lib/cosensee/web_server/static_file_handler.rb

Overview

Web server for serving static files

Defined Under Namespace

Classes: StaticFileHandler

Instance Method Summary collapse

Constructor Details

#initialize(dir:, server_url:, logger:) ⇒ WebServer

Returns a new instance of WebServer.



10
11
12
13
14
15
16
17
18
19
# File 'lib/cosensee/web_server.rb', line 10

def initialize(dir:, server_url:, logger:)
  @dir = dir
  @server_url = server_url
  @logger = logger

  endpoint = Async::HTTP::Endpoint.parse(server_url)
  handler = StaticFileHandler.new(dir:, logger:)
  app = Falcon::Server.middleware(handler)
  @server = Falcon::Server.new(app, endpoint)
end

Instance Method Details

#startObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/cosensee/web_server.rb', line 21

def start
  Async do |task|
    @logger.info("Serving files from #{File.expand_path(@dir)} at #{@server_url}")

    Signal.trap('INT') do
      @logger.info("\nShutting down the server...")
      task.stop
    end

    @server.run
  end
rescue Interrupt
  @logger.warn("\nServer interrupted. Exiting.")
ensure
  @logger.info('Cleanup complete.')
end