Gnucash
Ruby library for extracting data from XML GnuCash data files
Installation
Add this line to your application’s Gemfile:
gem 'gnucash'
And then execute:
$ bundle
Or install it yourself as:
$ gem install gnucash
Usage
```ruby require “gnucash”
book = Gnucash.open(“MyBook.gnucash”)
book.accounts.each do |account| puts “#accountaccount.full_name: #accountaccount.final_balance” end
act = book.find_account_by_full_name(“Assets:Checking”) balance = Gnucash::Value.zero act.transactions.each do |txn| balance += txn.value $stdout.printf(“%s %8s %8s %s\n”, txn.date, txn.value, balance, txn.description)) end
year = Date.today.year delta = act.balance_on(“#year-12-31”) - act.balance_on(“#- 1-12-31”) puts “You’ve saved #delta this year so far!” ```
To get the balance of an account, use act.balance_on("#{year}-12-31")
.
To get the total balance of an account with all its children accounts,
use act.balance_on("#{year}-12-31", recursive: true)
.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request