Sha256: 2b211178dced4d339961b761f08e4ffef7a6ce7f848794940a1a40a63623e9d2

Contents?: true

Size: 594 Bytes

Versions: 3

Compression:

Stored size: 594 Bytes

Contents

module PayoneerCsv

  class PdfReader
    attr_reader :file_path

    def initialize(file_path)
      @file_path = file_path
    end

    def read
      transactions = []

      raw_data.each_line do |row|
        match_data = parse(row)
        next unless match_data

        transactions << Transaction.new(match_data)
      end

      transactions
    end

    def raw_data
      `less #{file_path}`
    end

    def parse(row)
      row.match /^(?<created_at>\d{1,2}\/\d{1,2}\/\d{4} \d{1,2}:\d{2}:\d{2} (AM|PM))\s+ (?<description>.+) (?<amount>-?(\d|,)+\.\d{2})\s+USD$/
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
payoneer_csv-0.1.2 lib/payoneer_csv/pdf_reader.rb
payoneer_csv-0.1.1 lib/payoneer_csv/pdf_reader.rb
payoneer_csv-0.1.0 lib/payoneer_csv/pdf_reader.rb