Compare commits

..

No commits in common. "master" and "v1.0.3" have entirely different histories.

7 changed files with 15 additions and 39 deletions

View File

@ -2,23 +2,17 @@ module Gnucash
# Represent a GnuCash account object # Represent a GnuCash account object
class Account class Account
# _String_: The name of the account (unqualified) # _String_: The name of the account (unqualified)
attr_reader :name attr_accessor :name
# _String_: The account description
attr_reader :description
# _String_: The account type (such as "EXPENSE") # _String_: The account type (such as "EXPENSE")
attr_reader :type attr_accessor :type
# _String_: The GUID of the account # _String_: The GUID of the account
attr_reader :id attr_accessor :id
# _Array_: List of _AccountTransaction_ transactions associated with this # _Array_: List of _AccountTransaction_ transactions associated with this
# account. # account.
attr_reader :transactions attr_accessor :transactions
# Boolean: whether the account is a placeholder or not
attr_reader :placeholder
# Create an Account object. # Create an Account object.
# === Arguments # === Arguments
@ -29,16 +23,11 @@ module Gnucash
@node = node @node = node
@name = node.xpath('act:name').text @name = node.xpath('act:name').text
@type = node.xpath('act:type').text @type = node.xpath('act:type').text
@description = node.xpath('act:description').text
@id = node.xpath('act:id').text @id = node.xpath('act:id').text
@parent_id = node.xpath('act:parent').text @parent_id = node.xpath('act:parent').text
@parent_id = nil if @parent_id == "" @parent_id = nil if @parent_id == ""
@transactions = [] @transactions = []
@balances = [] @balances = []
@placeholder = node.xpath("act:slots/slot").find do |slot|
(slot.xpath("slot:key").first.text == "placeholder" and
slot.xpath("slot:value").first.text == "true")
end
end end
# Return the fully qualified account name # Return the fully qualified account name

View File

@ -2,7 +2,7 @@ module Gnucash
# Class to link a transaction object to an Account. # Class to link a transaction object to an Account.
class AccountTransaction class AccountTransaction
# _Gnucash::Value_: The transaction value for the linked account # _Gnucash::Value_: The transaction value for the linked account
attr_reader :value attr_accessor :value
# Construct an AccountTransaction object. # Construct an AccountTransaction object.
# This method is used internally when building a Transaction object. # This method is used internally when building a Transaction object.

View File

@ -5,16 +5,16 @@ module Gnucash
# Represent a GnuCash Book # Represent a GnuCash Book
class Book class Book
# _Array_ of _Gnucash::Account_ objects in the book # _Array_ of _Gnucash::Account_ objects in the book
attr_reader :accounts attr_accessor :accounts
# _Array_ of _Gnucash::Transaction_ objects in the book # _Array_ of _Gnucash::Transaction_ objects in the book
attr_reader :transactions attr_accessor :transactions
# _String_ in "YYYY-MM-DD" format of the first transaction in the book # _String_ in "YYYY-MM-DD" format of the first transaction in the book
attr_reader :start_date attr_accessor :start_date
# _String_ in "YYYY-MM-DD" format of the last transaction in the book # _String_ in "YYYY-MM-DD" format of the last transaction in the book
attr_reader :end_date attr_accessor :end_date
# Construct a Book object. # Construct a Book object.
# Normally called internally by Gnucash.open() # Normally called internally by Gnucash.open()

View File

@ -5,16 +5,16 @@ module Gnucash
# with an individual account. # with an individual account.
class Transaction class Transaction
# _String_: The date of the transaction, in ISO format ("YYYY-MM-DD") # _String_: The date of the transaction, in ISO format ("YYYY-MM-DD")
attr_reader :date attr_accessor :date
# _String_: The GUID of the transaction # _String_: The GUID of the transaction
attr_reader :id attr_accessor :id
# _String_: The description of the transaction # _String_: The description of the transaction
attr_reader :description attr_accessor :description
# _Array_ of _Hash_ with keys +account+ and +value+ # _Array_ of _Hash_ with keys +account+ and +value+
attr_reader :splits attr_accessor :splits
# Create a new Transaction object # Create a new Transaction object
# === Arguments # === Arguments

View File

@ -5,7 +5,7 @@ module Gnucash
include Comparable include Comparable
# _Fixnum_:: The raw, undivided integer value # _Fixnum_:: The raw, undivided integer value
attr_reader :val attr_accessor :val
# Create a new Value object with value 0 # Create a new Value object with value 0
def self.zero def self.zero

View File

@ -1,4 +1,4 @@
module Gnucash module Gnucash
# gem version # gem version
VERSION = "1.1.0" VERSION = "1.0.3"
end end

View File

@ -3,9 +3,7 @@ module Gnucash
before(:all) do before(:all) do
# just read the file once # just read the file once
@book = Gnucash.open("spec/books/sample.gnucash") @book = Gnucash.open("spec/books/sample.gnucash")
@assets = @book.find_account_by_full_name("Assets")
@checking = @book.find_account_by_full_name("Assets::Current Assets::Checking Account") @checking = @book.find_account_by_full_name("Assets::Current Assets::Checking Account")
@income = @book.find_account_by_full_name("Income")
@salary = @book.find_account_by_full_name("Income::Salary") @salary = @book.find_account_by_full_name("Income::Salary")
end end
@ -13,10 +11,6 @@ module Gnucash
@salary.name.should == "Salary" @salary.name.should == "Salary"
end end
it "gives access to the account description" do
@checking.description.should == "Checking Account"
end
it "gives access to the fully-qualified account name" do it "gives access to the fully-qualified account name" do
@checking.full_name.should == "Assets::Current Assets::Checking Account" @checking.full_name.should == "Assets::Current Assets::Checking Account"
end end
@ -42,12 +36,5 @@ module Gnucash
@checking.balance_on("2007-03-27").should == Value.new(780000) @checking.balance_on("2007-03-27").should == Value.new(780000)
end end
end end
it "stores whether the account was a placeholder" do
@assets.placeholder.should be_true
@checking.placeholder.should be_false
@income.placeholder.should be_true
@salary.placeholder.should be_false
end
end end
end end