From 28996389243ce93b8ae4aea945703c31899a5f85 Mon Sep 17 00:00:00 2001 From: Nikita Vasilevsky Date: Thu, 4 Aug 2022 22:07:42 +0000 Subject: [PATCH] Use superscript star for a rubygem version with a tooltip --- app/helpers/versions_helper.rb | 10 +++++++++- app/views/versions/_version.html.erb | 2 +- test/functional/versions_controller_test.rb | 9 ++++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/helpers/versions_helper.rb b/app/helpers/versions_helper.rb index 1abda717a5a..20ada098f00 100644 --- a/app/helpers/versions_helper.rb +++ b/app/helpers/versions_helper.rb @@ -6,7 +6,6 @@ def version_date_tag(version) if version.rely_on_built_at? klass << "tooltip__text" data.merge!(tooltip: t("versions.index.imported_gem_version_notice", import_date: nice_date_for(Version::RUBYGEMS_IMPORT_DATE))) - text << " [?]" end content_tag(:small, text, class: klass, data: data) @@ -15,4 +14,13 @@ def version_date_tag(version) def version_authored_date(version) "- #{nice_date_for(version.authored_at)}" end + + def version_number(version) + return version.number unless version.rely_on_built_at? + + content_tag(:div) do + concat version.number + concat content_tag(:sup, "*") + end + end end diff --git a/app/views/versions/_version.html.erb b/app/views/versions/_version.html.erb index 180718be1e7..ea3d5cac8c2 100644 --- a/app/views/versions/_version.html.erb +++ b/app/views/versions/_version.html.erb @@ -1,5 +1,5 @@
  • - <%= link_to version.number, rubygem_version_path(version.rubygem, version.slug), :class => 't-list__item' %> + <%= link_to version_number(version), rubygem_version_path(version.rubygem, version.slug), :class => 't-list__item gem__version__number' %> <%= version_date_tag(version) %> <% if version.platformed? %> <%= version.platform %> diff --git a/test/functional/versions_controller_test.rb b/test/functional/versions_controller_test.rb index 0b7037e0d6a..d04d263aa71 100644 --- a/test/functional/versions_controller_test.rb +++ b/test/functional/versions_controller_test.rb @@ -67,19 +67,22 @@ class VersionsControllerTest < ActionController::TestCase setup do @built_at = Date.parse("2000-01-01") rubygem = create(:rubygem) - create(:version, rubygem: rubygem, created_at: Version::RUBYGEMS_IMPORT_DATE, built_at: @built_at) + create(:version, number: "1.1.2", rubygem: rubygem, created_at: Version::RUBYGEMS_IMPORT_DATE, built_at: @built_at) get :index, params: { rubygem_id: rubygem.name } end should respond_with :success - should "show imported versions authored_at dates with an asterisk" do + should "show imported version number with an superscript asterisk and a tooltip" do tooltip_text = <<~NOTICE.squish This gem version was imported to RubyGems.org on July 25, 2009. The date displayed was specified by the author in the gemspec. NOTICE - assert_select ".gem__version__date", text: "- January 01, 2000 [?]", count: 1 do |elements| + assert_select ".gem__version__number", text: "1.1.2*", count: 1 + assert_select ".gem__version__number sup", text: "*", count: 1 + + assert_select ".gem__version__date", text: "- January 01, 2000", count: 1 do |elements| version = elements.first assert_equal(tooltip_text, version["data-tooltip"]) end