Skip to content

Commit 56d7b02

Browse files
evancg37evan-aveva
andauthored
Added RandomFirstLetter casing type (#40)
* Add RandomFirstLetter casing type * Added TitleCaseFirst casing type. Resolves #37 --------- Co-authored-by: Evan Greavu <evan.greavu@aveva.com>
1 parent af662b3 commit 56d7b02

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

Diceware.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,20 @@ private static void ApplyWordCasing(string[] words, WordCasingType wordCasing, C
156156
string first = words[scan][0].ToString().ToUpperInvariant();
157157
words[scan] = $"{first}{words[scan].Substring(1)}";
158158
break;
159+
case WordCasingType.TitleCaseFirst:
160+
if (scan == 0)
161+
{
162+
string titleFirst = words[scan][0].ToString().ToUpperInvariant();
163+
words[scan] = $"{titleFirst}{words[scan].Substring(1)}";
164+
}
165+
break;
166+
case WordCasingType.TitleCaseRandom:
167+
if (random.CoinToss())
168+
{
169+
string firstLetter = words[scan][0].ToString().ToUpperInvariant();
170+
words[scan] = $"{firstLetter}{words[scan].Substring(1)}";
171+
}
172+
break;
159173
case WordCasingType.Random:
160174
char[] randomized = (from c in words[scan].ToCharArray()
161175
select (random.CoinToss()

WordCasingType.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ public enum WordCasingType
2828
Uppercase,
2929
[Description("Title Case")]
3030
TitleCase,
31+
[Description("Title Case First Word")]
32+
TitleCaseFirst,
33+
[Description("Title Case Random")]
34+
TitleCaseRandom,
3135
Random,
3236
[Description("Random Whole Words")]
3337
WholeWord,

0 commit comments

Comments
 (0)