rdoc 2.4.3 → 2.5
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/.autotest +3 -1
- data/History.txt +68 -0
- data/LICENSE.txt +57 -0
- data/Manifest.txt +37 -19
- data/README.txt +2 -12
- data/Rakefile +12 -12
- data/bin/rdoc +4 -4
- data/lib/rdoc.rb +32 -9
- data/lib/rdoc/alias.rb +2 -2
- data/lib/rdoc/any_method.rb +108 -16
- data/lib/rdoc/attr.rb +87 -1
- data/lib/rdoc/class_module.rb +131 -5
- data/lib/rdoc/code_object.rb +28 -5
- data/lib/rdoc/constant.rb +22 -0
- data/lib/rdoc/context.rb +80 -37
- data/lib/rdoc/gauntlet.rb +48 -0
- data/lib/rdoc/generator/darkfish.rb +25 -23
- data/lib/rdoc/generator/markup.rb +6 -29
- data/lib/rdoc/generator/ri.rb +39 -189
- data/lib/rdoc/generator/template/darkfish/classpage.rhtml +17 -1
- data/lib/rdoc/generator/template/darkfish/filepage.rhtml +10 -0
- data/lib/rdoc/generator/template/darkfish/images/brick.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/brick_link.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/bullet_black.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/date.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/find.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/package.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/page_green.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/page_white_text.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/page_white_width.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/plugin.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/ruby.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/tag_green.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/wrench.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/wrench_orange.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/zoom.png +0 -0
- data/lib/rdoc/generator/template/darkfish/index.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/rdoc.css +38 -33
- data/lib/rdoc/include.rb +22 -0
- data/lib/rdoc/markup.rb +10 -262
- data/lib/rdoc/markup/attribute_manager.rb +57 -50
- data/lib/rdoc/markup/blank_line.rb +19 -0
- data/lib/rdoc/markup/document.rb +72 -0
- data/lib/rdoc/markup/formatter.rb +118 -0
- data/lib/rdoc/markup/formatter_test_case.rb +341 -0
- data/lib/rdoc/markup/heading.rb +17 -0
- data/lib/rdoc/markup/inline.rb +6 -5
- data/lib/rdoc/markup/list.rb +78 -0
- data/lib/rdoc/markup/list_item.rb +83 -0
- data/lib/rdoc/markup/paragraph.rb +66 -0
- data/lib/rdoc/markup/parser.rb +528 -0
- data/lib/rdoc/markup/rule.rb +17 -0
- data/lib/rdoc/markup/to_ansi.rb +72 -0
- data/lib/rdoc/markup/to_bs.rb +74 -0
- data/lib/rdoc/markup/to_html.rb +106 -172
- data/lib/rdoc/markup/to_html_crossref.rb +10 -4
- data/lib/rdoc/markup/to_rdoc.rb +243 -0
- data/lib/rdoc/markup/to_test.rb +27 -16
- data/lib/rdoc/markup/verbatim.rb +42 -0
- data/lib/rdoc/normal_class.rb +38 -1
- data/lib/rdoc/normal_module.rb +38 -8
- data/lib/rdoc/options.rb +39 -151
- data/lib/rdoc/parser.rb +36 -18
- data/lib/rdoc/parser/c.rb +102 -109
- data/lib/rdoc/parser/ruby.rb +359 -1662
- data/lib/rdoc/parser/ruby_tools.rb +157 -0
- data/lib/rdoc/parser/simple.rb +0 -2
- data/lib/rdoc/rdoc.rb +142 -82
- data/lib/rdoc/ri.rb +10 -0
- data/lib/rdoc/ri/driver.rb +674 -444
- data/lib/rdoc/ri/formatter.rb +2 -651
- data/lib/rdoc/ri/paths.rb +70 -45
- data/lib/rdoc/ri/store.rb +248 -0
- data/lib/rdoc/ruby_lex.rb +1284 -0
- data/lib/rdoc/ruby_token.rb +416 -0
- data/lib/rdoc/single_class.rb +5 -0
- data/lib/rdoc/stats.rb +152 -83
- data/lib/rdoc/task.rb +27 -49
- data/lib/rdoc/text.rb +130 -0
- data/lib/rdoc/tokenstream.rb +28 -9
- data/lib/rdoc/top_level.rb +49 -43
- data/test/hidden.zip.txt +1 -0
- data/test/test_attribute_manager.rb +9 -16
- data/test/test_rdoc_any_method.rb +23 -0
- data/test/test_rdoc_attr.rb +40 -0
- data/test/test_rdoc_class_module.rb +100 -0
- data/test/test_rdoc_code_object.rb +18 -2
- data/test/test_rdoc_context.rb +41 -0
- data/test/test_rdoc_generator_ri.rb +56 -0
- data/test/test_rdoc_markup.rb +21 -610
- data/test/test_rdoc_markup_attribute_manager.rb +14 -17
- data/test/test_rdoc_markup_document.rb +51 -0
- data/test/test_rdoc_markup_paragraph.rb +27 -0
- data/test/test_rdoc_markup_parser.rb +1327 -0
- data/test/test_rdoc_markup_to_ansi.rb +426 -0
- data/test/test_rdoc_markup_to_bs.rb +443 -0
- data/test/test_rdoc_markup_to_html.rb +183 -18
- data/test/test_rdoc_markup_to_html_crossref.rb +1 -3
- data/test/test_rdoc_markup_to_rdoc.rb +426 -0
- data/test/test_rdoc_normal_class.rb +17 -0
- data/test/test_rdoc_normal_module.rb +6 -6
- data/test/test_rdoc_options.rb +41 -0
- data/test/test_rdoc_parser.rb +66 -13
- data/test/test_rdoc_parser_c.rb +93 -38
- data/test/test_rdoc_parser_perl.rb +2 -3
- data/test/test_rdoc_parser_ruby.rb +291 -28
- data/test/test_rdoc_parser_simple.rb +48 -0
- data/test/test_rdoc_rdoc.rb +66 -0
- data/test/test_rdoc_ri_driver.rb +752 -38
- data/test/test_rdoc_ri_paths.rb +39 -0
- data/test/test_rdoc_ri_store.rb +309 -0
- data/test/test_rdoc_text.rb +157 -0
- data/test/test_rdoc_top_level.rb +35 -9
- data/test/xref_data.rb +9 -1
- data/test/xref_test_case.rb +8 -3
- metadata +110 -38
- metadata.gz.sig +0 -0
- data/lib/rdoc/cache.rb +0 -41
- data/lib/rdoc/diagram.rb +0 -340
- data/lib/rdoc/dot.rb +0 -249
- data/lib/rdoc/markup/fragments.rb +0 -377
- data/lib/rdoc/markup/lines.rb +0 -156
- data/lib/rdoc/markup/to_flow.rb +0 -211
- data/lib/rdoc/markup/to_latex.rb +0 -328
- data/lib/rdoc/markup/to_texinfo.rb +0 -73
- data/lib/rdoc/ri/cache.rb +0 -187
- data/lib/rdoc/ri/descriptions.rb +0 -156
- data/lib/rdoc/ri/display.rb +0 -340
- data/lib/rdoc/ri/reader.rb +0 -106
- data/lib/rdoc/ri/util.rb +0 -79
- data/lib/rdoc/ri/writer.rb +0 -68
- data/test/test_rdoc_ri_attribute_formatter.rb +0 -44
- data/test/test_rdoc_ri_default_display.rb +0 -302
- data/test/test_rdoc_ri_formatter.rb +0 -320
- data/test/test_rdoc_ri_html_formatter.rb +0 -141
- data/test/test_rdoc_ri_overstrike_formatter.rb +0 -71
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'test/xref_test_case'
|
2
|
+
|
3
|
+
class TestRDocNormalClass < XrefTestCase
|
4
|
+
|
5
|
+
def test_ancestors_class
|
6
|
+
top_level = RDoc::TopLevel.new 'file.rb'
|
7
|
+
klass = top_level.add_class RDoc::NormalClass, 'Klass'
|
8
|
+
incl = RDoc::Include.new 'Incl', ''
|
9
|
+
|
10
|
+
sub_klass = klass.add_class RDoc::NormalClass, 'SubClass', 'Klass'
|
11
|
+
sub_klass.add_include incl
|
12
|
+
|
13
|
+
assert_equal [incl, klass], sub_klass.ancestors
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
@@ -8,14 +8,14 @@ class TestRDocNormalModule < XrefTestCase
|
|
8
8
|
@mod = RDoc::NormalModule.new 'Mod'
|
9
9
|
end
|
10
10
|
|
11
|
-
def
|
12
|
-
|
11
|
+
def test_ancestors_module
|
12
|
+
top_level = RDoc::TopLevel.new 'file.rb'
|
13
|
+
mod = top_level.add_module RDoc::NormalModule, 'Mod'
|
14
|
+
incl = RDoc::Include.new 'Incl', ''
|
13
15
|
|
14
|
-
|
16
|
+
mod.add_include incl
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
assert_equal "# comment 1\n# ---\n# comment 2", @mod.comment
|
18
|
+
assert_equal [incl], mod.ancestors
|
19
19
|
end
|
20
20
|
|
21
21
|
def test_module_eh
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'rdoc/options'
|
4
|
+
|
5
|
+
class TestRDocOptions < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@options = RDoc::Options.new
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_parse_ignore_invalid
|
12
|
+
out, err = capture_io do
|
13
|
+
@options.parse %w[--ignore-invalid --bogus]
|
14
|
+
end
|
15
|
+
|
16
|
+
refute_match %r%^Usage: %, err
|
17
|
+
assert_match %r%^invalid option: --bogus%, err
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_parse_ignore_invalid_default
|
21
|
+
out, err = capture_io do
|
22
|
+
@options.parse %w[--bogus]
|
23
|
+
end
|
24
|
+
|
25
|
+
refute_match %r%^Usage: %, err
|
26
|
+
assert_match %r%^invalid option: --bogus%, err
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_parse_ignore_invalid_no
|
30
|
+
out, err = capture_io do
|
31
|
+
assert_raises SystemExit do
|
32
|
+
@options.parse %w[--no-ignore-invalid --bogus]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
assert_match %r%^Usage: %, err
|
37
|
+
assert_match %r%^invalid option: --bogus%, err
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
data/test/test_rdoc_parser.rb
CHANGED
@@ -1,29 +1,82 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require 'minitest/
|
2
|
+
require 'minitest/autorun'
|
3
3
|
require 'rdoc/parser'
|
4
4
|
require 'rdoc/parser/ruby'
|
5
|
+
require 'tmpdir'
|
5
6
|
|
6
7
|
class TestRDocParser < MiniTest::Unit::TestCase
|
7
|
-
def test_can_parse
|
8
|
-
assert_equal(RDoc::Parser.can_parse(__FILE__), RDoc::Parser::Ruby)
|
9
8
|
|
10
|
-
|
9
|
+
def setup
|
10
|
+
@RP = RDoc::Parser
|
11
|
+
@binary_dat = File.expand_path '../binary.dat', __FILE__
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_class_binary_eh_erb
|
15
|
+
erb = File.join Dir.tmpdir, "test_rdoc_parser_#{$$}.erb"
|
16
|
+
open erb, 'wb' do |io|
|
17
|
+
io.write 'blah blah <%= stuff %> <% more stuff %>'
|
18
|
+
end
|
19
|
+
|
20
|
+
assert @RP.binary?(erb)
|
21
|
+
|
22
|
+
erb_rb = File.join Dir.tmpdir, "test_rdoc_parser_#{$$}.erb.rb"
|
23
|
+
open erb_rb, 'wb' do |io|
|
24
|
+
io.write 'blah blah <%= stuff %>'
|
25
|
+
end
|
26
|
+
|
27
|
+
refute @RP.binary?(erb_rb)
|
28
|
+
ensure
|
29
|
+
File.unlink erb
|
30
|
+
File.unlink erb_rb if erb_rb
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_class_binary_eh_marshal
|
34
|
+
marshal = File.join Dir.tmpdir, "test_rdoc_parser_#{$$}.marshal"
|
35
|
+
open marshal, 'wb' do |io|
|
36
|
+
io.write Marshal.dump('')
|
37
|
+
io.write 'lots of text ' * 500
|
38
|
+
end
|
39
|
+
|
40
|
+
assert @RP.binary?(marshal)
|
41
|
+
ensure
|
42
|
+
File.unlink marshal
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_class_can_parse
|
46
|
+
assert_equal @RP.can_parse(__FILE__), @RP::Ruby
|
47
|
+
|
48
|
+
readme_file_name = File.expand_path '../README.txt', __FILE__
|
11
49
|
|
12
50
|
unless File.exist? readme_file_name then # HACK for tests in trunk :/
|
13
|
-
readme_file_name = File.
|
51
|
+
readme_file_name = File.expand_path '../../README.txt', __FILE__
|
14
52
|
end
|
15
53
|
|
16
|
-
assert_equal
|
54
|
+
assert_equal @RP.can_parse(readme_file_name), @RP::Simple
|
17
55
|
|
18
|
-
|
19
|
-
|
56
|
+
assert_nil @RP.can_parse(@binary_dat)
|
57
|
+
|
58
|
+
jtest_file_name = File.expand_path '../test.ja.txt', __FILE__
|
59
|
+
assert_equal @RP::Simple, @RP.can_parse(jtest_file_name)
|
60
|
+
|
61
|
+
jtest_rdoc_file_name = File.expand_path '../test.ja.rdoc', __FILE__
|
62
|
+
assert_equal @RP::Simple, @RP.can_parse(jtest_rdoc_file_name)
|
63
|
+
end
|
20
64
|
|
21
|
-
|
22
|
-
|
65
|
+
##
|
66
|
+
# Selenium hides a .jar file using a .txt extension.
|
23
67
|
|
24
|
-
|
25
|
-
|
68
|
+
def test_class_can_parse_zip
|
69
|
+
hidden_zip = File.expand_path '../hidden.zip.txt', __FILE__
|
70
|
+
assert_nil @RP.can_parse(hidden_zip)
|
26
71
|
end
|
72
|
+
|
73
|
+
def test_class_for_binary
|
74
|
+
rp = @RP.dup
|
75
|
+
|
76
|
+
def rp.can_parse(*args) nil end
|
77
|
+
|
78
|
+
assert_nil @RP.for(nil, @binary_dat, nil, nil, nil)
|
79
|
+
end
|
80
|
+
|
27
81
|
end
|
28
82
|
|
29
|
-
MiniTest::Unit.autorun
|
data/test/test_rdoc_parser_c.rb
CHANGED
@@ -35,11 +35,25 @@ class TestRDocParserC < MiniTest::Unit::TestCase
|
|
35
35
|
/* Document-class: Foo
|
36
36
|
* this is the Foo boot class
|
37
37
|
*/
|
38
|
+
VALUE cFoo = boot_defclass("Foo", rb_cObject);
|
39
|
+
EOF
|
40
|
+
|
41
|
+
klass = util_get_class content, 'cFoo'
|
42
|
+
assert_equal "this is the Foo boot class", klass.comment
|
43
|
+
assert_equal 'Object', klass.superclass
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_do_classes_boot_class_nil
|
47
|
+
content = <<-EOF
|
48
|
+
/* Document-class: Foo
|
49
|
+
* this is the Foo boot class
|
50
|
+
*/
|
38
51
|
VALUE cFoo = boot_defclass("Foo", 0);
|
39
52
|
EOF
|
40
53
|
|
41
54
|
klass = util_get_class content, 'cFoo'
|
42
|
-
assert_equal "
|
55
|
+
assert_equal "this is the Foo boot class", klass.comment
|
56
|
+
assert_equal nil, klass.superclass
|
43
57
|
end
|
44
58
|
|
45
59
|
def test_do_classes_class
|
@@ -51,7 +65,7 @@ VALUE cFoo = rb_define_class("Foo", rb_cObject);
|
|
51
65
|
EOF
|
52
66
|
|
53
67
|
klass = util_get_class content, 'cFoo'
|
54
|
-
assert_equal "
|
68
|
+
assert_equal "this is the Foo class", klass.comment
|
55
69
|
end
|
56
70
|
|
57
71
|
def test_do_classes_class_under
|
@@ -63,7 +77,7 @@ VALUE cFoo = rb_define_class_under(rb_mKernel, "Foo", rb_cObject);
|
|
63
77
|
EOF
|
64
78
|
|
65
79
|
klass = util_get_class content, 'cFoo'
|
66
|
-
assert_equal "
|
80
|
+
assert_equal "this is the Foo class under Kernel", klass.comment
|
67
81
|
end
|
68
82
|
|
69
83
|
def test_do_classes_module
|
@@ -75,7 +89,7 @@ VALUE mFoo = rb_define_module("Foo");
|
|
75
89
|
EOF
|
76
90
|
|
77
91
|
klass = util_get_class content, 'mFoo'
|
78
|
-
assert_equal "
|
92
|
+
assert_equal "this is the Foo module", klass.comment
|
79
93
|
end
|
80
94
|
|
81
95
|
def test_do_classes_module_under
|
@@ -87,7 +101,7 @@ VALUE mFoo = rb_define_module_under(rb_mKernel, "Foo");
|
|
87
101
|
EOF
|
88
102
|
|
89
103
|
klass = util_get_class content, 'mFoo'
|
90
|
-
assert_equal "
|
104
|
+
assert_equal "this is the Foo module under Kernel", klass.comment
|
91
105
|
end
|
92
106
|
|
93
107
|
def test_do_constants
|
@@ -103,7 +117,7 @@ void Init_foo(){
|
|
103
117
|
/* Huzzah!: What you cheer when you roll a perfect game */
|
104
118
|
rb_define_const(cFoo, "CHEER", rb_str_new2("Huzzah!"));
|
105
119
|
|
106
|
-
/* TEST\:TEST: Checking to see if escaped
|
120
|
+
/* TEST\:TEST: Checking to see if escaped colon works */
|
107
121
|
rb_define_const(cFoo, "TEST", rb_str_new2("TEST:TEST"));
|
108
122
|
|
109
123
|
/* \\: The file separator on MS Windows */
|
@@ -153,48 +167,35 @@ void Init_foo(){
|
|
153
167
|
|
154
168
|
constants = constants.map { |c| [c.name, c.value, c.comment] }
|
155
169
|
|
156
|
-
assert_equal ['PERFECT', '300',
|
157
|
-
"\n The highest possible score in bowling \n "],
|
170
|
+
assert_equal ['PERFECT', '300', 'The highest possible score in bowling '],
|
158
171
|
constants.shift
|
159
172
|
assert_equal ['CHEER', 'Huzzah!',
|
160
|
-
|
173
|
+
'What you cheer when you roll a perfect game '],
|
161
174
|
constants.shift
|
162
175
|
assert_equal ['TEST', 'TEST:TEST',
|
163
|
-
|
176
|
+
'Checking to see if escaped colon works '],
|
164
177
|
constants.shift
|
165
178
|
assert_equal ['MSEPARATOR', '\\',
|
166
|
-
|
179
|
+
'The file separator on MS Windows '],
|
167
180
|
constants.shift
|
168
181
|
assert_equal ['SEPARATOR', '/',
|
169
|
-
|
182
|
+
'The file separator on Unix '],
|
170
183
|
constants.shift
|
171
184
|
assert_equal ['STUFF', 'C:\\Program Files\\Stuff',
|
172
|
-
|
185
|
+
'A directory on MS Windows '],
|
173
186
|
constants.shift
|
174
187
|
assert_equal ['NOSEMI', 'INT2FIX(99)',
|
175
|
-
|
188
|
+
'Default definition '],
|
176
189
|
constants.shift
|
177
|
-
assert_equal ['NOCOMMENT', 'rb_str_new2("No comment")',
|
190
|
+
assert_equal ['NOCOMMENT', 'rb_str_new2("No comment")', ''],
|
178
191
|
constants.shift
|
179
192
|
|
180
193
|
comment = <<-EOF.chomp
|
181
|
-
|
182
|
-
|
183
|
-
Multiline comment goes here because this comment spans multiple lines.
|
184
|
-
Multiline comment goes here because this comment spans multiple lines.
|
185
|
-
|
186
|
-
|
187
|
-
EOF
|
188
|
-
assert_equal ['MULTILINE', 'INT2FIX(1)', comment], constants.shift
|
189
|
-
assert_equal ['MULTILINE_VALUE', '1', comment], constants.shift
|
190
|
-
|
191
|
-
comment = <<-EOF.chomp
|
192
|
-
|
193
|
-
Multiline comment goes here because this comment spans multiple lines.
|
194
|
-
Multiline comment goes here because this comment spans multiple lines.
|
195
|
-
|
196
|
-
|
194
|
+
Multiline comment goes here because this comment spans multiple lines.
|
195
|
+
Multiline comment goes here because this comment spans multiple lines.
|
197
196
|
EOF
|
197
|
+
assert_equal ['MULTILINE', 'INT2FIX(1)', comment], constants.shift
|
198
|
+
assert_equal ['MULTILINE_VALUE', '1', comment], constants.shift
|
198
199
|
assert_equal ['MULTILINE_NOT_EMPTY', 'INT2FIX(1)', comment], constants.shift
|
199
200
|
|
200
201
|
assert constants.empty?, constants.inspect
|
@@ -213,7 +214,7 @@ Init_Foo(void) {
|
|
213
214
|
|
214
215
|
klass = util_get_class content, 'foo'
|
215
216
|
|
216
|
-
assert_equal "
|
217
|
+
assert_equal "a comment for class Foo", klass.comment
|
217
218
|
end
|
218
219
|
|
219
220
|
def test_find_class_comment_define_class
|
@@ -226,7 +227,7 @@ VALUE foo = rb_define_class("Foo", rb_cObject);
|
|
226
227
|
|
227
228
|
klass = util_get_class content, 'foo'
|
228
229
|
|
229
|
-
assert_equal "
|
230
|
+
assert_equal "a comment for class Foo", klass.comment
|
230
231
|
end
|
231
232
|
|
232
233
|
def test_find_class_comment_define_class_Init_Foo
|
@@ -245,7 +246,26 @@ Init_Foo(void) {
|
|
245
246
|
|
246
247
|
klass = util_get_class content, 'foo'
|
247
248
|
|
248
|
-
assert_equal "
|
249
|
+
assert_equal "a comment for class Foo on Init", klass.comment
|
250
|
+
end
|
251
|
+
|
252
|
+
def test_find_class_comment_define_class_Init_Foo_no_void
|
253
|
+
content = <<-EOF
|
254
|
+
/*
|
255
|
+
* a comment for class Foo on Init
|
256
|
+
*/
|
257
|
+
void
|
258
|
+
Init_Foo() {
|
259
|
+
/*
|
260
|
+
* a comment for class Foo on rb_define_class
|
261
|
+
*/
|
262
|
+
VALUE foo = rb_define_class("Foo", rb_cObject);
|
263
|
+
}
|
264
|
+
EOF
|
265
|
+
|
266
|
+
klass = util_get_class content, 'foo'
|
267
|
+
|
268
|
+
assert_equal "a comment for class Foo on Init", klass.comment
|
249
269
|
end
|
250
270
|
|
251
271
|
def test_find_class_comment_define_class_bogus_comment
|
@@ -289,7 +309,7 @@ Init_Foo(void) {
|
|
289
309
|
other_function = klass.method_list.first
|
290
310
|
|
291
311
|
assert_equal 'my_method', other_function.name
|
292
|
-
assert_equal "
|
312
|
+
assert_equal "a comment for other_function",
|
293
313
|
other_function.comment
|
294
314
|
assert_equal '()', other_function.params
|
295
315
|
|
@@ -322,7 +342,7 @@ Init_Foo(void) {
|
|
322
342
|
other_function = klass.method_list.first
|
323
343
|
|
324
344
|
assert_equal 'my_method', other_function.name
|
325
|
-
assert_equal "
|
345
|
+
assert_equal "a comment for other_function",
|
326
346
|
other_function.comment
|
327
347
|
assert_equal '()', other_function.params
|
328
348
|
|
@@ -331,6 +351,41 @@ Init_Foo(void) {
|
|
331
351
|
assert_equal "#define other_function rb_other_function", code
|
332
352
|
end
|
333
353
|
|
354
|
+
def test_find_body_document_method
|
355
|
+
content = <<-EOF
|
356
|
+
/*
|
357
|
+
* Document-method: bar
|
358
|
+
* Document-method: baz
|
359
|
+
*
|
360
|
+
* a comment for bar
|
361
|
+
*/
|
362
|
+
VALUE
|
363
|
+
bar() {
|
364
|
+
}
|
365
|
+
|
366
|
+
void
|
367
|
+
Init_Foo(void) {
|
368
|
+
VALUE foo = rb_define_class("Foo", rb_cObject);
|
369
|
+
|
370
|
+
rb_define_method(foo, "bar", bar, 0);
|
371
|
+
rb_define_method(foo, "baz", bar, 0);
|
372
|
+
}
|
373
|
+
EOF
|
374
|
+
|
375
|
+
klass = util_get_class content, 'foo'
|
376
|
+
assert_equal 2, klass.method_list.length
|
377
|
+
|
378
|
+
methods = klass.method_list.sort
|
379
|
+
|
380
|
+
bar = methods.first
|
381
|
+
assert_equal 'Foo#bar', bar.full_name
|
382
|
+
assert_equal "a comment for bar", bar.comment
|
383
|
+
|
384
|
+
baz = methods.last
|
385
|
+
assert_equal 'Foo#baz', baz.full_name
|
386
|
+
assert_equal "a comment for bar", bar.comment
|
387
|
+
end
|
388
|
+
|
334
389
|
def test_define_method
|
335
390
|
content = <<-EOF
|
336
391
|
/*Method Comment! */
|
@@ -355,7 +410,7 @@ Init_IO(void) {
|
|
355
410
|
klass = util_get_class content, 'rb_cIO'
|
356
411
|
read_method = klass.method_list.first
|
357
412
|
assert_equal "read", read_method.name
|
358
|
-
assert_equal "
|
413
|
+
assert_equal "Method Comment! ", read_method.comment
|
359
414
|
end
|
360
415
|
|
361
416
|
def test_define_method_private
|
@@ -383,7 +438,7 @@ Init_IO(void) {
|
|
383
438
|
read_method = klass.method_list.first
|
384
439
|
assert_equal 'IO#read', read_method.full_name
|
385
440
|
assert_equal :private, read_method.visibility
|
386
|
-
assert_equal "
|
441
|
+
assert_equal "Method Comment! ", read_method.comment
|
387
442
|
end
|
388
443
|
|
389
444
|
def util_get_class(content, name)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'stringio'
|
2
2
|
require 'tempfile'
|
3
3
|
require 'rubygems'
|
4
|
-
require 'minitest/
|
4
|
+
require 'minitest/autorun'
|
5
5
|
require 'rdoc/options'
|
6
6
|
require 'rdoc/parser/perl'
|
7
7
|
|
@@ -55,7 +55,7 @@ This just contains plain old documentation
|
|
55
55
|
=end
|
56
56
|
EOF
|
57
57
|
comment = util_get_comment content
|
58
|
-
assert_equal
|
58
|
+
assert_equal 'This just contains plain old documentation', comment
|
59
59
|
end
|
60
60
|
|
61
61
|
# Get the comment of the @top_level when it has processed the input.
|
@@ -71,4 +71,3 @@ This just contains plain old documentation
|
|
71
71
|
|
72
72
|
end
|
73
73
|
|
74
|
-
MiniTest::Unit.autorun
|