class Mnogootex::Job::Runner
Attributes
hid[R]
log_lines[R]
Public Class Methods
new(cl:, chdir:)
click to toggle source
# File lib/mnogootex/job/runner.rb, line 10 def initialize(cl:, chdir:) @log_lines = [] _, @stream, @thread = Open3.popen2e(*cl, chdir: chdir) @poller = start_poller end
Public Instance Methods
alive?()
click to toggle source
# File lib/mnogootex/job/runner.rb, line 16 def alive? @poller.alive? end
count_lines()
click to toggle source
# File lib/mnogootex/job/runner.rb, line 24 def count_lines return log_lines.size unless alive? @ticks = [@ticks || -1, log_lines.size - 1].min + 1 end
successful?()
click to toggle source
# File lib/mnogootex/job/runner.rb, line 20 def successful? @poller.value.exitstatus.zero? end
Private Instance Methods
start_poller()
click to toggle source
# File lib/mnogootex/job/runner.rb, line 31 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