Sha256: 0bd8c7cc8d236341b3c5c3c420f01790a15dcdfb5152b448d34521096edbb8b8

Contents?: true

Size: 1014 Bytes

Versions: 2

Compression:

Stored size: 1014 Bytes

Contents

require "jruby"

module JettyRails
  
  class Runner
    attr_reader :servers
    
    def initialize(config = {})
      @servers = {}
      config.symbolize_keys!
      if config[:servers].nil?
        add_server(config) 
      else
        config[:servers].each do |server_config|
          server_config.symbolize_keys!
          server_config.reverse_merge!(config)
          server_config.delete(:servers)
          add_server(server_config)
        end
      end
    end
    
    def add_server(config = {})
      server = JettyRails::Server.new(config)
      @servers[server.config[:port]] = server
    end
    
    def start
      server_threads = ThreadGroup.new
      @servers.each do |base, server|
        log("starting #{base}")
        server_threads.add(Thread.new do
          server.start
        end)
      end
      
      server_threads.list.each {|thread| thread.join } unless server_threads.list.empty?
    end
    
    private
    
    def log(msg)
      $stdout.puts(msg)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jetty-rails-0.6 lib/jetty_rails/runner.rb
jetty-rails-0.7 lib/jetty_rails/runner.rb