Sha256: 20e29b3cbd675b998160fa744c301fdd0e6cabb69542f518b4025f6287c29d10

Contents?: true

Size: 612 Bytes

Versions: 10

Compression:

Stored size: 612 Bytes

Contents

module Kryten::Weaver
  attr_reader :worker
  attr_accessor :workers

  def setup
    if workers
      log 'starting workers'
      workers.each(&:start_work)
    end
  end

  def start_work
    if worker && worker.alive?
      log 'worker already running'
      return false
    end

    @started = true
    @worker = Thread.new { start }
  end

  def shutdown
    workers.each(&:stop_running) if workers
  end

  def stop_work
    stop_running
  end

  def workers
    if block_given?
      @workers = Array(yield)
      return self
    end
    @workers
  end

  def log_path
    "/tmp/#{name}.log"
  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
kryten-0.3.9 lib/kryten/weaver.rb
kryten-0.3.8 lib/kryten/weaver.rb
kryten-0.3.7 lib/kryten/weaver.rb
kryten-0.3.6 lib/kryten/weaver.rb
kryten-0.3.5 lib/kryten/weaver.rb
kryten-0.3.4 lib/kryten/weaver.rb
kryten-0.3.3 lib/kryten/weaver.rb
kryten-0.3.2 lib/kryten/weaver.rb
kryten-0.3.1 lib/kryten/weaver.rb
kryten-0.3.0 lib/kryten/weaver.rb