Sha256: 81abb3ab73d9ba9acb74e9194f6a9bee96a732fbab6e22e46d285ddb8ddc7fe9

Contents?: true

Size: 913 Bytes

Versions: 1

Compression:

Stored size: 913 Bytes

Contents

require 'pdf-reader'
require 'open-uri'
require_relative 'ecobank-pdf-parser/helpers'

module NgBankParser
  class EcobankPdf
    extend EcobankPdfHelpers

    FILE_FORMATS = [".pdf"]
    
    def self.parse(path, password=nil) 
      unless FILE_FORMATS.include? File.extname(path)
        return error("Invalid file format. Please use one of the following: #{ FILE_FORMATS.each{ |format| format }}")
      end

      file = open(path)
      begin
        @pdf = PDF::Reader.new(file)
      rescue PDF::Reader::EncryptedPDFError
        return error("Invalid file. Please use an unencrypted pdf")
      rescue 
        return error("Couldn't parse this file")
      end

      pdf_array = pdf_to_a(@pdf)

      unless has_valid_details?(pdf_array)
        return error("Couldn't fetch account details from pdf")
      end

      response = get_details(pdf_array)
      return success(response)
    end 
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ng-bank-parser-0.1.7 lib/ng-bank-parser/parsers/ecobank-pdf-parser.rb