diff --git a/ledger/delta.go b/ledger/delta.go index e062516..7d53c41 100644 --- a/ledger/delta.go +++ b/ledger/delta.go @@ -22,17 +22,17 @@ type Delta struct { func newDeltas(t *ledger.Transaction) []Delta { result := make([]Delta, len(t.AccountChanges)) for i, a := range t.AccountChanges { - result[i] = newDelta(t.Date, a) + value, _ := a.Balance.Float64() + result[i] = newDelta(t.Date, a.Name, value) } return result } -func newDelta(d time.Time, a ledger.Account) Delta { - value, _ := a.Balance.Float64() +func newDelta(d time.Time, a string, v float64) Delta { return Delta{ Date: d, - Account: a.Name, - Value: value, + Account: a, + Value: v, Currency: USD, // TODO } } diff --git a/ledger/delta_test.go b/ledger/delta_test.go index 5804c0d..58accaa 100644 --- a/ledger/delta_test.go +++ b/ledger/delta_test.go @@ -3,9 +3,6 @@ package ledger import ( "testing" "time" - - "github.com/howeyc/ledger" - "github.com/howeyc/ledger/decimal" ) func TestDelta(t *testing.T) { @@ -13,11 +10,7 @@ func TestDelta(t *testing.T) { if err != nil { t.Fatal(err) } - delta := newDelta(d, ledger.Account{ - Name: "name", - Balance: decimal.NewFromFloat(34.56), - Comment: "comment", - }) + delta := newDelta(d, "name", 34.56) if delta.Date != d { t.Error(delta.Date) @@ -34,11 +27,7 @@ func TestDelta(t *testing.T) { t.Log(delta) d2, _ := time.Parse("2006-01-02", "2099-09-08") - delta2 := newDelta(d2, ledger.Account{ - Name: "name", - Balance: decimal.NewFromFloat(11.11), - Comment: "comment", - }) + delta2 := newDelta(d2, "name", 11.11) combined := delta.Plus(delta2) if combined.Date != d2 { diff --git a/ledger/file.go b/ledger/file.go index f8e4268..5793c07 100644 --- a/ledger/file.go +++ b/ledger/file.go @@ -1,6 +1,8 @@ package ledger import ( + "os" + "github.com/howeyc/ledger" ) @@ -30,5 +32,10 @@ func (file File) Deltas(like ...Like) ([]Delta, error) { } func (file File) transactions() ([]*ledger.Transaction, error) { - return ledger.ParseLedgerFile(string(file)) + f, err := os.Open(string(file)) + if err != nil { + return nil, err + } + defer f.Close() + return ledger.ParseLedger(f) }