Sha256: fe72ecb80769c1b30c26685b466349c7061d0f080ab1a24ae7927046cc04f7a6

Contents?: true

Size: 560 Bytes

Versions: 9

Compression:

Stored size: 560 Bytes

Contents

module Ringleader
  class Controller
    include Celluloid
    include Celluloid::Logger

    def initialize(configs)
      @apps = {}
      configs.each do |name, config|
        @apps[name] = App.new(config)
      end
    end

    def apps
      @apps.values.sort_by { |a| a.name }
    end

    def app(name)
      @apps[name]
    end

    def stop
      exit if @stopping # if ctrl-c called twice...
      @stopping = true
      info "shutting down..."
      @apps.values.map do |app|
        Thread.new { app.stop }
      end.map(&:join)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ringleader-1.1.4 lib/ringleader/controller.rb
ringleader-1.1.3 lib/ringleader/controller.rb
ringleader-1.1.2 lib/ringleader/controller.rb
ringleader-1.1.1 lib/ringleader/controller.rb
ringleader-1.1.0 lib/ringleader/controller.rb
ringleader-1.0.3 lib/ringleader/controller.rb
ringleader-1.0.2 lib/ringleader/controller.rb
ringleader-1.0.1 lib/ringleader/controller.rb
ringleader-1.0.0 lib/ringleader/controller.rb