1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/rdoc/servlet.rb: Add support for serving documentation from a

subdirectory.
* lib/rdoc/generator/darkfish.rb:  ditto
* test/rdoc/test_rdoc_servlet.rb:  Test for above
* test/rdoc/test_rdoc_servlet.rb:  ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
drbrain 2012-11-28 07:41:19 +00:00
parent 013521e557
commit 45011d08e1
4 changed files with 38 additions and 12 deletions

View file

@ -1,3 +1,11 @@
Wed Nov 28 16:41:04 2012 Eric Hodel <drbrain@segment7.net>
* lib/rdoc/servlet.rb: Add support for serving documentation from a
subdirectory.
* lib/rdoc/generator/darkfish.rb: ditto
* test/rdoc/test_rdoc_servlet.rb: Test for above
* test/rdoc/test_rdoc_servlet.rb: ditto
Wed Nov 28 15:37:17 2012 NARUSE, Yui <naruse@ruby-lang.org>
* configure.in: fix r37294: run only on i[3-6]86-linux.

View file

@ -467,7 +467,7 @@ class RDoc::Generator::Darkfish
render_template template_file do |io| binding end
rescue => e
error = RDoc::Error.new \
"error generating servlet_root: #{e.message} (#{e.class})"
"error generating servlet_not_found: #{e.message} (#{e.class})"
error.set_backtrace e.backtrace
raise error
@ -484,13 +484,10 @@ class RDoc::Generator::Darkfish
debug_msg 'Rendering the servlet root page...'
rel_prefix = rel_prefix = ''
rel_prefix = asset_rel_prefix = '.'
search_index_rel_prefix = rel_prefix
search_index_rel_prefix += @asset_rel_path if @file_output
# suppress 1.9.3 warning
asset_rel_prefix = asset_rel_prefix = ''
@title = 'Local RDoc Documentation'
render_template template_file do |io| binding end

View file

@ -17,11 +17,13 @@ class RDoc::Servlet < WEBrick::HTTPServlet::AbstractServlet
new server, stores, @cache, *options
end
def initialize server, stores, cache
def initialize server, stores, cache, mount_path = nil
super server
@stores = stores
@cache = cache
@mount_path = mount_path
@stores = stores
@options = RDoc::Options.new
@options.op_dir = '.'
@ -59,6 +61,8 @@ class RDoc::Servlet < WEBrick::HTTPServlet::AbstractServlet
end
def do_GET req, res
req.path.sub!(/^#{Regexp.escape @mount_path}/o, '') if @mount_path
case req.path
when '/' then
root req, res
@ -128,7 +132,7 @@ class RDoc::Servlet < WEBrick::HTTPServlet::AbstractServlet
<title>Error - #{ERB::Util.html_escape e.class}</title>
<link type="text/css" media="screen" href="/rdoc.css" rel="stylesheet">
<link type="text/css" media="screen" href="#{@mouth_path}/rdoc.css" rel="stylesheet">
</head>
<body>
<h1>Error</h1>

View file

@ -1,4 +1,5 @@
require 'rdoc/test_case'
class TestRDocServlet < RDoc::TestCase
def setup
@ -16,13 +17,13 @@ class TestRDocServlet < RDoc::TestCase
Gem::Specification.reset
Gem::Specification.all = [@spec]
server = {}
def server.mount(*) end
@server = {}
def @server.mount(*) end
@stores = {}
@cache = Hash.new { |hash, store| hash[store] = {} }
@s = RDoc::Servlet.new server, @stores, @cache
@s = RDoc::Servlet.new @server, @stores, @cache
@req = WEBrick::HTTPRequest.new :Logger => nil
@res = WEBrick::HTTPResponse.new :HTTPVersion => '1.0'
@ -126,6 +127,22 @@ class TestRDocServlet < RDoc::TestCase
assert_equal 500, @res.status
end
def test_do_GET_mount_path
@s = RDoc::Servlet.new @server, @stores, @cache, '/mount/path'
temp_dir do
FileUtils.touch 'rdoc.css'
@s.asset_dirs[:darkfish] = '.'
@req.path = '/mount/path/rdoc.css'
@s.do_GET @req, @res
assert_equal 'text/css', @res.content_type
end
end
def test_do_GET_not_modified
touch_system_cache_path
@req.header['if-modified-since'] = [(Time.now + 10).httpdate]