From 078f44f8aa2338d83bfe648bc6e26f1971b2a4c1 Mon Sep 17 00:00:00 2001 From: "Maciej \"Iwan\" Iwanowski" Date: Thu, 23 Apr 2020 18:37:40 +0200 Subject: [PATCH] Getting rid of code duplication Signed-off-by: Maciej "Iwan" Iwanowski --- pkg/result/processors/exclude_rules.go | 32 +++++++++----------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/pkg/result/processors/exclude_rules.go b/pkg/result/processors/exclude_rules.go index f577af82..b926af5b 100644 --- a/pkg/result/processors/exclude_rules.go +++ b/pkg/result/processors/exclude_rules.go @@ -37,24 +37,29 @@ func NewExcludeRules(rules []ExcludeRule, lineCache *fsutils.LineCache, log logu lineCache: lineCache, log: log, } + r.rules = createRules(rules, "(?i)") + return r +} + +func createRules(rules []ExcludeRule, prefix string) []excludeRule { + parsedRules := make([]excludeRule, 0, len(rules)) for _, rule := range rules { parsedRule := excludeRule{ linters: rule.Linters, } if rule.Text != "" { - parsedRule.text = regexp.MustCompile("(?i)" + rule.Text) + parsedRule.text = regexp.MustCompile(prefix + rule.Text) } if rule.Source != "" { - parsedRule.source = regexp.MustCompile("(?i)" + rule.Source) + parsedRule.source = regexp.MustCompile(prefix + rule.Source) } if rule.Path != "" { parsedRule.path = regexp.MustCompile(rule.Path) } - r.rules = append(r.rules, parsedRule) + parsedRules = append(parsedRules, parsedRule) } - - return r + return parsedRules } func (p ExcludeRules) Process(issues []result.Issue) ([]result.Issue, error) { @@ -128,22 +133,7 @@ func NewExcludeRulesCaseSensitive(rules []ExcludeRule, lineCache *fsutils.LineCa lineCache: lineCache, log: log, } - - for _, rule := range rules { - parsedRule := excludeRule{ - linters: rule.Linters, - } - if rule.Text != "" { - parsedRule.text = regexp.MustCompile(rule.Text) - } - if rule.Source != "" { - parsedRule.source = regexp.MustCompile(rule.Source) - } - if rule.Path != "" { - parsedRule.path = regexp.MustCompile(rule.Path) - } - r.rules = append(r.rules, parsedRule) - } + r.rules = createRules(rules, "") return &ExcludeRulesCaseSensitive{r} }