Sha256: 7099a48b55dd4991ff1d290275b8c41ae3ffae140029230e54ccfd9d951d937f
Contents?: true
Size: 1.09 KB
Versions: 3
Compression:
Stored size: 1.09 KB
Contents
class WickedPdf module Progress require 'pty' if RbConfig::CONFIG['target_os'] !~ /mswin|mingw/ && RUBY_ENGINE != 'truffleruby' # no support for windows and truffleruby require 'English' def track_progress?(options) options[:progress] && !(on_windows? || RUBY_ENGINE == 'truffleruby') end def invoke_with_progress(command, options) output = [] begin PTY.spawn(command.join(' ')) do |stdout, _stdin, pid| begin stdout.sync stdout.each_line("\r") do |line| output << line.chomp options[:progress].call(line) if options[:progress] end rescue Errno::EIO # rubocop:disable Lint/HandleExceptions # child process is terminated, this is expected behaviour ensure ::Process.wait pid end end rescue PTY::ChildExited puts 'The child process exited!' end err = output.join('\n') raise "#{command} failed (exitstatus 0). Output was: #{err}" unless $CHILD_STATUS && $CHILD_STATUS.exitstatus.zero? end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
wicked_pdf-2.8.2 | lib/wicked_pdf/progress.rb |
wicked_pdf-2.8.1 | lib/wicked_pdf/progress.rb |
wicked_pdf-2.8.0 | lib/wicked_pdf/progress.rb |