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:
parent
013521e557
commit
45011d08e1
4 changed files with 38 additions and 12 deletions
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
@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>
|
||||
|
|
|
@ -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]
|
||||
|
|
Loading…
Reference in a new issue