class DuoSplitter::BatchProcessor
Public Class Methods
new(message:, show_progress: true)
click to toggle source
# File lib/duo_splitter/batch_processor.rb, line 7 def initialize(message:, show_progress: true) @message = message @show_progress = show_progress end
Public Instance Methods
run(commands)
click to toggle source
# File lib/duo_splitter/batch_processor.rb, line 12 def run(commands) commands.each.with_index(1) do |command, index| print_progress "#{@message} #{index}/#{commands.size}\r" shell_output = IO.popen(command, err: %i[child out], &:read) status = $CHILD_STATUS.exitstatus unless status.zero? print_progress "\n" print_progress "#{shell_output}\n" raise Error, "process exit with #{status}" end end print_progress "\n" end
Private Instance Methods
print_progress(str)
click to toggle source
# File lib/duo_splitter/batch_processor.rb, line 32 def print_progress(str) $stderr.print(str) if @show_progress end