Skip to content

Commit

Permalink
🆕 feat(Modifier): add a modifier of type enum with a specific name (#1)
Browse files Browse the repository at this point in the history
  • Loading branch information
capdiem authored Aug 3, 2023
1 parent 80a3f73 commit 5d29cbd
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 6 deletions.
4 changes: 2 additions & 2 deletions BemIt/Extensions/BlockOrElementExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
22 changes: 18 additions & 4 deletions BemIt/Modifier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,19 @@ public Modifier Add(Enum value)
return Add(modifier);
}

/// <summary>
/// Adds a modifier of type enum with a specific name
/// </summary>
/// <param name="value"></param>
/// <param name="name"></param>
/// <returns></returns>
public Modifier Add(Enum value, string name)
{
var modifier = FormatEnum(value, name);

return Add(modifier);
}

/// <summary>
/// Adds a set of modifiers of type dictionary
/// </summary>
Expand Down Expand Up @@ -171,13 +184,14 @@ public Modifier Add(bool modifier1, bool modifier2, bool modifier3,
/// Formats an enum to a BEM modifier
/// </summary>
/// <param name="enum"></param>
/// <param name="inputName"></param>
/// <returns></returns>
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}";
}

/// <summary>
Expand All @@ -202,4 +216,4 @@ private static string Combine(string be, string modifier, bool condition)
{
return condition ? $" {be}--{modifier}" : string.Empty;
}
}
}

0 comments on commit 5d29cbd

Please sign in to comment.