Sha256: a23a3689a5e9888bb2bc0ed1db3c71069ca1140f758642050eaa9f9a2bca3476

Contents?: true

Size: 865 Bytes

Versions: 2

Compression:

Stored size: 865 Bytes

Contents

# collect together all instances of the `supervise` method
module Celluloid
  class << self
    def supervise(config = {}, &block)
      supervisor = Supervision.router(config)
      supervisor.supervise(config, &block)
    end
  end
  module ClassMethods
    def supervise(config = {}, &block)
      Celluloid.supervise(config.merge(type: self), &block)
    end
  end
  module Supervision
    class << self
      def router(_config = {})
        # TODO: Actually route.
        Celluloid.services # for now, hardcode .services
      end
    end
    class Container
      class << self
        def supervise(config, &block)
          blocks << lambda do |container|
            container.add(config, &block)
          end
        end
      end
      def supervise(config, &block)
        add(Configuration.options(config, block: block))
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
celluloid-0.18.0 lib/celluloid/supervision/supervise.rb
celluloid-0.18.0.pre2 lib/celluloid/supervision/supervise.rb