Skip to content

Commit 6059ce2

Browse files
committed
Unhappy/Dirty IDescribable method conversion
This commit contains the classes which do have issue with `Description(bool spelledOutWhitespace=false)`. For these classes the parameter is not appliable. Need to rubberduck out loud as to how to go about resolving this. Is the best way to proceed with overloading the method?
1 parent 0f7c5ca commit 6059ce2

File tree

5 files changed

+20
-19
lines changed

5 files changed

+20
-19
lines changed

Rubberduck.RegexAssistant/Atoms/CharacterClass.cs

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@ public CharacterClass(string specifier, Quantifier quantifier, bool spellOutWhit
2828
// trim leading and closing bracket
2929
var actualSpecifier = specifier.Substring(1, specifier.Length - 2);
3030
InverseMatching = actualSpecifier.StartsWith("^");
31-
CharacterSpecifiers = ExtractCharacterSpecifiers(InverseMatching ? actualSpecifier.Substring(1) : actualSpecifier,
32-
spellOutWhiteSpace);
31+
CharacterSpecifiers = ExtractCharacterSpecifiers(InverseMatching
32+
? actualSpecifier.Substring(1)
33+
: actualSpecifier
34+
, spellOutWhiteSpace);
3335
}
3436

3537
public string Specifier { get; }
@@ -59,20 +61,14 @@ private IList<string> ExtractCharacterSpecifiers(string characterClass, bool spe
5961
}
6062
}
6163

62-
if (spellOutWhitespace
63-
&& WhitespaceToString.IsFullySpellingOutApplicable(specifier.Value, out var spelledOutWhiteSpace))
64-
{
65-
result.Add(spelledOutWhiteSpace);
66-
}
67-
else
68-
{
69-
result.Add(specifier.Value);
70-
}
64+
result.Add(spellOutWhitespace && WhitespaceToString.IsFullySpellingOutApplicable(specifier.Value, out var spelledOutWhiteSpace)
65+
? spelledOutWhiteSpace
66+
: specifier.Value);
7167
}
7268
return result;
7369
}
7470

75-
public string Description => string.Format(InverseMatching
71+
public string Description(bool notApplicable) => string.Format(InverseMatching
7672
? AssistantResources.AtomDescription_CharacterClass_Inverted
7773
: AssistantResources.AtomDescription_CharacterClass
7874
, HumanReadableClass());

Rubberduck.RegexAssistant/Expressions/AlternativesExpression.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public AlternativesExpression(IList<IRegularExpression> subexpressions)
1212
Subexpressions = subexpressions ?? throw new ArgumentNullException();
1313
}
1414

15-
public string Description => string.Format(AssistantResources.ExpressionDescription_AlternativesExpression, Subexpressions.Count);
15+
public string Description(bool notApplicable) => string.Format(AssistantResources.ExpressionDescription_AlternativesExpression, Subexpressions.Count);
1616

1717
public IList<IRegularExpression> Subexpressions { get; }
1818

Rubberduck.RegexAssistant/Expressions/ConcatenatedExpression.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public ConcatenatedExpression(IList<IRegularExpression> subexpressions)
1212
Subexpressions = subexpressions ?? throw new ArgumentNullException();
1313
}
1414

15-
public string Description => AssistantResources.ExpressionDescription_ConcatenatedExpression;
15+
public string Description(bool notApplicable) => AssistantResources.ExpressionDescription_ConcatenatedExpression;
1616

1717
public IList<IRegularExpression> Subexpressions { get; }
1818

Rubberduck.RegexAssistant/Expressions/ErrorExpression.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public ErrorExpression(string errorToken)
1313
_errorToken = errorToken ?? throw new ArgumentNullException();
1414
}
1515

16-
public string Description => string.Format(AssistantResources.ExpressionDescription_ErrorExpression, _errorToken);
16+
public string Description(bool notApplicable) => string.Format(AssistantResources.ExpressionDescription_ErrorExpression, _errorToken);
1717

1818
public IList<IRegularExpression> Subexpressions => new List<IRegularExpression>();
1919

Rubberduck.RegexAssistant/Pattern.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ public class Pattern : IDescribable
88
public IRegularExpression RootExpression;
99
readonly MatcherFlags Flags;
1010

11-
public string Description { get; }
11+
private readonly string _description;
12+
public string Description(bool notApplicable) => _description;
1213

1314
public Pattern(string expression, bool ignoreCase = false, bool global = false, bool spellOutWhitespace = false)
1415
{
@@ -25,16 +26,20 @@ public Pattern(string expression, bool ignoreCase = false, bool global = false,
2526

2627
var start = AnchoredAtStart ? 1 : 0;
2728
var end = (AnchoredAtEnd ? 1 : 0) + start;
28-
RootExpression = VBRegexParser.Parse(expression.Substring(start, expression.Length - end), spellOutWhitespace);
29-
Description = AssembleDescription();
29+
30+
_spellOutWhiteSpace = spellOutWhitespace;
31+
RootExpression = VBRegexParser.Parse(expression.Substring(start, expression.Length - end), _spellOutWhiteSpace);
32+
_description = AssembleDescription();
3033
}
3134

35+
private readonly bool _spellOutWhiteSpace;
36+
3237
private string AssembleDescription()
3338
{
3439
var result = string.Empty;
3540
result += CasingDescription;
3641
result += StartAnchorDescription;
37-
result += RootExpression.Description;
42+
result += RootExpression.Description(_spellOutWhiteSpace);
3843
result += EndAnchorDescription;
3944
return result;
4045
}

0 commit comments

Comments
 (0)