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,39 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'tmpdir'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'rdoc/ri/paths'
|
6
|
+
|
7
|
+
class TestRDocRIPaths < MiniTest::Unit::TestCase
|
8
|
+
|
9
|
+
def test_class_path_nonexistent
|
10
|
+
path = RDoc::RI::Paths.path true, true, true, true, '/nonexistent'
|
11
|
+
|
12
|
+
refute_includes path, '/nonexistent'
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_class_raw_path
|
16
|
+
path = RDoc::RI::Paths.raw_path true, true, true, true
|
17
|
+
|
18
|
+
assert_equal RDoc::RI::Paths::SYSDIR, path.shift
|
19
|
+
assert_equal RDoc::RI::Paths::SITEDIR, path.shift
|
20
|
+
assert_equal RDoc::RI::Paths::HOMEDIR, path.shift
|
21
|
+
|
22
|
+
refute_empty path
|
23
|
+
assert_kind_of String, path.first
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_class_raw_path_extra_dirs
|
27
|
+
path = RDoc::RI::Paths.raw_path true, true, true, true, '/nonexistent'
|
28
|
+
|
29
|
+
assert_equal '/nonexistent', path.shift
|
30
|
+
assert_equal RDoc::RI::Paths::SYSDIR, path.shift
|
31
|
+
assert_equal RDoc::RI::Paths::SITEDIR, path.shift
|
32
|
+
assert_equal RDoc::RI::Paths::HOMEDIR, path.shift
|
33
|
+
|
34
|
+
refute_empty path
|
35
|
+
assert_kind_of String, path.first
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
@@ -0,0 +1,309 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'rdoc/ri'
|
4
|
+
require 'rdoc/markup'
|
5
|
+
require 'tmpdir'
|
6
|
+
require 'fileutils'
|
7
|
+
|
8
|
+
class TestRDocRIStore < MiniTest::Unit::TestCase
|
9
|
+
|
10
|
+
def setup
|
11
|
+
RDoc::TopLevel.reset
|
12
|
+
|
13
|
+
@tmpdir = File.join Dir.tmpdir, "test_rdoc_ri_store_#{$$}"
|
14
|
+
@s = RDoc::RI::Store.new @tmpdir
|
15
|
+
|
16
|
+
@top_level = RDoc::TopLevel.new 'file.rb'
|
17
|
+
|
18
|
+
@klass = @top_level.add_class RDoc::NormalClass, 'Object'
|
19
|
+
@klass.comment = 'original'
|
20
|
+
|
21
|
+
@cmeth = RDoc::AnyMethod.new nil, 'cmethod'
|
22
|
+
@cmeth.singleton = true
|
23
|
+
|
24
|
+
@meth = RDoc::AnyMethod.new nil, 'method'
|
25
|
+
@meth_bang = RDoc::AnyMethod.new nil, 'method!'
|
26
|
+
|
27
|
+
@attr = RDoc::Attr.new nil, 'attr', 'RW', ''
|
28
|
+
|
29
|
+
@klass.add_method @cmeth
|
30
|
+
@klass.add_method @meth
|
31
|
+
@klass.add_method @meth_bang
|
32
|
+
@klass.add_attribute @attr
|
33
|
+
|
34
|
+
@nest_klass = @klass.add_class RDoc::NormalClass, 'SubClass'
|
35
|
+
@nest_meth = RDoc::AnyMethod.new nil, 'method'
|
36
|
+
@nest_incl = RDoc::Include.new 'Incl', ''
|
37
|
+
|
38
|
+
@nest_klass.add_method @nest_meth
|
39
|
+
@nest_klass.add_include @nest_incl
|
40
|
+
|
41
|
+
@RM = RDoc::Markup
|
42
|
+
end
|
43
|
+
|
44
|
+
def teardown
|
45
|
+
FileUtils.rm_rf @tmpdir
|
46
|
+
end
|
47
|
+
|
48
|
+
def assert_cache imethods, cmethods, attrs, modules, ancestors = {}
|
49
|
+
expected = {
|
50
|
+
:class_methods => cmethods,
|
51
|
+
:instance_methods => imethods,
|
52
|
+
:attributes => attrs,
|
53
|
+
:modules => modules,
|
54
|
+
:ancestors => ancestors
|
55
|
+
}
|
56
|
+
|
57
|
+
assert_equal expected, @s.cache
|
58
|
+
end
|
59
|
+
|
60
|
+
def assert_directory path
|
61
|
+
assert File.directory?(path), "#{path} is not a directory"
|
62
|
+
end
|
63
|
+
|
64
|
+
def assert_file path
|
65
|
+
assert File.file?(path), "#{path} is not a file"
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_attributes
|
69
|
+
@s.cache[:attributes]['Object'] = %w[attr]
|
70
|
+
|
71
|
+
expected = { 'Object' => %w[attr] }
|
72
|
+
|
73
|
+
assert_equal expected, @s.attributes
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_class_file
|
77
|
+
assert_equal File.join(@tmpdir, 'Object', 'cdesc-Object.ri'),
|
78
|
+
@s.class_file('Object')
|
79
|
+
assert_equal File.join(@tmpdir, 'Object', 'SubClass', 'cdesc-SubClass.ri'),
|
80
|
+
@s.class_file('Object::SubClass')
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_class_methods
|
84
|
+
@s.cache[:class_methods]['Object'] = %w[method]
|
85
|
+
|
86
|
+
expected = { 'Object' => %w[method] }
|
87
|
+
|
88
|
+
assert_equal expected, @s.class_methods
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_class_path
|
92
|
+
assert_equal File.join(@tmpdir, 'Object'), @s.class_path('Object')
|
93
|
+
assert_equal File.join(@tmpdir, 'Object', 'SubClass'),
|
94
|
+
@s.class_path('Object::SubClass')
|
95
|
+
end
|
96
|
+
|
97
|
+
def test_friendly_path
|
98
|
+
@s.path = @tmpdir
|
99
|
+
@s.type = nil
|
100
|
+
assert_equal @s.path, @s.friendly_path
|
101
|
+
|
102
|
+
@s.type = :extra
|
103
|
+
assert_equal @s.path, @s.friendly_path
|
104
|
+
|
105
|
+
@s.type = :system
|
106
|
+
assert_equal "ruby core", @s.friendly_path
|
107
|
+
|
108
|
+
@s.type = :site
|
109
|
+
assert_equal "ruby site", @s.friendly_path
|
110
|
+
|
111
|
+
@s.type = :home
|
112
|
+
assert_equal "~/.ri", @s.friendly_path
|
113
|
+
|
114
|
+
@s.type = :gem
|
115
|
+
@s.path = "#{@tmpdir}/gem_repository/doc/gem_name-1.0/ri"
|
116
|
+
assert_equal "gem gem_name-1.0", @s.friendly_path
|
117
|
+
end
|
118
|
+
|
119
|
+
def test_instance_methods
|
120
|
+
@s.cache[:instance_methods]['Object'] = %w[method]
|
121
|
+
|
122
|
+
expected = { 'Object' => %w[method] }
|
123
|
+
|
124
|
+
assert_equal expected, @s.instance_methods
|
125
|
+
end
|
126
|
+
|
127
|
+
def test_load_cache
|
128
|
+
cache = {
|
129
|
+
:methods => %w[Object#method],
|
130
|
+
:modules => %w[Object],
|
131
|
+
}
|
132
|
+
|
133
|
+
Dir.mkdir @tmpdir
|
134
|
+
|
135
|
+
open File.join(@tmpdir, 'cache.ri'), 'wb' do |io|
|
136
|
+
Marshal.dump cache, io
|
137
|
+
end
|
138
|
+
|
139
|
+
@s.load_cache
|
140
|
+
|
141
|
+
assert_equal cache, @s.cache
|
142
|
+
end
|
143
|
+
|
144
|
+
def test_load_cache_no_cache
|
145
|
+
cache = {
|
146
|
+
:ancestors => {},
|
147
|
+
:attributes => {},
|
148
|
+
:class_methods => {},
|
149
|
+
:instance_methods => {},
|
150
|
+
:modules => [],
|
151
|
+
}
|
152
|
+
|
153
|
+
@s.load_cache
|
154
|
+
|
155
|
+
assert_equal cache, @s.cache
|
156
|
+
end
|
157
|
+
|
158
|
+
def test_load_class
|
159
|
+
@s.save_class @klass
|
160
|
+
|
161
|
+
assert_equal @klass, @s.load_class('Object')
|
162
|
+
end
|
163
|
+
|
164
|
+
def test_load_method_bang
|
165
|
+
@s.save_method @klass, @meth_bang
|
166
|
+
|
167
|
+
meth = @s.load_method('Object', '#method!')
|
168
|
+
assert_equal @meth_bang, meth
|
169
|
+
end
|
170
|
+
|
171
|
+
def test_method_file
|
172
|
+
assert_equal File.join(@tmpdir, 'Object', 'method-i.ri'),
|
173
|
+
@s.method_file('Object', 'Object#method')
|
174
|
+
|
175
|
+
assert_equal File.join(@tmpdir, 'Object', 'method%21-i.ri'),
|
176
|
+
@s.method_file('Object', 'Object#method!')
|
177
|
+
|
178
|
+
assert_equal File.join(@tmpdir, 'Object', 'SubClass', 'method%21-i.ri'),
|
179
|
+
@s.method_file('Object::SubClass', 'Object::SubClass#method!')
|
180
|
+
|
181
|
+
assert_equal File.join(@tmpdir, 'Object', 'method-c.ri'),
|
182
|
+
@s.method_file('Object', 'Object::method')
|
183
|
+
end
|
184
|
+
|
185
|
+
def test_save_cache
|
186
|
+
@s.save_class @klass
|
187
|
+
@s.save_method @klass, @meth
|
188
|
+
@s.save_method @klass, @cmeth
|
189
|
+
@s.save_class @nest_klass
|
190
|
+
|
191
|
+
@s.save_cache
|
192
|
+
|
193
|
+
assert_file File.join(@tmpdir, 'cache.ri')
|
194
|
+
|
195
|
+
expected = {
|
196
|
+
:attributes => { 'Object' => ['attr_accessor attr'] },
|
197
|
+
:class_methods => { 'Object' => %w[cmethod] },
|
198
|
+
:instance_methods => { 'Object' => %w[method] },
|
199
|
+
:modules => %w[Object Object::SubClass],
|
200
|
+
:ancestors => {
|
201
|
+
'Object' => %w[Object],
|
202
|
+
'Object::SubClass' => %w[Incl Object],
|
203
|
+
},
|
204
|
+
}
|
205
|
+
|
206
|
+
open File.join(@tmpdir, 'cache.ri'), 'rb' do |io|
|
207
|
+
cache = Marshal.load io.read
|
208
|
+
|
209
|
+
assert_equal expected, cache
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
def test_save_cache_duplicate_methods
|
214
|
+
@s.save_method @klass, @meth
|
215
|
+
@s.save_method @klass, @meth
|
216
|
+
|
217
|
+
@s.save_cache
|
218
|
+
|
219
|
+
assert_cache({ 'Object' => %w[method] }, {}, {}, [])
|
220
|
+
end
|
221
|
+
|
222
|
+
def test_save_class
|
223
|
+
@s.save_class @klass
|
224
|
+
|
225
|
+
assert_directory File.join(@tmpdir, 'Object')
|
226
|
+
assert_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
|
227
|
+
|
228
|
+
assert_cache({}, {}, { 'Object' => ['attr_accessor attr'] }, %w[Object],
|
229
|
+
'Object' => %w[Object])
|
230
|
+
|
231
|
+
assert_equal @klass, @s.load_class('Object')
|
232
|
+
end
|
233
|
+
|
234
|
+
def test_save_class_basic_object
|
235
|
+
@klass.instance_variable_set :@superclass, nil
|
236
|
+
|
237
|
+
@s.save_class @klass
|
238
|
+
|
239
|
+
assert_directory File.join(@tmpdir, 'Object')
|
240
|
+
assert_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
|
241
|
+
|
242
|
+
assert_cache({}, {}, { 'Object' => ['attr_accessor attr'] }, %w[Object],
|
243
|
+
'Object' => %w[])
|
244
|
+
|
245
|
+
assert_equal @klass, @s.load_class('Object')
|
246
|
+
end
|
247
|
+
|
248
|
+
def test_save_class_merge
|
249
|
+
@s.save_class @klass
|
250
|
+
|
251
|
+
klass = RDoc::NormalClass.new 'Object'
|
252
|
+
klass.comment = 'new class'
|
253
|
+
|
254
|
+
s = RDoc::RI::Store.new @tmpdir
|
255
|
+
s.save_class klass
|
256
|
+
|
257
|
+
s = RDoc::RI::Store.new @tmpdir
|
258
|
+
|
259
|
+
document = @RM::Document.new(
|
260
|
+
@RM::Paragraph.new('original'),
|
261
|
+
@RM::Paragraph.new('new class'))
|
262
|
+
|
263
|
+
assert_equal document, s.load_class('Object').comment
|
264
|
+
end
|
265
|
+
|
266
|
+
def test_save_class_methods
|
267
|
+
@s.save_class @klass
|
268
|
+
|
269
|
+
assert_directory File.join(@tmpdir, 'Object')
|
270
|
+
assert_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
|
271
|
+
|
272
|
+
assert_cache({}, {}, { 'Object' => ['attr_accessor attr'] }, %w[Object],
|
273
|
+
'Object' => %w[Object])
|
274
|
+
|
275
|
+
assert_equal @klass, @s.load_class('Object')
|
276
|
+
end
|
277
|
+
|
278
|
+
def test_save_class_nested
|
279
|
+
@s.save_class @nest_klass
|
280
|
+
|
281
|
+
assert_directory File.join(@tmpdir, 'Object', 'SubClass')
|
282
|
+
assert_file File.join(@tmpdir, 'Object', 'SubClass', 'cdesc-SubClass.ri')
|
283
|
+
|
284
|
+
assert_cache({}, {}, {}, %w[Object::SubClass],
|
285
|
+
'Object::SubClass' => %w[Incl Object])
|
286
|
+
end
|
287
|
+
|
288
|
+
def test_save_method
|
289
|
+
@s.save_method @klass, @meth
|
290
|
+
|
291
|
+
assert_directory File.join(@tmpdir, 'Object')
|
292
|
+
assert_file File.join(@tmpdir, 'Object', 'method-i.ri')
|
293
|
+
|
294
|
+
assert_cache({ 'Object' => %w[method] }, {}, {}, [])
|
295
|
+
|
296
|
+
assert_equal @meth, @s.load_method('Object', '#method')
|
297
|
+
end
|
298
|
+
|
299
|
+
def test_save_method_nested
|
300
|
+
@s.save_method @nest_klass, @nest_meth
|
301
|
+
|
302
|
+
assert_directory File.join(@tmpdir, 'Object', 'SubClass')
|
303
|
+
assert_file File.join(@tmpdir, 'Object', 'SubClass', 'method-i.ri')
|
304
|
+
|
305
|
+
assert_cache({ 'Object::SubClass' => %w[method] }, {}, {}, [])
|
306
|
+
end
|
307
|
+
|
308
|
+
end
|
309
|
+
|
@@ -0,0 +1,157 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'rdoc'
|
4
|
+
require 'rdoc/text'
|
5
|
+
require 'rdoc/markup'
|
6
|
+
require 'rdoc/markup/formatter'
|
7
|
+
|
8
|
+
class TestRDocText < MiniTest::Unit::TestCase
|
9
|
+
|
10
|
+
include RDoc::Text
|
11
|
+
|
12
|
+
def test_expand_tabs
|
13
|
+
assert_equal("hello\n dave",
|
14
|
+
expand_tabs("hello\n dave"), 'spaces')
|
15
|
+
|
16
|
+
assert_equal("hello\n dave",
|
17
|
+
expand_tabs("hello\n\tdave"), 'tab')
|
18
|
+
|
19
|
+
assert_equal("hello\n dave",
|
20
|
+
expand_tabs("hello\n \tdave"), '1 space tab')
|
21
|
+
|
22
|
+
assert_equal("hello\n dave",
|
23
|
+
expand_tabs("hello\n \tdave"), '2 space tab')
|
24
|
+
|
25
|
+
assert_equal("hello\n dave",
|
26
|
+
expand_tabs("hello\n \tdave"), '3 space tab')
|
27
|
+
|
28
|
+
assert_equal("hello\n dave",
|
29
|
+
expand_tabs("hello\n \tdave"), '4 space tab')
|
30
|
+
|
31
|
+
assert_equal("hello\n dave",
|
32
|
+
expand_tabs("hello\n \tdave"), '5 space tab')
|
33
|
+
|
34
|
+
assert_equal("hello\n dave",
|
35
|
+
expand_tabs("hello\n \tdave"), '6 space tab')
|
36
|
+
|
37
|
+
assert_equal("hello\n dave",
|
38
|
+
expand_tabs("hello\n \tdave"), '7 space tab')
|
39
|
+
|
40
|
+
assert_equal("hello\n dave",
|
41
|
+
expand_tabs("hello\n \tdave"), '8 space tab')
|
42
|
+
|
43
|
+
assert_equal('. .',
|
44
|
+
expand_tabs(".\t\t."), 'dot tab tab dot')
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_flush_left
|
48
|
+
text = <<-TEXT
|
49
|
+
|
50
|
+
we don't worry too much.
|
51
|
+
|
52
|
+
The comments associated with
|
53
|
+
TEXT
|
54
|
+
|
55
|
+
expected = <<-EXPECTED
|
56
|
+
|
57
|
+
we don't worry too much.
|
58
|
+
|
59
|
+
The comments associated with
|
60
|
+
EXPECTED
|
61
|
+
|
62
|
+
assert_equal expected, flush_left(text)
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_markup
|
66
|
+
def formatter() RDoc::Markup::ToHtml.new end
|
67
|
+
|
68
|
+
assert_equal "<p>\nhi\n</p>\n", markup('hi')
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_normalize_comment
|
72
|
+
text = <<-TEXT
|
73
|
+
##
|
74
|
+
# we don't worry too much.
|
75
|
+
#
|
76
|
+
# The comments associated with
|
77
|
+
TEXT
|
78
|
+
|
79
|
+
expected = <<-EXPECTED.rstrip
|
80
|
+
we don't worry too much.
|
81
|
+
|
82
|
+
The comments associated with
|
83
|
+
EXPECTED
|
84
|
+
|
85
|
+
assert_equal expected, normalize_comment(text)
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_parse
|
89
|
+
assert_kind_of RDoc::Markup::Document, parse('hi')
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_parse_document
|
93
|
+
assert_equal RDoc::Markup::Document.new, parse(RDoc::Markup::Document.new)
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_parse_empty
|
97
|
+
assert_equal RDoc::Markup::Document.new, parse('')
|
98
|
+
end
|
99
|
+
|
100
|
+
def test_parse_empty_newline
|
101
|
+
assert_equal RDoc::Markup::Document.new, parse("#\n")
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_parse_newline
|
105
|
+
assert_equal RDoc::Markup::Document.new, parse("\n")
|
106
|
+
end
|
107
|
+
|
108
|
+
def test_strip_hashes
|
109
|
+
text = <<-TEXT
|
110
|
+
##
|
111
|
+
# we don't worry too much.
|
112
|
+
#
|
113
|
+
# The comments associated with
|
114
|
+
TEXT
|
115
|
+
|
116
|
+
expected = <<-EXPECTED
|
117
|
+
|
118
|
+
we don't worry too much.
|
119
|
+
|
120
|
+
The comments associated with
|
121
|
+
EXPECTED
|
122
|
+
|
123
|
+
assert_equal expected, strip_hashes(text)
|
124
|
+
end
|
125
|
+
|
126
|
+
def test_strip_newlines
|
127
|
+
assert_equal ' ', strip_newlines("\n \n")
|
128
|
+
|
129
|
+
assert_equal 'hi', strip_newlines("\n\nhi")
|
130
|
+
|
131
|
+
assert_equal 'hi', strip_newlines( "hi\n\n")
|
132
|
+
|
133
|
+
assert_equal 'hi', strip_newlines("\n\nhi\n\n")
|
134
|
+
end
|
135
|
+
|
136
|
+
def test_strip_stars
|
137
|
+
text = <<-TEXT
|
138
|
+
/*
|
139
|
+
* * we don't worry too much.
|
140
|
+
*
|
141
|
+
* The comments associated with
|
142
|
+
*/
|
143
|
+
TEXT
|
144
|
+
|
145
|
+
expected = <<-EXPECTED
|
146
|
+
|
147
|
+
* we don't worry too much.
|
148
|
+
|
149
|
+
The comments associated with
|
150
|
+
|
151
|
+
EXPECTED
|
152
|
+
|
153
|
+
assert_equal expected, strip_stars(text)
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
157
|
+
|