summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rdoc/servlet.rb5
-rw-r--r--test/rdoc/test_rdoc_servlet.rb12
2 files changed, 16 insertions, 1 deletions
diff --git a/lib/rdoc/servlet.rb b/lib/rdoc/servlet.rb
index 79550fe63b..72e6e90193 100644
--- a/lib/rdoc/servlet.rb
+++ b/lib/rdoc/servlet.rb
@@ -145,12 +145,15 @@ class RDoc::Servlet < WEBrick::HTTPServlet::AbstractServlet
# +generator+ is used to create the page.
def documentation_page store, generator, path, req, res
- name = path.sub(/.html$/, '').gsub '/', '::'
+ text_name = path.sub /.html$/, ''
+ name = text_name.gsub '/', '::'
if klass = store.find_class_or_module(name) then
res.body = generator.generate_class klass
elsif page = store.find_text_page(name.sub(/_([^_]*)$/, '.\1')) then
res.body = generator.generate_page page
+ elsif page = store.find_text_page(text_name.sub(/_([^_]*)$/, '.\1')) then
+ res.body = generator.generate_page page
else
not_found generator, req, res
end
diff --git a/test/rdoc/test_rdoc_servlet.rb b/test/rdoc/test_rdoc_servlet.rb
index a3d4246229..b772eeaddf 100644
--- a/test/rdoc/test_rdoc_servlet.rb
+++ b/test/rdoc/test_rdoc_servlet.rb
@@ -232,6 +232,18 @@ class TestRDocServlet < RDoc::TestCase
assert_match %r%<body [^>]+ class="file">%, @res.body
end
+ def test_documentation_page_page_with_nesting
+ store = RDoc::Store.new
+
+ generator = @s.generator_for store
+
+ readme = store.add_file 'nesting/README.rdoc', parser: RDoc::Parser::Simple
+
+ @s.documentation_page store, generator, 'nesting/README_rdoc.html', @req, @res
+
+ assert_equal 200, @res.status
+ end
+
def test_documentation_source
store, path = @s.documentation_source '/ruby/Object.html'