celluloid-supervision 0.20.0.pre4 → 0.20.0.pre5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/.travis.yml +2 -1
 - data/Gemfile +1 -23
 - data/celluloid-supervision.gemspec +1 -1
 - data/lib/celluloid/supervision.rb +2 -11
 - data/lib/celluloid/supervision/configuration.rb +4 -38
 - data/lib/celluloid/supervision/configuration/instance.rb +1 -1
 - data/lib/celluloid/supervision/constants.rb +2 -2
 - data/lib/celluloid/supervision/container.rb +5 -20
 - data/lib/celluloid/supervision/deprecate.rb +2 -3
 - data/lib/celluloid/supervision/deprecate/{supervision.rb → supervise.rb} +37 -30
 - data/lib/celluloid/supervision/deprecate/{configuration.rb → validation.rb} +2 -6
 - data/lib/celluloid/supervision/supervise.rb +34 -0
 - data/lib/celluloid/supervision/validation.rb +40 -0
 - data/lib/celluloid/supervision/version.rb +1 -1
 - metadata +245 -20
 - data/CONDUCT.md +0 -13
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: bffa45907a8bf3f413b8c39488eeadac5584b3ae
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 7e401351b571791554d6a202e4f53109dfd5dd71
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 17032cd58a828ffae320b6cc03d1a3949245c89a6a403a4101d76f79537c9b040c7a13bff16c6c296ba4253f55bda4b2f7488e34b53a6c84c9fa3f9d7a98f288
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 63de1444dd3fa7468090085d9e1b8015cceae45c245737532e6f05fa96d631c8f138cd1b65b0cd360f0f1547b7e6fa75ce4c73746289c9bb1edfd2ebbdcc25ba
         
     | 
    
        data/.travis.yml
    CHANGED
    
    | 
         @@ -14,6 +14,7 @@ rvm: 
     | 
|
| 
       14 
14 
     | 
    
         
             
            # For right now the imporant thing is to test BACKPORTED mode:
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
16 
     | 
    
         
             
            matrix:
         
     | 
| 
      
 17 
     | 
    
         
            +
              fast_finish: true
         
     | 
| 
       17 
18 
     | 
    
         
             
              allow_failures:
         
     | 
| 
       18 
19 
     | 
    
         
             
                - rvm: rbx-2
         
     | 
| 
       19 
20 
     | 
    
         
             
                - rvm: ruby-head
         
     | 
| 
         @@ -29,4 +30,4 @@ notifications: 
     | 
|
| 
       29 
30 
     | 
    
         
             
              irc: "irc.freenode.org#celluloid"
         
     | 
| 
       30 
31 
     | 
    
         | 
| 
       31 
32 
     | 
    
         
             
            sudo: false
         
     | 
| 
       32 
     | 
    
         
            -
            install: bundle install -- 
     | 
| 
      
 33 
     | 
    
         
            +
            install: bundle install --without=development
         
     | 
    
        data/Gemfile
    CHANGED
    
    | 
         @@ -1,24 +1,2 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require File.expand_path("../culture/sync", __FILE__)
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            gemspec # de development_group: :gem_build_tools
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
            group :development do
         
     | 
| 
       7 
     | 
    
         
            -
              gem "pry"
         
     | 
| 
       8 
     | 
    
         
            -
              # de gem 'guard'
         
     | 
| 
       9 
     | 
    
         
            -
              # de gem 'guard-rspec'
         
     | 
| 
       10 
     | 
    
         
            -
              # de gem 'rb-fsevent', '~> 0.9.1' if RUBY_PLATFORM =~ /darwin/
         
     | 
| 
       11 
     | 
    
         
            -
            end
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            group :test do
         
     | 
| 
       14 
     | 
    
         
            -
              gem "dotenv", "~> 2.0"
         
     | 
| 
       15 
     | 
    
         
            -
              gem "nenv"
         
     | 
| 
       16 
     | 
    
         
            -
              gem "benchmark_suite"
         
     | 
| 
       17 
     | 
    
         
            -
              gem "rspec", "~> 3.2"
         
     | 
| 
       18 
     | 
    
         
            -
            end
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
            group :gem_build_tools do
         
     | 
| 
       21 
     | 
    
         
            -
              gem "rake"
         
     | 
| 
       22 
     | 
    
         
            -
            end
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
            Celluloid::Sync.gems(self)
         
     | 
| 
      
 2 
     | 
    
         
            +
            Celluloid::Sync::Gemfile[self]
         
     | 
| 
         @@ -1,6 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require "celluloid" unless defined? Celluloid
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            require "celluloid/supervision/constants"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require "celluloid/supervision/supervise"
         
     | 
| 
       4 
5 
     | 
    
         | 
| 
       5 
6 
     | 
    
         
             
            require "celluloid/supervision/container"
         
     | 
| 
       6 
7 
     | 
    
         
             
            require "celluloid/supervision/container/instance"
         
     | 
| 
         @@ -9,20 +10,10 @@ require "celluloid/supervision/container/injections" 
     | 
|
| 
       9 
10 
     | 
    
         | 
| 
       10 
11 
     | 
    
         
             
            require "celluloid/supervision/container/behavior/tree"
         
     | 
| 
       11 
12 
     | 
    
         | 
| 
      
 13 
     | 
    
         
            +
            require "celluloid/supervision/validation"
         
     | 
| 
       12 
14 
     | 
    
         
             
            require "celluloid/supervision/configuration"
         
     | 
| 
       13 
15 
     | 
    
         
             
            require "celluloid/supervision/configuration/instance"
         
     | 
| 
       14 
16 
     | 
    
         | 
| 
       15 
17 
     | 
    
         
             
            require "celluloid/supervision/service"
         
     | 
| 
       16 
18 
     | 
    
         | 
| 
       17 
     | 
    
         
            -
            module Celluloid
         
     | 
| 
       18 
     | 
    
         
            -
              module ClassMethods
         
     | 
| 
       19 
     | 
    
         
            -
                def supervise(config={}, &block)
         
     | 
| 
       20 
     | 
    
         
            -
                  Celluloid.services.supervise(config.merge(type: self, block: block))
         
     | 
| 
       21 
     | 
    
         
            -
                rescue NoMethodError
         
     | 
