rdoc 2.5.11 → 3.0
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.
- data.tar.gz.sig +0 -0
- data/.document +1 -0
- data/History.txt +95 -0
- data/Manifest.txt +13 -4
- data/README.txt +9 -3
- data/Rakefile +1 -1
- data/lib/rdoc.rb +15 -298
- data/lib/rdoc/alias.rb +65 -16
- data/lib/rdoc/any_method.rb +27 -150
- data/lib/rdoc/attr.rb +36 -115
- data/lib/rdoc/class_module.rb +236 -22
- data/lib/rdoc/code_object.rb +76 -31
- data/lib/rdoc/constant.rb +32 -4
- data/lib/rdoc/context.rb +494 -222
- data/lib/rdoc/encoding.rb +79 -0
- data/lib/rdoc/erbio.rb +37 -0
- data/lib/rdoc/gauntlet.rb +9 -5
- data/lib/rdoc/generator.rb +33 -1
- data/lib/rdoc/generator/darkfish.rb +284 -375
- data/lib/rdoc/generator/markup.rb +72 -36
- data/lib/rdoc/generator/ri.rb +4 -4
- data/lib/rdoc/generator/template/darkfish/classpage.rhtml +267 -274
- data/lib/rdoc/generator/template/darkfish/filepage.rhtml +91 -91
- data/lib/rdoc/generator/template/darkfish/index.rhtml +45 -45
- data/lib/rdoc/generator/template/darkfish/rdoc.css +298 -298
- data/lib/rdoc/include.rb +40 -1
- data/lib/rdoc/known_classes.rb +1 -0
- data/lib/rdoc/markup.rb +467 -2
- data/lib/rdoc/markup/attribute_manager.rb +24 -6
- data/lib/rdoc/markup/blank_line.rb +11 -3
- data/lib/rdoc/markup/document.rb +6 -0
- data/lib/rdoc/markup/formatter.rb +10 -0
- data/lib/rdoc/markup/formatter_test_case.rb +339 -3
- data/lib/rdoc/markup/heading.rb +3 -0
- data/lib/rdoc/markup/inline.rb +11 -1
- data/lib/rdoc/markup/list.rb +3 -0
- data/lib/rdoc/markup/list_item.rb +3 -0
- data/lib/rdoc/markup/paragraph.rb +3 -0
- data/lib/rdoc/markup/parser.rb +191 -237
- data/lib/rdoc/markup/{preprocess.rb → pre_process.rb} +50 -29
- data/lib/rdoc/markup/raw.rb +4 -0
- data/lib/rdoc/markup/rule.rb +3 -0
- data/lib/rdoc/markup/text_formatter_test_case.rb +116 -0
- data/lib/rdoc/markup/to_ansi.rb +14 -2
- data/lib/rdoc/markup/to_bs.rb +8 -2
- data/lib/rdoc/markup/to_html.rb +84 -91
- data/lib/rdoc/markup/to_html_crossref.rb +77 -26
- data/lib/rdoc/markup/to_rdoc.rb +94 -49
- data/lib/rdoc/markup/to_test.rb +9 -1
- data/lib/rdoc/markup/verbatim.rb +6 -3
- data/lib/rdoc/method_attr.rb +353 -0
- data/lib/rdoc/normal_class.rb +11 -2
- data/lib/rdoc/normal_module.rb +0 -5
- data/lib/rdoc/options.rb +373 -82
- data/lib/rdoc/parser.rb +59 -23
- data/lib/rdoc/parser/c.rb +224 -86
- data/lib/rdoc/parser/ruby.rb +219 -111
- data/lib/rdoc/parser/ruby_tools.rb +4 -1
- data/lib/rdoc/parser/simple.rb +9 -4
- data/lib/rdoc/rdoc.rb +68 -28
- data/lib/rdoc/require.rb +21 -0
- data/lib/rdoc/ri/driver.rb +20 -10
- data/lib/rdoc/ri/paths.rb +2 -2
- data/lib/rdoc/ri/store.rb +22 -5
- data/lib/rdoc/ruby_lex.rb +11 -12
- data/lib/rdoc/ruby_token.rb +2 -2
- data/lib/rdoc/single_class.rb +2 -1
- data/lib/rdoc/stats.rb +202 -162
- data/lib/rdoc/stats/normal.rb +51 -0
- data/lib/rdoc/stats/quiet.rb +59 -0
- data/lib/rdoc/stats/verbose.rb +45 -0
- data/lib/rdoc/text.rb +133 -4
- data/lib/rdoc/{tokenstream.rb → token_stream.rb} +0 -2
- data/lib/rdoc/top_level.rb +230 -39
- data/test/test_attribute_manager.rb +58 -7
- data/test/test_rdoc_alias.rb +13 -0
- data/test/test_rdoc_any_method.rb +43 -2
- data/test/test_rdoc_attr.rb +15 -8
- data/test/test_rdoc_class_module.rb +133 -0
- data/test/test_rdoc_code_object.rb +62 -5
- data/test/test_rdoc_context.rb +72 -26
- data/test/test_rdoc_encoding.rb +145 -0
- data/test/test_rdoc_generator_darkfish.rb +119 -0
- data/test/test_rdoc_generator_ri.rb +22 -2
- data/test/test_rdoc_include.rb +79 -0
- data/test/test_rdoc_markup_attribute_manager.rb +4 -4
- data/test/test_rdoc_markup_parser.rb +134 -95
- data/test/test_rdoc_markup_pre_process.rb +7 -2
- data/test/test_rdoc_markup_to_ansi.rb +43 -153
- data/test/test_rdoc_markup_to_bs.rb +42 -156
- data/test/test_rdoc_markup_to_html.rb +130 -58
- data/test/test_rdoc_markup_to_html_crossref.rb +10 -10
- data/test/test_rdoc_markup_to_rdoc.rb +40 -151
- data/test/test_rdoc_method_attr.rb +122 -0
- data/test/test_rdoc_normal_class.rb +1 -1
- data/test/test_rdoc_normal_module.rb +6 -1
- data/test/test_rdoc_options.rb +237 -12
- data/test/test_rdoc_parser.rb +3 -22
- data/test/test_rdoc_parser_c.rb +203 -2
- data/test/test_rdoc_parser_ruby.rb +403 -89
- data/test/test_rdoc_parser_simple.rb +25 -1
- data/test/test_rdoc_rdoc.rb +44 -32
- data/test/test_rdoc_ri_driver.rb +29 -24
- data/test/test_rdoc_ri_store.rb +46 -3
- data/test/test_rdoc_task.rb +1 -1
- data/test/test_rdoc_text.rb +102 -8
- data/test/test_rdoc_top_level.rb +13 -4
- data/test/xref_data.rb +8 -0
- data/test/xref_test_case.rb +6 -0
- metadata +29 -19
- metadata.gz.sig +0 -0
- data/lib/rdoc/parser/perl.rb +0 -165
- data/test/test_rdoc_parser_perl.rb +0 -73
data/test/test_rdoc_context.rb
CHANGED
@@ -34,13 +34,38 @@ class TestRDocContext < XrefTestCase
|
|
34
34
|
|
35
35
|
@context.add_alias as
|
36
36
|
|
37
|
-
assert_equal [as], @context.
|
38
|
-
assert_equal [as], @context.unmatched_alias_lists['old_name']
|
37
|
+
assert_equal [as], @context.external_aliases
|
38
|
+
assert_equal [as], @context.unmatched_alias_lists['#old_name']
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_add_alias_method_attr
|
42
|
+
top_level = RDoc::TopLevel.new 'file.rb'
|
43
|
+
|
44
|
+
attr = RDoc::Attr.new nil, 'old_name', 'R', ''
|
45
|
+
|
46
|
+
as = RDoc::Alias.new nil, 'old_name', 'new_name', 'comment'
|
47
|
+
as.record_location top_level
|
48
|
+
as.parent = @context
|
49
|
+
|
50
|
+
@context.add_attribute attr
|
51
|
+
@context.add_alias as
|
52
|
+
|
53
|
+
assert_empty @context.aliases
|
54
|
+
assert_empty @context.unmatched_alias_lists
|
55
|
+
assert_equal %w[old_name new_name], @context.attributes.map { |m| m.name }
|
56
|
+
|
57
|
+
new = @context.attributes.last
|
58
|
+
assert_equal top_level, new.file
|
39
59
|
end
|
40
60
|
|
41
61
|
def test_add_alias_method
|
62
|
+
top_level = RDoc::TopLevel.new 'file.rb'
|
63
|
+
|
42
64
|
meth = RDoc::AnyMethod.new nil, 'old_name'
|
65
|
+
meth.singleton = false
|
66
|
+
|
43
67
|
as = RDoc::Alias.new nil, 'old_name', 'new_name', 'comment'
|
68
|
+
as.record_location top_level
|
44
69
|
as.parent = @context
|
45
70
|
|
46
71
|
@context.add_method meth
|
@@ -49,6 +74,9 @@ class TestRDocContext < XrefTestCase
|
|
49
74
|
assert_empty @context.aliases
|
50
75
|
assert_empty @context.unmatched_alias_lists
|
51
76
|
assert_equal %w[old_name new_name], @context.method_list.map { |m| m.name }
|
77
|
+
|
78
|
+
new = @context.method_list.last
|
79
|
+
assert_equal top_level, new.file
|
52
80
|
end
|
53
81
|
|
54
82
|
def test_add_alias_method_singleton
|
@@ -70,28 +98,6 @@ class TestRDocContext < XrefTestCase
|
|
70
98
|
assert @context.method_list.last.singleton
|
71
99
|
end
|
72
100
|
|
73
|
-
def test_add_alias_impl
|
74
|
-
meth = RDoc::AnyMethod.new nil, 'old_name'
|
75
|
-
meth.comment = 'old comment'
|
76
|
-
meth.singleton = false
|
77
|
-
meth.visibility = :private
|
78
|
-
|
79
|
-
alas = RDoc::Alias.new nil, 'old_name', 'new_name', 'new comment'
|
80
|
-
|
81
|
-
@context.add_alias_impl alas, meth
|
82
|
-
|
83
|
-
assert_equal 1, @context.method_list.length
|
84
|
-
|
85
|
-
alas_meth = @context.method_list.first
|
86
|
-
assert_equal 'new_name', alas_meth.name
|
87
|
-
assert_equal 'new comment', alas_meth.comment
|
88
|
-
assert_equal false, alas_meth.singleton
|
89
|
-
assert_equal meth, alas_meth.is_alias_for
|
90
|
-
assert_equal :private, alas_meth.visibility
|
91
|
-
|
92
|
-
assert_equal [alas_meth], meth.aliases
|
93
|
-
end
|
94
|
-
|
95
101
|
def test_add_class
|
96
102
|
@c1.add_class RDoc::NormalClass, 'Klass', 'Object'
|
97
103
|
|
@@ -152,11 +158,11 @@ class TestRDocContext < XrefTestCase
|
|
152
158
|
meth = RDoc::AnyMethod.new nil, 'old_name'
|
153
159
|
|
154
160
|
@context.add_alias as
|
155
|
-
refute_empty @context.
|
161
|
+
refute_empty @context.external_aliases
|
156
162
|
|
157
163
|
@context.add_method meth
|
158
164
|
|
159
|
-
assert_empty @context.
|
165
|
+
assert_empty @context.external_aliases
|
160
166
|
assert_empty @context.unmatched_alias_lists
|
161
167
|
assert_equal %w[old_name new_name], @context.method_list.map { |m| m.name }
|
162
168
|
end
|
@@ -311,6 +317,46 @@ class TestRDocContext < XrefTestCase
|
|
311
317
|
assert_equal @c1__m, @c1.find_symbol('::m')
|
312
318
|
end
|
313
319
|
|
320
|
+
def test_fully_documented_eh
|
321
|
+
context = RDoc::Context.new
|
322
|
+
|
323
|
+
refute context.fully_documented?
|
324
|
+
|
325
|
+
context.comment = 'hi'
|
326
|
+
|
327
|
+
assert context.fully_documented?
|
328
|
+
|
329
|
+
m = @c1_m
|
330
|
+
|
331
|
+
context.add_method m
|
332
|
+
|
333
|
+
refute context.fully_documented?
|
334
|
+
|
335
|
+
m.comment = 'hi'
|
336
|
+
|
337
|
+
assert context.fully_documented?
|
338
|
+
|
339
|
+
c = RDoc::Constant.new 'C', '0', nil
|
340
|
+
|
341
|
+
context.add_constant c
|
342
|
+
|
343
|
+
refute context.fully_documented?
|
344
|
+
|
345
|
+
c.comment = 'hi'
|
346
|
+
|
347
|
+
assert context.fully_documented?
|
348
|
+
|
349
|
+
a = RDoc::Attr.new '', 'a', 'RW', nil
|
350
|
+
|
351
|
+
context.add_attribute a
|
352
|
+
|
353
|
+
refute context.fully_documented?
|
354
|
+
|
355
|
+
a.comment = 'hi'
|
356
|
+
|
357
|
+
assert context.fully_documented?
|
358
|
+
end
|
359
|
+
|
314
360
|
def test_spaceship
|
315
361
|
assert_equal(-1, @c2.<=>(@c3))
|
316
362
|
assert_equal 0, @c2.<=>(@c2)
|
@@ -0,0 +1,145 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'rdoc'
|
4
|
+
require 'rdoc/encoding'
|
5
|
+
|
6
|
+
require 'tempfile'
|
7
|
+
|
8
|
+
class TestRDocEncoding < MiniTest::Unit::TestCase
|
9
|
+
|
10
|
+
def setup
|
11
|
+
@tempfile = Tempfile.new 'test_rdoc_encoding'
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_class_read_file
|
15
|
+
@tempfile.write "hi everybody"
|
16
|
+
@tempfile.flush
|
17
|
+
|
18
|
+
assert_equal "hi everybody", RDoc::Encoding.read_file(@tempfile.path, nil)
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_class_read_file_encoding
|
22
|
+
skip "Encoding not implemented" unless Object.const_defined? :Encoding
|
23
|
+
|
24
|
+
expected = "# coding: utf-8\nhi everybody"
|
25
|
+
|
26
|
+
@tempfile.write expected
|
27
|
+
@tempfile.flush
|
28
|
+
|
29
|
+
# FIXME 1.9 fix on windoze
|
30
|
+
expected.gsub!("\n", "\r\n") if RUBY_VERSION =~ /^1.9/ && RUBY_PLATFORM =~ /mswin|mingw/
|
31
|
+
|
32
|
+
contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8
|
33
|
+
assert_equal expected, contents
|
34
|
+
assert_equal Encoding::UTF_8, contents.encoding
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_class_read_file_encoding_convert
|
38
|
+
skip "Encoding not implemented" unless Object.const_defined? :Encoding
|
39
|
+
|
40
|
+
content = ""
|
41
|
+
content.encode! 'ISO-8859-1'
|
42
|
+
content << "# coding: ISO-8859-1\nhi \xE9verybody"
|
43
|
+
|
44
|
+
@tempfile.write content
|
45
|
+
@tempfile.flush
|
46
|
+
|
47
|
+
contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8
|
48
|
+
assert_equal Encoding::UTF_8, contents.encoding
|
49
|
+
assert_equal "# coding: ISO-8859-1\nhi \u00e9verybody", contents.sub("\r", '')
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_class_read_file_encoding_fancy
|
53
|
+
skip "Encoding not implemented" unless Object.const_defined? :Encoding
|
54
|
+
|
55
|
+
expected = "# -*- coding: utf-8; fill-column: 74 -*-\nhi everybody"
|
56
|
+
expected.encode! Encoding::UTF_8
|
57
|
+
|
58
|
+
@tempfile.write expected
|
59
|
+
@tempfile.flush
|
60
|
+
|
61
|
+
# FIXME 1.9 fix on windoze
|
62
|
+
expected.gsub!("\n", "\r\n") if RUBY_VERSION =~ /^1.9/ && RUBY_PLATFORM =~ /win32|mingw32/
|
63
|
+
|
64
|
+
contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8
|
65
|
+
assert_equal expected, contents
|
66
|
+
assert_equal Encoding::UTF_8, contents.encoding
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_class_read_file_encoding_guess
|
70
|
+
skip "Encoding not implemented" unless Object.const_defined? :Encoding
|
71
|
+
|
72
|
+
path = File.expand_path '../test.ja.txt', __FILE__
|
73
|
+
content = RDoc::Encoding.read_file path, Encoding::UTF_8
|
74
|
+
|
75
|
+
assert_equal Encoding::UTF_8, content.encoding
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_class_read_file_encoding_with_signature
|
79
|
+
skip "Encoding not implemented" unless defined? ::Encoding
|
80
|
+
|
81
|
+
@tempfile.write "\xEF\xBB\xBFhi everybody"
|
82
|
+
@tempfile.flush
|
83
|
+
|
84
|
+
bug3360 = '[ruby-dev:41452]'
|
85
|
+
content = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8
|
86
|
+
assert_equal Encoding::UTF_8, content.encoding, bug3360
|
87
|
+
assert_equal "hi everybody", content, bug3360
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_class_set_encoding
|
91
|
+
s = "# coding: UTF-8\n"
|
92
|
+
RDoc::Encoding.set_encoding s
|
93
|
+
|
94
|
+
# sanity check for 1.8
|
95
|
+
|
96
|
+
skip "Encoding not implemented" unless Object.const_defined? :Encoding
|
97
|
+
|
98
|
+
assert_equal Encoding::UTF_8, s.encoding
|
99
|
+
|
100
|
+
s = "#!/bin/ruby\n# coding: UTF-8\n"
|
101
|
+
RDoc::Encoding.set_encoding s
|
102
|
+
|
103
|
+
assert_equal Encoding::UTF_8, s.encoding
|
104
|
+
|
105
|
+
s = "<?xml version='1.0' encoding='UTF-8'?>\n"
|
106
|
+
expected = s.encoding
|
107
|
+
RDoc::Encoding.set_encoding s
|
108
|
+
|
109
|
+
assert_equal Encoding::UTF_8, s.encoding
|
110
|
+
|
111
|
+
s = "<?xml version='1.0' encoding=\"UTF-8\"?>\n"
|
112
|
+
expected = s.encoding
|
113
|
+
RDoc::Encoding.set_encoding s
|
114
|
+
|
115
|
+
assert_equal Encoding::UTF_8, s.encoding
|
116
|
+
end
|
117
|
+
|
118
|
+
def test_class_set_encoding_bad
|
119
|
+
skip "Encoding not implemented" unless Object.const_defined? :Encoding
|
120
|
+
|
121
|
+
s = ""
|
122
|
+
expected = s.encoding
|
123
|
+
RDoc::Encoding.set_encoding s
|
124
|
+
|
125
|
+
assert_equal expected, s.encoding
|
126
|
+
|
127
|
+
s = "# vim:set fileencoding=utf-8:\n"
|
128
|
+
expected = s.encoding
|
129
|
+
RDoc::Encoding.set_encoding s
|
130
|
+
|
131
|
+
assert_equal expected, s.encoding
|
132
|
+
|
133
|
+
s = "# vim:set fileencoding=utf-8:\n"
|
134
|
+
expected = s.encoding
|
135
|
+
RDoc::Encoding.set_encoding s
|
136
|
+
|
137
|
+
assert_equal expected, s.encoding
|
138
|
+
|
139
|
+
assert_raises ArgumentError do
|
140
|
+
RDoc::Encoding.set_encoding "# -*- encoding: undecided -*-\n"
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
end
|
145
|
+
|
@@ -0,0 +1,119 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'rdoc/rdoc'
|
3
|
+
require 'rdoc/generator/darkfish'
|
4
|
+
require 'tmpdir'
|
5
|
+
require 'fileutils'
|
6
|
+
|
7
|
+
class TestRDocGeneratorDarkfish < MiniTest::Unit::TestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@pwd = Dir.pwd
|
11
|
+
@lib_dir = "#{@pwd}/lib"
|
12
|
+
$LOAD_PATH.unshift @lib_dir # ensure we load from this RDoc
|
13
|
+
RDoc::TopLevel.reset
|
14
|
+
|
15
|
+
@options = RDoc::Options.new
|
16
|
+
@options.option_parser = OptionParser.new
|
17
|
+
|
18
|
+
@tmpdir = File.join Dir.tmpdir, "test_rdoc_generator_darkfish_#{$$}"
|
19
|
+
FileUtils.mkdir_p @tmpdir
|
20
|
+
Dir.chdir @tmpdir
|
21
|
+
@options.op_dir = @tmpdir
|
22
|
+
@options.generator = RDoc::Generator::Darkfish
|
23
|
+
|
24
|
+
$LOAD_PATH.each do |path|
|
25
|
+
darkfish_dir = File.join path, 'rdoc/generator/template/darkfish'
|
26
|
+
next unless File.directory? darkfish_dir
|
27
|
+
@options.template_dir = darkfish_dir
|
28
|
+
break
|
29
|
+
end
|
30
|
+
|
31
|
+
rd = RDoc::RDoc.new
|
32
|
+
rd.options = @options
|
33
|
+
RDoc::RDoc.current = rd
|
34
|
+
|
35
|
+
@g = @options.generator.new @options
|
36
|
+
|
37
|
+
rd.generator = @g
|
38
|
+
|
39
|
+
@top_level = RDoc::TopLevel.new 'file.rb'
|
40
|
+
@klass = @top_level.add_class RDoc::NormalClass, 'Object'
|
41
|
+
@meth = RDoc::AnyMethod.new nil, 'method'
|
42
|
+
@meth_bang = RDoc::AnyMethod.new nil, 'method!'
|
43
|
+
@attr = RDoc::Attr.new nil, 'attr', 'RW', ''
|
44
|
+
|
45
|
+
@klass.add_method @meth
|
46
|
+
@klass.add_method @meth_bang
|
47
|
+
@klass.add_attribute @attr
|
48
|
+
end
|
49
|
+
|
50
|
+
def teardown
|
51
|
+
$LOAD_PATH.shift
|
52
|
+
Dir.chdir @pwd
|
53
|
+
FileUtils.rm_rf @tmpdir
|
54
|
+
end
|
55
|
+
|
56
|
+
def assert_file path
|
57
|
+
assert File.file?(path), "#{path} is not a file"
|
58
|
+
end
|
59
|
+
|
60
|
+
def refute_file path
|
61
|
+
refute File.exist?(path), "#{path} exists"
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_generate
|
65
|
+
top_level = RDoc::TopLevel.new 'file.rb'
|
66
|
+
top_level.add_class @klass.class, @klass.name
|
67
|
+
|
68
|
+
@g.generate [top_level]
|
69
|
+
|
70
|
+
assert_file 'index.html'
|
71
|
+
assert_file 'Object.html'
|
72
|
+
assert_file 'file_rb.html'
|
73
|
+
|
74
|
+
encoding = if Object.const_defined? :Encoding then
|
75
|
+
Regexp.escape Encoding.default_external.name
|
76
|
+
else
|
77
|
+
Regexp.escape 'UTF-8'
|
78
|
+
end
|
79
|
+
|
80
|
+
assert_match(/<meta content="text\/html; charset=#{encoding}"/,
|
81
|
+
File.read('index.html'))
|
82
|
+
assert_match(/<meta content="text\/html; charset=#{encoding}"/,
|
83
|
+
File.read('Object.html'))
|
84
|
+
assert_match(/<meta content="text\/html; charset=#{encoding}"/,
|
85
|
+
File.read('file_rb.html'))
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_generate_dry_run
|
89
|
+
@options.dry_run = true
|
90
|
+
top_level = RDoc::TopLevel.new 'file.rb'
|
91
|
+
top_level.add_class @klass.class, @klass.name
|
92
|
+
|
93
|
+
@g.generate [top_level]
|
94
|
+
|
95
|
+
refute_file 'index.html'
|
96
|
+
refute_file 'Object.html'
|
97
|
+
refute_file 'file_rb.html'
|
98
|
+
end
|
99
|
+
|
100
|
+
def test_template_for
|
101
|
+
classpage = Pathname.new @options.template_dir + '/classpage.rhtml'
|
102
|
+
|
103
|
+
template = @g.send(:template_for, classpage)
|
104
|
+
assert_kind_of RDoc::ERBIO, template
|
105
|
+
|
106
|
+
assert_same template, @g.send(:template_for, classpage)
|
107
|
+
end
|
108
|
+
|
109
|
+
def test_template_for_dry_run
|
110
|
+
classpage = Pathname.new @options.template_dir + '/classpage.rhtml'
|
111
|
+
|
112
|
+
template = @g.send(:template_for, classpage)
|
113
|
+
assert_kind_of ERB, template
|
114
|
+
|
115
|
+
assert_same template, @g.send(:template_for, classpage)
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
|
@@ -1,21 +1,23 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'minitest/autorun'
|
3
3
|
require 'rdoc/rdoc'
|
4
|
+
require 'rdoc/generator/ri'
|
4
5
|
require 'tmpdir'
|
5
6
|
require 'fileutils'
|
6
7
|
|
7
8
|
class TestRDocGeneratorRI < MiniTest::Unit::TestCase
|
8
9
|
|
9
10
|
def setup
|
11
|
+
@options = RDoc::Options.new
|
12
|
+
|
10
13
|
@pwd = Dir.pwd
|
11
14
|
RDoc::TopLevel.reset
|
12
15
|
|
13
16
|
@tmpdir = File.join Dir.tmpdir, "test_rdoc_generator_ri_#{$$}"
|
14
17
|
FileUtils.mkdir_p @tmpdir
|
15
18
|
Dir.chdir @tmpdir
|
16
|
-
options = RDoc::Options.new
|
17
19
|
|
18
|
-
@g = RDoc::Generator::RI.new options
|
20
|
+
@g = RDoc::Generator::RI.new @options
|
19
21
|
|
20
22
|
@top_level = RDoc::TopLevel.new 'file.rb'
|
21
23
|
@klass = @top_level.add_class RDoc::NormalClass, 'Object'
|
@@ -37,6 +39,10 @@ class TestRDocGeneratorRI < MiniTest::Unit::TestCase
|
|
37
39
|
assert File.file?(path), "#{path} is not a file"
|
38
40
|
end
|
39
41
|
|
42
|
+
def refute_file path
|
43
|
+
refute File.exist?(path), "#{path} exists"
|
44
|
+
end
|
45
|
+
|
40
46
|
def test_generate
|
41
47
|
top_level = RDoc::TopLevel.new 'file.rb'
|
42
48
|
top_level.add_class @klass.class, @klass.name
|
@@ -52,5 +58,19 @@ class TestRDocGeneratorRI < MiniTest::Unit::TestCase
|
|
52
58
|
assert_file File.join(@tmpdir, 'Object', 'method%21-i.ri')
|
53
59
|
end
|
54
60
|
|
61
|
+
def test_generate_dry_run
|
62
|
+
@options.dry_run = true
|
63
|
+
@g = RDoc::Generator::RI.new @options
|
64
|
+
|
65
|
+
top_level = RDoc::TopLevel.new 'file.rb'
|
66
|
+
top_level.add_class @klass.class, @klass.name
|
67
|
+
|
68
|
+
@g.generate nil
|
69
|
+
|
70
|
+
refute_file File.join(@tmpdir, 'cache.ri')
|
71
|
+
|
72
|
+
refute_file File.join(@tmpdir, 'Object')
|
73
|
+
end
|
74
|
+
|
55
75
|
end
|
56
76
|
|