Sha256: 7ccbdec9cb183a7a7bb142848e52e6e4482cc9914600afe57eefa193274a9aec
Contents?: true
Size: 822 Bytes
Versions: 2
Compression:
Stored size: 822 Bytes
Contents
# frozen_string_literal: true require 'open3' module Mnogootex module Job class Runner attr_reader :hid, :log_lines def initialize(cl:, chdir:) @log_lines = [] _, @stream, @thread = Open3.popen2e(*cl, chdir: chdir) @poller = start_poller end def alive? @poller.alive? end def successful? @poller.value.exitstatus.zero? end def count_lines return log_lines.size unless alive? @ticks = [@ticks || -1, log_lines.size - 1].min + 1 end private def start_poller Thread.new do until (line = @stream.gets).nil? log_lines << line end # NOTE: waits on @thread and returns its value @thread.value end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mnogootex-1.0.1 | lib/mnogootex/job/runner.rb |
mnogootex-1.0.0 | lib/mnogootex/job/runner.rb |