diff --git a/lib/rdoc/cross_reference.rb b/lib/rdoc/cross_reference.rb index 2785852387..99a64cd99a 100644 --- a/lib/rdoc/cross_reference.rb +++ b/lib/rdoc/cross_reference.rb @@ -173,7 +173,7 @@ class RDoc::CrossReference end unless ref # Try a page name - ref = @store.page name if not ref and name =~ /^\w+$/ + ref = @store.page name if not ref and name =~ /^[\w.]+$/ ref = nil if RDoc::Alias === ref # external alias, can't link to it diff --git a/lib/rdoc/store.rb b/lib/rdoc/store.rb index 05d8383c86..5ba671ca1b 100644 --- a/lib/rdoc/store.rb +++ b/lib/rdoc/store.rb @@ -723,7 +723,7 @@ class RDoc::Store def page name @text_files_hash.each_value.find do |file| - file.page_name == name + file.page_name == name or file.base_name == name end end diff --git a/test/rdoc/test_rdoc_store.rb b/test/rdoc/test_rdoc_store.rb index 076b8e7d4e..82340e6b7a 100644 --- a/test/rdoc/test_rdoc_store.rb +++ b/test/rdoc/test_rdoc_store.rb @@ -611,6 +611,14 @@ class TestRDocStore < XrefTestCase assert_equal page, @store.page('PAGE') end + def test_page_with_extension + page = @store.add_file 'PAGE.txt', parser: RDoc::Parser::Simple + + assert_nil @store.page 'no such page' + + assert_equal page, @store.page('PAGE.txt') + end + def test_save FileUtils.mkdir_p @tmpdir