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_top_level.rb
CHANGED
@@ -27,6 +27,17 @@ class TestRDocTopLevel < XrefTestCase
|
|
27
27
|
assert_equal expected, RDoc::TopLevel.classes.map { |m| m.full_name }.sort
|
28
28
|
end
|
29
29
|
|
30
|
+
def test_class_complete
|
31
|
+
@c2.add_module_alias @c2_c3, 'A1'
|
32
|
+
|
33
|
+
RDoc::TopLevel.complete :public
|
34
|
+
|
35
|
+
a1 = @xref_data.find_class_or_module 'C2::A1'
|
36
|
+
|
37
|
+
assert_equal 'C2::A1', a1.full_name
|
38
|
+
refute_empty a1.aliases
|
39
|
+
end
|
40
|
+
|
30
41
|
def test_class_files
|
31
42
|
assert_equal %w[path/top_level.rb xref_data.rb],
|
32
43
|
RDoc::TopLevel.files.map { |m| m.full_name }.sort
|
@@ -94,13 +105,11 @@ class TestRDocTopLevel < XrefTestCase
|
|
94
105
|
end
|
95
106
|
|
96
107
|
def test_last_modified
|
97
|
-
assert_equal
|
98
|
-
|
108
|
+
assert_equal nil, @top_level.last_modified
|
99
109
|
stat = Object.new
|
100
110
|
def stat.mtime() 0 end
|
101
111
|
@top_level.file_stat = stat
|
102
|
-
|
103
|
-
assert_equal '0', @top_level.last_modified
|
112
|
+
assert_equal 0, @top_level.last_modified
|
104
113
|
end
|
105
114
|
|
106
115
|
def test_name
|
data/test/xref_data.rb
CHANGED
data/test/xref_test_case.rb
CHANGED
@@ -38,7 +38,11 @@ class XrefTestCase < MiniTest::Unit::TestCase
|
|
38
38
|
@c1_m = @c1.method_list.last # C1#m
|
39
39
|
@c1__m = @c1.method_list.first # C1::m
|
40
40
|
|
41
|
+
|
41
42
|
@c2 = @xref_data.find_module_named 'C2'
|
43
|
+
@c2_a = @c2.method_list.last
|
44
|
+
@c2_b = @c2.method_list.first
|
45
|
+
|
42
46
|
@c2_c3 = @xref_data.find_module_named 'C2::C3'
|
43
47
|
@c3 = @xref_data.find_module_named 'C3'
|
44
48
|
@c4 = @xref_data.find_module_named 'C4'
|
@@ -48,6 +52,8 @@ class XrefTestCase < MiniTest::Unit::TestCase
|
|
48
52
|
@c3_h2 = @xref_data.find_module_named 'C3::H2'
|
49
53
|
|
50
54
|
@m1 = @xref_data.find_module_named 'M1'
|
55
|
+
@m1_m = @m1.method_list.first
|
56
|
+
|
51
57
|
@m1_m2 = @xref_data.find_module_named 'M1::M2'
|
52
58
|
end
|
53
59
|
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
|
-
-
|
8
|
-
-
|
9
|
-
|
10
|
-
version: 2.5.11
|
7
|
+
- 3
|
8
|
+
- 0
|
9
|
+
version: "3.0"
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Eric Hodel
|
@@ -39,7 +38,7 @@ cert_chain:
|
|
39
38
|
x52qPcexcYZR7w==
|
40
39
|
-----END CERTIFICATE-----
|
41
40
|
|
42
|
-
date: 2010-
|
41
|
+
date: 2010-12-19 00:00:00 -08:00
|
43
42
|
default_executable:
|
44
43
|
dependencies:
|
45
44
|
- !ruby/object:Gem::Dependency
|
@@ -66,11 +65,10 @@ dependencies:
|
|
66
65
|
requirements:
|
67
66
|
- - ~>
|
68
67
|
- !ruby/object:Gem::Version
|
69
|
-
hash:
|
68
|
+
hash: 7
|
70
69
|
segments:
|
71
|
-
-
|
72
|
-
|
73
|
-
version: "1.3"
|
70
|
+
- 2
|
71
|
+
version: "2"
|
74
72
|
type: :development
|
75
73
|
version_requirements: *id002
|
76
74
|
- !ruby/object:Gem::Dependency
|
@@ -81,12 +79,12 @@ dependencies:
|
|
81
79
|
requirements:
|
82
80
|
- - ">="
|
83
81
|
- !ruby/object:Gem::Version
|
84
|
-
hash:
|
82
|
+
hash: 19
|
85
83
|
segments:
|
86
84
|
- 2
|
87
|
-
-
|
88
|
-
-
|
89
|
-
version: 2.
|
85
|
+
- 7
|
86
|
+
- 0
|
87
|
+
version: 2.7.0
|
90
88
|
type: :development
|
91
89
|
version_requirements: *id003
|
92
90
|
description: |-
|
@@ -137,6 +135,8 @@ files:
|
|
137
135
|
- lib/rdoc/code_objects.rb
|
138
136
|
- lib/rdoc/constant.rb
|
139
137
|
- lib/rdoc/context.rb
|
138
|
+
- lib/rdoc/encoding.rb
|
139
|
+
- lib/rdoc/erbio.rb
|
140
140
|
- lib/rdoc/gauntlet.rb
|
141
141
|
- lib/rdoc/generator.rb
|
142
142
|
- lib/rdoc/generator/darkfish.rb
|
@@ -186,9 +186,10 @@ files:
|
|
186
186
|
- lib/rdoc/markup/list_item.rb
|
187
187
|
- lib/rdoc/markup/paragraph.rb
|
188
188
|
- lib/rdoc/markup/parser.rb
|
189
|
-
- lib/rdoc/markup/
|
189
|
+
- lib/rdoc/markup/pre_process.rb
|
190
190
|
- lib/rdoc/markup/raw.rb
|
191
191
|
- lib/rdoc/markup/rule.rb
|
192
|
+
- lib/rdoc/markup/text_formatter_test_case.rb
|
192
193
|
- lib/rdoc/markup/to_ansi.rb
|
193
194
|
- lib/rdoc/markup/to_bs.rb
|
194
195
|
- lib/rdoc/markup/to_html.rb
|
@@ -197,12 +198,12 @@ files:
|
|
197
198
|
- lib/rdoc/markup/to_test.rb
|
198
199
|
- lib/rdoc/markup/verbatim.rb
|
199
200
|
- lib/rdoc/meta_method.rb
|
201
|
+
- lib/rdoc/method_attr.rb
|
200
202
|
- lib/rdoc/normal_class.rb
|
201
203
|
- lib/rdoc/normal_module.rb
|
202
204
|
- lib/rdoc/options.rb
|
203
205
|
- lib/rdoc/parser.rb
|
204
206
|
- lib/rdoc/parser/c.rb
|
205
|
-
- lib/rdoc/parser/perl.rb
|
206
207
|
- lib/rdoc/parser/ruby.rb
|
207
208
|
- lib/rdoc/parser/ruby_tools.rb
|
208
209
|
- lib/rdoc/parser/simple.rb
|
@@ -217,9 +218,12 @@ files:
|
|
217
218
|
- lib/rdoc/ruby_token.rb
|
218
219
|
- lib/rdoc/single_class.rb
|
219
220
|
- lib/rdoc/stats.rb
|
221
|
+
- lib/rdoc/stats/normal.rb
|
222
|
+
- lib/rdoc/stats/quiet.rb
|
223
|
+
- lib/rdoc/stats/verbose.rb
|
220
224
|
- lib/rdoc/task.rb
|
221
225
|
- lib/rdoc/text.rb
|
222
|
-
- lib/rdoc/
|
226
|
+
- lib/rdoc/token_stream.rb
|
223
227
|
- lib/rdoc/top_level.rb
|
224
228
|
- test/README
|
225
229
|
- test/binary.dat
|
@@ -228,12 +232,15 @@ files:
|
|
228
232
|
- test/test.ja.txt
|
229
233
|
- test/test.txt
|
230
234
|
- test/test_attribute_manager.rb
|
235
|
+
- test/test_rdoc_alias.rb
|
231
236
|
- test/test_rdoc_any_method.rb
|
232
237
|
- test/test_rdoc_attr.rb
|
233
238
|
- test/test_rdoc_class_module.rb
|
234
239
|
- test/test_rdoc_code_object.rb
|
235
240
|
- test/test_rdoc_constant.rb
|
236
241
|
- test/test_rdoc_context.rb
|
242
|
+
- test/test_rdoc_encoding.rb
|
243
|
+
- test/test_rdoc_generator_darkfish.rb
|
237
244
|
- test/test_rdoc_generator_ri.rb
|
238
245
|
- test/test_rdoc_include.rb
|
239
246
|
- test/test_rdoc_markup.rb
|
@@ -248,12 +255,12 @@ files:
|
|
248
255
|
- test/test_rdoc_markup_to_html.rb
|
249
256
|
- test/test_rdoc_markup_to_html_crossref.rb
|
250
257
|
- test/test_rdoc_markup_to_rdoc.rb
|
258
|
+
- test/test_rdoc_method_attr.rb
|
251
259
|
- test/test_rdoc_normal_class.rb
|
252
260
|
- test/test_rdoc_normal_module.rb
|
253
261
|
- test/test_rdoc_options.rb
|
254
262
|
- test/test_rdoc_parser.rb
|
255
263
|
- test/test_rdoc_parser_c.rb
|
256
|
-
- test/test_rdoc_parser_perl.rb
|
257
264
|
- test/test_rdoc_parser_ruby.rb
|
258
265
|
- test/test_rdoc_parser_simple.rb
|
259
266
|
- test/test_rdoc_rdoc.rb
|
@@ -321,12 +328,15 @@ specification_version: 3
|
|
321
328
|
summary: RDoc is an application that produces documentation for one or more Ruby source files
|
322
329
|
test_files:
|
323
330
|
- test/test_attribute_manager.rb
|
331
|
+
- test/test_rdoc_alias.rb
|
324
332
|
- test/test_rdoc_any_method.rb
|
325
333
|
- test/test_rdoc_attr.rb
|
326
334
|
- test/test_rdoc_class_module.rb
|
327
335
|
- test/test_rdoc_code_object.rb
|
328
336
|
- test/test_rdoc_constant.rb
|
329
337
|
- test/test_rdoc_context.rb
|
338
|
+
- test/test_rdoc_encoding.rb
|
339
|
+
- test/test_rdoc_generator_darkfish.rb
|
330
340
|
- test/test_rdoc_generator_ri.rb
|
331
341
|
- test/test_rdoc_include.rb
|
332
342
|
- test/test_rdoc_markup.rb
|
@@ -341,12 +351,12 @@ test_files:
|
|
341
351
|
- test/test_rdoc_markup_to_html.rb
|
342
352
|
- test/test_rdoc_markup_to_html_crossref.rb
|
343
353
|
- test/test_rdoc_markup_to_rdoc.rb
|
354
|
+
- test/test_rdoc_method_attr.rb
|
344
355
|
- test/test_rdoc_normal_class.rb
|
345
356
|
- test/test_rdoc_normal_module.rb
|
346
357
|
- test/test_rdoc_options.rb
|
347
358
|
- test/test_rdoc_parser.rb
|
348
359
|
- test/test_rdoc_parser_c.rb
|
349
|
-
- test/test_rdoc_parser_perl.rb
|
350
360
|
- test/test_rdoc_parser_ruby.rb
|
351
361
|
- test/test_rdoc_parser_simple.rb
|
352
362
|
- test/test_rdoc_rdoc.rb
|
metadata.gz.sig
CHANGED
Binary file
|
data/lib/rdoc/parser/perl.rb
DELETED
@@ -1,165 +0,0 @@
|
|
1
|
-
require 'rdoc/parser'
|
2
|
-
|
3
|
-
##
|
4
|
-
#
|
5
|
-
# This is an attamept to write a basic parser for Perl's
|
6
|
-
# POD (Plain old Documentation) format. Ruby code must
|
7
|
-
# co-exist with Perl, and some tasks are easier in Perl
|
8
|
-
# than Ruby because of existing libraries.
|
9
|
-
#
|
10
|
-
# One difficult is that Perl POD has no means of identifying
|
11
|
-
# the classes (packages) and methods (subs) with which it
|
12
|
-
# is associated, it is more like literate programming in so
|
13
|
-
# far as it just happens to be in the same place as the code,
|
14
|
-
# but need not be.
|
15
|
-
#
|
16
|
-
# We would like to support all the markup the POD provides
|
17
|
-
# so that it will convert happily to HTML. At the moment
|
18
|
-
# I don't think I can do that: time constraints.
|
19
|
-
#
|
20
|
-
|
21
|
-
class RDoc::Parser::PerlPOD < RDoc::Parser
|
22
|
-
|
23
|
-
parse_files_matching(/.p[lm]$/)
|
24
|
-
|
25
|
-
##
|
26
|
-
# Prepare to parse a perl file
|
27
|
-
|
28
|
-
def initialize(top_level, file_name, content, options, stats)
|
29
|
-
super
|
30
|
-
|
31
|
-
preprocess = RDoc::Markup::PreProcess.new @file_name, @options.rdoc_include
|
32
|
-
|
33
|
-
preprocess.handle @content do |directive, param|
|
34
|
-
warn "Unrecognized directive '#{directive}' in #{@file_name}"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
##
|
39
|
-
# Extract the Pod(-like) comments from the code.
|
40
|
-
# At its most basic there will ne no need to distinguish
|
41
|
-
# between the different types of header, etc.
|
42
|
-
#
|
43
|
-
# This uses a simple finite state machine, in a very
|
44
|
-
# procedural pattern. I could "replace case with polymorphism"
|
45
|
-
# but I think it would obscure the intent, scatter the
|
46
|
-
# code all over tha place. This machine is necessary
|
47
|
-
# because POD requires that directives be preceded by
|
48
|
-
# blank lines, so reading line by line is necessary,
|
49
|
-
# and preserving state about what is seen is necesary.
|
50
|
-
|
51
|
-
def scan
|
52
|
-
|
53
|
-
@top_level.comment ||= ""
|
54
|
-
state=:code_blank
|
55
|
-
line_number = 0
|
56
|
-
line = nil
|
57
|
-
|
58
|
-
# This started out as a really long nested case statement,
|
59
|
-
# which also led to repetitive code. I'd like to avoid that
|
60
|
-
# so I'm using a "table" instead.
|
61
|
-
|
62
|
-
# Firstly we need some procs to do the transition and processing
|
63
|
-
# work. Because these are procs they are closures, and they can
|
64
|
-
# use variables in the local scope.
|
65
|
-
#
|
66
|
-
# First, the "nothing to see here" stuff.
|
67
|
-
code_noop = lambda do
|
68
|
-
if line =~ /^\s+$/
|
69
|
-
state = :code_blank
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
pod_noop = lambda do
|
74
|
-
if line =~ /^\s+$/
|
75
|
-
state = :pod_blank
|
76
|
-
end
|
77
|
-
@top_level.comment += filter(line)
|
78
|
-
end
|
79
|
-
|
80
|
-
begin_noop = lambda do
|
81
|
-
if line =~ /^\s+$/
|
82
|
-
state = :begin_blank
|
83
|
-
end
|
84
|
-
@top_level.comment += filter(line)
|
85
|
-
end
|
86
|
-
|
87
|
-
# Now for the blocks that process code and comments...
|
88
|
-
|
89
|
-
transit_to_pod = lambda do
|
90
|
-
case line
|
91
|
-
when /^=(?:pod|head\d+)/
|
92
|
-
state = :pod_no_blank
|
93
|
-
@top_level.comment += filter(line)
|
94
|
-
when /^=over/
|
95
|
-
state = :over_no_blank
|
96
|
-
@top_level.comment += filter(line)
|
97
|
-
when /^=(?:begin|for)/
|
98
|
-
state = :begin_no_blank
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
process_pod = lambda do
|
103
|
-
case line
|
104
|
-
when /^\s*$/
|
105
|
-
state = :pod_blank
|
106
|
-
@top_level.comment += filter(line)
|
107
|
-
when /^=cut/
|
108
|
-
state = :code_no_blank
|
109
|
-
when /^=end/
|
110
|
-
$stderr.puts "'=end' unexpected at #{line_number} in #{@file_name}"
|
111
|
-
else
|
112
|
-
@top_level.comment += filter(line)
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
|
117
|
-
process_begin = lambda do
|
118
|
-
case line
|
119
|
-
when /^\s*$/
|
120
|
-
state = :begin_blank
|
121
|
-
@top_level.comment += filter(line)
|
122
|
-
when /^=end/
|
123
|
-
state = :code_no_blank
|
124
|
-
when /^=cut/
|
125
|
-
$stderr.puts "'=cut' unexpected at #{line_number} in #{@file_name}"
|
126
|
-
else
|
127
|
-
@top_level.comment += filter(line)
|
128
|
-
end
|
129
|
-
|
130
|
-
end
|
131
|
-
|
132
|
-
|
133
|
-
transitions = { :code_no_blank => code_noop,
|
134
|
-
:code_blank => transit_to_pod,
|
135
|
-
:pod_no_blank => pod_noop,
|
136
|
-
:pod_blank => process_pod,
|
137
|
-
:begin_no_blank => begin_noop,
|
138
|
-
:begin_blank => process_begin}
|
139
|
-
@content.each_line do |l|
|
140
|
-
line = l
|
141
|
-
line_number += 1
|
142
|
-
transitions[state].call
|
143
|
-
end # each line
|
144
|
-
|
145
|
-
@top_level
|
146
|
-
end
|
147
|
-
|
148
|
-
# Filter the perl markup that does the same as the rdoc
|
149
|
-
# filtering. Only basic for now. Will probably need a
|
150
|
-
# proper parser to cope with C<<...>> etc
|
151
|
-
def filter(comment)
|
152
|
-
return '' if comment =~ /^=pod\s*$/
|
153
|
-
comment.gsub!(/^=pod/, '==')
|
154
|
-
comment.gsub!(/^=head(\d+)/) do
|
155
|
-
"=" * $1.to_i
|
156
|
-
end
|
157
|
-
comment.gsub!(/=item/, '');
|
158
|
-
comment.gsub!(/C<(.*?)>/, '<tt>\1</tt>');
|
159
|
-
comment.gsub!(/I<(.*?)>/, '<i>\1</i>');
|
160
|
-
comment.gsub!(/B<(.*?)>/, '<b>\1</b>');
|
161
|
-
comment
|
162
|
-
end
|
163
|
-
|
164
|
-
end
|
165
|
-
|
@@ -1,73 +0,0 @@
|
|
1
|
-
require 'stringio'
|
2
|
-
require 'tempfile'
|
3
|
-
require 'rubygems'
|
4
|
-
require 'minitest/autorun'
|
5
|
-
require 'rdoc/options'
|
6
|
-
require 'rdoc/parser/perl'
|
7
|
-
|
8
|
-
class TestRdocParserPerlPOD < MiniTest::Unit::TestCase
|
9
|
-
|
10
|
-
def setup
|
11
|
-
@tempfile = Tempfile.new self.class.name
|
12
|
-
filename = @tempfile.path
|
13
|
-
|
14
|
-
@top_level = RDoc::TopLevel.new filename
|
15
|
-
@fn = filename
|
16
|
-
@options = RDoc::Options.new
|
17
|
-
@stats = RDoc::Stats.new 0
|
18
|
-
end
|
19
|
-
|
20
|
-
def teardown
|
21
|
-
@tempfile.close
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_uncommented_perl
|
25
|
-
content = <<-EOF
|
26
|
-
while (<>) {
|
27
|
-
tr/a-z/A-Z;
|
28
|
-
print
|
29
|
-
}
|
30
|
-
EOF
|
31
|
-
|
32
|
-
comment = util_get_comment content
|
33
|
-
assert_equal "", comment
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_perl_without_pod
|
37
|
-
content = <<-EOF
|
38
|
-
#!/usr/local/bin/perl
|
39
|
-
#
|
40
|
-
#This is a pointless perl program because it does -p.
|
41
|
-
#
|
42
|
-
while(<>) {print;}:
|
43
|
-
EOF
|
44
|
-
|
45
|
-
comment = util_get_comment content
|
46
|
-
assert_equal "", comment
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_simple_pod_no_structure
|
50
|
-
content = <<-EOF
|
51
|
-
=begin pod
|
52
|
-
|
53
|
-
This just contains plain old documentation
|
54
|
-
|
55
|
-
=end
|
56
|
-
EOF
|
57
|
-
comment = util_get_comment content
|
58
|
-
assert_equal 'This just contains plain old documentation', comment
|
59
|
-
end
|
60
|
-
|
61
|
-
# Get the comment of the @top_level when it has processed the input.
|
62
|
-
def util_get_comment(content)
|
63
|
-
parser = util_parser content
|
64
|
-
parser.scan.comment
|
65
|
-
end
|
66
|
-
|
67
|
-
# create a new parser with the supplied content.
|
68
|
-
def util_parser(content)
|
69
|
-
RDoc::Parser::PerlPOD.new @top_level, @fn, content, @options, @stats
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
73
|
-
|