From 8b117e15811c69cac56cd92b2ef89998c81c7db9 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Wed, 1 Oct 2008 12:48:52 +0000 Subject: [PATCH] more ledger-handling-functions cleanup --- Ledger.hs | 4 ++-- Tests.hs | 4 ++-- hledger.hs | 18 +++++++++--------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Ledger.hs b/Ledger.hs index 9eac39a27..d595a5305 100644 --- a/Ledger.hs +++ b/Ledger.hs @@ -38,8 +38,8 @@ instance Show Ledger where -- 1. filter based on account/description patterns, if any -- 2. cache per-account info -- also, figure out the precision(s) to use -cacheLedger :: (Regex,Regex) -> LedgerFile -> Ledger -cacheLedger pats l = +cacheLedger :: LedgerFile -> (Regex,Regex) -> Ledger +cacheLedger l pats = let lprecision = maximum $ map (precision . amount) $ rawLedgerTransactions l l' = filterLedgerEntries pats l diff --git a/Tests.hs b/Tests.hs index 69c681e58..afa248dc6 100644 --- a/Tests.hs +++ b/Tests.hs @@ -284,7 +284,7 @@ ledger7 = LedgerFile ] "" -l7 = cacheLedger (parsePatternArgs []) ledger7 +l7 = cacheLedger ledger7 (wildcard,wildcard) timelogentry1_str = "i 2007/03/11 16:19:00 hledger\n" timelogentry1 = TimeLogEntry 'i' "2007/03/11 16:19:00" "hledger" @@ -375,7 +375,7 @@ test_ledgerAccountNames = (rawLedgerAccountNames ledger7) test_cacheLedger = - assertEqual' 15 (length $ Map.keys $ accounts $ cacheLedger (parsePatternArgs []) ledger7) + assertEqual' 15 (length $ Map.keys $ accounts $ cacheLedger ledger7 (wildcard,wildcard)) test_showLedgerAccounts = assertEqual' 4 (length $ lines $ showLedgerAccounts l7 1) diff --git a/hledger.hs b/hledger.hs index 15e56100e..f3e8f99d2 100644 --- a/hledger.hs +++ b/hledger.hs @@ -69,15 +69,15 @@ parseLedgerAndDo :: [Flag] -> (Regex,Regex) -> (Ledger -> IO ()) -> IO () parseLedgerAndDo opts pats cmd = do path <- ledgerFilePath opts parsed <- parseLedgerFile path - doWithParsedLedger pats cmd parsed + withParsedLedgerOrErrorDo parsed pats cmd -doWithParsedLedger :: (Regex,Regex) -> (Ledger -> IO ()) -> (Either ParseError LedgerFile) -> IO () -doWithParsedLedger pats cmd parsed = do - case parsed of Left e -> parseError e - Right l -> cacheLedgerAndDo pats l cmd +withParsedLedgerOrErrorDo :: (Either ParseError LedgerFile) -> (Regex,Regex) -> (Ledger -> IO ()) -> IO () +withParsedLedgerOrErrorDo parsed pats cmd = do + case parsed of Left err -> parseError err + Right l -> cacheLedgerAndDo l pats cmd -cacheLedgerAndDo :: (Regex,Regex) -> LedgerFile -> (Ledger -> IO ()) -> IO () -cacheLedgerAndDo pats l cmd = do cmd $ cacheLedger pats l +cacheLedgerAndDo :: LedgerFile -> (Regex,Regex) -> (Ledger -> IO ()) -> IO () +cacheLedgerAndDo l pats cmd = do cmd $ cacheLedger l pats type Command = [Flag] -> (Regex,Regex) -> IO () @@ -124,14 +124,14 @@ myledger :: IO Ledger myledger = do parsed <- ledgerFilePath [] >>= parseLedgerFile let ledgerfile = either (\_ -> LedgerFile [] [] [] "") id parsed - return $ cacheLedger (wildcard,wildcard) ledgerfile + return $ cacheLedger ledgerfile (wildcard,wildcard) -- | return a Ledger parsed from the given file path ledgerfromfile :: String -> IO Ledger ledgerfromfile f = do parsed <- ledgerFilePath [File f] >>= parseLedgerFile let ledgerfile = either (\_ -> LedgerFile [] [] [] "") id parsed - return $ cacheLedger (wildcard,wildcard) ledgerfile + return $ cacheLedger ledgerfile (wildcard,wildcard) accountnamed :: AccountName -> IO Account accountnamed a = myledger >>= (return . fromMaybe nullacct . Map.lookup a . accounts)