class Pione::TestHelper::WebServer

Public Class Methods

new(document_root, option={}) click to toggle source
# File lib/pione/test-helper/webserver.rb, line 13
def initialize(document_root, option={})
  logger = WEBrick::Log.new(StringIO.new("", "w"))
  # modify document root
  document_root = document_root.local.path if document_root.kind_of?(Pione::Location::DataLocation)

  # setup options
  _option = {DocumentRoot: document_root}
  _option[:Port] = 54673 unless option[:Port]
  _option[:Logger] = logger unless option[:Logger]
  _option[:AccessLog] = logger unless option[:AccessLog]

  # make webrick
  @server = WEBrick::HTTPServer.new(_option)
end
start(*args) click to toggle source
# File lib/pione/test-helper/webserver.rb, line 8
def start(*args)
  new(*args).tap {|x| x.start}
end

Public Instance Methods

port() click to toggle source
# File lib/pione/test-helper/webserver.rb, line 32
def port
  @server.config[:Port]
end
root() click to toggle source
# File lib/pione/test-helper/webserver.rb, line 28
def root
  Pione::Location["http://localhost:%s/" % port]
end
start() click to toggle source
# File lib/pione/test-helper/webserver.rb, line 36
def start
  @thread = Thread.new do
    retriable(on: WEBrick::ServerError, tries: 10, interval: 2) do
      @server.start
    end
  end
end
terminate() click to toggle source
# File lib/pione/test-helper/webserver.rb, line 44
def terminate
  @server.shutdown
  @thread.kill.join
end