class Transaction::Parser

Public: Initializes a Transaction::Parser object. A 'ledger.yaml' file must exist in the current working directory.

Examples

require 'transactions'
# read the ledger.yaml file into a Transaction::Parser object
t = Transaction::Parser.new

Returns nothing

Public Class Methods

new() click to toggle source
# File lib/transactions/main.rb, line 15
def initialize
  @options = Options.new.options
  @default_ledger = 'ledger.yaml'
  if @options[:file]
    ledger = File.read @options[:file]
  else
    if File.exists? File.expand_path(@default_ledger)
      ledger = File.read(File.expand_path(@default_ledger))
    else
      abort "There is no 'ledger.yaml' file in the current directory."
    end
  end
  @ledger = YAML::load ledger if ledger != ""
  @ledger = [] if ledger == ""
  @date = Time.now.strftime "%Y/%m/%d"
  if @options[:sort] == 'tran'  # sort by transaction
    @ledger.sort_by! { |h| h['transaction'] }
  elsif @options[:sort] == 'date'  # sort by date
    @ledger.sort_by! { |h| h['date'] }
  end
end