Skip to content

Commit

Permalink
Add enum conversion support for f.e. IPAddress and StringGUID #2658 (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
huysentruitw committed Nov 26, 2020
1 parent 1b9a1c9 commit 21ea620
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
Expand Up @@ -199,12 +199,15 @@ public virtual unsafe NameString GetEnumValueName(object value)
}

bool allUpper = true;
int lengthMinusOne = name.Length - 1;

for (var i = 0; i < name.Length; i++)
{
var c = name[i];

if (i > 0 && char.IsUpper(c))
if (i > 0 && char.IsUpper(c) &&
(!char.IsUpper(name[i - 1]) ||
(i < lengthMinusOne && char.IsLower(name[i + 1]))))
{
underscores++;
}
Expand Down Expand Up @@ -241,7 +244,9 @@ public virtual unsafe NameString GetEnumValueName(object value)

for (var i = 1; i < name.Length; i++)
{
if (char.IsUpper(name[i]))
if (char.IsUpper(name[i]) &&
(!char.IsUpper(name[i - 1]) ||
(i < lengthMinusOne && char.IsLower(name[i + 1]))))
{
buffer[p++] = '_';
}
Expand Down
Expand Up @@ -8,6 +8,8 @@ public class DefaultNamingConventionsTests
[InlineData("Foo", "FOO")]
[InlineData("FooBar", "FOO_BAR")]
[InlineData("FooBarBaz", "FOO_BAR_BAZ")]
[InlineData("StringGUID", "STRING_GUID")]
[InlineData("IPAddress", "IP_ADDRESS")]
[InlineData("FOO_BAR_BAZ", "FOO_BAR_BAZ")]
[InlineData("FOOBAR", "FOOBAR")]
[InlineData("F", "F")]
Expand Down

0 comments on commit 21ea620

Please sign in to comment.