public bool CanAutoGenerateRuby() { var selector = new RubyTagGeneratorSelector(); var lyrics = beatmap.HitObjects.OfType <Lyric>().ToList(); return(lyrics.Any(lyric => selector.Generatable(lyric))); }
[TestCase(1028, "はなび", null)] // Chinese(should not supported) public void TestCreateRubyTag(int lcid, string text, string[] actualRuby) { var lyric = new Lyric { Language = new CultureInfo(lcid), Text = text, }; var selector = new RubyTagGeneratorSelector(); var generatedRuby = selector.GenerateRubyTags(lyric); TextTagAssert.ArePropertyEqual(generatedRuby, TestCaseTagHelper.ParseRubyTags(actualRuby)); }
/// <summary> /// Will auto-detect each <see cref="Lyric"/> 's <see cref="Lyric.RubyTags"/> and apply on them. /// </summary> public void AutoGenerateRubyTags() { var lyrics = beatmap.HitObjects.OfType <Lyric>().ToList(); if (!lyrics.Any()) { return; } changeHandler?.BeginChange(); var selector = new RubyTagGeneratorSelector(); foreach (var lyric in lyrics) { var rubyTags = selector.GenerateRubyTags(lyric); lyric.RubyTags = rubyTags; } changeHandler?.EndChange(); }