From 5d29cbdaf7e08c3f0646b8991c826c6ed1404d87 Mon Sep 17 00:00:00 2001 From: capdiem Date: Fri, 4 Aug 2023 01:01:09 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=86=95=20feat(Modifier):=20add=20a=20modi?= =?UTF-8?q?fier=20of=20type=20enum=20with=20a=20specific=20name=20(#1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BemIt/Extensions/BlockOrElementExtensions.cs | 4 ++-- BemIt/Modifier.cs | 22 ++++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/BemIt/Extensions/BlockOrElementExtensions.cs b/BemIt/Extensions/BlockOrElementExtensions.cs index dbed9b2..2b3d5c2 100644 --- a/BemIt/Extensions/BlockOrElementExtensions.cs +++ b/BemIt/Extensions/BlockOrElementExtensions.cs @@ -26,9 +26,9 @@ public static Modifier Modifier(this IBlockOrElement blockOrElement, IDictionary return new Modifier(blockOrElement.Name, modifiers); } - public static Modifier Modifier(this IBlockOrElement blockOrElement, Enum value) + public static Modifier Modifier(this IBlockOrElement blockOrElement, Enum value, string? name = null) { - var modifier = BemIt.Modifier.FormatEnum(value); + var modifier = BemIt.Modifier.FormatEnum(value, name); return new Modifier(blockOrElement.Name, modifier); } diff --git a/BemIt/Modifier.cs b/BemIt/Modifier.cs index f89d3ba..bfc164b 100644 --- a/BemIt/Modifier.cs +++ b/BemIt/Modifier.cs @@ -94,6 +94,19 @@ public Modifier Add(Enum value) return Add(modifier); } + /// + /// Adds a modifier of type enum with a specific name + /// + /// + /// + /// + public Modifier Add(Enum value, string name) + { + var modifier = FormatEnum(value, name); + + return Add(modifier); + } + /// /// Adds a set of modifiers of type dictionary /// @@ -171,13 +184,14 @@ public Modifier Add(bool modifier1, bool modifier2, bool modifier3, /// Formats an enum to a BEM modifier /// /// + /// /// - public static string FormatEnum(Enum @enum) + public static string FormatEnum(Enum @enum, string? inputName = null) { - var name = @enum.GetType().Name; + var name = inputName ?? @enum.GetType().Name; var value = Enum.GetName(@enum.GetType(), @enum); - return $"{name}-{value}".ToLower(); + return $"{name}-{value}"; } /// @@ -202,4 +216,4 @@ private static string Combine(string be, string modifier, bool condition) { return condition ? $" {be}--{modifier}" : string.Empty; } -} +} \ No newline at end of file