Sha256: 598dacb56c38dcaf92ecc4648998d8a5ec233a698260f8f900bd6ae2d83b22b5

Contents?: true

Size: 956 Bytes

Versions: 3

Compression:

Stored size: 956 Bytes

Contents

module Celluloid
  module Supervision
    class Container
      #       class << self
      #         def tree(actors=[], *args, &block)
      #           blocks << lambda do |container|
      #             container.tree(Configuration.options(args, :supervise => actors, :block => block ))
      #           end
      #         end
      #       end

      class Tree
        include Behavior

        identifier! :supervises, :supervise

        configuration do
          if @configuration[:supervise].is_a? Array
            @supervisor = @configuration.dup
            @branch = @configuration.fetch(:branch, @configuration[:as])
            @configuration.delete(Behavior.parameter(:supervise, @configuration))
          else
            puts "#{@configuration[:supervise].class.name} ... #{@configuration[:supervise]}"
            fail ArgumentError.new("No actors given to Tree to supervise.")
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
celluloid-supervision-0.20.5 lib/celluloid/supervision/container/behavior/tree.rb
celluloid-supervision-0.20.1.1 lib/celluloid/supervision/container/behavior/tree.rb
celluloid-supervision-0.20.1 lib/celluloid/supervision/container/behavior/tree.rb