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

* lib/rdoc: Update to RDoc 3.9. Fixed ri [], stopdoc creating an

object reference, nodoc for class aliases, verbatim === lines.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
drbrain 2011-07-31 00:19:00 +00:00
parent 4ac69a57b5
commit 89b601d176
33 changed files with 1329 additions and 600 deletions

View file

@ -5,6 +5,7 @@ require 'tmpdir'
require 'fileutils'
require 'stringio'
require 'rdoc/ri/driver'
require 'rdoc/rdoc'
class TestRDocRIDriver < MiniTest::Unit::TestCase
@ -223,7 +224,7 @@ class TestRDocRIDriver < MiniTest::Unit::TestCase
def test_add_method_list_none
out = @RM::Document.new
@driver.add_method_list out, nil, 'Class'
@driver.add_method_list out, [], 'Class'
assert_equal @RM::Document.new, out
end
@ -249,6 +250,46 @@ class TestRDocRIDriver < MiniTest::Unit::TestCase
assert_equal expected, @driver.classes
end
def test_class_document
util_store
tl1 = RDoc::TopLevel.new 'one.rb'
tl2 = RDoc::TopLevel.new 'two.rb'
@cFoo.add_comment 'one', tl1
@cFoo.add_comment 'two', tl2
@store.save_class @cFoo
found = [
[@store, @store.load_class(@cFoo.full_name)]
]
out = @driver.class_document @cFoo.full_name, found, [], []
expected = @RM::Document.new
@driver.add_class expected, 'Foo', []
@driver.add_includes expected, []
@driver.add_from expected, @store
expected << @RM::Rule.new(1)
doc = @RM::Document.new(@RM::Paragraph.new('one'))
doc.file = 'one.rb'
expected.push doc
expected << @RM::BlankLine.new
doc = @RM::Document.new(@RM::Paragraph.new('two'))
doc.file = 'two.rb'
expected.push doc
expected << @RM::Rule.new(1)
expected << @RM::Heading.new(1, 'Instance methods:')
expected << @RM::BlankLine.new
expected << @RM::Verbatim.new('inherit')
expected << @RM::Verbatim.new('override')
expected << @RM::BlankLine.new
assert_equal expected, out
end
def test_complete
store = RDoc::RI::Store.new @home_ri
store.cache[:ancestors] = {
@ -633,8 +674,24 @@ Foo::Bar#bother
def test_list_methods_matching
util_store
assert_equal %w[Foo::Bar#attr Foo::Bar#blah Foo::Bar#bother Foo::Bar::new],
@driver.list_methods_matching('Foo::Bar.')
assert_equal %w[
Foo::Bar#attr
Foo::Bar#blah
Foo::Bar#bother
Foo::Bar::new
],
@driver.list_methods_matching('Foo::Bar.').sort
end
def test_list_methods_matching_inherit
util_multi_store
assert_equal %w[
Bar#baz
Bar#inherit
Bar#override
],
@driver.list_methods_matching('Bar.').sort
end
def test_list_methods_matching_regexp
@ -805,6 +862,42 @@ Foo::Bar#bother
assert_equal 'baz', meth, 'Foo::Bar#baz method'
end
def test_parse_name_special
specials = %w[
%
&
*
+
+@
-
-@
/
<
<<
<=
<=>
==
===
=>
=~
>
>>
[]
[]=
^
`
|
~
~@
]
specials.each do |special|
parsed = @driver.parse_name special
assert_equal ['', '.', special], parsed
end
end
def _test_setup_pager # this test doesn't do anything anymore :(
@driver.use_stdout = false
@ -864,29 +957,28 @@ Foo::Bar#bother
def util_multi_store
util_store
@store1 = @store
@top_level = RDoc::TopLevel.new 'file.rb'
@home_ri2 = "#{@home_ri}2"
@store2 = RDoc::RI::Store.new @home_ri2
# as if seen in a namespace like class Ambiguous::Other
@mAmbiguous = RDoc::NormalModule.new 'Ambiguous'
@mAmbiguous = @top_level.add_module RDoc::NormalModule, 'Ambiguous'
@cFoo = RDoc::NormalClass.new 'Foo'
@cFoo = @top_level.add_class RDoc::NormalClass, 'Foo'
@cBar = RDoc::NormalClass.new 'Bar'
@cBar.superclass = 'Foo'
@cFoo_Baz = RDoc::NormalClass.new 'Baz'
@cFoo_Baz.parent = @cFoo
@cBar = @top_level.add_class RDoc::NormalClass, 'Bar', 'Foo'
@cFoo_Baz = @cFoo.add_class RDoc::NormalClass, 'Baz'
@baz = RDoc::AnyMethod.new nil, 'baz'
@baz = @cBar.add_method RDoc::AnyMethod.new(nil, 'baz')
@baz.record_location @top_level
@cBar.add_method @baz
@override = RDoc::AnyMethod.new nil, 'override'
@override = @cBar.add_method RDoc::AnyMethod.new(nil, 'override')
@override.comment = 'must be displayed'
@override.record_location @top_level
@cBar.add_method @override
@store2.save_class @mAmbiguous
@store2.save_class @cBar
@ -898,6 +990,8 @@ Foo::Bar#bother
@store2.save_cache
@driver.stores = [@store1, @store2]
RDoc::RDoc.reset
end
def util_store
@ -905,53 +999,42 @@ Foo::Bar#bother
@top_level = RDoc::TopLevel.new 'file.rb'
@cFoo = RDoc::NormalClass.new 'Foo'
@mInc = RDoc::NormalModule.new 'Inc'
@cAmbiguous = RDoc::NormalClass.new 'Ambiguous'
@cFoo = @top_level.add_class RDoc::NormalClass, 'Foo'
@mInc = @top_level.add_module RDoc::NormalModule, 'Inc'
@cAmbiguous = @top_level.add_class RDoc::NormalClass, 'Ambiguous'
doc = @RM::Document.new @RM::Paragraph.new('Include thingy')
@cFooInc = RDoc::Include.new 'Inc', doc
@cFooInc = @cFoo.add_include RDoc::Include.new('Inc', doc)
@cFooInc.record_location @top_level
@cFoo.add_include @cFooInc
@cFoo_Bar = RDoc::NormalClass.new 'Bar'
@cFoo_Bar.parent = @cFoo
@cFoo_Bar = @cFoo.add_class RDoc::NormalClass, 'Bar'
@blah = RDoc::AnyMethod.new nil, 'blah'
@blah = @cFoo_Bar.add_method RDoc::AnyMethod.new(nil, 'blah')
@blah.call_seq = "blah(5) => 5\nblah(6) => 6\n"
@blah.record_location @top_level
@bother = RDoc::AnyMethod.new nil, 'bother'
@bother = @cFoo_Bar.add_method RDoc::AnyMethod.new(nil, 'bother')
@bother.block_params = "stuff"
@bother.params = "(things)"
@bother.record_location @top_level
@new = RDoc::AnyMethod.new nil, 'new'
@new = @cFoo_Bar.add_method RDoc::AnyMethod.new nil, 'new'
@new.record_location @top_level
@new.singleton = true
@cFoo_Bar.add_method @blah
@cFoo_Bar.add_method @bother
@cFoo_Bar.add_method @new
@attr = RDoc::Attr.new nil, 'attr', 'RW', ''
@attr = @cFoo_Bar.add_attribute RDoc::Attr.new nil, 'attr', 'RW', ''
@attr.record_location @top_level
@cFoo_Bar.add_attribute @attr
@cFoo_Baz = @cFoo.add_class RDoc::NormalClass, 'Baz'
@cFoo_Baz.record_location @top_level
@cFoo_Baz = RDoc::NormalClass.new 'Baz'
@cFoo_Baz.parent = @cFoo
@inherit = RDoc::AnyMethod.new nil, 'inherit'
@inherit = @cFoo.add_method RDoc::AnyMethod.new(nil, 'inherit')
@inherit.record_location @top_level
@cFoo.add_method @inherit
# overriden by Bar in multi_store
@overriden = RDoc::AnyMethod.new nil, 'override'
@overriden = @cFoo.add_method RDoc::AnyMethod.new(nil, 'override')
@overriden.comment = 'must not be displayed'
@overriden.record_location @top_level
@cFoo.add_method @overriden
@store.save_class @cFoo
@store.save_class @cFoo_Bar
@ -970,6 +1053,8 @@ Foo::Bar#bother
@store.save_cache
@driver.stores = [@store]
RDoc::RDoc.reset
end
end