Class: Forkrick::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/forkrick/server.rb,
lib/forkrick/server/erb_binder.rb,
lib/forkrick/server/server_data.rb,
lib/forkrick/server/file_handler.rb

Defined Under Namespace

Classes: ErbBinder, FileHandler, ServerData

Instance Method Summary collapse

Constructor Details

#initialize(root, options = {}, &block) ⇒ Server

Returns a new instance of Server.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/forkrick/server.rb', line 10

def initialize(root, options = {}, &block)
  @glint = ::Glint::Server.new do |port|
    default_options = {
      BindAddress: '127.0.0.1',
      Port: port
    }
    unless ENV['FORKRICK_TEST_HTTP_LOGGING']
      default_options.merge!({
        Logger: ::WEBrick::Log.new('/dev/null'),
        AccessLog: []
      })
    end
    webrick = ::WEBrick::HTTPServer.new(default_options.merge(options))
    webrick.mount '/', FileHandler, root
    block.call(webrick) if block
    ::Signal.trap(:INT) { webrick.shutdown }
    ::Signal.trap(:TERM) { webrick.shutdown }
    webrick.start
  end
  @glint.start
end

Instance Method Details

#portObject



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

def port
  @glint.port
end

#urlObject



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

def url
  @url ||= "http://127.0.0.1:#{port}"
end