match full account name when (any) account pattern contains :, as ledger seems to
This commit is contained in:
parent
760befef89
commit
7a69efec70
@ -138,7 +138,7 @@ showBalanceReport opts args l = acctsstr ++ totalstr
|
||||
-- select accounts for which we should show balances, based on the options
|
||||
balancereportaccts :: Bool -> [String] -> Ledger -> [Account]
|
||||
balancereportaccts False [] l = topAccounts l
|
||||
balancereportaccts False pats l = accountsMatching (regexFor pats) l
|
||||
balancereportaccts False pats l = accountsMatching pats l
|
||||
balancereportaccts True pats l = addsubaccts l $ balancereportaccts False pats l
|
||||
|
||||
-- add (in tree order) any missing subacccounts to a list of accounts
|
||||
|
||||
@ -68,9 +68,14 @@ accounts l = drop 1 $ flatten $ ledgerAccountTree 9999 l
|
||||
topAccounts :: Ledger -> [Account]
|
||||
topAccounts l = map root $ branches $ ledgerAccountTree 9999 l
|
||||
|
||||
-- | Accounts in ledger whose leafname matches the pattern, in tree order
|
||||
accountsMatching :: Regex -> Ledger -> [Account]
|
||||
accountsMatching pat l = filter (containsRegex pat . accountLeafName . aname) $ accounts l
|
||||
-- | Accounts in ledger whose name matches the pattern, in tree order.
|
||||
-- Like ledger (I think), if the pattern contains : we match the full
|
||||
-- name, otherwise just the leaf name.
|
||||
accountsMatching :: [String] -> Ledger -> [Account]
|
||||
accountsMatching pats l = filter (containsRegex (regexFor pats) . name) $ accounts l
|
||||
where name = if any (elem ':') pats
|
||||
then aname
|
||||
else accountLeafName . aname
|
||||
|
||||
-- | List a ledger account's immediate subaccounts
|
||||
subAccounts :: Ledger -> Account -> [Account]
|
||||
|
||||
10
Tests.hs
10
Tests.hs
@ -181,6 +181,16 @@ balancecommandtests =
|
||||
\ $-1\n\
|
||||
\" --"
|
||||
(showBalanceReport [] ["cash","saving"] l)
|
||||
,
|
||||
"balance report with multi-part account name" ~:
|
||||
do
|
||||
l <- ledgerfromfile "sample.ledger"
|
||||
assertequal
|
||||
" $1 expenses:food\n\
|
||||
\--------------------\n\
|
||||
\ $1\n\
|
||||
\" --"
|
||||
$ showBalanceReport [] ["expenses:food"] l
|
||||
]
|
||||
|
||||
-- | Assert a parsed thing equals some expected thing, or print a parse error.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user