<%= klass.type %> <%= klass.full_name %> diff --git a/lib/rdoc/generator/template/darkfish/css/rdoc.css b/lib/rdoc/generator/template/darkfish/css/rdoc.css index 2cc55e03b1..c92cd595d2 100644 --- a/lib/rdoc/generator/template/darkfish/css/rdoc.css +++ b/lib/rdoc/generator/template/darkfish/css/rdoc.css @@ -273,6 +273,28 @@ nav h3, color: #555; } +nav.breadcrumb { + display: block; + float: unset; + width: unset; + height: unset; + border: none; + position: unset; + top: unset; + padding-top: 10px; + padding-left: 20px; + margin-bottom: 1em; +} + +nav.breadcrumb ol { + display: inline-block; +} + +nav.breadcrumb li { + display: inline-block; + font-size: 125%; +} + nav ul, nav dl, nav p { From 66291fd8436a322e0cc3ab418abf320305b07561 Mon Sep 17 00:00:00 2001 From: Yusuke Nakamura Date: Thu, 9 Feb 2023 00:43:59 +0900 Subject: [PATCH 4/6] Add nil guard to generate_namespaces_breadcrumb --- lib/rdoc/generator/darkfish.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/rdoc/generator/darkfish.rb b/lib/rdoc/generator/darkfish.rb index f5e1203fd9..204bfc7cdc 100644 --- a/lib/rdoc/generator/darkfish.rb +++ b/lib/rdoc/generator/darkfish.rb @@ -799,7 +799,8 @@ def namespaces_to_class_modules klass def generate_namespaces_breadcrumb klass, rel_prefix namespaces_to_class_modules(klass).map do |namespace, class_module| - { name: namespace, path: (rel_prefix + class_module.path).to_s, self: klass.full_name == class_module.full_name } + path = class_module ? (rel_prefix + class_module.path).to_s : "" + { name: namespace, path: path, self: klass.full_name == class_module&.full_name } end end end From 168ea674db279cd8547c10af72ae827a6306b727 Mon Sep 17 00:00:00 2001 From: Yusuke Nakamura Date: Thu, 6 Jul 2023 18:00:12 +0900 Subject: [PATCH 5/6] Rename to nesting_namespaces --- lib/rdoc/class_module.rb | 12 ++++++------ test/rdoc/test_rdoc_class_module.rb | 16 ++++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/rdoc/class_module.rb b/lib/rdoc/class_module.rb index b0c2fe86a1..85710fadbc 100644 --- a/lib/rdoc/class_module.rb +++ b/lib/rdoc/class_module.rb @@ -297,19 +297,19 @@ def full_name ## # Return array of full_name splitted by +::+. - def namespaces + def nesting_namespaces @namespaces ||= full_name.split("::").reject(&:empty?) end ## - # Return array of fully qualified namespaces. + # Return array of fully qualified nesting namespaces. # # For example, if full_name is +A::B::C+, this method returns ["A", "A::B", "A::B::C"] - def fully_qualified_namespaces - return namespaces if namespaces.length < 2 - @fqns ||= namespaces.map.with_index do |_, i| - namespaces[0..i].join("::") + def fully_qualified_nesting_namespaces + return nesting_namespaces if nesting_namespaces.length < 2 + @fqns ||= nesting_namespaces.map.with_index do |_, i| + nesting_namespaces[0..i].join("::") end end diff --git a/test/rdoc/test_rdoc_class_module.rb b/test/rdoc/test_rdoc_class_module.rb index 7a94a4f7ee..f0a3859133 100644 --- a/test/rdoc/test_rdoc_class_module.rb +++ b/test/rdoc/test_rdoc_class_module.rb @@ -1500,25 +1500,25 @@ def test_update_extends_with_colons assert_equal [a, c], @c1.extends end - def test_namespaces + def test_nesting_namespaces cm1 = RDoc::ClassModule.new "A" - assert_equal ["A"], cm1.namespaces + assert_equal ["A"], cm1.nesting_namespaces cm2 = RDoc::ClassModule.new "A::B" - assert_equal ["A", "B"], cm2.namespaces + assert_equal ["A", "B"], cm2.nesting_namespaces cm3 = RDoc::ClassModule.new "::A::B::C" - assert_equal ["A", "B", "C"], cm3.namespaces + assert_equal ["A", "B", "C"], cm3.nesting_namespaces end - def test_fully_qualified_namespaces + def test_fully_qualified_nesting_namespaces cm1 = RDoc::ClassModule.new "A" - assert_equal ["A"], cm1.fully_qualified_namespaces + assert_equal ["A"], cm1.fully_qualified_nesting_namespaces cm2 = RDoc::ClassModule.new "A::B" - assert_equal ["A", "A::B"], cm2.fully_qualified_namespaces + assert_equal ["A", "A::B"], cm2.fully_qualified_nesting_namespaces cm3 = RDoc::ClassModule.new "::A::B::C" - assert_equal ["A", "A::B", "A::B::C"], cm3.fully_qualified_namespaces + assert_equal ["A", "A::B", "A::B::C"], cm3.fully_qualified_nesting_namespaces end end From ec0072b163455b79b6a4eb778c31e14ff07ffd22 Mon Sep 17 00:00:00 2001 From: Yusuke Nakamura Date: Thu, 6 Jul 2023 18:01:21 +0900 Subject: [PATCH 6/6] Refactor fully_qualified_nesting_namespaces --- lib/rdoc/class_module.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/rdoc/class_module.rb b/lib/rdoc/class_module.rb index 85710fadbc..7a0bec72d8 100644 --- a/lib/rdoc/class_module.rb +++ b/lib/rdoc/class_module.rb @@ -308,8 +308,8 @@ def nesting_namespaces def fully_qualified_nesting_namespaces return nesting_namespaces if nesting_namespaces.length < 2 - @fqns ||= nesting_namespaces.map.with_index do |_, i| - nesting_namespaces[0..i].join("::") + @fqns ||= nesting_namespaces.inject([]) do |list, n| + list << (list.empty? ? n : "#{list.last}::#{n}") end end