Sha256: 5f2d48ccbbf6339c09bc7b787573c1e9f40eb144f3a55de6e8e31ddab78d59cd

Contents?: true

Size: 822 Bytes

Versions: 1

Compression:

Stored size: 822 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

1 entries across 1 versions & 1 rubygems

Version Path
terminus-0.4.0 lib/terminus/server.rb