From db09845c8a454a697a53744fcb2b4668c748338d Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Wed, 15 Aug 2018 09:32:57 -0500 Subject: [PATCH] tweak snapshot LintRawRule --- .../Snapshot/RawRuleLinterExtensions.cs | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/FilterLists.Services/Snapshot/RawRuleLinterExtensions.cs b/src/FilterLists.Services/Snapshot/RawRuleLinterExtensions.cs index cfe0c95e9..adac350f8 100644 --- a/src/FilterLists.Services/Snapshot/RawRuleLinterExtensions.cs +++ b/src/FilterLists.Services/Snapshot/RawRuleLinterExtensions.cs @@ -1,35 +1,38 @@ -namespace FilterLists.Services.Snapshot +using System; + +namespace FilterLists.Services.Snapshot { public static class RawRuleLinterExtensions { public static string LintRawRule(this string rule) { - rule = rule?.TrimLeadingAndTrailingWhitespace(); - rule = rule?.DropIfEmpty(); + rule = rule.Trim(); + rule = rule.DropIfTooLong(); rule = rule?.DropIfComment(); - rule = rule?.DropIfTooLong(); rule = rule?.DropIfContainsBackslashSingleQuote(); rule = rule?.TrimSingleBackslashFromEnd(); + rule = rule?.DropIfEmpty(); return rule; } - private static string TrimLeadingAndTrailingWhitespace(this string rule) - { - char[] charsToTrim = {' ', '\t'}; - return rule.Trim(charsToTrim); - } - - private static string DropIfEmpty(this string rule) => rule == "" ? null : rule; + private static string DropIfTooLong(this string rule) => + rule.Length > 8192 ? null : rule; private static string DropIfComment(this string rule) => - rule.StartsWith(@"!") && !rule.StartsWith(@"!#") || rule.StartsWith(@"!##") ? null : rule; - - private static string DropIfTooLong(this string rule) => rule.Length > 8192 ? null : rule; + rule.StartsWith(@"!", StringComparison.Ordinal) && !rule.StartsWith(@"!#", StringComparison.Ordinal) || + rule.StartsWith(@"!##", StringComparison.Ordinal) + ? null + : rule; private static string DropIfContainsBackslashSingleQuote(this string rule) => rule.Contains(@"\'") ? null : rule; private static string TrimSingleBackslashFromEnd(this string rule) => - rule.EndsWith(@"\") && !rule.EndsWith(@"\\") ? rule.Remove(rule.Length - 1) : rule; + rule.EndsWith(@"\", StringComparison.Ordinal) && !rule.EndsWith(@"\\", StringComparison.Ordinal) + ? rule.Remove(rule.Length - 1) + : rule; + + private static string DropIfEmpty(this string rule) => + rule == string.Empty ? null : rule; } } \ No newline at end of file