class PDFMeta::Runner

Attributes

output[R]

Public Class Methods

new(command) click to toggle source
# File lib/pdf_meta/runner.rb, line 5
def initialize(command)
  stdin, stdout, stderr, wait_thr = Open3.popen3(command)
  @output  = stdout.read
  @error   = stderr.read
  @process = wait_thr.value 
end

Public Instance Methods

error() click to toggle source
# File lib/pdf_meta/runner.rb, line 16
def error
  error_mapping[@process.exitstatus].new(@error)
end
success?() click to toggle source
# File lib/pdf_meta/runner.rb, line 12
def success?
  @process.success?
end

Private Instance Methods

error_mapping() click to toggle source
# File lib/pdf_meta/runner.rb, line 22
def error_mapping
  @error_mapping ||= Hash.new(UnknownError).merge({
    1 =>  PDFMeta::UnableToReadFileError,
    2 =>  PDFMeta::UnableOpenOutputFileError,
    3 =>  PDFMeta::PDFPermissionError,
    99 => PDFMeta::UnknownPopplerError
  })
end