Sha256: b36c32a2438ac07fdade335c248cdd5fb4705736f00cca5fdf4bf25a4ca83228

Contents?: true

Size: 993 Bytes

Versions: 13

Compression:

Stored size: 993 Bytes

Contents

module Daemonizer
  class Handler
    attr_accessor :worker_id
    attr_accessor :workers_count
    attr_accessor :logger
    
    def initialize(handler_options = {})
      @handler_options = handler_options
    end
    
    def prepare(block)
      block.call
    end
    
    def option(key)
      if handler_option = @handler_options[key.to_sym]
        handler_option.value(self)
      else
        nil
      end
    end
    
    def after_fork
      if block = option(:after_fork)
        block.call(Daemonizer.logger, @worker_id, @workers_count)
      end
    end
  end
  
  class FakeHandler < Handler
    def initialize(prepare, start, handler_options = {})
      @prepare = prepare
      @start = start
      super(handler_options)
    end
    
    def prepare(block)
      if @prepare
        @prepare.call(Daemonizer.logger, block)
      else
        super
      end
    end
        
    def start
      @start.call(Daemonizer.logger, @worker_id, @workers_count)
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
daemonizer-0.3.10 lib/daemonizer/handler.rb
daemonizer-0.3.9 lib/daemonizer/handler.rb
daemonizer-0.3.8 lib/daemonizer/handler.rb
daemonizer-0.3.7 lib/daemonizer/handler.rb
daemonizer-0.3.6 lib/daemonizer/handler.rb
daemonizer-0.3.5 lib/daemonizer/handler.rb
daemonizer-0.3.4 lib/daemonizer/handler.rb
daemonizer-0.3.3 lib/daemonizer/handler.rb
daemonizer-0.3.2 lib/daemonizer/handler.rb
daemonizer-0.3.1 lib/daemonizer/handler.rb
daemonizer-0.3.0 lib/daemonizer/handler.rb
daemonizer-0.2.2 lib/daemonizer/handler.rb
daemonizer-0.2.0 lib/daemonizer/handler.rb