rdoc 6.3.4.1 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +195 -0
- data/History.rdoc +65 -63
- data/LEGAL.rdoc +7 -1
- data/LICENSE.rdoc +6 -0
- data/README.md +236 -0
- data/RI.md +842 -0
- data/TODO.rdoc +8 -7
- data/doc/markup_reference/markdown.md +659 -0
- data/doc/markup_reference/rdoc.rdoc +1169 -0
- data/exe/rdoc +0 -1
- data/lib/rdoc/{alias.rb → code_object/alias.rb} +4 -18
- data/lib/rdoc/{any_method.rb → code_object/any_method.rb} +50 -24
- data/lib/rdoc/{attr.rb → code_object/attr.rb} +16 -14
- data/lib/rdoc/{class_module.rb → code_object/class_module.rb} +225 -58
- data/lib/rdoc/{constant.rb → code_object/constant.rb} +44 -10
- data/lib/rdoc/code_object/context/section.rb +182 -0
- data/lib/rdoc/{context.rb → code_object/context.rb} +78 -106
- data/lib/rdoc/{extend.rb → code_object/extend.rb} +0 -1
- data/lib/rdoc/{include.rb → code_object/include.rb} +0 -1
- data/lib/rdoc/{method_attr.rb → code_object/method_attr.rb} +46 -48
- data/lib/rdoc/{mixin.rb → code_object/mixin.rb} +6 -4
- data/lib/rdoc/{normal_class.rb → code_object/normal_class.rb} +2 -3
- data/lib/rdoc/{normal_module.rb → code_object/normal_module.rb} +2 -3
- data/lib/rdoc/{require.rb → code_object/require.rb} +1 -2
- data/lib/rdoc/{single_class.rb → code_object/single_class.rb} +5 -1
- data/lib/rdoc/{top_level.rb → code_object/top_level.rb} +60 -63
- data/lib/rdoc/code_object.rb +11 -39
- data/lib/rdoc/code_objects.rb +1 -2
- data/lib/rdoc/comment.rb +202 -99
- data/lib/rdoc/cross_reference.rb +75 -62
- data/lib/rdoc/encoding.rb +8 -24
- data/lib/rdoc/erb_partial.rb +1 -2
- data/lib/rdoc/erbio.rb +3 -8
- data/lib/rdoc/generator/aliki.rb +200 -0
- data/lib/rdoc/generator/darkfish.rb +156 -122
- data/lib/rdoc/generator/json_index.rb +8 -24
- data/lib/rdoc/generator/markup.rb +70 -34
- data/lib/rdoc/generator/pot/message_extractor.rb +7 -7
- data/lib/rdoc/generator/pot/po.rb +1 -1
- data/lib/rdoc/generator/pot/po_entry.rb +8 -8
- data/lib/rdoc/generator/pot.rb +1 -5
- data/lib/rdoc/generator/ri.rb +1 -2
- data/lib/rdoc/generator/template/aliki/DESIGN.md +536 -0
- data/lib/rdoc/generator/template/aliki/_aside_toc.rhtml +8 -0
- data/lib/rdoc/generator/template/aliki/_footer.rhtml +23 -0
- data/lib/rdoc/generator/template/aliki/_head.rhtml +163 -0
- data/lib/rdoc/generator/template/aliki/_header.rhtml +56 -0
- data/lib/rdoc/generator/template/aliki/_icons.rhtml +208 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_ancestors.rhtml +16 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_classes.rhtml +15 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +27 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +27 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_installed.rhtml +16 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_methods.rhtml +41 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +67 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_search.rhtml +15 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +21 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_toggle.rhtml +3 -0
- data/lib/rdoc/generator/template/aliki/class.rhtml +230 -0
- data/lib/rdoc/generator/template/aliki/css/rdoc.css +2181 -0
- data/lib/rdoc/generator/template/aliki/index.rhtml +22 -0
- data/lib/rdoc/generator/template/aliki/js/aliki.js +513 -0
- data/lib/rdoc/generator/template/aliki/js/bash_highlighter.js +167 -0
- data/lib/rdoc/generator/template/aliki/js/c_highlighter.js +299 -0
- data/lib/rdoc/generator/template/aliki/js/search_controller.js +129 -0
- data/lib/rdoc/generator/template/aliki/js/search_navigation.js +105 -0
- data/lib/rdoc/generator/template/aliki/js/search_ranker.js +239 -0
- data/lib/rdoc/generator/template/aliki/js/theme-toggle.js +112 -0
- data/lib/rdoc/generator/template/aliki/page.rhtml +18 -0
- data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +14 -0
- data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +65 -0
- data/lib/rdoc/generator/template/darkfish/_footer.rhtml +3 -3
- data/lib/rdoc/generator/template/darkfish/_head.rhtml +35 -14
- data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +1 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +11 -9
- data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +11 -9
- data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +7 -6
- data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +20 -11
- data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +25 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +4 -9
- data/lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml +2 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
- data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +28 -7
- data/lib/rdoc/generator/template/darkfish/_sidebar_toggle.rhtml +3 -0
- data/lib/rdoc/generator/template/darkfish/class.rhtml +138 -90
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +420 -358
- data/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf +0 -0
- data/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf +0 -0
- data/lib/rdoc/generator/template/darkfish/index.rhtml +14 -12
- data/lib/rdoc/generator/template/darkfish/js/darkfish.js +59 -3
- data/lib/rdoc/generator/template/darkfish/js/search.js +15 -5
- data/lib/rdoc/generator/template/darkfish/page.rhtml +7 -6
- data/lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml +12 -9
- data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +24 -21
- data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +35 -21
- data/lib/rdoc/generator/template/json_index/js/navigation.js +8 -8
- data/lib/rdoc/generator/template/json_index/js/searcher.js +48 -6
- data/lib/rdoc/generator.rb +6 -5
- data/lib/rdoc/i18n/text.rb +3 -3
- data/lib/rdoc/i18n.rb +1 -1
- data/lib/rdoc/known_classes.rb +5 -4
- data/lib/rdoc/markdown/entities.rb +0 -1
- data/lib/rdoc/markdown/literals.kpeg +0 -2
- data/lib/rdoc/markdown/literals.rb +0 -1
- data/lib/rdoc/markdown.kpeg +140 -62
- data/lib/rdoc/markdown.rb +1015 -873
- data/lib/rdoc/markup/blank_line.rb +25 -24
- data/lib/rdoc/markup/block_quote.rb +1 -2
- data/lib/rdoc/markup/document.rb +10 -11
- data/lib/rdoc/markup/element.rb +21 -0
- data/lib/rdoc/markup/formatter.rb +134 -115
- data/lib/rdoc/markup/hard_break.rb +30 -28
- data/lib/rdoc/markup/heading.rb +163 -72
- data/lib/rdoc/markup/include.rb +3 -4
- data/lib/rdoc/markup/indented_paragraph.rb +4 -5
- data/lib/rdoc/markup/inline_parser.rb +312 -0
- data/lib/rdoc/markup/list.rb +6 -7
- data/lib/rdoc/markup/list_item.rb +6 -7
- data/lib/rdoc/markup/paragraph.rb +2 -3
- data/lib/rdoc/markup/parser.rb +29 -19
- data/lib/rdoc/markup/pre_process.rb +39 -18
- data/lib/rdoc/markup/raw.rb +52 -56
- data/lib/rdoc/markup/rule.rb +2 -3
- data/lib/rdoc/markup/table.rb +49 -32
- data/lib/rdoc/markup/to_ansi.rb +58 -8
- data/lib/rdoc/markup/to_bs.rb +47 -38
- data/lib/rdoc/markup/to_html.rb +343 -105
- data/lib/rdoc/markup/to_html_crossref.rb +143 -58
- data/lib/rdoc/markup/to_html_snippet.rb +78 -76
- data/lib/rdoc/markup/to_joined_paragraph.rb +3 -9
- data/lib/rdoc/markup/to_label.rb +34 -25
- data/lib/rdoc/markup/to_markdown.rb +74 -51
- data/lib/rdoc/markup/to_rdoc.rb +141 -82
- data/lib/rdoc/markup/to_table_of_contents.rb +4 -5
- data/lib/rdoc/markup/to_test.rb +10 -3
- data/lib/rdoc/markup/to_tt_only.rb +17 -31
- data/lib/rdoc/markup/verbatim.rb +5 -6
- data/lib/rdoc/markup.rb +59 -707
- data/lib/rdoc/options.rb +228 -101
- data/lib/rdoc/parser/c.rb +186 -184
- data/lib/rdoc/parser/changelog.rb +57 -13
- data/lib/rdoc/parser/markdown.rb +0 -2
- data/lib/rdoc/parser/rbs.rb +275 -0
- data/lib/rdoc/parser/rd.rb +0 -1
- data/lib/rdoc/parser/ruby.rb +963 -2024
- data/lib/rdoc/parser/ruby_colorizer.rb +253 -0
- data/lib/rdoc/parser/simple.rb +6 -23
- data/lib/rdoc/parser/text.rb +0 -1
- data/lib/rdoc/parser.rb +35 -14
- data/lib/rdoc/rbs_helper.rb +186 -0
- data/lib/rdoc/rd/block_parser.rb +659 -11
- data/lib/rdoc/rd/block_parser.ry +13 -9
- data/lib/rdoc/rd/inline.rb +4 -5
- data/lib/rdoc/rd/inline_parser.rb +646 -2
- data/lib/rdoc/rd.rb +4 -5
- data/lib/rdoc/rdoc.rb +234 -90
- data/lib/rdoc/ri/driver.rb +172 -172
- data/lib/rdoc/ri/paths.rb +3 -3
- data/lib/rdoc/{servlet.rb → ri/servlet.rb} +28 -27
- data/lib/rdoc/ri/store.rb +0 -1
- data/lib/rdoc/ri/task.rb +3 -3
- data/lib/rdoc/ri.rb +5 -5
- data/lib/rdoc/rubygems_hook.rb +106 -25
- data/lib/rdoc/server.rb +460 -0
- data/lib/rdoc/stats/normal.rb +1 -1
- data/lib/rdoc/stats/quiet.rb +1 -2
- data/lib/rdoc/stats/verbose.rb +3 -5
- data/lib/rdoc/stats.rb +158 -136
- data/lib/rdoc/store.rb +267 -48
- data/lib/rdoc/task.rb +54 -28
- data/lib/rdoc/text.rb +60 -120
- data/lib/rdoc/token_stream.rb +30 -45
- data/lib/rdoc/tom_doc.rb +9 -15
- data/lib/rdoc/version.rb +3 -1
- data/lib/rdoc.rb +90 -52
- data/lib/rubygems_plugin.rb +14 -0
- data/man/ri.1 +2 -0
- data/rdoc-logo.svg +43 -0
- data/rdoc.gemspec +25 -200
- metadata +120 -53
- data/CONTRIBUTING.rdoc +0 -220
- data/ExampleMarkdown.md +0 -37
- data/ExampleRDoc.rdoc +0 -208
- data/Gemfile +0 -12
- data/README.rdoc +0 -129
- data/RI.rdoc +0 -57
- data/Rakefile +0 -101
- data/bin/console +0 -7
- data/bin/setup +0 -6
- data/lib/rdoc/anon_class.rb +0 -11
- data/lib/rdoc/context/section.rb +0 -232
- data/lib/rdoc/generator/template/darkfish/.document +0 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +0 -19
- data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +0 -9
- data/lib/rdoc/generator/template/json_index/.document +0 -1
- data/lib/rdoc/ghost_method.rb +0 -7
- data/lib/rdoc/markup/attr_changer.rb +0 -23
- data/lib/rdoc/markup/attr_span.rb +0 -36
- data/lib/rdoc/markup/attribute_manager.rb +0 -409
- data/lib/rdoc/markup/attributes.rb +0 -71
- data/lib/rdoc/markup/regexp_handling.rb +0 -41
- data/lib/rdoc/meta_method.rb +0 -7
- data/lib/rdoc/parser/ripper_state_lex.rb +0 -590
- data/lib/rdoc/parser/ruby_tools.rb +0 -167
data/lib/rdoc/parser/c.rb
CHANGED
|
@@ -122,6 +122,11 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
122
122
|
|
|
123
123
|
include RDoc::Text
|
|
124
124
|
|
|
125
|
+
# :stopdoc:
|
|
126
|
+
BOOL_ARG_PATTERN = /\s*+\b([01]|Q?(?:true|false)|TRUE|FALSE)\b\s*/
|
|
127
|
+
TRUE_VALUES = ['1', 'TRUE', 'true', 'Qtrue'].freeze
|
|
128
|
+
# :startdoc:
|
|
129
|
+
|
|
125
130
|
##
|
|
126
131
|
# Maps C variable names to names of Ruby classes or modules
|
|
127
132
|
|
|
@@ -163,7 +168,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
163
168
|
# Prepares for parsing a C file. See RDoc::Parser#initialize for details on
|
|
164
169
|
# the arguments.
|
|
165
170
|
|
|
166
|
-
def initialize
|
|
171
|
+
def initialize(top_level, content, options, stats)
|
|
167
172
|
super
|
|
168
173
|
|
|
169
174
|
@known_classes = RDoc::KNOWN_CLASSES.dup
|
|
@@ -173,6 +178,8 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
173
178
|
@classes = load_variable_map :c_class_variables
|
|
174
179
|
@singleton_classes = load_variable_map :c_singleton_class_variables
|
|
175
180
|
|
|
181
|
+
@markup = @options.markup
|
|
182
|
+
|
|
176
183
|
# class_variable => { function => [method, ...] }
|
|
177
184
|
@methods = Hash.new { |h, f| h[f] = Hash.new { |i, m| i[m] = [] } }
|
|
178
185
|
|
|
@@ -186,7 +193,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
186
193
|
|
|
187
194
|
@enclosure_dependencies.extend TSort
|
|
188
195
|
|
|
189
|
-
def @enclosure_dependencies.tsort_each_node
|
|
196
|
+
def @enclosure_dependencies.tsort_each_node(&block)
|
|
190
197
|
each_key(&block)
|
|
191
198
|
rescue TSort::Cyclic => e
|
|
192
199
|
cycle_vars = e.message.scan(/"(.*?)"/).flatten
|
|
@@ -204,7 +211,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
204
211
|
retry
|
|
205
212
|
end
|
|
206
213
|
|
|
207
|
-
def @enclosure_dependencies.tsort_each_child
|
|
214
|
+
def @enclosure_dependencies.tsort_each_child(node, &block)
|
|
208
215
|
fetch(node, []).each(&block)
|
|
209
216
|
end
|
|
210
217
|
end
|
|
@@ -241,9 +248,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
241
248
|
# method that reference the same function.
|
|
242
249
|
|
|
243
250
|
def add_alias(var_name, class_obj, old_name, new_name, comment)
|
|
244
|
-
al = RDoc::Alias.new
|
|
245
|
-
al.singleton = @singleton_classes.key? var_name
|
|
246
|
-
al.comment = comment
|
|
251
|
+
al = RDoc::Alias.new old_name, new_name, comment, singleton: @singleton_classes.key?(var_name)
|
|
247
252
|
al.record_location @top_level
|
|
248
253
|
class_obj.add_alias al
|
|
249
254
|
@stats.add_alias al
|
|
@@ -257,18 +262,18 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
257
262
|
@content.scan(/rb_attr\s*\(
|
|
258
263
|
\s*(\w+),
|
|
259
264
|
\s*([\w"()]+),
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
\s*\w+\);/
|
|
265
|
+
#{BOOL_ARG_PATTERN},
|
|
266
|
+
#{BOOL_ARG_PATTERN},
|
|
267
|
+
\s*\w+\);/xmo) do |var_name, attr_name, read, write|
|
|
263
268
|
handle_attr var_name, attr_name, read, write
|
|
264
269
|
end
|
|
265
270
|
|
|
266
271
|
@content.scan(%r%rb_define_attr\(
|
|
267
272
|
\s*([\w\.]+),
|
|
268
273
|
\s*"([^"]+)",
|
|
269
|
-
|
|
270
|
-
\
|
|
271
|
-
%
|
|
274
|
+
#{BOOL_ARG_PATTERN},
|
|
275
|
+
#{BOOL_ARG_PATTERN}\);
|
|
276
|
+
%xmo) do |var_name, attr_name, read, write|
|
|
272
277
|
handle_attr var_name, attr_name, read, write
|
|
273
278
|
end
|
|
274
279
|
end
|
|
@@ -293,94 +298,92 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
293
298
|
|
|
294
299
|
@content.scan(
|
|
295
300
|
%r(
|
|
301
|
+
(?<open>\s*\(\s*) {0}
|
|
302
|
+
(?<close>\s*\)\s*) {0}
|
|
303
|
+
(?<name>\s*"(?<class_name>\w+)") {0}
|
|
304
|
+
(?<parent>\s*(?:
|
|
305
|
+
(?<parent_name>[\w\*\s\(\)\.\->]+) |
|
|
306
|
+
rb_path2class\s*\(\s*"(?<path>[\w:]+)"\s*\)
|
|
307
|
+
)) {0}
|
|
308
|
+
(?<under>\w+) {0}
|
|
309
|
+
|
|
296
310
|
(?<var_name>[\w\.]+)\s* =
|
|
297
311
|
\s*rb_(?:
|
|
298
312
|
define_(?:
|
|
299
|
-
class(?: # rb_define_class(
|
|
300
|
-
\s
|
|
301
|
-
\
|
|
302
|
-
\
|
|
303
|
-
\)
|
|
304
|
-
|
|
|
305
|
-
_under\s*\( # rb_define_class_under(class_under, class_name2, parent_name2...)
|
|
306
|
-
\s* (?<class_under>\w+),
|
|
307
|
-
\s* "(?<class_name_2>\w+)",
|
|
308
|
-
\s*
|
|
309
|
-
(?:
|
|
310
|
-
(?<parent_name_2>[\w\*\s\(\)\.\->]+) |
|
|
311
|
-
rb_path2class\("(?<path>[\w:]+)"\)
|
|
312
|
-
)
|
|
313
|
+
class(?: # rb_define_class(name, parent_name)
|
|
314
|
+
\(\s*
|
|
315
|
+
\g<name>,
|
|
316
|
+
\g<parent>
|
|
313
317
|
\s*\)
|
|
318
|
+
|
|
|
319
|
+
_under\g<open> # rb_define_class_under(under, name, parent_name...)
|
|
320
|
+
\g<under>,
|
|
321
|
+
\g<name>,
|
|
322
|
+
\g<parent>
|
|
323
|
+
\g<close>
|
|
314
324
|
)
|
|
315
325
|
|
|
|
316
|
-
module
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
326
|
+
(?<module>)
|
|
327
|
+
module(?: # rb_define_module(name)
|
|
328
|
+
\g<open>
|
|
329
|
+
\g<name>
|
|
330
|
+
\g<close>
|
|
320
331
|
|
|
|
321
|
-
_under\
|
|
322
|
-
\
|
|
323
|
-
\
|
|
324
|
-
\
|
|
332
|
+
_under\g<open> # rb_define_module_under(under, name)
|
|
333
|
+
\g<under>,
|
|
334
|
+
\g<name>
|
|
335
|
+
\g<close>
|
|
325
336
|
)
|
|
326
337
|
)
|
|
327
338
|
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
\
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
\
|
|
334
|
-
|
|
339
|
+
(?<attributes>(?:\s*"\w+",)*\s*NULL\s*) {0}
|
|
340
|
+
struct_define(?:
|
|
341
|
+
\g<open> # rb_struct_define(name, ...)
|
|
342
|
+
\g<name>,
|
|
343
|
+
|
|
|
344
|
+
_under\g<open> # rb_struct_define_under(under, name, ...)
|
|
345
|
+
\g<under>,
|
|
346
|
+
\g<name>,
|
|
347
|
+
|
|
|
348
|
+
_without_accessor(?:
|
|
349
|
+
\g<open> # rb_struct_define_without_accessor(name, parent_name, ...)
|
|
350
|
+
|
|
|
351
|
+
_under\g<open> # rb_struct_define_without_accessor_under(under, name, parent_name, ...)
|
|
352
|
+
\g<under>,
|
|
353
|
+
)
|
|
354
|
+
\g<name>,
|
|
355
|
+
\g<parent>,
|
|
356
|
+
\s*\w+, # Allocation function
|
|
357
|
+
)
|
|
358
|
+
\g<attributes>
|
|
359
|
+
\g<close>
|
|
335
360
|
|
|
|
336
|
-
singleton_class\
|
|
337
|
-
|
|
338
|
-
\
|
|
361
|
+
singleton_class\g<open> # rb_singleton_class(target_class_name)
|
|
362
|
+
(?<target_class_name>\w+)
|
|
363
|
+
\g<close>
|
|
339
364
|
)
|
|
340
365
|
)mx
|
|
341
366
|
) do
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
parent_name = $~[:parent_name_1]
|
|
347
|
-
#under = nil
|
|
348
|
-
else
|
|
349
|
-
class_name = $~[:class_name_2]
|
|
350
|
-
if class_name
|
|
351
|
-
# rb_define_class_under(class_under, class_name2, parent_name2...)
|
|
352
|
-
parent_name = $~[:parent_name_2] || $~[:path]
|
|
353
|
-
under = $~[:class_under]
|
|
354
|
-
else
|
|
355
|
-
class_name = $~[:class_name_3]
|
|
356
|
-
if class_name
|
|
357
|
-
# rb_struct_define_without_accessor(class_name_3, parent_name_3, ...)
|
|
358
|
-
parent_name = $~[:parent_name_3]
|
|
359
|
-
#under = nil
|
|
360
|
-
else
|
|
361
|
-
type = :module
|
|
362
|
-
class_name = $~[:module_name_1]
|
|
363
|
-
#parent_name = nil
|
|
364
|
-
if class_name
|
|
365
|
-
# rb_define_module(module_name_1)
|
|
366
|
-
#under = nil
|
|
367
|
-
else
|
|
368
|
-
class_name = $~[:module_name_2]
|
|
369
|
-
if class_name
|
|
370
|
-
# rb_define_module_under(module_under, module_name_1)
|
|
371
|
-
under = $~[:module_under]
|
|
372
|
-
else
|
|
373
|
-
# rb_singleton_class(target_class_name)
|
|
374
|
-
target_class_name = $~[:target_class_name]
|
|
375
|
-
handle_singleton $~[:var_name], target_class_name
|
|
376
|
-
next
|
|
377
|
-
end
|
|
378
|
-
end
|
|
379
|
-
end
|
|
380
|
-
end
|
|
367
|
+
if target_class_name = $~[:target_class_name]
|
|
368
|
+
# rb_singleton_class(target_class_name)
|
|
369
|
+
handle_singleton $~[:var_name], target_class_name
|
|
370
|
+
next
|
|
381
371
|
end
|
|
382
372
|
|
|
383
|
-
|
|
373
|
+
var_name = $~[:var_name]
|
|
374
|
+
type = $~[:module] ? :module : :class
|
|
375
|
+
class_name = $~[:class_name]
|
|
376
|
+
parent_name = $~[:parent_name] || $~[:path]
|
|
377
|
+
under = $~[:under]
|
|
378
|
+
attributes = $~[:attributes]
|
|
379
|
+
|
|
380
|
+
handle_class_module(var_name, type, class_name, parent_name, under)
|
|
381
|
+
if attributes and !parent_name # rb_struct_define *not* without_accessor
|
|
382
|
+
true_flag = 'Qtrue'
|
|
383
|
+
attributes.scan(/"\K\w+(?=")/) do |attr_name|
|
|
384
|
+
handle_attr var_name, attr_name, true_flag, true_flag
|
|
385
|
+
end
|
|
386
|
+
end
|
|
384
387
|
end
|
|
385
388
|
end
|
|
386
389
|
|
|
@@ -400,6 +403,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
400
403
|
\s*(.*?)\s*\)\s*;
|
|
401
404
|
%xm) do |type, var_name, const_name, definition|
|
|
402
405
|
var_name = "rb_cObject" if !var_name or var_name == "rb_mKernel"
|
|
406
|
+
type = "const" if type == "global_const"
|
|
403
407
|
handle_constants type, var_name, const_name, definition
|
|
404
408
|
end
|
|
405
409
|
|
|
@@ -435,11 +439,11 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
435
439
|
# Scans #content for rb_include_module
|
|
436
440
|
|
|
437
441
|
def do_includes
|
|
438
|
-
@content.scan(/rb_include_module\s*\(\s*(\w+?),\s*(\w+?)\s*\)/) do |c,m|
|
|
442
|
+
@content.scan(/rb_include_module\s*\(\s*(\w+?),\s*(\w+?)\s*\)/) do |c, m|
|
|
439
443
|
next unless cls = @classes[c]
|
|
440
444
|
m = @known_classes[m] || m
|
|
441
445
|
|
|
442
|
-
comment =
|
|
446
|
+
comment = new_comment '', @top_level, :c
|
|
443
447
|
incl = cls.add_include RDoc::Include.new(m, comment)
|
|
444
448
|
incl.record_location @top_level
|
|
445
449
|
end
|
|
@@ -515,13 +519,13 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
515
519
|
# Finds the comment for an alias on +class_name+ from +new_name+ to
|
|
516
520
|
# +old_name+
|
|
517
521
|
|
|
518
|
-
def find_alias_comment
|
|
522
|
+
def find_alias_comment(class_name, new_name, old_name)
|
|
519
523
|
content =~ %r%((?>/\*.*?\*/\s+))
|
|
520
524
|
rb_define_alias\(\s*#{Regexp.escape class_name}\s*,
|
|
521
525
|
\s*"#{Regexp.escape new_name}"\s*,
|
|
522
526
|
\s*"#{Regexp.escape old_name}"\s*\);%xm
|
|
523
527
|
|
|
524
|
-
|
|
528
|
+
new_comment($1 || '', @top_level, :c)
|
|
525
529
|
end
|
|
526
530
|
|
|
527
531
|
##
|
|
@@ -533,7 +537,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
533
537
|
# +read+ and +write+ are the read/write flags ('1' or '0'). Either both or
|
|
534
538
|
# neither must be provided.
|
|
535
539
|
|
|
536
|
-
def find_attr_comment
|
|
540
|
+
def find_attr_comment(var_name, attr_name, read = nil, write = nil)
|
|
537
541
|
attr_name = Regexp.escape attr_name
|
|
538
542
|
|
|
539
543
|
rw = if read and write then
|
|
@@ -560,29 +564,28 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
560
564
|
''
|
|
561
565
|
end
|
|
562
566
|
|
|
563
|
-
|
|
567
|
+
new_comment comment, @top_level, :c
|
|
564
568
|
end
|
|
565
569
|
|
|
566
570
|
##
|
|
567
571
|
# Generate a Ruby-method table
|
|
568
572
|
|
|
569
|
-
def gen_body_table
|
|
573
|
+
def gen_body_table(file_content)
|
|
570
574
|
table = {}
|
|
571
575
|
file_content.scan(%r{
|
|
572
576
|
((?>/\*.*?\*/\s*)?)
|
|
573
|
-
((
|
|
574
|
-
|
|
575
|
-
\s*(?:\([^)]*\))(?:[^\);]|$))
|
|
577
|
+
((?:\w+\s+){0,2} VALUE\s+(\w+)
|
|
578
|
+
\s*(?:\([^\)]*\))(?:[^\);]|$))
|
|
576
579
|
| ((?>/\*.*?\*/\s*))^\s*(\#\s*define\s+(\w+)\s+(\w+))
|
|
577
580
|
| ^\s*\#\s*define\s+(\w+)\s+(\w+)
|
|
578
581
|
}xm) do
|
|
579
582
|
case
|
|
580
|
-
when $
|
|
581
|
-
table[
|
|
582
|
-
when $
|
|
583
|
-
table[
|
|
584
|
-
when $8
|
|
585
|
-
table[
|
|
583
|
+
when name = $3
|
|
584
|
+
table[name] = [:func_def, $1, $2, $~.offset(2)] if !(t = table[name]) || t[0] != :func_def
|
|
585
|
+
when name = $6
|
|
586
|
+
table[name] = [:macro_def, $4, $5, $~.offset(5), $7] if !(t = table[name]) || t[0] == :macro_alias
|
|
587
|
+
when name = $8
|
|
588
|
+
table[name] ||= [:macro_alias, $9]
|
|
586
589
|
end
|
|
587
590
|
end
|
|
588
591
|
table
|
|
@@ -591,7 +594,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
591
594
|
##
|
|
592
595
|
# Find the C code corresponding to a Ruby method
|
|
593
596
|
|
|
594
|
-
def find_body
|
|
597
|
+
def find_body(class_name, meth_name, meth_obj, file_content, quiet = false)
|
|
595
598
|
if file_content
|
|
596
599
|
@body_table ||= {}
|
|
597
600
|
@body_table[file_content] ||= gen_body_table file_content
|
|
@@ -600,12 +603,10 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
600
603
|
|
|
601
604
|
case type
|
|
602
605
|
when :func_def
|
|
603
|
-
comment =
|
|
606
|
+
comment = new_comment args[0], @top_level, :c
|
|
604
607
|
body = args[1]
|
|
605
608
|
offset, = args[2]
|
|
606
609
|
|
|
607
|
-
comment.remove_private if comment
|
|
608
|
-
|
|
609
610
|
# try to find the whole body
|
|
610
611
|
body = $& if /#{Regexp.escape body}[^(]*?\{.*?^\}/m =~ file_content
|
|
611
612
|
|
|
@@ -618,11 +619,10 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
618
619
|
override_comment = find_override_comment class_name, meth_obj
|
|
619
620
|
comment = override_comment if override_comment
|
|
620
621
|
|
|
621
|
-
comment.normalize
|
|
622
622
|
find_modifiers comment, meth_obj if comment
|
|
623
623
|
|
|
624
624
|
#meth_obj.params = params
|
|
625
|
-
meth_obj.start_collecting_tokens
|
|
625
|
+
meth_obj.start_collecting_tokens(:c)
|
|
626
626
|
tk = { :line_no => 1, :char_no => 1, :text => body }
|
|
627
627
|
meth_obj.add_token tk
|
|
628
628
|
meth_obj.comment = comment
|
|
@@ -630,16 +630,15 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
630
630
|
|
|
631
631
|
body
|
|
632
632
|
when :macro_def
|
|
633
|
-
comment =
|
|
633
|
+
comment = new_comment args[0], @top_level, :c
|
|
634
634
|
body = args[1]
|
|
635
635
|
offset, = args[2]
|
|
636
636
|
|
|
637
637
|
find_body class_name, args[3], meth_obj, file_content, true
|
|
638
638
|
|
|
639
|
-
comment.normalize
|
|
640
639
|
find_modifiers comment, meth_obj
|
|
641
640
|
|
|
642
|
-
meth_obj.start_collecting_tokens
|
|
641
|
+
meth_obj.start_collecting_tokens(:c)
|
|
643
642
|
tk = { :line_no => 1, :char_no => 1, :text => body }
|
|
644
643
|
meth_obj.add_token tk
|
|
645
644
|
meth_obj.comment = comment
|
|
@@ -660,7 +659,6 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
660
659
|
comment = find_override_comment class_name, meth_obj
|
|
661
660
|
|
|
662
661
|
if comment then
|
|
663
|
-
comment.normalize
|
|
664
662
|
find_modifiers comment, meth_obj
|
|
665
663
|
meth_obj.comment = comment
|
|
666
664
|
|
|
@@ -675,15 +673,17 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
675
673
|
##
|
|
676
674
|
# Finds a RDoc::NormalClass or RDoc::NormalModule for +raw_name+
|
|
677
675
|
|
|
678
|
-
def find_class(raw_name, name)
|
|
676
|
+
def find_class(raw_name, name, base_name = nil)
|
|
679
677
|
unless @classes[raw_name]
|
|
680
678
|
if raw_name =~ /^rb_m/
|
|
681
679
|
container = @top_level.add_module RDoc::NormalModule, name
|
|
682
680
|
else
|
|
683
681
|
container = @top_level.add_class RDoc::NormalClass, name
|
|
684
682
|
end
|
|
683
|
+
container.name = base_name if base_name
|
|
685
684
|
|
|
686
685
|
container.record_location @top_level
|
|
686
|
+
@top_level.add_to_classes_or_modules container
|
|
687
687
|
@classes[raw_name] = container
|
|
688
688
|
end
|
|
689
689
|
@classes[raw_name]
|
|
@@ -715,14 +715,14 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
715
715
|
# */
|
|
716
716
|
# VALUE cFoo = rb_define_class("Foo", rb_cObject);
|
|
717
717
|
|
|
718
|
-
def find_class_comment
|
|
718
|
+
def find_class_comment(class_name, class_mod)
|
|
719
719
|
comment = nil
|
|
720
720
|
|
|
721
721
|
if @content =~ %r%
|
|
722
722
|
((?>/\*.*?\*/\s+))
|
|
723
723
|
(static\s+)?
|
|
724
724
|
void\s+
|
|
725
|
-
|
|
725
|
+
Init(?:VM)?_(?i:#{class_name})\s*(?:_\(\s*)?\(\s*(?:void\s*)?\)%xm then
|
|
726
726
|
comment = $1.sub(%r%Document-(?:class|module):\s+#{class_name}%, '')
|
|
727
727
|
elsif @content =~ %r%Document-(?:class|module):\s+#{class_name}\s*?
|
|
728
728
|
(?:<\s+[:,\w]+)?\n((?>.*?\*/))%xm then
|
|
@@ -737,8 +737,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
737
737
|
comment = ''
|
|
738
738
|
end
|
|
739
739
|
|
|
740
|
-
comment =
|
|
741
|
-
comment.normalize
|
|
740
|
+
comment = new_comment comment, @top_level, :c
|
|
742
741
|
|
|
743
742
|
look_for_directives_in class_mod, comment
|
|
744
743
|
|
|
@@ -748,20 +747,34 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
748
747
|
##
|
|
749
748
|
# Generate a const table
|
|
750
749
|
|
|
751
|
-
def gen_const_table
|
|
750
|
+
def gen_const_table(file_content)
|
|
752
751
|
table = {}
|
|
753
752
|
@content.scan(%r{
|
|
754
|
-
((?>^\s*/\*.*?\*/\s+))
|
|
755
|
-
rb_define_(
|
|
756
|
-
"(
|
|
753
|
+
(?<doc>(?>^\s*/\*.*?\*/\s+))
|
|
754
|
+
rb_define_(?<type>\w+)\(\s*(?:\w+),\s*
|
|
755
|
+
"(?<name>\w+)"\s*,
|
|
757
756
|
.*?\)\s*;
|
|
757
|
+
| (?<doc>(?>^\s*/\*.*?\*/\s+))
|
|
758
|
+
rb_define_global_(?<type>const)\(\s*
|
|
759
|
+
"(?<name>\w+)"\s*,
|
|
760
|
+
.*?\)\s*;
|
|
761
|
+
| (?<doc>(?>^\s*/\*.*?\*/\s+))
|
|
762
|
+
rb_file_(?<type>const)\(\s*
|
|
763
|
+
"(?<name>\w+)"\s*,
|
|
764
|
+
.*?\)\s*;
|
|
765
|
+
| (?<doc>(?>^\s*/\*.*?\*/\s+))
|
|
766
|
+
rb_curses_define_(?<type>const)\(\s*
|
|
767
|
+
(?<name>\w+)
|
|
768
|
+
\s*\)\s*;
|
|
758
769
|
| Document-(?:const|global|variable):\s
|
|
759
|
-
((?:\w+::)*\w+)
|
|
760
|
-
\s*?\n((?>.*?\*/))
|
|
770
|
+
(?<name>(?:\w+::)*\w+)
|
|
771
|
+
\s*?\n(?<doc>(?>.*?\*/))
|
|
761
772
|
}mxi) do
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
773
|
+
name, doc, type = $~.values_at(:name, :doc, :type)
|
|
774
|
+
if type
|
|
775
|
+
table[[type, name]] = doc
|
|
776
|
+
else
|
|
777
|
+
table[name] = "/*\n" + doc
|
|
765
778
|
end
|
|
766
779
|
end
|
|
767
780
|
table
|
|
@@ -782,38 +795,35 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
782
795
|
table[const_name] ||
|
|
783
796
|
''
|
|
784
797
|
|
|
785
|
-
|
|
798
|
+
new_comment comment, @top_level, :c
|
|
786
799
|
end
|
|
787
800
|
|
|
788
801
|
##
|
|
789
802
|
# Handles modifiers in +comment+ and updates +meth_obj+ as appropriate.
|
|
790
803
|
|
|
791
|
-
def find_modifiers
|
|
792
|
-
comment.normalize
|
|
793
|
-
comment.extract_call_seq meth_obj
|
|
794
|
-
|
|
804
|
+
def find_modifiers(comment, meth_obj)
|
|
795
805
|
look_for_directives_in meth_obj, comment
|
|
796
806
|
end
|
|
797
807
|
|
|
798
808
|
##
|
|
799
809
|
# Finds a <tt>Document-method</tt> override for +meth_obj+ on +class_name+
|
|
800
810
|
|
|
801
|
-
def find_override_comment
|
|
811
|
+
def find_override_comment(class_name, meth_obj)
|
|
802
812
|
name = Regexp.escape meth_obj.name
|
|
803
813
|
prefix = Regexp.escape meth_obj.name_prefix
|
|
804
814
|
|
|
805
815
|
comment = if @content =~ %r%Document-method:
|
|
806
816
|
\s+#{class_name}#{prefix}#{name}
|
|
807
817
|
\s*?\n((?>.*?\*/))%xm then
|
|
808
|
-
"
|
|
818
|
+
"/*\n#{$1}"
|
|
809
819
|
elsif @content =~ %r%Document-method:
|
|
810
820
|
\s#{name}\s*?\n((?>.*?\*/))%xm then
|
|
811
|
-
"
|
|
821
|
+
"/*\n#{$1}"
|
|
812
822
|
end
|
|
813
823
|
|
|
814
824
|
return unless comment
|
|
815
825
|
|
|
816
|
-
|
|
826
|
+
new_comment comment, @top_level, :c
|
|
817
827
|
end
|
|
818
828
|
|
|
819
829
|
##
|
|
@@ -822,8 +832,8 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
822
832
|
|
|
823
833
|
def handle_attr(var_name, attr_name, read, write)
|
|
824
834
|
rw = ''
|
|
825
|
-
rw += 'R' if
|
|
826
|
-
rw += 'W' if
|
|
835
|
+
rw += 'R' if TRUE_VALUES.include?(read)
|
|
836
|
+
rw += 'W' if TRUE_VALUES.include?(write)
|
|
827
837
|
|
|
828
838
|
class_name = @known_classes[var_name]
|
|
829
839
|
|
|
@@ -838,7 +848,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
838
848
|
|
|
839
849
|
name = attr_name.gsub(/rb_intern(?:_const)?\("([^"]+)"\)/, '\1')
|
|
840
850
|
|
|
841
|
-
attr = RDoc::Attr.new
|
|
851
|
+
attr = RDoc::Attr.new name, rw, comment
|
|
842
852
|
|
|
843
853
|
attr.record_location @top_level
|
|
844
854
|
class_obj.add_attribute attr
|
|
@@ -889,6 +899,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
889
899
|
end
|
|
890
900
|
|
|
891
901
|
cm.record_location enclosure.top_level
|
|
902
|
+
enclosure.top_level.add_to_classes_or_modules cm
|
|
892
903
|
|
|
893
904
|
find_class_comment cm.full_name, cm
|
|
894
905
|
|
|
@@ -919,7 +930,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
919
930
|
|
|
920
931
|
return unless class_name
|
|
921
932
|
|
|
922
|
-
class_obj = find_class var_name, class_name
|
|
933
|
+
class_obj = find_class var_name, class_name, class_name[/::\K[^:]+\z/]
|
|
923
934
|
|
|
924
935
|
unless class_obj then
|
|
925
936
|
@options.warn 'Enclosing class or module %p is not known' % [const_name]
|
|
@@ -933,21 +944,20 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
933
944
|
# "/* definition: comment */" form. The literal ':' and '\' characters
|
|
934
945
|
# can be escaped with a backslash.
|
|
935
946
|
if type.downcase == 'const' then
|
|
936
|
-
|
|
947
|
+
if /\A(.+?)?:(?!\S)/ =~ comment.text
|
|
948
|
+
new_definition, new_comment = $1, $'
|
|
937
949
|
|
|
938
|
-
|
|
939
|
-
if new_definition.empty? then # Default to literal C definition
|
|
950
|
+
if !new_definition # Default to literal C definition
|
|
940
951
|
new_definition = definition
|
|
941
952
|
else
|
|
942
|
-
new_definition = new_definition.gsub(
|
|
943
|
-
new_definition = new_definition.gsub("\\", '\\')
|
|
953
|
+
new_definition = new_definition.gsub(/\\([\\:])/, '\1')
|
|
944
954
|
end
|
|
945
955
|
|
|
946
956
|
new_definition.sub!(/\A(\s+)/, '')
|
|
947
957
|
|
|
948
958
|
new_comment = "#{$1}#{new_comment.lstrip}"
|
|
949
959
|
|
|
950
|
-
new_comment =
|
|
960
|
+
new_comment = self.new_comment(new_comment, @top_level, :c)
|
|
951
961
|
|
|
952
962
|
con = RDoc::Constant.new const_name, new_definition, new_comment
|
|
953
963
|
else
|
|
@@ -996,10 +1006,9 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
996
1006
|
type = 'method' # force public
|
|
997
1007
|
end
|
|
998
1008
|
|
|
999
|
-
|
|
1009
|
+
singleton = singleton || %w[singleton_method module_function].include?(type)
|
|
1010
|
+
meth_obj = RDoc::AnyMethod.new meth_name, singleton: singleton
|
|
1000
1011
|
meth_obj.c_function = function
|
|
1001
|
-
meth_obj.singleton =
|
|
1002
|
-
singleton || %w[singleton_method module_function].include?(type)
|
|
1003
1012
|
|
|
1004
1013
|
p_count = Integer(param_count) rescue -1
|
|
1005
1014
|
|
|
@@ -1007,7 +1016,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
1007
1016
|
file_name = File.join @file_dir, source_file
|
|
1008
1017
|
|
|
1009
1018
|
if File.exist? file_name then
|
|
1010
|
-
file_content =
|
|
1019
|
+
file_content = RDoc::Encoding.read_file file_name, @options.encoding
|
|
1011
1020
|
else
|
|
1012
1021
|
@options.warn "unknown source #{source_file} for #{meth_name} in #{@file_name}"
|
|
1013
1022
|
end
|
|
@@ -1023,12 +1032,18 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
1023
1032
|
elsif p_count == -1 then # argc, argv
|
|
1024
1033
|
rb_scan_args body
|
|
1025
1034
|
else
|
|
1026
|
-
|
|
1035
|
+
args = (1..p_count).map { |i| "p#{i}" }
|
|
1036
|
+
"(#{args.join ', '})"
|
|
1027
1037
|
end
|
|
1028
1038
|
|
|
1029
1039
|
|
|
1030
1040
|
meth_obj.record_location @top_level
|
|
1041
|
+
|
|
1042
|
+
if meth_obj.section_title
|
|
1043
|
+
class_obj.temporary_section = class_obj.add_section(meth_obj.section_title)
|
|
1044
|
+
end
|
|
1031
1045
|
class_obj.add_method meth_obj
|
|
1046
|
+
|
|
1032
1047
|
@stats.add_method meth_obj
|
|
1033
1048
|
meth_obj.visibility = :private if 'private_method' == type
|
|
1034
1049
|
end
|
|
@@ -1038,27 +1053,13 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
1038
1053
|
##
|
|
1039
1054
|
# Registers a singleton class +sclass_var+ as a singleton of +class_var+
|
|
1040
1055
|
|
|
1041
|
-
def handle_singleton
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
@
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
##
|
|
1049
|
-
# Normalizes tabs in +body+
|
|
1050
|
-
|
|
1051
|
-
def handle_tab_width(body)
|
|
1052
|
-
if /\t/ =~ body
|
|
1053
|
-
tab_width = @options.tab_width
|
|
1054
|
-
body.split(/\n/).map do |line|
|
|
1055
|
-
1 while line.gsub!(/\t+/) do
|
|
1056
|
-
' ' * (tab_width * $&.length - $`.length % tab_width)
|
|
1057
|
-
end && $~
|
|
1058
|
-
line
|
|
1059
|
-
end.join "\n"
|
|
1060
|
-
else
|
|
1061
|
-
body
|
|
1056
|
+
def handle_singleton(sclass_var, class_var)
|
|
1057
|
+
if (klass = @classes[class_var])
|
|
1058
|
+
@classes[sclass_var] = klass
|
|
1059
|
+
end
|
|
1060
|
+
if (class_name = @known_classes[class_var])
|
|
1061
|
+
@known_classes[sclass_var] = class_name
|
|
1062
|
+
@singleton_classes[sclass_var] = class_name
|
|
1062
1063
|
end
|
|
1063
1064
|
end
|
|
1064
1065
|
|
|
@@ -1066,7 +1067,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
1066
1067
|
# Loads the variable map with the given +name+ from the RDoc::Store, if
|
|
1067
1068
|
# present.
|
|
1068
1069
|
|
|
1069
|
-
def load_variable_map
|
|
1070
|
+
def load_variable_map(map_name)
|
|
1070
1071
|
return {} unless files = @store.cache[map_name]
|
|
1071
1072
|
return {} unless name_map = files[@file_name]
|
|
1072
1073
|
|
|
@@ -1090,23 +1091,16 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
1090
1091
|
# Look for directives in a normal comment block:
|
|
1091
1092
|
#
|
|
1092
1093
|
# /*
|
|
1093
|
-
# * :
|
|
1094
|
+
# * :nodoc:
|
|
1094
1095
|
# */
|
|
1095
1096
|
#
|
|
1096
1097
|
# This method modifies the +comment+
|
|
1097
1098
|
|
|
1098
|
-
def look_for_directives_in
|
|
1099
|
-
@preprocess.
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
''
|
|
1104
|
-
when 'title' then
|
|
1105
|
-
@options.default_title = param if @options.respond_to? :default_title=
|
|
1106
|
-
''
|
|
1107
|
-
end
|
|
1108
|
-
end
|
|
1109
|
-
|
|
1099
|
+
def look_for_directives_in(context, comment)
|
|
1100
|
+
comment.text, format = @preprocess.run_pre_processes(comment.text, context, comment.line || 1, :c)
|
|
1101
|
+
comment.format = format if format
|
|
1102
|
+
@preprocess.run_post_processes(comment, context)
|
|
1103
|
+
comment.normalized = true
|
|
1110
1104
|
comment
|
|
1111
1105
|
end
|
|
1112
1106
|
|
|
@@ -1114,7 +1108,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
1114
1108
|
# Extracts parameters from the +method_body+ and returns a method
|
|
1115
1109
|
# parameter string. Follows 1.9.3dev's scan-arg-spec, see README.EXT
|
|
1116
1110
|
|
|
1117
|
-
def rb_scan_args
|
|
1111
|
+
def rb_scan_args(method_body)
|
|
1118
1112
|
method_body =~ /rb_scan_args\((.*?)\)/m
|
|
1119
1113
|
return '(*args)' unless $1
|
|
1120
1114
|
|
|
@@ -1222,4 +1216,12 @@ class RDoc::Parser::C < RDoc::Parser
|
|
|
1222
1216
|
@top_level
|
|
1223
1217
|
end
|
|
1224
1218
|
|
|
1219
|
+
##
|
|
1220
|
+
# Creates a RDoc::Comment instance.
|
|
1221
|
+
|
|
1222
|
+
def new_comment(text = nil, location = nil, language = nil)
|
|
1223
|
+
RDoc::Comment.new(text, location, language).tap do |comment|
|
|
1224
|
+
comment.format = @markup
|
|
1225
|
+
end
|
|
1226
|
+
end
|
|
1225
1227
|
end
|