Sha256: 8ba49799cb74357d117ee6090fc02a100ad221730652aad43e08be345b577e08

Contents?: true

Size: 926 Bytes

Versions: 9

Compression:

Stored size: 926 Bytes

Contents

module ModernTimes
  module Base
    module Worker
      attr_accessor :name, :index, :thread

      module ClassMethods
        def default_name
          name = self.name.sub(/Worker$/, '')
          name.sub(/::/, '_')
        end

        def create_supervisor(manager, worker_options)
          Supervisor.new(manager, self, {}, worker_options)
        end
      end

      def self.included(base)
        base.extend(ClassMethods)
      end

      def initialize(opts={})
        @name = opts[:name] || self.class.default_name
      end

      # One time initialization prior to first thread
      def setup
      end

      def start
        raise "Need to override start method in #{self.class.name}"
      end

      def stop
        raise "Need to override stop method in #{self.class.name}"
      end

      def status
        raise "Need to override status method in #{self.class.name}"
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
modern_times-0.2.11 lib/modern_times/base/worker.rb
modern_times-0.2.10 lib/modern_times/base/worker.rb
modern_times-0.2.9 lib/modern_times/base/worker.rb
modern_times-0.2.8 lib/modern_times/base/worker.rb
modern_times-0.2.7 lib/modern_times/base/worker.rb
modern_times-0.2.6 lib/modern_times/base/worker.rb
modern_times-0.2.5 lib/modern_times/base/worker.rb
modern_times-0.2.4 lib/modern_times/base/worker.rb
modern_times-0.2.3 lib/modern_times/base/worker.rb