From 473835d1d331344bf6fae8c25a7efed158235fbf Mon Sep 17 00:00:00 2001 From: Marwin Hochfelsner <50826859+hlfan@users.noreply.github.com> Date: Mon, 27 Oct 2025 20:53:05 +0100 Subject: [PATCH] Move tag2link_link logic to module --- app/helpers/browse_tags_helper.rb | 8 +++----- lib/tag2link.rb | 13 +++++++++++++ test/lib/tag2link_test.rb | 18 ++++++++++++++++++ 3 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 lib/tag2link.rb create mode 100644 test/lib/tag2link_test.rb diff --git a/app/helpers/browse_tags_helper.rb b/app/helpers/browse_tags_helper.rb index fcd331f49..bf3d9d9dc 100644 --- a/app/helpers/browse_tags_helper.rb +++ b/app/helpers/browse_tags_helper.rb @@ -136,12 +136,10 @@ module BrowseTagsHelper end def tag2link_link(key, value) - # skip if it's a full URL - return nil if %r{^https?://}.match?(value) - - return nil unless TAG2LINK[key] + link = Tag2link.link(key, value) + return nil unless link - link_to(h(value), TAG2LINK[key].gsub("$1", value), :rel => "nofollow") + link_to(h(value), link, :rel => "nofollow") end def email_link(key, value) diff --git a/lib/tag2link.rb b/lib/tag2link.rb new file mode 100644 index 000000000..8eb9484f5 --- /dev/null +++ b/lib/tag2link.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Tag2link + def self.link(key, value) + # skip if it's a full URL + return nil if %r{\Ahttps?://}.match?(value) + + url_template = TAG2LINK[key] + return nil unless url_template + + url_template.gsub("$1", value) + end +end diff --git a/test/lib/tag2link_test.rb b/test/lib/tag2link_test.rb new file mode 100644 index 000000000..6d4fec58d --- /dev/null +++ b/test/lib/tag2link_test.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +require "test_helper" + +class Tag2linkTest < ActiveSupport::TestCase + def test_link_returns_nil_for_full_url + assert_nil Tag2link.link("website", "https://example.com/page") + end + + def test_link_returns_nil_for_unknown_key + assert_nil Tag2link.link("nonexistent_key", "SomeValue") + end + + def test_link_returns_proper_url_for_known_key + url = Tag2link.link("wikidata", "Q936") + assert_equal "https://www.wikidata.org/entity/Q936", url + end +end -- 2.39.5