Sha256: 2b22a3514d93f1e7e40f0de11f59299030948c8f0eb8b60745def344b187d45e

Contents?: true

Size: 1.56 KB

Versions: 2

Compression:

Stored size: 1.56 KB

Contents

module Polonium
  module ServerRunners
    class WebrickServerRunner < ServerRunner
      attr_accessor :server

      def initialize(configuration)
        require 'webrick_server'
        super
      end

      protected
      def start_server
        @server = create_webrick_server
        mount_parameters = {
          :port            => configuration.internal_app_server_port,
          :ip              => configuration.internal_app_server_host,
          :environment     => configuration.rails_env.dup,
          :server_root     => configuration.server_root,
          :server_type     => WEBrick::SimpleServer,
          :charset         => "UTF-8",
          :mime_types      => WEBrick::HTTPUtils::DefaultMimeTypes,
          :working_directory => File.expand_path(configuration.rails_root.to_s)
        }
        server.mount('/', DispatchServlet, mount_parameters)

        trap("INT") { stop_server }

        require File.expand_path("#{configuration.rails_root}/config/environment")
        require "dispatcher"
        server.start
      end

      def stop_server
        server.shutdown if server
      end

      def create_webrick_server #:nodoc:
        WEBrick::HTTPServer.new({
          :Port => configuration.internal_app_server_port,
          :BindAddress => configuration.internal_app_server_host,
          :ServerType  => WEBrick::SimpleServer,
          :MimeTypes => WEBrick::HTTPUtils::DefaultMimeTypes,
          :Logger => configuration.new_logger,
          :AccessLog => []
        })
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
polonium-0.2.1 lib/polonium/server_runners/webrick_server_runner.rb
polonium-0.2.0 lib/polonium/server_runners/webrick_server_runner.rb