rdoc 4.2.1 → 6.3.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rdoc might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/CONTRIBUTING.rdoc +8 -7
- data/Gemfile +12 -0
- data/History.rdoc +48 -4
- data/LEGAL.rdoc +2 -2
- data/README.rdoc +5 -5
- data/Rakefile +73 -155
- data/bin/console +7 -0
- data/bin/setup +6 -0
- data/{bin → exe}/rdoc +0 -0
- data/{bin → exe}/ri +0 -0
- data/lib/rdoc/alias.rb +1 -0
- data/lib/rdoc/anon_class.rb +1 -0
- data/lib/rdoc/any_method.rb +59 -14
- data/lib/rdoc/attr.rb +1 -0
- data/lib/rdoc/class_module.rb +5 -2
- data/lib/rdoc/code_object.rb +3 -11
- data/lib/rdoc/code_objects.rb +1 -0
- data/lib/rdoc/comment.rb +32 -11
- data/lib/rdoc/constant.rb +3 -2
- data/lib/rdoc/context/section.rb +7 -13
- data/lib/rdoc/context.rb +78 -23
- data/lib/rdoc/cross_reference.rb +33 -14
- data/lib/rdoc/encoding.rb +92 -55
- data/lib/rdoc/erb_partial.rb +2 -1
- data/lib/rdoc/erbio.rb +8 -3
- data/lib/rdoc/extend.rb +1 -0
- data/lib/rdoc/generator/darkfish.rb +62 -32
- data/lib/rdoc/generator/json_index.rb +8 -5
- data/lib/rdoc/generator/markup.rb +3 -12
- data/lib/rdoc/generator/pot/message_extractor.rb +68 -0
- data/lib/rdoc/generator/pot/po.rb +84 -0
- data/lib/rdoc/generator/pot/po_entry.rb +141 -0
- data/lib/rdoc/generator/pot.rb +4 -3
- data/lib/rdoc/generator/ri.rb +1 -0
- data/lib/rdoc/generator/template/darkfish/_footer.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_head.rhtml +11 -8
- data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +7 -7
- data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +7 -7
- data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +6 -6
- data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
- data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +4 -4
- data/lib/rdoc/generator/template/darkfish/class.rhtml +45 -47
- data/lib/rdoc/generator/template/darkfish/css/fonts.css +6 -6
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +55 -6
- data/lib/rdoc/generator/template/darkfish/index.rhtml +3 -4
- data/lib/rdoc/generator/template/darkfish/js/darkfish.js +23 -100
- data/lib/rdoc/generator/template/darkfish/js/search.js +32 -31
- data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +15 -16
- data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +16 -16
- data/lib/rdoc/generator/template/json_index/js/navigation.js +4 -41
- data/lib/rdoc/generator/template/json_index/js/searcher.js +7 -6
- data/lib/rdoc/generator.rb +1 -1
- data/lib/rdoc/ghost_method.rb +1 -0
- data/lib/rdoc/i18n/locale.rb +2 -1
- data/lib/rdoc/i18n/text.rb +5 -4
- data/lib/rdoc/i18n.rb +3 -2
- data/lib/rdoc/include.rb +1 -0
- data/lib/rdoc/known_classes.rb +1 -0
- data/lib/rdoc/markdown/entities.rb +1 -0
- data/lib/rdoc/markdown/{literals_1_9.kpeg → literals.kpeg} +1 -0
- data/lib/rdoc/markdown/{literals_1_9.rb → literals.rb} +1 -4
- data/lib/rdoc/markdown.kpeg +94 -51
- data/lib/rdoc/markdown.rb +1171 -619
- data/lib/rdoc/markup/attr_changer.rb +1 -0
- data/lib/rdoc/markup/attr_span.rb +9 -2
- data/lib/rdoc/markup/attribute_manager.rb +115 -49
- data/lib/rdoc/markup/attributes.rb +7 -6
- data/lib/rdoc/markup/blank_line.rb +1 -0
- data/lib/rdoc/markup/block_quote.rb +1 -0
- data/lib/rdoc/markup/document.rb +1 -0
- data/lib/rdoc/markup/formatter.rb +25 -23
- data/lib/rdoc/markup/hard_break.rb +1 -0
- data/lib/rdoc/markup/heading.rb +4 -3
- data/lib/rdoc/markup/include.rb +1 -0
- data/lib/rdoc/markup/indented_paragraph.rb +1 -0
- data/lib/rdoc/markup/list.rb +1 -0
- data/lib/rdoc/markup/list_item.rb +1 -0
- data/lib/rdoc/markup/paragraph.rb +1 -0
- data/lib/rdoc/markup/parser.rb +78 -61
- data/lib/rdoc/markup/pre_process.rb +12 -9
- data/lib/rdoc/markup/raw.rb +1 -0
- data/lib/rdoc/markup/regexp_handling.rb +41 -0
- data/lib/rdoc/markup/rule.rb +1 -0
- data/lib/rdoc/markup/to_ansi.rb +1 -0
- data/lib/rdoc/markup/to_bs.rb +4 -5
- data/lib/rdoc/markup/to_html.rb +71 -25
- data/lib/rdoc/markup/to_html_crossref.rb +41 -25
- data/lib/rdoc/markup/to_html_snippet.rb +10 -9
- data/lib/rdoc/markup/to_joined_paragraph.rb +7 -31
- data/lib/rdoc/markup/to_label.rb +10 -9
- data/lib/rdoc/markup/to_markdown.rb +9 -8
- data/lib/rdoc/markup/to_rdoc.rb +35 -6
- data/lib/rdoc/markup/to_table_of_contents.rb +2 -0
- data/lib/rdoc/markup/to_test.rb +1 -0
- data/lib/rdoc/markup/to_tt_only.rb +3 -2
- data/lib/rdoc/markup/verbatim.rb +1 -0
- data/lib/rdoc/markup.rb +14 -16
- data/lib/rdoc/meta_method.rb +1 -0
- data/lib/rdoc/method_attr.rb +2 -1
- data/lib/rdoc/mixin.rb +1 -0
- data/lib/rdoc/normal_class.rb +3 -2
- data/lib/rdoc/normal_module.rb +1 -0
- data/lib/rdoc/options.rb +92 -58
- data/lib/rdoc/parser/c.rb +219 -223
- data/lib/rdoc/parser/changelog.rb +155 -18
- data/lib/rdoc/parser/markdown.rb +1 -0
- data/lib/rdoc/parser/rd.rb +1 -0
- data/lib/rdoc/parser/ripper_state_lex.rb +590 -0
- data/lib/rdoc/parser/ruby.rb +635 -468
- data/lib/rdoc/parser/ruby_tools.rb +33 -33
- data/lib/rdoc/parser/simple.rb +3 -3
- data/lib/rdoc/parser/text.rb +1 -0
- data/lib/rdoc/parser.rb +17 -50
- data/lib/rdoc/rd/block_parser.rb +66 -65
- data/lib/rdoc/rd/block_parser.ry +3 -3
- data/lib/rdoc/rd/inline.rb +5 -4
- data/lib/rdoc/rd/inline_parser.rb +52 -51
- data/lib/rdoc/rd/inline_parser.ry +1 -1
- data/lib/rdoc/rd.rb +1 -0
- data/lib/rdoc/rdoc.rb +68 -63
- data/lib/rdoc/require.rb +1 -0
- data/lib/rdoc/ri/driver.rb +133 -58
- data/lib/rdoc/ri/formatter.rb +1 -0
- data/lib/rdoc/ri/paths.rb +4 -20
- data/lib/rdoc/ri/store.rb +1 -0
- data/lib/rdoc/ri/task.rb +71 -0
- data/lib/rdoc/ri.rb +1 -0
- data/lib/rdoc/rubygems_hook.rb +5 -12
- data/lib/rdoc/servlet.rb +24 -14
- data/lib/rdoc/single_class.rb +1 -0
- data/lib/rdoc/stats/normal.rb +20 -21
- data/lib/rdoc/stats/quiet.rb +1 -0
- data/lib/rdoc/stats/verbose.rb +1 -0
- data/lib/rdoc/stats.rb +1 -0
- data/lib/rdoc/store.rb +41 -41
- data/lib/rdoc/task.rb +2 -3
- data/lib/rdoc/text.rb +19 -38
- data/lib/rdoc/token_stream.rb +56 -32
- data/lib/rdoc/tom_doc.rb +17 -11
- data/lib/rdoc/top_level.rb +9 -2
- data/lib/rdoc/version.rb +8 -0
- data/lib/rdoc.rb +24 -10
- data/man/ri.1 +247 -0
- data/rdoc.gemspec +248 -0
- metadata +43 -236
- data/.autotest +0 -24
- data/.document +0 -5
- data/Manifest.txt +0 -306
- data/lib/gauntlet_rdoc.rb +0 -84
- data/lib/rdoc/generator/template/darkfish/js/jquery.js +0 -4
- data/lib/rdoc/markdown/literals_1_8.kpeg +0 -18
- data/lib/rdoc/markdown/literals_1_8.rb +0 -416
- data/lib/rdoc/markup/formatter_test_case.rb +0 -767
- data/lib/rdoc/markup/inline.rb +0 -1
- data/lib/rdoc/markup/special.rb +0 -40
- data/lib/rdoc/markup/text_formatter_test_case.rb +0 -114
- data/lib/rdoc/ruby_lex.rb +0 -1377
- data/lib/rdoc/ruby_token.rb +0 -460
- data/lib/rdoc/test_case.rb +0 -217
- data/test/MarkdownTest_1.0.3/Amps and angle encoding.text +0 -21
- data/test/MarkdownTest_1.0.3/Auto links.text +0 -13
- data/test/MarkdownTest_1.0.3/Backslash escapes.text +0 -120
- data/test/MarkdownTest_1.0.3/Blockquotes with code blocks.text +0 -11
- data/test/MarkdownTest_1.0.3/Code Blocks.text +0 -14
- data/test/MarkdownTest_1.0.3/Code Spans.text +0 -6
- data/test/MarkdownTest_1.0.3/Hard-wrapped paragraphs with list-like lines.text +0 -8
- data/test/MarkdownTest_1.0.3/Horizontal rules.text +0 -67
- data/test/MarkdownTest_1.0.3/Inline HTML (Advanced).text +0 -15
- data/test/MarkdownTest_1.0.3/Inline HTML (Simple).text +0 -69
- data/test/MarkdownTest_1.0.3/Inline HTML comments.text +0 -13
- data/test/MarkdownTest_1.0.3/Links, inline style.text +0 -12
- data/test/MarkdownTest_1.0.3/Links, reference style.text +0 -71
- data/test/MarkdownTest_1.0.3/Links, shortcut references.text +0 -20
- data/test/MarkdownTest_1.0.3/Literal quotes in titles.text +0 -7
- data/test/MarkdownTest_1.0.3/Markdown Documentation - Basics.text +0 -306
- data/test/MarkdownTest_1.0.3/Markdown Documentation - Syntax.text +0 -888
- data/test/MarkdownTest_1.0.3/Nested blockquotes.text +0 -5
- data/test/MarkdownTest_1.0.3/Ordered and unordered lists.text +0 -131
- data/test/MarkdownTest_1.0.3/Strong and em together.text +0 -7
- data/test/MarkdownTest_1.0.3/Tabs.text +0 -21
- data/test/MarkdownTest_1.0.3/Tidyness.text +0 -5
- data/test/README +0 -1
- data/test/binary.dat +0 -0
- data/test/hidden.zip.txt +0 -1
- data/test/test.ja.largedoc +0 -3
- data/test/test.ja.rdoc +0 -10
- data/test/test.ja.txt +0 -8
- data/test/test.txt +0 -1
- data/test/test_rdoc_alias.rb +0 -13
- data/test/test_rdoc_any_method.rb +0 -460
- data/test/test_rdoc_attr.rb +0 -190
- data/test/test_rdoc_class_module.rb +0 -1492
- data/test/test_rdoc_code_object.rb +0 -450
- data/test/test_rdoc_comment.rb +0 -504
- data/test/test_rdoc_constant.rb +0 -181
- data/test/test_rdoc_context.rb +0 -901
- data/test/test_rdoc_context_section.rb +0 -130
- data/test/test_rdoc_cross_reference.rb +0 -192
- data/test/test_rdoc_encoding.rb +0 -227
- data/test/test_rdoc_extend.rb +0 -94
- data/test/test_rdoc_generator_darkfish.rb +0 -229
- data/test/test_rdoc_generator_json_index.rb +0 -324
- data/test/test_rdoc_generator_markup.rb +0 -59
- data/test/test_rdoc_generator_pot.rb +0 -91
- data/test/test_rdoc_generator_pot_po.rb +0 -51
- data/test/test_rdoc_generator_pot_po_entry.rb +0 -139
- data/test/test_rdoc_generator_ri.rb +0 -78
- data/test/test_rdoc_i18n_locale.rb +0 -73
- data/test/test_rdoc_i18n_text.rb +0 -123
- data/test/test_rdoc_include.rb +0 -108
- data/test/test_rdoc_markdown.rb +0 -980
- data/test/test_rdoc_markdown_test.rb +0 -1884
- data/test/test_rdoc_markup.rb +0 -95
- data/test/test_rdoc_markup_attribute_manager.rb +0 -364
- data/test/test_rdoc_markup_attributes.rb +0 -39
- data/test/test_rdoc_markup_document.rb +0 -207
- data/test/test_rdoc_markup_formatter.rb +0 -175
- data/test/test_rdoc_markup_hard_break.rb +0 -31
- data/test/test_rdoc_markup_heading.rb +0 -29
- data/test/test_rdoc_markup_include.rb +0 -19
- data/test/test_rdoc_markup_indented_paragraph.rb +0 -53
- data/test/test_rdoc_markup_paragraph.rb +0 -32
- data/test/test_rdoc_markup_parser.rb +0 -1680
- data/test/test_rdoc_markup_pre_process.rb +0 -473
- data/test/test_rdoc_markup_raw.rb +0 -22
- data/test/test_rdoc_markup_to_ansi.rb +0 -369
- data/test/test_rdoc_markup_to_bs.rb +0 -366
- data/test/test_rdoc_markup_to_html.rb +0 -662
- data/test/test_rdoc_markup_to_html_crossref.rb +0 -225
- data/test/test_rdoc_markup_to_html_snippet.rb +0 -711
- data/test/test_rdoc_markup_to_joined_paragraph.rb +0 -32
- data/test/test_rdoc_markup_to_label.rb +0 -112
- data/test/test_rdoc_markup_to_markdown.rb +0 -389
- data/test/test_rdoc_markup_to_rdoc.rb +0 -377
- data/test/test_rdoc_markup_to_table_of_contents.rb +0 -126
- data/test/test_rdoc_markup_to_tt_only.rb +0 -246
- data/test/test_rdoc_markup_verbatim.rb +0 -29
- data/test/test_rdoc_method_attr.rb +0 -193
- data/test/test_rdoc_normal_class.rb +0 -47
- data/test/test_rdoc_normal_module.rb +0 -42
- data/test/test_rdoc_options.rb +0 -766
- data/test/test_rdoc_parser.rb +0 -327
- data/test/test_rdoc_parser_c.rb +0 -1896
- data/test/test_rdoc_parser_changelog.rb +0 -315
- data/test/test_rdoc_parser_markdown.rb +0 -61
- data/test/test_rdoc_parser_rd.rb +0 -55
- data/test/test_rdoc_parser_ruby.rb +0 -3322
- data/test/test_rdoc_parser_simple.rb +0 -115
- data/test/test_rdoc_rd.rb +0 -30
- data/test/test_rdoc_rd_block_parser.rb +0 -535
- data/test/test_rdoc_rd_inline.rb +0 -63
- data/test/test_rdoc_rd_inline_parser.rb +0 -177
- data/test/test_rdoc_rdoc.rb +0 -455
- data/test/test_rdoc_require.rb +0 -25
- data/test/test_rdoc_ri_driver.rb +0 -1436
- data/test/test_rdoc_ri_paths.rb +0 -155
- data/test/test_rdoc_ruby_lex.rb +0 -421
- data/test/test_rdoc_ruby_token.rb +0 -19
- data/test/test_rdoc_rubygems_hook.rb +0 -251
- data/test/test_rdoc_servlet.rb +0 -534
- data/test/test_rdoc_single_class.rb +0 -20
- data/test/test_rdoc_stats.rb +0 -722
- data/test/test_rdoc_store.rb +0 -993
- data/test/test_rdoc_task.rb +0 -173
- data/test/test_rdoc_text.rb +0 -557
- data/test/test_rdoc_token_stream.rb +0 -42
- data/test/test_rdoc_tom_doc.rb +0 -520
- data/test/test_rdoc_top_level.rb +0 -287
- data/test/xref_data.rb +0 -76
- data/test/xref_test_case.rb +0 -67
data/test/test_rdoc_store.rb
DELETED
@@ -1,993 +0,0 @@
|
|
1
|
-
require File.expand_path '../xref_test_case', __FILE__
|
2
|
-
|
3
|
-
class TestRDocStore < XrefTestCase
|
4
|
-
|
5
|
-
OBJECT_ANCESTORS = defined?(::BasicObject) ? %w[BasicObject] : []
|
6
|
-
|
7
|
-
def setup
|
8
|
-
super
|
9
|
-
|
10
|
-
@tmpdir = File.join Dir.tmpdir, "test_rdoc_ri_store_#{$$}"
|
11
|
-
@s = RDoc::RI::Store.new @tmpdir
|
12
|
-
@s.rdoc = @rdoc
|
13
|
-
|
14
|
-
@top_level = @s.add_file 'file.rb'
|
15
|
-
|
16
|
-
@page = @s.add_file 'README.txt'
|
17
|
-
@page.parser = RDoc::Parser::Simple
|
18
|
-
@page.comment = RDoc::Comment.new 'This is a page', @page
|
19
|
-
|
20
|
-
@klass = @top_level.add_class RDoc::NormalClass, 'Object'
|
21
|
-
@klass.add_comment 'original', @top_level
|
22
|
-
@klass.record_location @top_level
|
23
|
-
|
24
|
-
@cmeth = RDoc::AnyMethod.new nil, 'cmethod'
|
25
|
-
@cmeth.singleton = true
|
26
|
-
@cmeth.record_location @top_level
|
27
|
-
|
28
|
-
@meth_comment = RDoc::Comment.new 'method comment'
|
29
|
-
@meth_comment.location = @top_level
|
30
|
-
|
31
|
-
@meth = RDoc::AnyMethod.new nil, 'method'
|
32
|
-
@meth.record_location @top_level
|
33
|
-
@meth.comment = @meth_comment
|
34
|
-
|
35
|
-
@meth_bang = RDoc::AnyMethod.new nil, 'method!'
|
36
|
-
@meth_bang.record_location @top_level
|
37
|
-
|
38
|
-
@meth_bang_alias = RDoc::Alias.new nil, 'method!', 'method_bang', ''
|
39
|
-
@meth_bang_alias.record_location @top_level
|
40
|
-
|
41
|
-
@meth_bang.add_alias @meth_bang_alias, @klass
|
42
|
-
|
43
|
-
@attr_comment = RDoc::Comment.new 'attribute comment'
|
44
|
-
@attr_comment.location = @top_level
|
45
|
-
|
46
|
-
@attr = RDoc::Attr.new nil, 'attr', 'RW', ''
|
47
|
-
@attr.record_location @top_level
|
48
|
-
@attr.comment = @attr_comment
|
49
|
-
|
50
|
-
@klass.add_method @cmeth
|
51
|
-
@klass.add_method @meth
|
52
|
-
@klass.add_method @meth_bang
|
53
|
-
@klass.add_attribute @attr
|
54
|
-
|
55
|
-
@nest_klass = @klass.add_class RDoc::NormalClass, 'SubClass'
|
56
|
-
@nest_meth = RDoc::AnyMethod.new nil, 'method'
|
57
|
-
@nest_meth.record_location @top_level
|
58
|
-
|
59
|
-
@nest_incl = RDoc::Include.new 'Incl', ''
|
60
|
-
@nest_incl.record_location @top_level
|
61
|
-
|
62
|
-
@nest_klass.add_method @nest_meth
|
63
|
-
@nest_klass.add_include @nest_incl
|
64
|
-
|
65
|
-
@mod = @top_level.add_module RDoc::NormalModule, 'Mod'
|
66
|
-
@mod.record_location @top_level
|
67
|
-
end
|
68
|
-
|
69
|
-
def teardown
|
70
|
-
super
|
71
|
-
|
72
|
-
FileUtils.rm_rf @tmpdir
|
73
|
-
end
|
74
|
-
|
75
|
-
def assert_cache imethods, cmethods, attrs, modules,
|
76
|
-
ancestors = {}, pages = [], main = nil, title = nil
|
77
|
-
imethods ||= { 'Object' => %w[method method! method_bang] }
|
78
|
-
cmethods ||= { 'Object' => %w[cmethod] }
|
79
|
-
attrs ||= { 'Object' => ['attr_accessor attr'] }
|
80
|
-
|
81
|
-
# this is sort-of a hack
|
82
|
-
@s.clean_cache_collection ancestors
|
83
|
-
|
84
|
-
expected = {
|
85
|
-
:ancestors => ancestors,
|
86
|
-
:attributes => attrs,
|
87
|
-
:class_methods => cmethods,
|
88
|
-
:c_class_variables => {},
|
89
|
-
:c_singleton_class_variables => {},
|
90
|
-
:encoding => nil,
|
91
|
-
:instance_methods => imethods,
|
92
|
-
:modules => modules,
|
93
|
-
:pages => pages,
|
94
|
-
:main => main,
|
95
|
-
:title => title,
|
96
|
-
}
|
97
|
-
|
98
|
-
@s.save_cache
|
99
|
-
|
100
|
-
assert_equal expected, @s.cache
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_add_c_enclosure
|
104
|
-
@s.add_c_enclosure 'cC1', @c1
|
105
|
-
|
106
|
-
expected = { 'cC1' => @c1 }
|
107
|
-
|
108
|
-
assert_equal expected, @s.c_enclosure_classes
|
109
|
-
end
|
110
|
-
|
111
|
-
def test_add_c_variables
|
112
|
-
options = RDoc::Options.new
|
113
|
-
|
114
|
-
c_file = @s.add_file 'ext.c'
|
115
|
-
|
116
|
-
some_ext = c_file.add_class RDoc::NormalClass, 'SomeExt'
|
117
|
-
c_file.add_class RDoc::SingleClass, 'SomeExtSingle'
|
118
|
-
|
119
|
-
c_parser = RDoc::Parser::C.new c_file, 'ext.c', '', options, nil
|
120
|
-
|
121
|
-
c_parser.classes['cSomeExt'] = some_ext
|
122
|
-
c_parser.singleton_classes['s_cSomeExt'] = 'SomeExtSingle'
|
123
|
-
|
124
|
-
@s.add_c_variables c_parser
|
125
|
-
|
126
|
-
expected = { 'ext.c' => { 'cSomeExt' => 'SomeExt' } }
|
127
|
-
|
128
|
-
assert_equal expected, @s.c_class_variables
|
129
|
-
|
130
|
-
expected = { 'ext.c' => { 's_cSomeExt' => 'SomeExtSingle' } }
|
131
|
-
|
132
|
-
assert_equal expected, @s.c_singleton_class_variables
|
133
|
-
end
|
134
|
-
|
135
|
-
def test_add_file
|
136
|
-
top_level = @store.add_file 'file.rb'
|
137
|
-
|
138
|
-
assert_kind_of RDoc::TopLevel, top_level
|
139
|
-
assert_equal @store, top_level.store
|
140
|
-
assert_equal 'file.rb', top_level.name
|
141
|
-
assert_includes @store.all_files, top_level
|
142
|
-
|
143
|
-
assert_same top_level, @store.add_file('file.rb')
|
144
|
-
refute_same top_level, @store.add_file('other.rb')
|
145
|
-
end
|
146
|
-
|
147
|
-
def test_add_file_relative
|
148
|
-
top_level = @store.add_file 'path/file.rb', 'file.rb'
|
149
|
-
|
150
|
-
assert_kind_of RDoc::TopLevel, top_level
|
151
|
-
assert_equal @store, top_level.store
|
152
|
-
|
153
|
-
assert_equal 'path/file.rb', top_level.absolute_name
|
154
|
-
assert_equal 'file.rb', top_level.relative_name
|
155
|
-
|
156
|
-
assert_includes @store.all_files, top_level
|
157
|
-
|
158
|
-
assert_same top_level, @store.add_file('file.rb')
|
159
|
-
refute_same top_level, @store.add_file('other.rb')
|
160
|
-
end
|
161
|
-
|
162
|
-
def test_all_classes_and_modules
|
163
|
-
expected = %w[
|
164
|
-
C1 C2 C2::C3 C2::C3::H1 C3 C3::H1 C3::H2 C4 C4::C4 C5 C5::C1
|
165
|
-
Child
|
166
|
-
M1 M1::M2
|
167
|
-
Parent
|
168
|
-
]
|
169
|
-
|
170
|
-
assert_equal expected,
|
171
|
-
@store.all_classes_and_modules.map { |m| m.full_name }.sort
|
172
|
-
end
|
173
|
-
|
174
|
-
def test_all_files
|
175
|
-
assert_equal %w[xref_data.rb],
|
176
|
-
@store.all_files.map { |m| m.full_name }.sort
|
177
|
-
end
|
178
|
-
|
179
|
-
def test_all_modules
|
180
|
-
assert_equal %w[M1 M1::M2],
|
181
|
-
@store.all_modules.map { |m| m.full_name }.sort
|
182
|
-
end
|
183
|
-
|
184
|
-
def test_attributes
|
185
|
-
@s.cache[:attributes]['Object'] = %w[attr]
|
186
|
-
|
187
|
-
expected = { 'Object' => %w[attr] }
|
188
|
-
|
189
|
-
assert_equal expected, @s.attributes
|
190
|
-
end
|
191
|
-
|
192
|
-
def test_class_file
|
193
|
-
assert_equal File.join(@tmpdir, 'Object', 'cdesc-Object.ri'),
|
194
|
-
@s.class_file('Object')
|
195
|
-
assert_equal File.join(@tmpdir, 'Object', 'SubClass', 'cdesc-SubClass.ri'),
|
196
|
-
@s.class_file('Object::SubClass')
|
197
|
-
end
|
198
|
-
|
199
|
-
def test_class_methods
|
200
|
-
@s.cache[:class_methods]['Object'] = %w[method]
|
201
|
-
|
202
|
-
expected = { 'Object' => %w[method] }
|
203
|
-
|
204
|
-
assert_equal expected, @s.class_methods
|
205
|
-
end
|
206
|
-
|
207
|
-
def test_class_path
|
208
|
-
assert_equal File.join(@tmpdir, 'Object'), @s.class_path('Object')
|
209
|
-
assert_equal File.join(@tmpdir, 'Object', 'SubClass'),
|
210
|
-
@s.class_path('Object::SubClass')
|
211
|
-
end
|
212
|
-
|
213
|
-
def test_classes
|
214
|
-
expected = %w[
|
215
|
-
C1 C2 C2::C3 C2::C3::H1 C3 C3::H1 C3::H2 C4 C4::C4 C5 C5::C1
|
216
|
-
Child
|
217
|
-
Parent
|
218
|
-
]
|
219
|
-
|
220
|
-
assert_equal expected, @store.all_classes.map { |m| m.full_name }.sort
|
221
|
-
end
|
222
|
-
|
223
|
-
def test_complete
|
224
|
-
@c2.add_module_alias @c2_c3, 'A1', @top_level
|
225
|
-
|
226
|
-
@store.complete :public
|
227
|
-
|
228
|
-
a1 = @xref_data.find_class_or_module 'C2::A1'
|
229
|
-
|
230
|
-
assert_equal 'C2::A1', a1.full_name
|
231
|
-
refute_empty a1.aliases
|
232
|
-
end
|
233
|
-
|
234
|
-
def test_complete_nodoc
|
235
|
-
c_nodoc = @top_level.add_class RDoc::NormalClass, 'Nodoc'
|
236
|
-
c_nodoc.record_location @top_level
|
237
|
-
c_nodoc.document_self = nil
|
238
|
-
|
239
|
-
@s.complete :nodoc
|
240
|
-
|
241
|
-
assert_includes @s.classes_hash.keys, 'Nodoc'
|
242
|
-
end
|
243
|
-
|
244
|
-
def test_find_c_enclosure
|
245
|
-
assert_nil @s.find_c_enclosure 'cC1'
|
246
|
-
|
247
|
-
@s.add_c_enclosure 'cC1', @c1
|
248
|
-
|
249
|
-
assert_equal @c1, @s.find_c_enclosure('cC1')
|
250
|
-
end
|
251
|
-
|
252
|
-
def test_find_c_enclosure_from_cache
|
253
|
-
@s.save_class @klass
|
254
|
-
@s.classes_hash.clear
|
255
|
-
|
256
|
-
assert_nil @s.find_c_enclosure 'cObject'
|
257
|
-
|
258
|
-
@s.c_enclosure_names['cObject'] = 'Object'
|
259
|
-
|
260
|
-
klass = @s.find_c_enclosure('cObject')
|
261
|
-
assert_equal @klass, klass
|
262
|
-
|
263
|
-
assert_empty klass.comment_location
|
264
|
-
assert_equal @top_level, klass.parent
|
265
|
-
|
266
|
-
assert_includes @s.c_enclosure_classes, 'cObject'
|
267
|
-
end
|
268
|
-
|
269
|
-
def test_find_c_enclosure_from_cache_legacy
|
270
|
-
@klass.in_files.clear
|
271
|
-
@s.save_class @klass
|
272
|
-
@s.classes_hash.clear
|
273
|
-
|
274
|
-
assert_nil @s.find_c_enclosure 'cObject'
|
275
|
-
|
276
|
-
@s.c_enclosure_names['cObject'] = 'Object'
|
277
|
-
|
278
|
-
assert_nil @s.find_c_enclosure('cObject')
|
279
|
-
end
|
280
|
-
|
281
|
-
def test_find_class_named
|
282
|
-
assert_equal @c1, @store.find_class_named('C1')
|
283
|
-
|
284
|
-
assert_equal @c2_c3, @store.find_class_named('C2::C3')
|
285
|
-
end
|
286
|
-
|
287
|
-
def test_find_class_named_from
|
288
|
-
assert_equal @c5_c1, @store.find_class_named_from('C1', 'C5')
|
289
|
-
|
290
|
-
assert_equal @c1, @store.find_class_named_from('C1', 'C4')
|
291
|
-
end
|
292
|
-
|
293
|
-
def test_find_class_or_module
|
294
|
-
assert_equal @m1, @store.find_class_or_module('M1')
|
295
|
-
assert_equal @c1, @store.find_class_or_module('C1')
|
296
|
-
|
297
|
-
assert_equal @m1, @store.find_class_or_module('::M1')
|
298
|
-
assert_equal @c1, @store.find_class_or_module('::C1')
|
299
|
-
end
|
300
|
-
|
301
|
-
def test_find_file_named
|
302
|
-
assert_equal @xref_data, @store.find_file_named(@file_name)
|
303
|
-
end
|
304
|
-
|
305
|
-
def test_find_module_named
|
306
|
-
assert_equal @m1, @store.find_module_named('M1')
|
307
|
-
assert_equal @m1_m2, @store.find_module_named('M1::M2')
|
308
|
-
end
|
309
|
-
|
310
|
-
def test_find_text_page
|
311
|
-
page = @store.add_file 'PAGE.txt'
|
312
|
-
page.parser = RDoc::Parser::Simple
|
313
|
-
|
314
|
-
assert_nil @store.find_text_page 'no such page'
|
315
|
-
|
316
|
-
assert_equal page, @store.find_text_page('PAGE.txt')
|
317
|
-
end
|
318
|
-
|
319
|
-
def test_friendly_path
|
320
|
-
@s.path = @tmpdir
|
321
|
-
@s.type = nil
|
322
|
-
assert_equal @s.path, @s.friendly_path
|
323
|
-
|
324
|
-
@s.type = :extra
|
325
|
-
assert_equal @s.path, @s.friendly_path
|
326
|
-
|
327
|
-
@s.type = :system
|
328
|
-
assert_equal "ruby core", @s.friendly_path
|
329
|
-
|
330
|
-
@s.type = :site
|
331
|
-
assert_equal "ruby site", @s.friendly_path
|
332
|
-
|
333
|
-
@s.type = :home
|
334
|
-
assert_equal "~/.rdoc", @s.friendly_path
|
335
|
-
|
336
|
-
@s.type = :gem
|
337
|
-
@s.path = "#{@tmpdir}/gem_repository/doc/gem_name-1.0/ri"
|
338
|
-
assert_equal "gem gem_name-1.0", @s.friendly_path
|
339
|
-
end
|
340
|
-
|
341
|
-
def test_dry_run
|
342
|
-
refute @s.dry_run
|
343
|
-
|
344
|
-
@s.dry_run = true
|
345
|
-
|
346
|
-
assert @s.dry_run
|
347
|
-
end
|
348
|
-
|
349
|
-
def test_instance_methods
|
350
|
-
@s.cache[:instance_methods]['Object'] = %w[method]
|
351
|
-
|
352
|
-
expected = { 'Object' => %w[method] }
|
353
|
-
|
354
|
-
assert_equal expected, @s.instance_methods
|
355
|
-
end
|
356
|
-
|
357
|
-
def test_load_all
|
358
|
-
FileUtils.mkdir_p @tmpdir
|
359
|
-
|
360
|
-
@s.save
|
361
|
-
|
362
|
-
s = RDoc::Store.new @tmpdir
|
363
|
-
|
364
|
-
s.load_all
|
365
|
-
|
366
|
-
assert_equal [@klass, @nest_klass], s.all_classes.sort
|
367
|
-
assert_equal [@mod], s.all_modules.sort
|
368
|
-
assert_equal [@page, @top_level], s.all_files.sort
|
369
|
-
|
370
|
-
methods = s.all_classes_and_modules.map do |mod|
|
371
|
-
mod.method_list
|
372
|
-
end.flatten.sort
|
373
|
-
|
374
|
-
_meth_bang_alias = RDoc::AnyMethod.new nil, 'method_bang'
|
375
|
-
_meth_bang_alias.parent = @klass
|
376
|
-
|
377
|
-
assert_equal [@meth, @meth_bang, _meth_bang_alias, @nest_meth, @cmeth],
|
378
|
-
methods.sort_by { |m| m.full_name }
|
379
|
-
|
380
|
-
method = methods.find { |m| m == @meth }
|
381
|
-
assert_equal @meth_comment.parse, method.comment
|
382
|
-
|
383
|
-
assert_equal @klass, methods.last.parent
|
384
|
-
|
385
|
-
attributes = s.all_classes_and_modules.map do |mod|
|
386
|
-
mod.attributes
|
387
|
-
end.flatten.sort
|
388
|
-
|
389
|
-
assert_equal [@attr], attributes
|
390
|
-
|
391
|
-
assert_equal @attr_comment.parse, attributes.first.comment
|
392
|
-
end
|
393
|
-
|
394
|
-
def test_load_cache
|
395
|
-
cache = {
|
396
|
-
:c_class_variables =>
|
397
|
-
{ 'file.c' => { 'cKlass' => 'Klass' } },
|
398
|
-
:c_singleton_class_variables =>
|
399
|
-
{ 'file.c' => { 'sKlass' => 'KlassSingle' } },
|
400
|
-
:encoding => :encoding_value,
|
401
|
-
:methods => { "Object" => %w[Object#method] },
|
402
|
-
:main => @page.full_name,
|
403
|
-
:modules => %w[Object],
|
404
|
-
:pages => [],
|
405
|
-
}
|
406
|
-
|
407
|
-
Dir.mkdir @tmpdir
|
408
|
-
|
409
|
-
open File.join(@tmpdir, 'cache.ri'), 'wb' do |io|
|
410
|
-
Marshal.dump cache, io
|
411
|
-
end
|
412
|
-
|
413
|
-
@s.load_cache
|
414
|
-
|
415
|
-
assert_equal cache, @s.cache
|
416
|
-
|
417
|
-
assert_equal :encoding_value, @s.encoding
|
418
|
-
assert_equal 'README.txt', @s.main
|
419
|
-
|
420
|
-
expected = { 'file.c' => { 'cKlass' => 'Klass' } }
|
421
|
-
assert_equal expected, @s.cache[:c_class_variables]
|
422
|
-
|
423
|
-
expected = { 'file.c' => { 'sKlass' => 'KlassSingle' } }
|
424
|
-
assert_equal expected, @s.cache[:c_singleton_class_variables]
|
425
|
-
|
426
|
-
expected = { 'cKlass' => 'Klass' }
|
427
|
-
assert_equal expected, @s.c_enclosure_names
|
428
|
-
end
|
429
|
-
|
430
|
-
def test_load_cache_encoding_differs
|
431
|
-
skip "Encoding not implemented" unless Object.const_defined? :Encoding
|
432
|
-
|
433
|
-
cache = {
|
434
|
-
:c_class_variables => {},
|
435
|
-
:c_singleton_class_variables => {},
|
436
|
-
:encoding => Encoding::ISO_8859_1,
|
437
|
-
:main => nil,
|
438
|
-
:methods => { "Object" => %w[Object#method] },
|
439
|
-
:modules => %w[Object],
|
440
|
-
:pages => [],
|
441
|
-
}
|
442
|
-
|
443
|
-
Dir.mkdir @tmpdir
|
444
|
-
|
445
|
-
open File.join(@tmpdir, 'cache.ri'), 'wb' do |io|
|
446
|
-
Marshal.dump cache, io
|
447
|
-
end
|
448
|
-
|
449
|
-
@s.encoding = Encoding::UTF_8
|
450
|
-
|
451
|
-
@s.load_cache
|
452
|
-
|
453
|
-
assert_equal cache, @s.cache
|
454
|
-
|
455
|
-
assert_equal Encoding::UTF_8, @s.encoding
|
456
|
-
end
|
457
|
-
|
458
|
-
def test_load_cache_no_cache
|
459
|
-
cache = {
|
460
|
-
:ancestors => {},
|
461
|
-
:attributes => {},
|
462
|
-
:class_methods => {},
|
463
|
-
:c_class_variables => {},
|
464
|
-
:c_singleton_class_variables => {},
|
465
|
-
:encoding => nil,
|
466
|
-
:instance_methods => {},
|
467
|
-
:main => nil,
|
468
|
-
:modules => [],
|
469
|
-
:pages => [],
|
470
|
-
:title => nil,
|
471
|
-
}
|
472
|
-
|
473
|
-
@s.load_cache
|
474
|
-
|
475
|
-
assert_equal cache, @s.cache
|
476
|
-
end
|
477
|
-
|
478
|
-
def test_load_cache_legacy
|
479
|
-
cache = {
|
480
|
-
:ancestors => {},
|
481
|
-
:attributes => {},
|
482
|
-
:class_methods => {},
|
483
|
-
:encoding => :encoding_value,
|
484
|
-
:instance_methods => { "Object" => %w[Object#method] },
|
485
|
-
:modules => %w[Object],
|
486
|
-
# no :pages
|
487
|
-
# no :main
|
488
|
-
# no :c_class_variables
|
489
|
-
# no :c_singleton_class_variables
|
490
|
-
}
|
491
|
-
|
492
|
-
Dir.mkdir @tmpdir
|
493
|
-
|
494
|
-
open File.join(@tmpdir, 'cache.ri'), 'wb' do |io|
|
495
|
-
Marshal.dump cache, io
|
496
|
-
end
|
497
|
-
|
498
|
-
@s.load_cache
|
499
|
-
|
500
|
-
expected = {
|
501
|
-
:ancestors => {},
|
502
|
-
:attributes => {},
|
503
|
-
:class_methods => {},
|
504
|
-
:c_class_variables => {},
|
505
|
-
:c_singleton_class_variables => {},
|
506
|
-
:encoding => :encoding_value,
|
507
|
-
:instance_methods => { "Object" => %w[Object#method] },
|
508
|
-
:main => nil,
|
509
|
-
:modules => %w[Object],
|
510
|
-
:pages => [],
|
511
|
-
}
|
512
|
-
|
513
|
-
assert_equal expected, @s.cache
|
514
|
-
|
515
|
-
assert_equal :encoding_value, @s.encoding
|
516
|
-
assert_nil @s.main
|
517
|
-
end
|
518
|
-
|
519
|
-
def test_load_class
|
520
|
-
@s.save_class @klass
|
521
|
-
@s.classes_hash.clear
|
522
|
-
|
523
|
-
assert_equal @klass, @s.load_class('Object')
|
524
|
-
|
525
|
-
assert_includes @s.classes_hash, 'Object'
|
526
|
-
end
|
527
|
-
|
528
|
-
def test_load_method
|
529
|
-
@s.save_method @klass, @meth_bang
|
530
|
-
|
531
|
-
meth = @s.load_method('Object', '#method!')
|
532
|
-
assert_equal @meth_bang, meth
|
533
|
-
assert_equal @klass, meth.parent
|
534
|
-
assert_equal @s, meth.store
|
535
|
-
end
|
536
|
-
|
537
|
-
def test_load_method_legacy
|
538
|
-
@s.save_method @klass, @meth
|
539
|
-
|
540
|
-
file = @s.method_file @klass.full_name, @meth.full_name
|
541
|
-
|
542
|
-
open file, 'wb' do |io|
|
543
|
-
io.write "\x04\bU:\x14RDoc::AnyMethod[\x0Fi\x00I" +
|
544
|
-
"\"\vmethod\x06:\x06EF\"\x11Klass#method0:\vpublic" +
|
545
|
-
"o:\eRDoc::Markup::Document\x06:\v@parts[\x06" +
|
546
|
-
"o:\x1CRDoc::Markup::Paragraph\x06;\t[\x06I" +
|
547
|
-
"\"\x16this is a comment\x06;\x06FI" +
|
548
|
-
"\"\rcall_seq\x06;\x06FI\"\x0Fsome_block\x06;\x06F" +
|
549
|
-
"[\x06[\aI\"\faliased\x06;\x06Fo;\b\x06;\t[\x06" +
|
550
|
-
"o;\n\x06;\t[\x06I\"\x12alias comment\x06;\x06FI" +
|
551
|
-
"\"\nparam\x06;\x06F"
|
552
|
-
end
|
553
|
-
|
554
|
-
meth = @s.load_method('Object', '#method')
|
555
|
-
assert_equal 'Klass#method', meth.full_name
|
556
|
-
assert_equal @klass, meth.parent
|
557
|
-
assert_equal @s, meth.store
|
558
|
-
end
|
559
|
-
|
560
|
-
def test_load_page
|
561
|
-
@s.save_page @page
|
562
|
-
|
563
|
-
assert_equal @page, @s.load_page('README.txt')
|
564
|
-
end
|
565
|
-
|
566
|
-
def test_main
|
567
|
-
assert_equal nil, @s.main
|
568
|
-
|
569
|
-
@s.main = 'README.txt'
|
570
|
-
|
571
|
-
assert_equal 'README.txt', @s.main
|
572
|
-
end
|
573
|
-
|
574
|
-
def test_method_file
|
575
|
-
assert_equal File.join(@tmpdir, 'Object', 'method-i.ri'),
|
576
|
-
@s.method_file('Object', 'Object#method')
|
577
|
-
|
578
|
-
assert_equal File.join(@tmpdir, 'Object', 'method%21-i.ri'),
|
579
|
-
@s.method_file('Object', 'Object#method!')
|
580
|
-
|
581
|
-
assert_equal File.join(@tmpdir, 'Object', 'SubClass', 'method%21-i.ri'),
|
582
|
-
@s.method_file('Object::SubClass', 'Object::SubClass#method!')
|
583
|
-
|
584
|
-
assert_equal File.join(@tmpdir, 'Object', 'method-c.ri'),
|
585
|
-
@s.method_file('Object', 'Object::method')
|
586
|
-
end
|
587
|
-
|
588
|
-
def test_module_names
|
589
|
-
@s.save_class @klass
|
590
|
-
|
591
|
-
assert_equal %w[Object], @s.module_names
|
592
|
-
end
|
593
|
-
|
594
|
-
def test_page
|
595
|
-
page = @store.add_file 'PAGE.txt'
|
596
|
-
page.parser = RDoc::Parser::Simple
|
597
|
-
|
598
|
-
assert_nil @store.page 'no such page'
|
599
|
-
|
600
|
-
assert_equal page, @store.page('PAGE')
|
601
|
-
end
|
602
|
-
|
603
|
-
def test_save
|
604
|
-
FileUtils.mkdir_p @tmpdir
|
605
|
-
|
606
|
-
@s.save
|
607
|
-
|
608
|
-
assert_directory File.join(@tmpdir, 'Object')
|
609
|
-
|
610
|
-
assert_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
|
611
|
-
assert_file File.join(@tmpdir, 'Object', 'method-i.ri')
|
612
|
-
assert_file File.join(@tmpdir, 'page-README_txt.ri')
|
613
|
-
|
614
|
-
assert_file File.join(@tmpdir, 'cache.ri')
|
615
|
-
|
616
|
-
expected = {
|
617
|
-
:ancestors => {
|
618
|
-
'Object::SubClass' => %w[Incl Object],
|
619
|
-
},
|
620
|
-
:attributes => { 'Object' => ['attr_accessor attr'] },
|
621
|
-
:class_methods => { 'Object' => %w[cmethod] },
|
622
|
-
:c_class_variables => {},
|
623
|
-
:c_singleton_class_variables => {},
|
624
|
-
:instance_methods => {
|
625
|
-
'Object' => %w[attr method method! method_bang],
|
626
|
-
'Object::SubClass' => %w[method],
|
627
|
-
},
|
628
|
-
:main => nil,
|
629
|
-
:modules => %w[Mod Object Object::SubClass],
|
630
|
-
:encoding => nil,
|
631
|
-
:pages => %w[README.txt],
|
632
|
-
:title => nil,
|
633
|
-
}
|
634
|
-
|
635
|
-
expected[:ancestors]['Object'] = %w[BasicObject] if defined?(::BasicObject)
|
636
|
-
|
637
|
-
open File.join(@tmpdir, 'cache.ri'), 'rb' do |io|
|
638
|
-
cache = Marshal.load io.read
|
639
|
-
|
640
|
-
assert_equal expected, cache
|
641
|
-
end
|
642
|
-
end
|
643
|
-
|
644
|
-
def test_save_cache
|
645
|
-
@s.save_class @klass
|
646
|
-
@s.save_method @klass, @meth
|
647
|
-
@s.save_method @klass, @cmeth
|
648
|
-
@s.save_class @nest_klass
|
649
|
-
@s.save_page @page
|
650
|
-
@s.encoding = :encoding_value
|
651
|
-
@s.main = @page.full_name
|
652
|
-
@s.title = 'title'
|
653
|
-
|
654
|
-
options = RDoc::Options.new
|
655
|
-
|
656
|
-
c_file = @s.add_file 'ext.c'
|
657
|
-
|
658
|
-
some_ext = c_file.add_class RDoc::NormalClass, 'SomeExt'
|
659
|
-
c_file.add_class RDoc::SingleClass, 'SomeExtSingle'
|
660
|
-
|
661
|
-
c_parser = RDoc::Parser::C.new c_file, 'ext.c', '', options, nil
|
662
|
-
|
663
|
-
c_parser.classes['cSomeExt'] = some_ext
|
664
|
-
c_parser.singleton_classes['s_cSomeExt'] = 'SomeExtSingle'
|
665
|
-
|
666
|
-
@s.add_c_variables c_parser
|
667
|
-
|
668
|
-
@s.save_cache
|
669
|
-
|
670
|
-
assert_file File.join(@tmpdir, 'cache.ri')
|
671
|
-
|
672
|
-
c_class_variables = {
|
673
|
-
'ext.c' => {
|
674
|
-
'cSomeExt' => 'SomeExt'
|
675
|
-
}
|
676
|
-
}
|
677
|
-
|
678
|
-
c_singleton_class_variables = {
|
679
|
-
'ext.c' => {
|
680
|
-
's_cSomeExt' => 'SomeExtSingle'
|
681
|
-
}
|
682
|
-
}
|
683
|
-
|
684
|
-
expected = {
|
685
|
-
:ancestors => {
|
686
|
-
'Object::SubClass' => %w[Incl Object],
|
687
|
-
},
|
688
|
-
:attributes => { 'Object' => ['attr_accessor attr'] },
|
689
|
-
:class_methods => { 'Object' => %w[cmethod] },
|
690
|
-
:c_class_variables => c_class_variables,
|
691
|
-
:c_singleton_class_variables => c_singleton_class_variables,
|
692
|
-
:instance_methods => {
|
693
|
-
'Object' => %w[method method! method_bang],
|
694
|
-
'Object::SubClass' => %w[method],
|
695
|
-
},
|
696
|
-
:main => @page.full_name,
|
697
|
-
:modules => %w[Object Object::SubClass],
|
698
|
-
:encoding => :encoding_value,
|
699
|
-
:pages => %w[README.txt],
|
700
|
-
:title => 'title',
|
701
|
-
}
|
702
|
-
|
703
|
-
expected[:ancestors]['Object'] = %w[BasicObject] if defined?(::BasicObject)
|
704
|
-
|
705
|
-
open File.join(@tmpdir, 'cache.ri'), 'rb' do |io|
|
706
|
-
cache = Marshal.load io.read
|
707
|
-
|
708
|
-
assert_equal expected, cache
|
709
|
-
end
|
710
|
-
end
|
711
|
-
|
712
|
-
def test_save_cache_dry_run
|
713
|
-
@s.dry_run = true
|
714
|
-
|
715
|
-
@s.save_class @klass
|
716
|
-
@s.save_method @klass, @meth
|
717
|
-
@s.save_method @klass, @cmeth
|
718
|
-
@s.save_class @nest_klass
|
719
|
-
|
720
|
-
@s.save_cache
|
721
|
-
|
722
|
-
refute_file File.join(@tmpdir, 'cache.ri')
|
723
|
-
end
|
724
|
-
|
725
|
-
def test_save_cache_duplicate_methods
|
726
|
-
@s.save_method @klass, @meth
|
727
|
-
@s.save_method @klass, @meth
|
728
|
-
|
729
|
-
@s.save_cache
|
730
|
-
|
731
|
-
assert_cache({ 'Object' => %w[method] }, {}, {}, [])
|
732
|
-
end
|
733
|
-
|
734
|
-
def test_save_cache_duplicate_pages
|
735
|
-
@s.save_page @page
|
736
|
-
@s.save_page @page
|
737
|
-
|
738
|
-
@s.save_cache
|
739
|
-
|
740
|
-
assert_cache({}, {}, {}, [], {}, %w[README.txt])
|
741
|
-
end
|
742
|
-
|
743
|
-
def test_save_class
|
744
|
-
@s.save_class @klass
|
745
|
-
|
746
|
-
assert_directory File.join(@tmpdir, 'Object')
|
747
|
-
assert_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
|
748
|
-
|
749
|
-
assert_cache nil, nil, nil, %w[Object], 'Object' => OBJECT_ANCESTORS
|
750
|
-
|
751
|
-
assert_equal @klass, @s.load_class('Object')
|
752
|
-
end
|
753
|
-
|
754
|
-
def test_save_class_basic_object
|
755
|
-
@klass.instance_variable_set :@superclass, nil
|
756
|
-
|
757
|
-
@s.save_class @klass
|
758
|
-
|
759
|
-
assert_directory File.join(@tmpdir, 'Object')
|
760
|
-
assert_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
|
761
|
-
|
762
|
-
assert_cache(nil, nil, nil, %w[Object])
|
763
|
-
|
764
|
-
assert_equal @klass, @s.load_class('Object')
|
765
|
-
end
|
766
|
-
|
767
|
-
def test_save_class_delete
|
768
|
-
# save original
|
769
|
-
@s.save_class @klass
|
770
|
-
@s.save_method @klass, @meth
|
771
|
-
@s.save_method @klass, @meth_bang
|
772
|
-
@s.save_method @klass, @cmeth
|
773
|
-
@s.save_method @klass, @attr
|
774
|
-
@s.save_cache
|
775
|
-
|
776
|
-
klass = RDoc::NormalClass.new 'Object'
|
777
|
-
|
778
|
-
meth = klass.add_method RDoc::AnyMethod.new(nil, 'replace')
|
779
|
-
meth.record_location @top_level
|
780
|
-
|
781
|
-
# load original, save newly updated class
|
782
|
-
@s = RDoc::RI::Store.new @tmpdir
|
783
|
-
@s.load_cache
|
784
|
-
@s.save_class klass
|
785
|
-
@s.save_cache
|
786
|
-
|
787
|
-
# load from disk again
|
788
|
-
@s = RDoc::RI::Store.new @tmpdir
|
789
|
-
@s.load_cache
|
790
|
-
|
791
|
-
@s.load_class 'Object'
|
792
|
-
|
793
|
-
assert_cache({ 'Object' => %w[replace] }, {},
|
794
|
-
{ 'Object' => %w[attr_accessor\ attr] }, %w[Object],
|
795
|
-
'Object' => OBJECT_ANCESTORS)
|
796
|
-
|
797
|
-
# assert these files were deleted
|
798
|
-
refute_file @s.method_file(@klass.full_name, @meth.full_name)
|
799
|
-
refute_file @s.method_file(@klass.full_name, @meth_bang.full_name)
|
800
|
-
refute_file @s.method_file(@klass.full_name, @cmeth.full_name)
|
801
|
-
|
802
|
-
# assert these files were not deleted
|
803
|
-
assert_file @s.method_file(@klass.full_name, @attr.full_name)
|
804
|
-
end
|
805
|
-
|
806
|
-
def test_save_class_dry_run
|
807
|
-
@s.dry_run = true
|
808
|
-
|
809
|
-
@s.save_class @klass
|
810
|
-
|
811
|
-
refute_file File.join(@tmpdir, 'Object')
|
812
|
-
refute_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
|
813
|
-
end
|
814
|
-
|
815
|
-
def test_save_class_loaded
|
816
|
-
@s.save
|
817
|
-
|
818
|
-
assert_directory File.join(@tmpdir, 'Object')
|
819
|
-
assert_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
|
820
|
-
|
821
|
-
assert_file @s.method_file(@klass.full_name, @attr.full_name)
|
822
|
-
assert_file @s.method_file(@klass.full_name, @cmeth.full_name)
|
823
|
-
assert_file @s.method_file(@klass.full_name, @meth.full_name)
|
824
|
-
assert_file @s.method_file(@klass.full_name, @meth_bang.full_name)
|
825
|
-
|
826
|
-
s = RDoc::Store.new @s.path
|
827
|
-
s.load_cache
|
828
|
-
|
829
|
-
loaded = s.load_class 'Object'
|
830
|
-
|
831
|
-
assert_equal @klass, loaded
|
832
|
-
|
833
|
-
s.save_class loaded
|
834
|
-
|
835
|
-
s = RDoc::Store.new @s.path
|
836
|
-
s.load_cache
|
837
|
-
|
838
|
-
reloaded = s.load_class 'Object'
|
839
|
-
|
840
|
-
assert_equal @klass, reloaded
|
841
|
-
|
842
|
-
# assert these files were not deleted. Bug #171
|
843
|
-
assert_file s.method_file(@klass.full_name, @attr.full_name)
|
844
|
-
assert_file s.method_file(@klass.full_name, @cmeth.full_name)
|
845
|
-
assert_file s.method_file(@klass.full_name, @meth.full_name)
|
846
|
-
assert_file s.method_file(@klass.full_name, @meth_bang.full_name)
|
847
|
-
end
|
848
|
-
|
849
|
-
def test_save_class_merge
|
850
|
-
@s.save_class @klass
|
851
|
-
|
852
|
-
klass = RDoc::NormalClass.new 'Object'
|
853
|
-
klass.add_comment 'new comment', @top_level
|
854
|
-
|
855
|
-
s = RDoc::RI::Store.new @tmpdir
|
856
|
-
s.save_class klass
|
857
|
-
|
858
|
-
s = RDoc::RI::Store.new @tmpdir
|
859
|
-
|
860
|
-
inner = @RM::Document.new @RM::Paragraph.new 'new comment'
|
861
|
-
inner.file = @top_level
|
862
|
-
|
863
|
-
document = @RM::Document.new inner
|
864
|
-
|
865
|
-
assert_equal document, s.load_class('Object').comment_location
|
866
|
-
end
|
867
|
-
|
868
|
-
# This is a functional test
|
869
|
-
def test_save_class_merge_constant
|
870
|
-
store = RDoc::Store.new
|
871
|
-
tl = store.add_file 'file.rb'
|
872
|
-
|
873
|
-
klass = tl.add_class RDoc::NormalClass, 'C'
|
874
|
-
klass.add_comment 'comment', tl
|
875
|
-
|
876
|
-
const = klass.add_constant RDoc::Constant.new('CONST', nil, nil)
|
877
|
-
const.record_location tl
|
878
|
-
|
879
|
-
@s.save_class klass
|
880
|
-
|
881
|
-
# separate parse run, independent store
|
882
|
-
store = RDoc::Store.new
|
883
|
-
tl = store.add_file 'file.rb'
|
884
|
-
klass2 = tl.add_class RDoc::NormalClass, 'C'
|
885
|
-
klass2.record_location tl
|
886
|
-
|
887
|
-
s = RDoc::RI::Store.new @tmpdir
|
888
|
-
s.save_class klass2
|
889
|
-
|
890
|
-
# separate `ri` run, independent store
|
891
|
-
s = RDoc::RI::Store.new @tmpdir
|
892
|
-
|
893
|
-
result = s.load_class 'C'
|
894
|
-
|
895
|
-
assert_empty result.constants
|
896
|
-
end
|
897
|
-
|
898
|
-
def test_save_class_methods
|
899
|
-
@s.save_class @klass
|
900
|
-
|
901
|
-
assert_directory File.join(@tmpdir, 'Object')
|
902
|
-
assert_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
|
903
|
-
|
904
|
-
assert_cache nil, nil, nil, %w[Object], 'Object' => OBJECT_ANCESTORS
|
905
|
-
|
906
|
-
assert_equal @klass, @s.load_class('Object')
|
907
|
-
end
|
908
|
-
|
909
|
-
def test_save_class_nested
|
910
|
-
@s.save_class @nest_klass
|
911
|
-
|
912
|
-
assert_directory File.join(@tmpdir, 'Object', 'SubClass')
|
913
|
-
assert_file File.join(@tmpdir, 'Object', 'SubClass', 'cdesc-SubClass.ri')
|
914
|
-
|
915
|
-
assert_cache({ 'Object::SubClass' => %w[method] }, {}, {},
|
916
|
-
%w[Object::SubClass], 'Object::SubClass' => %w[Incl Object])
|
917
|
-
end
|
918
|
-
|
919
|
-
def test_save_method
|
920
|
-
@s.save_method @klass, @meth
|
921
|
-
|
922
|
-
assert_directory File.join(@tmpdir, 'Object')
|
923
|
-
assert_file File.join(@tmpdir, 'Object', 'method-i.ri')
|
924
|
-
|
925
|
-
assert_cache({ 'Object' => %w[method] }, {}, {}, [])
|
926
|
-
|
927
|
-
assert_equal @meth, @s.load_method('Object', '#method')
|
928
|
-
end
|
929
|
-
|
930
|
-
def test_save_method_dry_run
|
931
|
-
@s.dry_run = true
|
932
|
-
|
933
|
-
@s.save_method @klass, @meth
|
934
|
-
|
935
|
-
refute_file File.join(@tmpdir, 'Object')
|
936
|
-
refute_file File.join(@tmpdir, 'Object', 'method-i.ri')
|
937
|
-
end
|
938
|
-
|
939
|
-
def test_save_method_nested
|
940
|
-
@s.save_method @nest_klass, @nest_meth
|
941
|
-
|
942
|
-
assert_directory File.join(@tmpdir, 'Object', 'SubClass')
|
943
|
-
assert_file File.join(@tmpdir, 'Object', 'SubClass', 'method-i.ri')
|
944
|
-
|
945
|
-
assert_cache({ 'Object::SubClass' => %w[method] }, {}, {}, [])
|
946
|
-
end
|
947
|
-
|
948
|
-
def test_save_page
|
949
|
-
@s.save_page @page
|
950
|
-
|
951
|
-
assert_file File.join(@tmpdir, 'page-README_txt.ri')
|
952
|
-
|
953
|
-
assert_cache({}, {}, {}, [], {}, %w[README.txt])
|
954
|
-
end
|
955
|
-
|
956
|
-
def test_save_page_file
|
957
|
-
@s.save_page @top_level
|
958
|
-
|
959
|
-
refute_file File.join(@tmpdir, 'page-file_rb.ri')
|
960
|
-
end
|
961
|
-
|
962
|
-
def test_source
|
963
|
-
@s.path = @tmpdir
|
964
|
-
@s.type = nil
|
965
|
-
assert_equal @s.path, @s.source
|
966
|
-
|
967
|
-
@s.type = :extra
|
968
|
-
assert_equal @s.path, @s.source
|
969
|
-
|
970
|
-
@s.type = :system
|
971
|
-
assert_equal "ruby", @s.source
|
972
|
-
|
973
|
-
@s.type = :site
|
974
|
-
assert_equal "site", @s.source
|
975
|
-
|
976
|
-
@s.type = :home
|
977
|
-
assert_equal "home", @s.source
|
978
|
-
|
979
|
-
@s.type = :gem
|
980
|
-
@s.path = "#{@tmpdir}/gem_repository/doc/gem_name-1.0/ri"
|
981
|
-
assert_equal "gem_name-1.0", @s.source
|
982
|
-
end
|
983
|
-
|
984
|
-
def test_title
|
985
|
-
assert_equal nil, @s.title
|
986
|
-
|
987
|
-
@s.title = 'rdoc'
|
988
|
-
|
989
|
-
assert_equal 'rdoc', @s.title
|
990
|
-
end
|
991
|
-
|
992
|
-
end
|
993
|
-
|