From 6320db25412e38cae6a72745f1964bc6c919f2db Mon Sep 17 00:00:00 2001 From: evazion Date: Fri, 28 Aug 2020 13:57:18 -0500 Subject: [PATCH] BURs: fix rewriting wiki links with qualifiers. When renaming a tag and the new tag has a qualifier, use the pipe trick to hide the qualifier in wiki links. For example, renaming Fallout to Fallout_(series) should change wiki links from [[Fallout]] to [[Fallout (series)|]]. --- app/logical/d_text.rb | 4 ++-- test/unit/d_text_test.rb | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/logical/d_text.rb b/app/logical/d_text.rb index e0e5ff10e..8666b1f0e 100644 --- a/app/logical/d_text.rb +++ b/app/logical/d_text.rb @@ -176,7 +176,6 @@ class DText # Strip qualifiers, e.g. `atago (midsummer march) (azur lane)` => `atago` unqualified_name = name.tr("_", " ").squeeze(" ").strip.gsub(/( \(.*\))+\z/, "") - has_qualifier = name.match?(/( \(.*\))+\z/) # If old tag was lowercase, e.g. [[ink tank (Splatoon)]], then keep new tag in lowercase. if unqualified_name == unqualified_name.downcase @@ -195,7 +194,8 @@ class DText if title.present? "[[#{final_name}|#{title}]]" - elsif has_qualifier + # If the new name has a qualifier, then hide the qualifier in the link. + elsif final_name.match?(/( \(.*\))+\z/) "[[#{final_name}|]]" else "[[#{final_name}]]" diff --git a/test/unit/d_text_test.rb b/test/unit/d_text_test.rb index 98bb9b415..710abd0ef 100644 --- a/test/unit/d_text_test.rb +++ b/test/unit/d_text_test.rb @@ -151,6 +151,8 @@ class DTextTest < ActiveSupport::TestCase assert_rewrite_wiki_links("[[Zelda no Densetsu]]", "[[Zelda no Densetsu]]", "zelda_no_densetsu", "the_legend_of_zelda") assert_rewrite_wiki_links("[[Zelda_no_Densetsu]]", "[[Zelda_no_Densetsu]]", "zelda_no_densetsu", "the_legend_of_zelda") + + assert_rewrite_wiki_links("[[Mario (series)|]]", "[[Mario]]", "mario", "mario_(series)") end end