| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Hledger.Data.AccountName
Description
AccountNames are strings like assets:cash:petty, with multiple
components separated by :. From a set of these we derive the account
hierarchy.
- acctsepchar :: Char
- accountNameComponents :: AccountName -> [String]
- accountNameFromComponents :: [String] -> AccountName
- accountLeafName :: AccountName -> String
- accountNameLevel :: AccountName -> Int
- accountNameDrop :: Int -> AccountName -> AccountName
- expandAccountNames :: [AccountName] -> [AccountName]
- expandAccountName :: AccountName -> [AccountName]
- topAccountNames :: [AccountName] -> [AccountName]
- parentAccountName :: AccountName -> AccountName
- parentAccountNames :: AccountName -> [AccountName]
- isAccountNamePrefixOf :: AccountName -> AccountName -> Bool
- isSubAccountNameOf :: AccountName -> AccountName -> Bool
- subAccountNamesFrom :: [AccountName] -> AccountName -> [AccountName]
- accountNameTreeFrom :: [AccountName] -> Tree AccountName
- nullaccountnametree :: Tree [Char]
- elideAccountName :: Int -> AccountName -> AccountName
- clipAccountName :: Int -> AccountName -> AccountName
- clipOrEllipsifyAccountName :: Int -> AccountName -> AccountName
- accountNameToAccountRegex :: String -> String
- accountNameToAccountOnlyRegex :: String -> String
- accountRegexToAccountName :: String -> String
- isAccountRegex :: String -> Bool
- tests_Hledger_Data_AccountName :: Test
Documentation
accountNameComponents :: AccountName -> [String] Source
accountNameLevel :: AccountName -> Int Source
accountNameDrop :: Int -> AccountName -> AccountName Source
expandAccountNames :: [AccountName] -> [AccountName] Source
- "a:b:c","d:e"
- -> ["a","a:b","a:b:c","d","d:e"]
expandAccountName :: AccountName -> [AccountName] Source
"a:b:c" -> ["a","a:b","a:b:c"]
topAccountNames :: [AccountName] -> [AccountName] Source
- "a:b:c","d:e"
- -> ["a","d"]
isSubAccountNameOf :: AccountName -> AccountName -> Bool Source
subAccountNamesFrom :: [AccountName] -> AccountName -> [AccountName] Source
From a list of account names, select those which are direct subaccounts of the given account name.
accountNameTreeFrom :: [AccountName] -> Tree AccountName Source
Convert a list of account names to a tree.
elideAccountName :: Int -> AccountName -> AccountName Source
Elide an account name to fit in the specified width. From the ledger 2.6 news:
What Ledger now does is that if an account name is too long, it will
start abbreviating the first parts of the account name down to two
letters in length. If this results in a string that is still too
long, the front will be elided -- not the end. For example:
Expenses:Cash ; OK, not too long
Ex:Wednesday:Cash ; Expenses was abbreviated to fit
Ex:We:Afternoon:Cash ; Expenses and Wednesday abbreviated
; Expenses:Wednesday:Afternoon:Lunch:Snack:Candy:Chocolate:Cash
..:Af:Lu:Sn:Ca:Ch:Cash ; Abbreviated and elided!
clipAccountName :: Int -> AccountName -> AccountName Source
Keep only the first n components of an account name, where n is a positive integer. If n is 0, returns the empty string.
clipOrEllipsifyAccountName :: Int -> AccountName -> AccountName Source
Keep only the first n components of an account name, where n is a positive integer. If n is 0, returns "...".
accountNameToAccountRegex :: String -> String Source
Convert an account name to a regular expression matching it and its subaccounts.
accountNameToAccountOnlyRegex :: String -> String Source
Convert an account name to a regular expression matching it but not its subaccounts.
accountRegexToAccountName :: String -> String Source
Convert an exact account-matching regular expression to a plain account name.
isAccountRegex :: String -> Bool Source
Does this string look like an exact account-matching regular expression ?