class NdrImport::File::Pdf

This class is a PDF file handler that returns a single table.

Private Instance Methods

process_page(page, &block) click to toggle source
# File lib/ndr_import/file/pdf.rb, line 26
def process_page(page, &block)
  page.text.split("\n").each do |line|
    block.call(line)
  end
rescue => e
  raise "Invalid format on page #{page.number} of #{SafeFile.basename(@filename)} " \
        "[#{e.class}: #{e.message}]"
end
rows(&block) click to toggle source
# File lib/ndr_import/file/pdf.rb, line 13
def rows(&block)
  return enum_for(:rows) unless block

  reader = PDF::Reader.new(SafeFile.safepath_to_string(@filename))

  reader.pages.each do |page|
    process_page(page, &block)
  end

rescue NoMethodError
  raise "Failed to read #{SafeFile.basename(@filename)} as a PDF"
end