lib: more compact Show instance for datespans
This commit is contained in:
parent
884c0b8a58
commit
a52fd599c4
@ -91,7 +91,8 @@ import Hledger.Utils
|
||||
|
||||
-- Help ppShow parse and line-wrap DateSpans better in debug output.
|
||||
instance Show DateSpan where
|
||||
show (DateSpan s1 s2) = "DateSpan \"" ++ show s1 ++ "\" \"" ++ show s2 ++ "\""
|
||||
show s = "DateSpan " ++ showDateSpan s
|
||||
-- show s = "DateSpan \"" ++ showDateSpan s ++ "\"" -- quotes to help pretty-show
|
||||
|
||||
showDate :: Day -> String
|
||||
showDate = formatTime defaultTimeLocale "%0C%y/%m/%d"
|
||||
@ -146,7 +147,8 @@ showDateSpan ds@(DateSpan (Just from) (Just to)) =
|
||||
|
||||
showDateSpan ds = showDateSpan' ds
|
||||
|
||||
-- | Render a datespan as a display string.
|
||||
-- | Render a datespan as a display string like [START]-[ENDINCL]
|
||||
-- (optional start date, hyphen, optional inclusive end date).
|
||||
showDateSpan' (DateSpan from to) =
|
||||
concat
|
||||
[maybe "" showDate from
|
||||
@ -751,11 +753,11 @@ tests_Hledger_Data_Dates = TestList
|
||||
,"period expressions" ~: do
|
||||
let todaysdate = parsedate "2008/11/26"
|
||||
let str `gives` result = show (parsewith (periodexpr todaysdate) str) `is` ("Right " ++ result)
|
||||
"from aug to oct" `gives` "(NoInterval,DateSpan \"Just 2008-08-01\" \"Just 2008-10-01\")"
|
||||
"aug to oct" `gives` "(NoInterval,DateSpan \"Just 2008-08-01\" \"Just 2008-10-01\")"
|
||||
"every 3 days in aug" `gives` "(Days 3,DateSpan \"Just 2008-08-01\" \"Just 2008-09-01\")"
|
||||
"daily from aug" `gives` "(Days 1,DateSpan \"Just 2008-08-01\" \"Nothing\")"
|
||||
"every week to 2009" `gives` "(Weeks 1,DateSpan \"Nothing\" \"Just 2009-01-01\")"
|
||||
"from aug to oct" `gives` "(NoInterval,DateSpan 2008/08/01-2008/09/30)"
|
||||
"aug to oct" `gives` "(NoInterval,DateSpan 2008/08/01-2008/09/30)"
|
||||
"every 3 days in aug" `gives` "(Days 3,DateSpan 2008/08)"
|
||||
"daily from aug" `gives` "(Days 1,DateSpan 2008/08/01-)"
|
||||
"every week to 2009" `gives` "(Weeks 1,DateSpan -2008/12/31)"
|
||||
|
||||
,"splitSpan" ~: do
|
||||
let gives (interval, span) = (splitSpan interval span `is`)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user