| 
       22 
     | 
    
         
            -
                  Internals::Logger.warn("No public supervision service was found. Supervising #{self} a la carte.")
         
     | 
| 
       23 
     | 
    
         
            -
                  Supervision::Container.supervise(config.merge(type: self, block: block))
         
     | 
| 
       24 
     | 
    
         
            -
                end
         
     | 
| 
       25 
     | 
    
         
            -
              end
         
     | 
| 
       26 
     | 
    
         
            -
            end
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
19 
     | 
    
         
             
            require "celluloid/supervision/deprecate" unless $CELLULOID_BACKPORTED == false
         
     | 
| 
         @@ -9,40 +9,6 @@ module Celluloid 
     | 
|
| 
       9 
9 
     | 
    
         
             
                    def define(options={})
         
     | 
| 
       10 
10 
     | 
    
         
             
                      new(options)
         
     | 
| 
       11 
11 
     | 
    
         
             
                    end
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
                    def valid?(configuration, fail=false)
         
     | 
| 
       14 
     | 
    
         
            -
                      parameters(:mandatory).each do |k|
         
     | 
| 
       15 
     | 
    
         
            -
                        unless configuration.key? k
         
     | 
| 
       16 
     | 
    
         
            -
                          if fail
         
     | 
| 
       17 
     | 
    
         
            -
                            fail Error::Incomplete, "Missing `:#{k}` in supervision configuration."
         
     | 
| 
       18 
     | 
    
         
            -
                          else
         
     | 
| 
       19 
     | 
    
         
            -
                            return false
         
     | 
| 
       20 
     | 
    
         
            -
                          end
         
     | 
| 
       21 
     | 
    
         
            -
                        end
         
     | 
| 
       22 
     | 
    
         
            -
                      end
         
     | 
| 
       23 
     | 
    
         
            -
                      arity.each do |klass, args|
         
     | 
| 
       24 
     | 
    
         
            -
                        unless configuration[args].is_a? Proc
         
     | 
| 
       25 
     | 
    
         
            -
                          __a = configuration[args] && configuration[args].count || 0
         
     | 
| 
       26 
     | 
    
         
            -
                          __arity = configuration[klass].allocate.method(:initialize).arity
         
     | 
| 
       27 
     | 
    
         
            -
                          unless __arity == -1 || __a == __arity
         
     | 
| 
       28 
     | 
    
         
            -
                            if fail
         
     | 
| 
       29 
     | 
    
         
            -
                              fail ArgumentError.new("#{__a} vs. #{__arity}")
         
     | 
| 
       30 
     | 
    
         
            -
                            else
         
     | 
| 
       31 
     | 
    
         
            -
                              return false
         
     | 
| 
       32 
     | 
    
         
            -
                            end
         
     | 
| 
       33 
     | 
    
         
            -
                          end
         
     | 
| 
       34 
     | 
    
         
            -
                        end
         
     | 
| 
       35 
     | 
    
         
            -
                      end
         
     | 
| 
       36 
     | 
    
         
            -
                      true
         
     | 
| 
       37 
     | 
    
         
            -
                    end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                    def options(config={}, options={})
         
     | 
| 
       40 
     | 
    
         
            -
                      configuration = config.merge(options)
         
     | 
| 
       41 
     | 
    
         
            -
                      return configuration if configuration.is_a? Configuration
         
     | 
| 
       42 
     | 
    
         
            -
                      configuration[:configuration] = Container::Behavior.configure(configuration)
         
     | 
| 
       43 
     | 
    
         
            -
                      valid?(configuration, true)
         
     | 
| 
       44 
     | 
    
         
            -
                      configuration
         
     | 
| 
       45 
     | 
    
         
            -
                    end
         
     | 
| 
       46 
12 
     | 
    
         
             
                  end
         
     | 
| 
       47 
13 
     | 
    
         | 
| 
       48 
14 
     | 
    
         
             
                  extend Forwardable
         
     | 
| 
         @@ -65,13 +31,13 @@ module Celluloid 
     | 
|
| 
       65 
31 
     | 
    
         
             
                    @i = 0 # incrementer of instances in this branch
         
     | 
| 
       66 
32 
     | 
    
         
             
                    resync_accessors
         
     | 
| 
       67 
33 
     | 
    
         
             
                    @configuration = options
         
     | 
| 
       68 
     | 
    
         
            -
                    @supervisor ||= :"Celluloid.services"
         
     | 
| 
       69 
34 
     | 
    
         | 
| 
       70 
35 
     | 
    
         
             
                    if options.is_a? Hash
         
     | 
| 
       71 
36 
     | 
    
         
             
                      options[:configuration] ||= Container::Behavior.configure(options)
         
     | 
| 
       72 
37 
     | 
    
         
             
                      @configuration = instance_eval(&options[:configuration])
         
     | 
| 
       73 
38 
     | 
    
         
             
                      @supervisor ||= @configuration.fetch(:supervisor, :"Celluloid.services")
         
     | 
| 
       74 
39 
     | 
    
         
             
                    end
         
     | 
| 
      
 40 
     | 
    
         
            +
                    @supervisor ||= :"Celluloid.services"
         
     | 
| 
       75 
41 
     | 
    
         | 
| 
       76 
42 
     | 
    
         
             
                    if (@configuration.is_a?(Hash) || @configuration.is_a?(Array)) && @configuration.any?
         
     | 
| 
       77 
43 
     | 
    
         
             
                      define(@configuration)
         
     | 
| 
         @@ -80,7 +46,7 @@ module Celluloid 
     | 
|
| 
       80 
46 
     | 
    
         | 
| 
       81 
47 
     | 
    
         
             
                  def provider
         
     | 
| 
       82 
48 
     | 
    
         
             
                    @provider ||= if @supervisor.is_a? Hash
         
     | 
