Sha256: b2c528827e00d4383dafe7451cac7e1883077af86779918c62dc8dd421b3a980

Contents?: true

Size: 794 Bytes

Versions: 2

Compression:

Stored size: 794 Bytes

Contents

require 'rack'
require 'thin'

Faye::WebSocket.load_adapter('thin') if Faye::WebSocket.respond_to?(:load_adapter)
Thin::Logging.silent = true

module Terminus
  class Server

    def initialize(options = {})
      @options = options
    end

    def running?
      not @server.nil?
    end

    def run!
      return if running?
      handler = Rack::Handler.get('thin')
      handler.run(app, :Port => @options[:port]) { |s| @server = s }
    end

    def stop!
      return unless running?
      @server.stop!
      @server = nil
    end

  private

    def app
      @app ||= Rack::Builder.new {
                 use Terminus::Proxy
                 use Faye::RackAdapter, :mount => FAYE_MOUNT, :timeout => 15
                 run Application.new
               }.to_app
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
terminus-0.6.0 lib/terminus/server.rb
terminus-0.5.0 lib/terminus/server.rb