Refactor CI workflow for improved test coverage reporting and enhance BumperPlaceholders logic
Updated the CI workflow to run tests for individual projects, ensuring accurate coverage reports are generated for each module. Enhanced the BumperPlaceholders class to handle dangling separators more effectively, improving text resolution logic and maintaining clarity in output.
This commit is contained in:
@@ -71,9 +71,16 @@ public static partial class BumperPlaceholders
|
||||
[GeneratedRegex(@"[ \t]{2,}", RegexOptions.CultureInvariant)]
|
||||
private static partial Regex ExtraSpaces();
|
||||
|
||||
/// <summary>Разделители, которые остаются висеть, когда подставлять оказалось нечего.</summary>
|
||||
private static readonly char[] DanglingSeparators = ['—', '–', '-', ':', '·', ',', ';', '/'];
|
||||
|
||||
/// <summary>
|
||||
/// Подставляет значения. Неизвестное значение даёт пустую строку: «ДАЛЕЕ В {next.time}» без
|
||||
/// следующей программы должно схлопнуться в «ДАЛЕЕ», а не показать дыру в кадре.
|
||||
/// Подставляет значения. Неизвестное значение даёт пустую строку, а осиротевшие разделители
|
||||
/// по краям убираются: «СЕЙЧАС — {now.title}» без текущей программы должно стать «СЕЙЧАС»,
|
||||
/// а не «СЕЙЧАС —».
|
||||
///
|
||||
/// Висящие предлоги («ДАЛЕЕ В») при этом остаются: отличить предлог от слова в тексте, который
|
||||
/// пишет человек на любом языке, нельзя, а угадывать в эфире — хуже, чем оставить как есть.
|
||||
/// </summary>
|
||||
public static string Resolve(string text, BumperContext context)
|
||||
{
|
||||
@@ -82,7 +89,7 @@ public static partial class BumperPlaceholders
|
||||
|
||||
var resolved = TokenPattern()
|
||||
.Replace(text, match => Value(match.Groups[1].Value, context) ?? string.Empty);
|
||||
return ExtraSpaces().Replace(resolved, " ").Trim();
|
||||
return ExtraSpaces().Replace(resolved, " ").Trim().Trim(DanglingSeparators).Trim();
|
||||
}
|
||||
|
||||
/// <summary>Какие плейсхолдеры встречаются в текстах — по ним планировщик решает, что грузить.</summary>
|
||||
|
||||
Reference in New Issue
Block a user