| 
       83 
     | 
    
         
            -
                                    @supervisor[:type].run!( 
     | 
| 
      
 49 
     | 
    
         
            +
                                    @supervisor[:type].run!(@supervisor)
         
     | 
| 
       84 
50 
     | 
    
         
             
                                  elsif @supervisor.is_a? Symbol
         
     | 
| 
       85 
51 
     | 
    
         
             
                                    @supervisor = Object.module_eval(@supervisor.to_s)
         
     | 
| 
       86 
52 
     | 
    
         
             
                                    provider
         
     | 
| 
         @@ -90,13 +56,13 @@ module Celluloid 
     | 
|
| 
       90 
56 
     | 
    
         
             
                                    @supervisor
         
     | 
| 
       91 
57 
     | 
    
         
             
                                  else
         
     | 
| 
       92 
58 
     | 
    
         
             
                                    fail Error::InvalidSupervisor
         
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
      
 59 
     | 
    
         
            +
                                  end
         
     | 
| 
       94 
60 
     | 
    
         
             
                  end
         
     | 
| 
       95 
61 
     | 
    
         | 
| 
       96 
62 
     | 
    
         
             
                  def deploy(options={})
         
     | 
| 
       97 
63 
     | 
    
         
             
                    define(options) if options.any?
         
     | 
| 
       98 
64 
     | 
    
         
             
                    @instances.each do |instance|
         
     | 
| 
       99 
     | 
    
         
            -
                      provider. 
     | 
| 
      
 65 
     | 
    
         
            +
                      provider.add instance.merge(branch: @branch)
         
     | 
| 
       100 
66 
     | 
    
         
             
                    end
         
     | 
| 
       101 
67 
     | 
    
         
             
                    provider
         
     | 
| 
       102 
68 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -79,7 +79,7 @@ module Celluloid 
     | 
|
| 
       79 
79 
     | 
    
         
             
                      @@parameters[key] << value unless @@parameters[key].include? value
         
     | 
| 
       80 
80 
     | 
    
         
             
                    end
         
     | 
| 
       81 
81 
     | 
    
         | 
| 
       82 
     | 
    
         
            -
                    def arity 
     | 
| 
      
 82 
     | 
    
         
            +
                    def arity
         
     | 
| 
       83 
83 
     | 
    
         
             
                      @@arity
         
     | 
| 
       84 
84 
     | 
    
         
             
                    end
         
     | 
| 
       85 
85 
     | 
    
         | 
| 
         @@ -107,7 +107,7 @@ module Celluloid 
     | 
|
| 
       107 
107 
     | 
    
         
             
                  ################ These are applied inside Supervision::Member ################
         
     | 
| 
       108 
108 
     | 
    
         | 
| 
       109 
109 
     | 
    
         
             
                  REMOVE_AT_EXPORT = [
         
     | 
| 
       110 
     | 
    
         
            -
                    : 
     | 
| 
      
 110 
     | 
    
         
            +
                    :configuration,
         
     | 
| 
       111 
111 
     | 
    
         
             
                    :behavior,
         
     | 
| 
       112 
112 
     | 
    
         
             
                  ]
         
     | 
| 
       113 
113 
     | 
    
         | 
| 
         @@ -18,8 +18,8 @@ module Celluloid 
     | 
|
| 
       18 
18 
     | 
    
         
             
                    def top(options)
         
     | 
| 
       19 
19 
     | 
    
         
             
                      {
         
     | 
| 
       20 
20 
     | 
    
         
             
                        as: (options.delete(:as)),
         
     | 
| 
       21 
     | 
    
         
            -
                        branch: (options.delete(:branch) || :services),
         
     | 
| 
       22 
21 
     | 
    
         
             
                        type: (options.delete(:type) || self),
         
     | 
| 
      
 22 
     | 
    
         
            +
                        branch: (options.delete(:branch) || :services),
         
     | 
| 
       23 
23 
     | 
    
         
             
                        supervise: options.delete(:supervise) || [],
         
     | 
| 
       24 
24 
     | 
    
         
             
                      }
         
     | 
| 
       25 
25 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -40,9 +40,9 @@ module Celluloid 
     | 
|
| 
       40 
40 
     | 
    
         
             
                    end
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
                    # Run the application in the foreground with a simple watchdog
         
     | 
| 
       43 
     | 
    
         
            -
                    def run( 
     | 
| 
      
 43 
     | 
    
         
            +
                    def run(options={})
         
     | 
| 
       44 
44 
     | 
    
         
             
                      loop do
         
     | 
| 
       45 
     | 
    
         
            -
                        supervisor = run!(options 
     | 
| 
      
 45 
     | 
    
         
            +
                        supervisor = run!(options)
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
47 
     | 
    
         
             
                        # Take five, toplevel supervisor
         
     | 
| 
       48 
48 
     | 
    
         
             
                        sleep 5 while supervisor.alive? # Why 5?
         
     | 
| 
         @@ -50,17 +50,6 @@ module Celluloid 
     | 
|
| 
       50 
50 
     | 
    
         
             
                        Internals::Logger.error "!!! Celluloid::Supervision::Container #{self} crashed. Restarting..."
         
     | 
| 
       51 
51 
     | 
    
         
             
                      end
         
     | 
| 
       52 
52 
     | 
    
         
             
                    end
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                    # Register one or more actors to be launched and supervised
         
     | 
| 
       55 
     | 
    
         
            -
                    def supervise(config, &block)
         
     | 
| 
       56 
     | 
    
         
            -
                      blocks << lambda do |container|
         
     | 
| 
       57 
     | 
    
         
            -
                        container.add(Configuration.options(config, block: block))
         
     | 
| 
       58 
     | 
    
         
            -
                      end
         
     | 
| 
       59 
     | 
    
         
            -
                    end
         
     | 
| 
       60 
     | 
    
         
            -
                  end
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
                  def supervise(config, &block)
         
     | 
| 
       63 
     | 
    
         
            -
                    add(Configuration.options(config, block: block))
         
     | 
| 
       64 
53 
     | 
    
         
             
                  end
         
     | 
| 
       65 
54 
     | 
    
         | 
| 
       66 
55 
     | 
    
         
             
                  finalizer :finalize
         
     | 
| 
         @@ -69,7 +58,6 @@ module Celluloid 
     | 
|
| 
       69 
58 
     | 
    
         | 
| 
       70 
59 
     | 
    
         
             
                  # Start the container.
         
     | 
| 
       71 
60 
     | 
    
         
             
                  def initialize(options={})
         
     | 
| 
       72 
     | 
    
         
            -
                    options ||= {}
         
     | 
| 
       73 
61 
     | 
    
         
             
                    options = {registry: options} if options.is_a? Internals::Registry
         
     | 
| 
       74 
62 
     | 
    
         
             
                    @state = :initializing
         
     | 
| 
       75 
63 
     | 
    
         
             
                    @actors = [] # instances in the container
         
     | 
| 
         @@ -78,13 +66,10 @@ module Celluloid 
     | 
|
| 
       78 
66 
     | 
    
         
             
                    yield current_actor if block_given?
         
     | 
| 
       79 
67 
     | 
    
         
             
                  end
         
     | 
| 
       80 
68 
     | 
    
         | 
| 
       81 
     | 
    
         
            -
                  execute_block_on_receiver :initialize, :supervise 
     | 
| 
      
 69 
     | 
    
         
            +
                  execute_block_on_receiver :initialize, :supervise, :supervise_as
         
     | 
| 
       82 
70 
     | 
    
         | 
| 
       83 
71 
     | 
    
         
             
                  def add(configuration)
         
     | 
| 
       84 
     | 
    
         
            -
                     
     | 
| 
       85 
     | 
    
         
            -
                      configuration = Configuration.options(configuration)
         
     | 
| 
       86 
     | 
    
         
            -
                    end
         
     | 
| 
       87 
     | 
    
         
            -
                    Configuration.valid? configuration, true
         
     | 
| 
      
 72 
     | 
    
         
            +
                    Configuration.valid?(configuration, true)
         
     | 
| 
       88 
73 
     | 
    
         
             
                    @actors << Instance.new(configuration.merge(registry: @registry, branch: @branch))
         
     | 
| 
       89 
74 
     | 
    
         
             
                    @state = :running
         
     | 
| 
       90 
75 
     | 
    
         
             
                    add_accessors configuration
         
     | 
| 
         @@ -5,6 +5,5 @@ module Celluloid 
     | 
|
| 
       5 
5 
     | 
    
         
             
              Supervision::Member = Supervision::Container::Instance
         
     | 
| 
       6 
6 
     | 
    
         
             
            end
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
            require "celluloid/supervision/deprecate/ 
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
            require "celluloid/supervision/deprecate/configuration"
         
     | 
| 
      
 8 
     | 
    
         
            +
            require "celluloid/supervision/deprecate/supervise"
         
     | 
| 
      
 9 
     | 
    
         
            +
            require "celluloid/supervision/deprecate/validation"
         
     | 
| 
         @@ -1,20 +1,27 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # TODO: Remove at 0.19.0
         
     | 
| 
       2 
2 
     | 
    
         
             
            module Celluloid
         
     | 
| 
      
 3 
     | 
    
         
            +
              class << self
         
     | 
| 
      
 4 
     | 
    
         
            +
                undef supervise rescue nil
         
     | 
| 
      
 5 
     | 
    
         
            +
                def supervise(*args, &block)
         
     | 
| 
      
 6 
     | 
    
         
            +
                  supervisor = Supervision.router(*args)
         
     | 
| 
      
 7 
     | 
    
         
            +
                  supervisor.supervise(*args, &block)
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
                undef supervise_as rescue nil
         
     | 
| 
      
 10 
     | 
    
         
            +
                def supervise_as(name, *args, &block)
         
     | 
| 
      
 11 
     | 
    
         
            +
                  supervisor = Supervision.router(*args)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  supervisor.supervise_as(name, *args, &block)
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
       3 
15 
     | 
    
         
             
              module ClassMethods
         
     | 
| 
       4 
16 
     | 
    
         
             
                undef supervise rescue nil
         
     | 
| 
       5 
17 
     | 
    
         
             
                def supervise(*args, &block)
         
     | 
| 
       6 
     | 
    
         
            -
                   
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
                  raise ActorSystem::Uninitialized unless Celluloid.services
         
     | 
| 
       9 
     | 
    
         
            -
                  raise
         
     | 
| 
      
 18 
     | 
    
         
            +
                  args.unshift(self)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  Celluloid.supervise(*args, &block)
         
     | 
| 
       10 
20 
     | 
    
         
             
                end
         
     | 
| 
       11 
21 
     | 
    
         
             
                undef supervise_as rescue nil
         
     | 
| 
       12 
22 
     | 
    
         
             
                def supervise_as(name, *args, &block)
         
     | 
| 
       13 
     | 
    
         
            -
                  args.unshift 
     | 
| 
       14 
     | 
    
         
            -
                  Celluloid. 
     | 
| 
       15 
     | 
    
         
            -
                rescue
         
     | 
| 
       16 
     | 
    
         
            -
                  raise ActorSystem::Uninitialized unless Celluloid.services
         
     | 
| 
       17 
     | 
    
         
            -
                  raise
         
     | 
| 
      
 23 
     | 
    
         
            +
                  args.unshift(self)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  Celluloid.supervise_as(name, *args, &block)
         
     | 
| 
       18 
25 
     | 
    
         
             
                end
         
     | 
| 
       19 
26 
     | 
    
         
             
              end
         
     | 
| 
       20 
27 
     | 
    
         | 
| 
         @@ -26,29 +33,32 @@ module Celluloid 
     | 
|
| 
       26 
33 
     | 
    
         
             
                  attr_accessor :root
         
     | 
| 
       27 
34 
     | 
    
         | 
| 
       28 
35 
     | 
    
         
             
                  undef supervise rescue nil
         
     | 
| 
       29 
     | 
    
         
            -
                  def supervise(*args, &block)
         
     | 
| 
       30 
     | 
    
         
            -
                     
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
                    raise ActorSystem::Uninitialized unless Celluloid.services
         
     | 
| 
       33 
     | 
    
         
            -
                    raise
         
     | 
| 
      
 36 
     | 
    
         
            +
                  def supervise(klass, *args, &block)
         
     | 
| 
      
 37 
     | 
    
         
            +
                    args.unshift(klass)
         
     | 
| 
      
 38 
     | 
    
         
            +
                    Celluloid.supervise(*args, &block)
         
     | 
| 
       34 
39 
     | 
    
         
             
                  end
         
     | 
| 
       35 
40 
     | 
    
         | 
| 
       36 
41 
     | 
    
         
             
                  undef supervise_as rescue nil
         
     | 
| 
       37 
     | 
    
         
            -
                  def supervise_as(name, *args, &block)
         
     | 
| 
       38 
     | 
    
         
            -
                     
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
                    raise ActorSystem::Uninitialized unless Celluloid.services
         
     | 
| 
       41 
     | 
    
         
            -
                    raise
         
     | 
| 
      
 42 
     | 
    
         
            +
                  def supervise_as(name, klass, *args, &block)
         
     | 
| 
      
 43 
     | 
    
         
            +
                    args.unshift(klass)
         
     | 
| 
      
 44 
     | 
    
         
            +
                    Celluloid.supervise_as(name, *args, &block)
         
     | 
| 
       42 
45 
     | 
    
         
             
                  end
         
     | 
| 
       43 
46 
     | 
    
         
             
                end
         
     | 
| 
       44 
47 
     | 
    
         
             
              end
         
     | 
| 
       45 
48 
     | 
    
         | 
| 
       46 
49 
     | 
    
         
             
              module Supervision
         
     | 
| 
      
 50 
     | 
    
         
            +
                class << self
         
     | 
| 
      
 51 
     | 
    
         
            +
                  undef router rescue nil
         
     | 
| 
      
 52 
     | 
    
         
            +
                  def router(*args)
         
     | 
| 
      
 53 
     | 
    
         
            +
                    # TODO: Actually route, based on :branch, if present; or else:
         
     | 
| 
      
 54 
     | 
    
         
            +
                    Celluloid.services
         
     | 
| 
      
 55 
     | 
    
         
            +
                  end
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
       47 
57 
     | 
    
         
             
                class Container
         
     | 
| 
       48 
58 
     | 
    
         
             
                  class << self
         
     | 
| 
       49 
59 
     | 
    
         
             
                    undef run! rescue nil
         
     | 
| 
       50 
60 
     | 
    
         
             
                    def run!(*args)
         
     | 
| 
       51 
     | 
    
         
            -
                      container = new( 
     | 
| 
      
 61 
     | 
    
         
            +
                      container = new(*args) do |g|
         
     | 
| 
       52 
62 
     | 
    
         
             
                        blocks.each do |block|
         
     | 
| 
       53 
63 
     | 
    
         
             
                          block.call(g)
         
     | 
| 
       54 
64 
     | 
    
         
             
                        end
         
     | 
| 
         @@ -59,27 +69,24 @@ module Celluloid 
     | 
|
| 
       59 
69 
     | 
    
         
             
                    undef run rescue nil
         
     | 
| 
       60 
70 
     | 
    
         
             
                    def run(*args)
         
     | 
| 
       61 
71 
     | 
    
         
             
                      loop do
         
     | 
| 
       62 
     | 
    
         
            -
                        supervisor = run!( 
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
      
 72 
     | 
    
         
            +
                        supervisor = run!(*args)
         
     | 
| 
       64 
73 
     | 
    
         
             
                        # Take five, toplevel supervisor
         
     | 
| 
       65 
74 
     | 
    
         
             
                        sleep 5 while supervisor.alive? # Why 5?
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
75 
     | 
    
         
             
                        Internals::Logger.error "!!! Celluloid::Supervision::Container #{self} crashed. Restarting..."
         
     | 
| 
       68 
76 
     | 
    
         
             
                      end
         
     | 
| 
       69 
77 
     | 
    
         
             
                    end
         
     | 
| 
       70 
78 
     | 
    
         | 
| 
       71 
     | 
    
         
            -
                    undef
         
     | 
| 
       72 
     | 
    
         
            -
                     supervise rescue nil
         
     | 
| 
      
 79 
     | 
    
         
            +
                    undef supervise rescue nil
         
     | 
| 
       73 
80 
     | 
    
         
             
                    def supervise(*args, &block)
         
     | 
| 
       74 
     | 
    
         
            -
                      blocks << lambda do | 
     | 
| 
       75 
     | 
    
         
            -
                         
     | 
| 
      
 81 
     | 
    
         
            +
                      blocks << lambda do |container|
         
     | 
| 
      
 82 
     | 
    
         
            +
                        container.supervise(*args, &block)
         
     | 
| 
       76 
83 
     | 
    
         
             
                      end
         
     | 
| 
       77 
84 
     | 
    
         
             
                    end
         
     | 
| 
       78 
85 
     | 
    
         | 
| 
       79 
86 
     | 
    
         
             
                    undef supervise_as rescue nil
         
     | 
| 
       80 
     | 
    
         
            -
                    def supervise_as(name,  
     | 
| 
       81 
     | 
    
         
            -
                      blocks << lambda do | 
     | 
| 
       82 
     | 
    
         
            -
                         
     | 
| 
      
 87 
     | 
    
         
            +
                    def supervise_as(name, *args, &block)
         
     | 
| 
      
 88 
     | 
    
         
            +
                      blocks << lambda do |container|
         
     | 
| 
      
 89 
     | 
    
         
            +
                        container.supervise_as(name, *args, &block)
         
     | 
| 
       83 
90 
     | 
    
         
             
                      end
         
     | 
| 
       84 
91 
     | 
    
         
             
                    end
         
     | 
| 
       85 
92 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -10,7 +10,6 @@ module Celluloid 
     | 
|
| 
       10 
10 
     | 
    
         
             
                    #          ( the pulling out of keys is where danger mentioned above comes )
         
     | 
| 
       11 
11 
     | 
    
         
             
                    undef parse rescue nil
         
     | 
| 
       12 
12 
     | 
    
         
             
                    def parse(args)
         
     | 
| 
       13 
     | 
    
         
            -
                      puts "PARSING@args: #{args} #{caller[0]}"
         
     | 
| 
       14 
13 
     | 
    
         
             
                      return args if args.is_a? Configuration::Instance
         
     | 
| 
       15 
14 
     | 
    
         
             
                      options = {args: []}
         
     | 
| 
       16 
15 
     | 
    
         
             
                      return {type: args} if args.is_a? Class
         
     | 
| 
         @@ -21,8 +20,6 @@ module Celluloid 
     | 
|
| 
       21 
20 
     | 
    
         
             
                          return args[0] if args.first.is_a? Configuration::Instance
         
     | 
| 
       22 
21 
     | 
    
         
             
                          return {type: args.first} if args.first.is_a? Class
         
     | 
| 
       23 
22 
     | 
    
         
             
                          if args.first.is_a?(Hash) && args = args.pop
         
     | 
| 
       24 
     | 
    
         
            -
                            Configuration.valid? args, true
         
     | 
| 
       25 
     | 
    
         
            -
                            puts "PARSED@args: #{args}"
         
     | 
| 
       26 
23 
     | 
    
         
             
                            return args
         
     | 
| 
       27 
24 
     | 
    
         
             
                          end
         
     | 
| 
       28 
25 
     | 
    
         
             
                          options[:args] = args if args.any?
         
     | 
| 
         @@ -33,7 +30,6 @@ module Celluloid 
     | 
|
| 
       33 
30 
     | 
    
         
             
                          options[:args] += args if args.any?
         
     | 
| 
       34 
31 
     | 
    
         
             
                        end
         
     | 
| 
       35 
32 
     | 
    
         
             
                      end
         
     | 
| 
       36 
     | 
    
         
            -
                      puts "PARSED@end: #{options}"
         
     | 
| 
       37 
33 
     | 
    
         
             
                      options
         
     | 
| 
       38 
34 
     | 
    
         
             
                    end
         
     | 
| 
       39 
35 
     | 
    
         | 
| 
         @@ -42,14 +38,14 @@ module Celluloid 
     | 
|
| 
       42 
38 
     | 
    
         
             
                    # those will not appear in the resulting actor's initialize call.
         
     | 
| 
       43 
39 
     | 
    
         
             
                    undef options rescue nil
         
     | 
| 
       44 
40 
     | 
    
         
             
                    def options(args, options={})
         
     | 
| 
       45 
     | 
    
         
            -
                      return args.merge(options) if args.is_a? Configuration
         
     | 
| 
      
 41 
     | 
    
         
            +
                      return args.merge!(options) if args.is_a? Configuration::Instance
         
     | 
| 
       46 
42 
     | 
    
         
             
                      # Not a Supervision:Configuration?
         
     | 
| 
       47 
43 
     | 
    
         
             
                      # Try to guess its structure and build one:
         
     | 
| 
       48 
44 
     | 
    
         
             
                      options = parse(args).merge(options)
         
     | 
| 
      
 45 
     | 
    
         
            +
                      options[:configuration] = Container::Behavior.configure(options)
         
     | 
| 
       49 
46 
     | 
    
         
             
                      options[:args].compact! if options[:args].is_a? Array
         
     | 
| 
       50 
47 
     | 
    
         
             
                      options.select! { |k, v| !v.nil? }
         
     | 
| 
       51 
48 
     | 
    
         
             
                      Configuration.valid? options, true
         
     | 
| 
       52 
     | 
    
         
            -
                      puts "USING: #{options}"
         
     | 
| 
       53 
49 
     | 
    
         
             
                      options
         
     | 
| 
       54 
50 
     | 
    
         
             
                    end
         
     | 
| 
       55 
51 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -0,0 +1,34 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # collect together all instances of the `supervise` method
         
     | 
| 
      
 2 
     | 
    
         
            +
            module Celluloid
         
     | 
| 
      
 3 
     | 
    
         
            +
              class << self
         
     | 
| 
      
 4 
     | 
    
         
            +
                def supervise(config={}, &block)
         
     | 
| 
      
 5 
     | 
    
         
            +
                  supervisor = Supervision.router(config)
         
     | 
| 
      
 6 
     | 
    
         
            +
                  supervisor.supervise(config, &block)
         
     | 
| 
      
 7 
     | 
    
         
            +
                end
         
     | 
| 
      
 8 
     | 
    
         
            +
              end
         
     | 
| 
      
 9 
     | 
    
         
            +
              module ClassMethods
         
     | 
| 
      
 10 
     | 
    
         
            +
                def supervise(config={}, &block)
         
     | 
| 
      
 11 
     | 
    
         
            +
                  Celluloid.supervise(config.merge(type: self), &block)
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
              module Supervision
         
     | 
| 
      
 15 
     | 
    
         
            +
                class << self
         
     | 
| 
      
 16 
     | 
    
         
            +
                  def router(config={})
         
     | 
| 
      
 17 
     | 
    
         
            +
                    # TODO: Actually route.
         
     | 
| 
      
 18 
     | 
    
         
            +
                    Celluloid.services # for now, hardcode .services
         
     | 
| 
      
 19 
     | 
    
         
            +
                  end
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
                class Container
         
     | 
| 
      
 22 
     | 
    
         
            +
                  class << self
         
     | 
| 
      
 23 
     | 
    
         
            +
                    def supervise(config, &block)
         
     | 
| 
      
 24 
     | 
    
         
            +
                      blocks << lambda do |container|
         
     | 
| 
      
 25 
     | 
    
         
            +
                        container.add(config, &block)
         
     | 
| 
      
 26 
     | 
    
         
            +
                      end
         
     | 
| 
      
 27 
     | 
    
         
            +
                    end
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
                  def supervise(config, &block)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    add(Configuration.options(config, block: block))
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,40 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Celluloid
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Supervision
         
     | 
| 
      
 3 
     | 
    
         
            +
                class Configuration
         
     | 
| 
      
 4 
     | 
    
         
            +
                  class << self
         
     | 
| 
      
 5 
     | 
    
         
            +
                    def valid?(configuration, fail=false)
         
     | 
| 
      
 6 
     | 
    
         
            +
                      parameters(:mandatory).each do |k|
         
     | 
| 
      
 7 
     | 
    
         
            +
                        unless configuration.key? k
         
     | 
| 
      
 8 
     | 
    
         
            +
                          if fail
         
     | 
| 
      
 9 
     | 
    
         
            +
                            fail Error::Incomplete, "Missing `:#{k}` in supervision configuration."
         
     | 
| 
      
 10 
     | 
    
         
            +
                          else
         
     | 
| 
      
 11 
     | 
    
         
            +
                            return false
         
     | 
| 
      
 12 
     | 
    
         
            +
                          end
         
     | 
| 
      
 13 
     | 
    
         
            +
                        end
         
     | 
| 
      
 14 
     | 
    
         
            +
                      end
         
     | 
| 
      
 15 
     | 
    
         
            +
                      arity.each do |klass, args|
         
     | 
| 
      
 16 
     | 
    
         
            +
                        unless configuration[args].is_a? Proc
         
     | 
| 
      
 17 
     | 
    
         
            +
                          __a = configuration[args] && configuration[args].count || 0
         
     | 
| 
      
 18 
     | 
    
         
            +
                          __arity = configuration[klass].allocate.method(:initialize).arity
         
     | 
| 
      
 19 
     | 
    
         
            +
                          unless __arity == -1 || __a == __arity
         
     | 
| 
      
 20 
     | 
    
         
            +
                            if fail
         
     | 
| 
      
 21 
     | 
    
         
            +
                              fail ArgumentError.new("#{__a} vs. #{__arity}")
         
     | 
| 
      
 22 
     | 
    
         
            +
                            else
         
     | 
| 
      
 23 
     | 
    
         
            +
                              return false
         
     | 
| 
      
 24 
     | 
    
         
            +
                            end
         
     | 
| 
      
 25 
     | 
    
         
            +
                          end
         
     | 
| 
      
 26 
     | 
    
         
            +
                        end
         
     | 
| 
      
 27 
     | 
    
         
            +
                      end
         
     | 
| 
      
 28 
     | 
    
         
            +
                      true
         
     | 
| 
      
 29 
     | 
    
         
            +
                    end
         
     | 
| 
      
 30 
     | 
    
         
            +
                    def options(config={}, options={})
         
     | 
| 
      
 31 
     | 
    
         
            +
                      configuration = config.merge(options)
         
     | 
| 
      
 32 
     | 
    
         
            +
                      return configuration if configuration.is_a? Configuration
         
     | 
| 
      
 33 
     | 
    
         
            +
                      configuration[:configuration] = Container::Behavior.configure(configuration)
         
     | 
| 
      
 34 
     | 
    
         
            +
                      valid?(configuration, true)
         
     | 
| 
      
 35 
     | 
    
         
            +
                      configuration
         
     | 
| 
      
 36 
     | 
    
         
            +
                    end
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
              end
         
     | 
| 
      
 40 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,17 +1,241 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: celluloid-supervision
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.20.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.20.0.pre5
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - digitalextremist //
         
     | 
| 
       8 
8 
     | 
    
         
             
            - Tony Arcieri
         
     | 
| 
       9 
9 
     | 
    
         
             
            - Tim Carey-Smith
         
     | 
| 
       10 
     | 
    
         
            -
            autorequire: 
     | 
| 
      
 10 
     | 
    
         
            +
            autorequire:
         
     | 
| 
       11 
11 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       12 
12 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       13 
     | 
    
         
            -
            date: 2015-05- 
     | 
| 
       14 
     | 
    
         
            -
            dependencies: 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2015-05-09 00:00:00.000000000 Z
         
     | 
| 
      
 14 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 15 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 17 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 18 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 19 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 20 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 21 
     | 
    
         
            +
              name: bundler
         
     | 
| 
      
 22 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 23 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 25 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 26 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 27 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 28 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 29 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 30 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 31 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 32 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 33 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 34 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 35 
     | 
    
         
            +
              name: nenv
         
     | 
| 
      
 36 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 37 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 38 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 39 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 40 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 41 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 42 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 43 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 44 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 45 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 46 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 47 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 48 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 49 
     | 
    
         
            +
              name: dotenv
         
     | 
| 
      
 50 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 51 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 52 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 53 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 54 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 55 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 56 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 57 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 58 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 59 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 60 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 61 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 62 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 63 
     | 
    
         
            +
              name: benchmark_suite
         
     | 
| 
      
 64 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 65 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 66 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 67 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 68 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 69 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 70 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 71 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 72 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 73 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 74 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 75 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 76 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 77 
     | 
    
         
            +
              name: rubocop
         
     | 
| 
      
 78 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 79 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 80 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 81 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 82 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 83 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 84 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 85 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 86 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 87 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 88 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 89 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 90 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 91 
     | 
    
         
            +
              name: pry
         
     | 
| 
      
 92 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 93 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 94 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 95 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 96 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 97 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 98 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 99 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 100 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 101 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 102 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 103 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 104 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 105 
     | 
    
         
            +
              name: rake
         
     | 
| 
      
 106 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 107 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 108 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 109 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 110 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 111 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 112 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 113 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 114 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 115 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 116 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 117 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 118 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 119 
     | 
    
         
            +
              name: rspec
         
     | 
| 
      
 120 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 121 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 122 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 123 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 124 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 125 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 126 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 127 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 128 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 129 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 130 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 131 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 132 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 133 
     | 
    
         
            +
              name: coveralls
         
     | 
| 
      
 134 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 135 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 136 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 137 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 138 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 139 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 140 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 141 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 142 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 143 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 144 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 145 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 146 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 147 
     | 
    
         
            +
              name: celluloid
         
     | 
| 
      
 148 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 149 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 150 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 151 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 152 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 153 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 154 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 155 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 156 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 157 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 158 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 159 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 160 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 161 
     | 
    
         
            +
              name: celluloid-essentials
         
     | 
| 
      
 162 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 163 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 164 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 165 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 166 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 167 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 168 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 169 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 170 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 171 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 172 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 173 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 174 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 175 
     | 
    
         
            +
              name: celluloid-pool
         
     | 
| 
      
 176 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 177 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 178 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 179 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 180 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 181 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 182 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 183 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 184 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 185 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 186 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 187 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 188 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 189 
     | 
    
         
            +
              name: celluloid-fsm
         
     | 
| 
      
 190 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 191 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 192 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 193 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 194 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 195 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 196 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 197 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 198 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 199 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 200 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 201 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 202 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 203 
     | 
    
         
            +
              name: celluloid-extras
         
     | 
| 
      
 204 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 205 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 206 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 207 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 208 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 209 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 210 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 211 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 212 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 213 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 214 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 215 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 216 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 217 
     | 
    
         
            +
              name: timers
         
     | 
| 
      
 218 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 219 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 220 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 221 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 222 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 223 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 224 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 225 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 226 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 227 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 228 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 229 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 230 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 231 
     | 
    
         
            +
              name: rspec-logsplit
         
     | 
| 
      
 232 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 233 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 234 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 235 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 236 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 237 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 238 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       15 
239 
     | 
    
         
             
            description: Supervisors, Supervision Groups, and Supervision Trees for Celluloid.
         
     | 
| 
       16 
240 
     | 
    
         
             
            email:
         
     | 
| 
       17 
241 
     | 
    
         
             
            - code@extremist.digital
         
     | 
| 
         @@ -20,16 +244,15 @@ executables: [] 
     | 
|
| 
       20 
244 
     | 
    
         
             
            extensions: []
         
     | 
| 
       21 
245 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       22 
246 
     | 
    
         
             
            files:
         
     | 
| 
       23 
     | 
    
         
            -
            -  
     | 
| 
       24 
     | 
    
         
            -
            -  
     | 
| 
       25 
     | 
    
         
            -
            -  
     | 
| 
       26 
     | 
    
         
            -
            -  
     | 
| 
       27 
     | 
    
         
            -
            -  
     | 
| 
       28 
     | 
    
         
            -
            -  
     | 
| 
       29 
     | 
    
         
            -
            -  
     | 
| 
       30 
     | 
    
         
            -
            -  
     | 
| 
      
 247 
     | 
    
         
            +
            - .coveralls.yml
         
     | 
| 
      
 248 
     | 
    
         
            +
            - .env-ci
         
     | 
| 
      
 249 
     | 
    
         
            +
            - .env-dev
         
     | 
| 
      
 250 
     | 
    
         
            +
            - .gitignore
         
     | 
| 
      
 251 
     | 
    
         
            +
            - .gitmodules
         
     | 
| 
      
 252 
     | 
    
         
            +
            - .rspec
         
     | 
| 
      
 253 
     | 
    
         
            +
            - .rubocop.yml
         
     | 
| 
      
 254 
     | 
    
         
            +
            - .travis.yml
         
     | 
| 
       31 
255 
     | 
    
         
             
            - CHANGES.md
         
     | 
| 
       32 
     | 
    
         
            -
            - CONDUCT.md
         
     | 
| 
       33 
256 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       34 
257 
     | 
    
         
             
            - LICENSE
         
     | 
| 
       35 
258 
     | 
    
         
             
            - README.md
         
     | 
| 
         @@ -47,9 +270,11 @@ files: 
     | 
|
| 
       47 
270 
     | 
    
         
             
            - lib/celluloid/supervision/container/instance.rb
         
     | 
| 
       48 
271 
     | 
    
         
             
            - lib/celluloid/supervision/container/tree.rb
         
     | 
| 
       49 
272 
     | 
    
         
             
            - lib/celluloid/supervision/deprecate.rb
         
     | 
| 
       50 
     | 
    
         
            -
            - lib/celluloid/supervision/deprecate/ 
     | 
| 
       51 
     | 
    
         
            -
            - lib/celluloid/supervision/deprecate/ 
     | 
| 
      
 273 
     | 
    
         
            +
            - lib/celluloid/supervision/deprecate/supervise.rb
         
     | 
| 
      
 274 
     | 
    
         
            +
            - lib/celluloid/supervision/deprecate/validation.rb
         
     | 
| 
       52 
275 
     | 
    
         
             
            - lib/celluloid/supervision/service.rb
         
     | 
| 
      
 276 
     | 
    
         
            +
            - lib/celluloid/supervision/supervise.rb
         
     | 
| 
      
 277 
     | 
    
         
            +
            - lib/celluloid/supervision/validation.rb
         
     | 
| 
       53 
278 
     | 
    
         
             
            - lib/celluloid/supervision/version.rb
         
     | 
| 
       54 
279 
     | 
    
         
             
            - tasks/benchmarks.rake
         
     | 
| 
       55 
280 
     | 
    
         
             
            - tasks/rspec.rake
         
     | 
| 
         @@ -58,24 +283,24 @@ homepage: https://github.com/celluloid/ 
     | 
|
| 
       58 
283 
     | 
    
         
             
            licenses:
         
     | 
| 
       59 
284 
     | 
    
         
             
            - MIT
         
     | 
| 
       60 
285 
     | 
    
         
             
            metadata: {}
         
     | 
| 
       61 
     | 
    
         
            -
            post_install_message: 
     | 
| 
      
 286 
     | 
    
         
            +
            post_install_message:
         
     | 
| 
       62 
287 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       63 
288 
     | 
    
         
             
            require_paths:
         
     | 
| 
       64 
289 
     | 
    
         
             
            - lib
         
     | 
| 
       65 
290 
     | 
    
         
             
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
       66 
291 
     | 
    
         
             
              requirements:
         
     | 
| 
       67 
     | 
    
         
            -
              - -  
     | 
| 
      
 292 
     | 
    
         
            +
              - - '>='
         
     | 
| 
       68 
293 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       69 
294 
     | 
    
         
             
                  version: 1.9.2
         
     | 
| 
       70 
295 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       71 
296 
     | 
    
         
             
              requirements:
         
     | 
| 
       72 
     | 
    
         
            -
              - -  
     | 
| 
      
 297 
     | 
    
         
            +
              - - '>='
         
     | 
| 
       73 
298 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       74 
299 
     | 
    
         
             
                  version: 1.3.6
         
     | 
| 
       75 
300 
     | 
    
         
             
            requirements: []
         
     | 
| 
       76 
     | 
    
         
            -
            rubyforge_project: 
     | 
| 
      
 301 
     | 
    
         
            +
            rubyforge_project:
         
     | 
| 
       77 
302 
     | 
    
         
             
            rubygems_version: 2.4.6
         
     | 
| 
       78 
     | 
    
         
            -
            signing_key: 
     | 
| 
      
 303 
     | 
    
         
            +
            signing_key:
         
     | 
| 
       79 
304 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       80 
305 
     | 
    
         
             
            summary: Celluloid Supervision
         
     | 
| 
       81 
306 
     | 
    
         
             
            test_files: []
         
     | 
    
        data/CONDUCT.md
    DELETED
    
    | 
         @@ -1,13 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # Contributor Code of Conduct
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion.
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
            Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
            Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
         
     |