ref:import: simplify renderTemplate and friends
renderTemplate and its ancillary functions did not need the HledgerFieldName argument, so remove it. Signed-off-by: Jonathan Dowland <jon@dow.land>
This commit is contained in:
parent
b7027c8bbb
commit
71684f5611
@ -795,12 +795,12 @@ isBlockActive rules record CB{..} = any (all matcherMatches) $ groupedMatchers c
|
|||||||
|
|
||||||
-- | Render a field assignment's template, possibly interpolating referenced
|
-- | Render a field assignment's template, possibly interpolating referenced
|
||||||
-- CSV field values or match groups. Outer whitespace is removed from interpolated values.
|
-- CSV field values or match groups. Outer whitespace is removed from interpolated values.
|
||||||
renderTemplate :: CsvRules -> CsvRecord -> HledgerFieldName -> FieldTemplate -> Text
|
renderTemplate :: CsvRules -> CsvRecord -> FieldTemplate -> Text
|
||||||
renderTemplate rules record f t =
|
renderTemplate rules record t =
|
||||||
maybe t mconcat $ parseMaybe
|
maybe t mconcat $ parseMaybe
|
||||||
(many
|
(many
|
||||||
( literaltextp
|
( literaltextp
|
||||||
<|> (matchrefp <&> replaceRegexGroupReference rules record f)
|
<|> (matchrefp <&> replaceRegexGroupReference rules record)
|
||||||
<|> (fieldrefp <&> replaceCsvFieldReference rules record)
|
<|> (fieldrefp <&> replaceCsvFieldReference rules record)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -818,13 +818,13 @@ renderTemplate rules record f t =
|
|||||||
|
|
||||||
-- | Replace something that looks like a Regex match group reference with the
|
-- | Replace something that looks like a Regex match group reference with the
|
||||||
-- resulting match group value after applying the Regex.
|
-- resulting match group value after applying the Regex.
|
||||||
replaceRegexGroupReference :: CsvRules -> CsvRecord -> HledgerFieldName -> MatchGroupReference -> Text
|
replaceRegexGroupReference :: CsvRules -> CsvRecord -> MatchGroupReference -> Text
|
||||||
replaceRegexGroupReference rules record f s = case T.uncons s of
|
replaceRegexGroupReference rules record s = case T.uncons s of
|
||||||
Just ('\\', group) -> fromMaybe "" $ regexMatchValue rules record f group
|
Just ('\\', group) -> fromMaybe "" $ regexMatchValue rules record group
|
||||||
_ -> s
|
_ -> s
|
||||||
|
|
||||||
regexMatchValue :: CsvRules -> CsvRecord -> HledgerFieldName -> Text -> Maybe Text
|
regexMatchValue :: CsvRules -> CsvRecord -> Text -> Maybe Text
|
||||||
regexMatchValue rules record f sgroup = let
|
regexMatchValue rules record sgroup = let
|
||||||
matchgroups = concatMap (getMatchGroups rules record)
|
matchgroups = concatMap (getMatchGroups rules record)
|
||||||
$ concatMap cbMatchers
|
$ concatMap cbMatchers
|
||||||
$ filter (isBlockActive rules record)
|
$ filter (isBlockActive rules record)
|
||||||
@ -1228,7 +1228,7 @@ getAmount rules record currency p1IsVirtual n =
|
|||||||
|
|
||||||
-- assignments to any of these field names with non-empty values
|
-- assignments to any of these field names with non-empty values
|
||||||
assignments = [(f,a') | f <- fieldnames
|
assignments = [(f,a') | f <- fieldnames
|
||||||
, Just v <- [T.strip . renderTemplate rules record f <$> hledgerField rules record f]
|
, Just v <- [T.strip . renderTemplate rules record <$> hledgerField rules record f]
|
||||||
, not $ T.null v
|
, not $ T.null v
|
||||||
-- XXX maybe ignore rule-generated values like "", "-", "$", "-$", "$-" ? cf CSV FORMAT -> "amount", "Setting amounts",
|
-- XXX maybe ignore rule-generated values like "", "-", "$", "-$", "$-" ? cf CSV FORMAT -> "amount", "Setting amounts",
|
||||||
, let a = parseAmount rules record currency v
|
, let a = parseAmount rules record currency v
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user