rdoc 3.1 → 6.3.3
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.
- checksums.yaml +7 -0
- data/CONTRIBUTING.rdoc +220 -0
- data/CVE-2013-0256.rdoc +49 -0
- data/ExampleMarkdown.md +37 -0
- data/ExampleRDoc.rdoc +208 -0
- data/Gemfile +12 -0
- data/History.rdoc +1666 -0
- data/LEGAL.rdoc +50 -0
- data/LICENSE.rdoc +57 -0
- data/README.rdoc +129 -0
- data/RI.rdoc +57 -0
- data/Rakefile +84 -81
- data/TODO.rdoc +59 -0
- data/bin/console +7 -0
- data/bin/setup +6 -0
- data/{bin → exe}/rdoc +11 -2
- data/exe/ri +12 -0
- data/lib/rdoc/alias.rb +1 -2
- data/lib/rdoc/anon_class.rb +3 -2
- data/lib/rdoc/any_method.rb +234 -40
- data/lib/rdoc/attr.rb +79 -11
- data/lib/rdoc/class_module.rb +443 -71
- data/lib/rdoc/code_object.rb +216 -20
- data/lib/rdoc/code_objects.rb +4 -21
- data/lib/rdoc/comment.rb +250 -0
- data/lib/rdoc/constant.rb +110 -9
- data/lib/rdoc/context/section.rb +232 -0
- data/lib/rdoc/context.rb +392 -172
- data/lib/rdoc/cross_reference.rb +202 -0
- data/lib/rdoc/encoding.rb +83 -28
- data/lib/rdoc/erb_partial.rb +19 -0
- data/lib/rdoc/erbio.rb +8 -3
- data/lib/rdoc/extend.rb +10 -0
- data/lib/rdoc/generator/darkfish.rb +507 -84
- data/lib/rdoc/generator/json_index.rb +300 -0
- data/lib/rdoc/generator/markup.rb +27 -74
- data/lib/rdoc/generator/pot/message_extractor.rb +68 -0
- data/lib/rdoc/generator/pot/po.rb +84 -0
- data/lib/rdoc/generator/pot/po_entry.rb +141 -0
- data/lib/rdoc/generator/pot.rb +98 -0
- data/lib/rdoc/generator/ri.rb +8 -62
- data/lib/rdoc/generator/template/darkfish/_footer.rhtml +5 -0
- data/lib/rdoc/generator/template/darkfish/_head.rhtml +22 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +19 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +9 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +15 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +9 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +15 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +15 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +12 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_navigation.rhtml +11 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +12 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +11 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml +14 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +11 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +18 -0
- data/lib/rdoc/generator/template/darkfish/class.rhtml +172 -0
- data/lib/rdoc/generator/template/darkfish/css/fonts.css +167 -0
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +639 -0
- data/lib/rdoc/generator/template/darkfish/fonts/Lato-Light.ttf +0 -0
- data/lib/rdoc/generator/template/darkfish/fonts/Lato-LightItalic.ttf +0 -0
- data/lib/rdoc/generator/template/darkfish/fonts/Lato-Regular.ttf +0 -0
- data/lib/rdoc/generator/template/darkfish/fonts/Lato-RegularItalic.ttf +0 -0
- 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/images/add.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/arrow_up.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/delete.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/tag_blue.png +0 -0
- data/lib/rdoc/generator/template/darkfish/images/transparent.png +0 -0
- data/lib/rdoc/generator/template/darkfish/index.rhtml +18 -60
- data/lib/rdoc/generator/template/darkfish/js/darkfish.js +51 -83
- data/lib/rdoc/generator/template/darkfish/js/search.js +110 -0
- data/lib/rdoc/generator/template/darkfish/page.rhtml +18 -0
- data/lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml +18 -0
- data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +62 -0
- data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +58 -0
- data/lib/rdoc/generator/template/json_index/.document +1 -0
- data/lib/rdoc/generator/template/json_index/js/navigation.js +105 -0
- data/lib/rdoc/generator/template/json_index/js/searcher.js +229 -0
- data/lib/rdoc/generator.rb +24 -13
- data/lib/rdoc/ghost_method.rb +1 -2
- data/lib/rdoc/i18n/locale.rb +102 -0
- data/lib/rdoc/i18n/text.rb +126 -0
- data/lib/rdoc/i18n.rb +10 -0
- data/lib/rdoc/include.rb +5 -95
- data/lib/rdoc/known_classes.rb +5 -2
- data/lib/rdoc/markdown/entities.rb +2132 -0
- data/lib/rdoc/markdown/literals.kpeg +23 -0
- data/lib/rdoc/markdown/literals.rb +416 -0
- data/lib/rdoc/markdown.kpeg +1237 -0
- data/lib/rdoc/markdown.rb +16684 -0
- data/lib/rdoc/markup/attr_changer.rb +23 -0
- data/lib/rdoc/markup/attr_span.rb +36 -0
- data/lib/rdoc/markup/attribute_manager.rb +135 -62
- data/lib/rdoc/markup/attributes.rb +71 -0
- data/lib/rdoc/markup/blank_line.rb +1 -0
- data/lib/rdoc/markup/block_quote.rb +15 -0
- data/lib/rdoc/markup/document.rb +96 -9
- data/lib/rdoc/markup/formatter.rb +138 -25
- data/lib/rdoc/markup/hard_break.rb +32 -0
- data/lib/rdoc/markup/heading.rb +61 -2
- data/lib/rdoc/markup/include.rb +43 -0
- data/lib/rdoc/markup/indented_paragraph.rb +48 -0
- data/lib/rdoc/markup/list.rb +25 -4
- data/lib/rdoc/markup/list_item.rb +18 -4
- data/lib/rdoc/markup/paragraph.rb +15 -0
- data/lib/rdoc/markup/parser.rb +180 -88
- data/lib/rdoc/markup/pre_process.rb +183 -38
- data/lib/rdoc/markup/raw.rb +6 -5
- data/lib/rdoc/markup/regexp_handling.rb +41 -0
- data/lib/rdoc/markup/rule.rb +1 -0
- data/lib/rdoc/markup/table.rb +47 -0
- data/lib/rdoc/markup/to_ansi.rb +17 -7
- data/lib/rdoc/markup/to_bs.rb +5 -8
- data/lib/rdoc/markup/to_html.rb +238 -137
- data/lib/rdoc/markup/to_html_crossref.rb +125 -152
- data/lib/rdoc/markup/to_html_snippet.rb +285 -0
- data/lib/rdoc/markup/to_joined_paragraph.rb +47 -0
- data/lib/rdoc/markup/to_label.rb +75 -0
- data/lib/rdoc/markup/to_markdown.rb +192 -0
- data/lib/rdoc/markup/to_rdoc.rb +85 -15
- data/lib/rdoc/markup/to_table_of_contents.rb +89 -0
- data/lib/rdoc/markup/to_test.rb +2 -4
- data/lib/rdoc/markup/to_tt_only.rb +121 -0
- data/lib/rdoc/markup/verbatim.rb +39 -0
- data/lib/rdoc/markup.rb +388 -110
- data/lib/rdoc/meta_method.rb +1 -2
- data/lib/rdoc/method_attr.rb +87 -21
- data/lib/rdoc/mixin.rb +121 -0
- data/lib/rdoc/normal_class.rb +39 -10
- data/lib/rdoc/normal_module.rb +22 -7
- data/lib/rdoc/options.rb +613 -73
- data/lib/rdoc/parser/c.rb +621 -287
- data/lib/rdoc/parser/changelog.rb +335 -0
- data/lib/rdoc/parser/markdown.rb +24 -0
- data/lib/rdoc/parser/rd.rb +23 -0
- data/lib/rdoc/parser/ripper_state_lex.rb +590 -0
- data/lib/rdoc/parser/ruby.rb +1368 -762
- data/lib/rdoc/parser/ruby_tools.rb +42 -35
- data/lib/rdoc/parser/simple.rb +23 -11
- data/lib/rdoc/parser/text.rb +12 -0
- data/lib/rdoc/parser.rb +162 -89
- data/lib/rdoc/rd/block_parser.rb +1056 -0
- data/lib/rdoc/rd/block_parser.ry +639 -0
- data/lib/rdoc/rd/inline.rb +72 -0
- data/lib/rdoc/rd/inline_parser.rb +1208 -0
- data/lib/rdoc/rd/inline_parser.ry +593 -0
- data/lib/rdoc/rd.rb +100 -0
- data/lib/rdoc/rdoc.rb +208 -115
- data/lib/rdoc/require.rb +1 -2
- data/lib/rdoc/ri/driver.rb +734 -239
- data/lib/rdoc/ri/formatter.rb +1 -0
- data/lib/rdoc/ri/paths.rb +91 -48
- data/lib/rdoc/ri/store.rb +3 -261
- data/lib/rdoc/ri/task.rb +71 -0
- data/lib/rdoc/ri.rb +5 -2
- data/lib/rdoc/rubygems_hook.rb +246 -0
- data/lib/rdoc/servlet.rb +451 -0
- data/lib/rdoc/single_class.rb +14 -2
- data/lib/rdoc/stats/normal.rb +19 -12
- data/lib/rdoc/stats/quiet.rb +1 -0
- data/lib/rdoc/stats/verbose.rb +1 -0
- data/lib/rdoc/stats.rb +262 -104
- data/lib/rdoc/store.rb +979 -0
- data/lib/rdoc/task.rb +84 -44
- data/lib/rdoc/text.rb +117 -72
- data/lib/rdoc/token_stream.rb +73 -4
- data/lib/rdoc/tom_doc.rb +263 -0
- data/lib/rdoc/top_level.rb +111 -261
- data/lib/rdoc/version.rb +8 -0
- data/lib/rdoc.rb +127 -64
- data/man/ri.1 +247 -0
- data/rdoc.gemspec +249 -0
- metadata +171 -291
- data/.autotest +0 -16
- data/.document +0 -5
- data/History.txt +0 -594
- data/LICENSE.txt +0 -57
- data/Manifest.txt +0 -158
- data/README.txt +0 -45
- data/RI.txt +0 -58
- data/bin/ri +0 -5
- data/lib/rdoc/gauntlet.rb +0 -52
- data/lib/rdoc/generator/template/darkfish/classpage.rhtml +0 -296
- data/lib/rdoc/generator/template/darkfish/filepage.rhtml +0 -124
- data/lib/rdoc/generator/template/darkfish/js/jquery.js +0 -32
- data/lib/rdoc/generator/template/darkfish/js/quicksearch.js +0 -114
- data/lib/rdoc/generator/template/darkfish/js/thickbox-compressed.js +0 -10
- data/lib/rdoc/generator/template/darkfish/rdoc.css +0 -706
- data/lib/rdoc/markup/formatter_test_case.rb +0 -689
- data/lib/rdoc/markup/inline.rb +0 -137
- data/lib/rdoc/markup/text_formatter_test_case.rb +0 -116
- data/lib/rdoc/ruby_lex.rb +0 -1291
- data/lib/rdoc/ruby_token.rb +0 -416
- data/test/README +0 -1
- data/test/binary.dat +0 -0
- data/test/hidden.zip.txt +0 -1
- data/test/test.ja.rdoc +0 -10
- data/test/test.ja.txt +0 -8
- data/test/test.txt +0 -1
- data/test/test_attribute_manager.rb +0 -120
- data/test/test_rdoc_alias.rb +0 -13
- data/test/test_rdoc_any_method.rb +0 -126
- data/test/test_rdoc_attr.rb +0 -61
- data/test/test_rdoc_class_module.rb +0 -233
- data/test/test_rdoc_code_object.rb +0 -165
- data/test/test_rdoc_constant.rb +0 -15
- data/test/test_rdoc_context.rb +0 -370
- data/test/test_rdoc_encoding.rb +0 -166
- data/test/test_rdoc_generator_darkfish.rb +0 -119
- data/test/test_rdoc_generator_ri.rb +0 -76
- data/test/test_rdoc_include.rb +0 -96
- data/test/test_rdoc_markup.rb +0 -37
- data/test/test_rdoc_markup_attribute_manager.rb +0 -240
- data/test/test_rdoc_markup_document.rb +0 -51
- data/test/test_rdoc_markup_paragraph.rb +0 -9
- data/test/test_rdoc_markup_parser.rb +0 -1395
- data/test/test_rdoc_markup_pre_process.rb +0 -185
- data/test/test_rdoc_markup_raw.rb +0 -27
- data/test/test_rdoc_markup_to_ansi.rb +0 -328
- data/test/test_rdoc_markup_to_bs.rb +0 -341
- data/test/test_rdoc_markup_to_html.rb +0 -335
- data/test/test_rdoc_markup_to_html_crossref.rb +0 -169
- data/test/test_rdoc_markup_to_rdoc.rb +0 -327
- data/test/test_rdoc_method_attr.rb +0 -122
- data/test/test_rdoc_normal_class.rb +0 -17
- data/test/test_rdoc_normal_module.rb +0 -31
- data/test/test_rdoc_options.rb +0 -342
- data/test/test_rdoc_parser.rb +0 -83
- data/test/test_rdoc_parser_c.rb +0 -912
- data/test/test_rdoc_parser_ruby.rb +0 -1754
- data/test/test_rdoc_parser_simple.rb +0 -99
- data/test/test_rdoc_rdoc.rb +0 -164
- data/test/test_rdoc_require.rb +0 -25
- data/test/test_rdoc_ri_driver.rb +0 -846
- data/test/test_rdoc_ri_paths.rb +0 -43
- data/test/test_rdoc_ri_store.rb +0 -352
- data/test/test_rdoc_ruby_lex.rb +0 -23
- data/test/test_rdoc_stats.rb +0 -38
- data/test/test_rdoc_task.rb +0 -92
- data/test/test_rdoc_text.rb +0 -251
- data/test/test_rdoc_top_level.rb +0 -120
- data/test/xref_data.rb +0 -62
- data/test/xref_test_case.rb +0 -61
- data.tar.gz.sig +0 -3
- metadata.gz.sig +0 -0
data/lib/rdoc/any_method.rb
CHANGED
@@ -1,12 +1,20 @@
|
|
1
|
-
|
2
|
-
require 'rdoc/token_stream'
|
3
|
-
|
1
|
+
# frozen_string_literal: true
|
4
2
|
##
|
5
3
|
# AnyMethod is the base class for objects representing methods
|
6
4
|
|
7
5
|
class RDoc::AnyMethod < RDoc::MethodAttr
|
8
6
|
|
9
|
-
|
7
|
+
##
|
8
|
+
# 2::
|
9
|
+
# RDoc 4
|
10
|
+
# Added calls_super
|
11
|
+
# Added parent name and class
|
12
|
+
# Added section title
|
13
|
+
# 3::
|
14
|
+
# RDoc 4.1
|
15
|
+
# Added is_alias_for
|
16
|
+
|
17
|
+
MARSHAL_VERSION = 3 # :nodoc:
|
10
18
|
|
11
19
|
##
|
12
20
|
# Don't rename \#initialize to \::new
|
@@ -14,15 +22,19 @@ class RDoc::AnyMethod < RDoc::MethodAttr
|
|
14
22
|
attr_accessor :dont_rename_initialize
|
15
23
|
|
16
24
|
##
|
17
|
-
#
|
25
|
+
# The C function that implements this method (if it was defined in a C file)
|
18
26
|
|
19
|
-
attr_accessor :
|
27
|
+
attr_accessor :c_function
|
20
28
|
|
21
|
-
##
|
22
29
|
# Parameters for this method
|
23
30
|
|
24
31
|
attr_accessor :params
|
25
32
|
|
33
|
+
##
|
34
|
+
# If true this method uses +super+ to call a superclass version
|
35
|
+
|
36
|
+
attr_accessor :calls_super
|
37
|
+
|
26
38
|
include RDoc::TokenStream
|
27
39
|
|
28
40
|
##
|
@@ -31,14 +43,17 @@ class RDoc::AnyMethod < RDoc::MethodAttr
|
|
31
43
|
def initialize text, name
|
32
44
|
super
|
33
45
|
|
46
|
+
@c_function = nil
|
34
47
|
@dont_rename_initialize = false
|
35
|
-
@token_stream
|
48
|
+
@token_stream = nil
|
49
|
+
@calls_super = false
|
50
|
+
@superclass_method = nil
|
36
51
|
end
|
37
52
|
|
38
53
|
##
|
39
54
|
# Adds +an_alias+ as an alias for this method in +context+.
|
40
55
|
|
41
|
-
def add_alias
|
56
|
+
def add_alias an_alias, context = nil
|
42
57
|
method = self.class.new an_alias.text, an_alias.new_name
|
43
58
|
|
44
59
|
method.record_location an_alias.file
|
@@ -48,7 +63,7 @@ class RDoc::AnyMethod < RDoc::MethodAttr
|
|
48
63
|
method.comment = an_alias.comment
|
49
64
|
method.is_alias_for = self
|
50
65
|
@aliases << method
|
51
|
-
context.add_method method
|
66
|
+
context.add_method method if context
|
52
67
|
method
|
53
68
|
end
|
54
69
|
|
@@ -72,14 +87,64 @@ class RDoc::AnyMethod < RDoc::MethodAttr
|
|
72
87
|
end
|
73
88
|
end
|
74
89
|
|
90
|
+
##
|
91
|
+
# Different ways to call this method
|
92
|
+
|
93
|
+
def call_seq
|
94
|
+
unless call_seq = _call_seq
|
95
|
+
call_seq = is_alias_for._call_seq if is_alias_for
|
96
|
+
end
|
97
|
+
|
98
|
+
return unless call_seq
|
99
|
+
|
100
|
+
deduplicate_call_seq(call_seq)
|
101
|
+
end
|
102
|
+
|
103
|
+
##
|
104
|
+
# Sets the different ways you can call this method. If an empty +call_seq+
|
105
|
+
# is given nil is assumed.
|
106
|
+
#
|
107
|
+
# See also #param_seq
|
108
|
+
|
109
|
+
def call_seq= call_seq
|
110
|
+
return if call_seq.empty?
|
111
|
+
|
112
|
+
@call_seq = call_seq
|
113
|
+
end
|
114
|
+
|
115
|
+
##
|
116
|
+
# Loads is_alias_for from the internal name. Returns nil if the alias
|
117
|
+
# cannot be found.
|
118
|
+
|
119
|
+
def is_alias_for # :nodoc:
|
120
|
+
case @is_alias_for
|
121
|
+
when RDoc::MethodAttr then
|
122
|
+
@is_alias_for
|
123
|
+
when Array then
|
124
|
+
return nil unless @store
|
125
|
+
|
126
|
+
klass_name, singleton, method_name = @is_alias_for
|
127
|
+
|
128
|
+
return nil unless klass = @store.find_class_or_module(klass_name)
|
129
|
+
|
130
|
+
@is_alias_for = klass.find_method method_name, singleton
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
75
134
|
##
|
76
135
|
# Dumps this AnyMethod for use by ri. See also #marshal_load
|
77
136
|
|
78
137
|
def marshal_dump
|
79
138
|
aliases = @aliases.map do |a|
|
80
|
-
[a.
|
139
|
+
[a.name, parse(a.comment)]
|
81
140
|
end
|
82
141
|
|
142
|
+
is_alias_for = [
|
143
|
+
@is_alias_for.parent.full_name,
|
144
|
+
@is_alias_for.singleton,
|
145
|
+
@is_alias_for.name
|
146
|
+
] if @is_alias_for
|
147
|
+
|
83
148
|
[ MARSHAL_VERSION,
|
84
149
|
@name,
|
85
150
|
full_name,
|
@@ -90,6 +155,12 @@ class RDoc::AnyMethod < RDoc::MethodAttr
|
|
90
155
|
@block_params,
|
91
156
|
aliases,
|
92
157
|
@params,
|
158
|
+
@file.relative_name,
|
159
|
+
@calls_super,
|
160
|
+
@parent.name,
|
161
|
+
@parent.class,
|
162
|
+
@section.title,
|
163
|
+
is_alias_for,
|
93
164
|
]
|
94
165
|
end
|
95
166
|
|
@@ -100,32 +171,48 @@ class RDoc::AnyMethod < RDoc::MethodAttr
|
|
100
171
|
# * #full_name
|
101
172
|
# * #parent_name
|
102
173
|
|
103
|
-
def marshal_load
|
174
|
+
def marshal_load array
|
175
|
+
initialize_visibility
|
176
|
+
|
104
177
|
@dont_rename_initialize = nil
|
105
|
-
@is_alias_for = nil
|
106
178
|
@token_stream = nil
|
107
179
|
@aliases = []
|
108
|
-
|
109
|
-
@
|
110
|
-
@
|
111
|
-
@
|
112
|
-
@
|
113
|
-
|
114
|
-
|
115
|
-
@
|
116
|
-
@
|
117
|
-
|
118
|
-
@
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
180
|
+
@parent = nil
|
181
|
+
@parent_name = nil
|
182
|
+
@parent_class = nil
|
183
|
+
@section = nil
|
184
|
+
@file = nil
|
185
|
+
|
186
|
+
version = array[0]
|
187
|
+
@name = array[1]
|
188
|
+
@full_name = array[2]
|
189
|
+
@singleton = array[3]
|
190
|
+
@visibility = array[4]
|
191
|
+
@comment = array[5]
|
192
|
+
@call_seq = array[6]
|
193
|
+
@block_params = array[7]
|
194
|
+
# 8 handled below
|
195
|
+
@params = array[9]
|
196
|
+
# 10 handled below
|
197
|
+
@calls_super = array[11]
|
198
|
+
@parent_name = array[12]
|
199
|
+
@parent_title = array[13]
|
200
|
+
@section_title = array[14]
|
201
|
+
@is_alias_for = array[15]
|
125
202
|
|
126
203
|
array[8].each do |new_name, comment|
|
127
204
|
add_alias RDoc::Alias.new(nil, @name, new_name, comment, @singleton)
|
128
205
|
end
|
206
|
+
|
207
|
+
@parent_name ||= if @full_name =~ /#/ then
|
208
|
+
$`
|
209
|
+
else
|
210
|
+
name = @full_name.split('::')
|
211
|
+
name.pop
|
212
|
+
name.join '::'
|
213
|
+
end
|
214
|
+
|
215
|
+
@file = RDoc::TopLevel.new array[10] if version > 0
|
129
216
|
end
|
130
217
|
|
131
218
|
##
|
@@ -136,26 +223,69 @@ class RDoc::AnyMethod < RDoc::MethodAttr
|
|
136
223
|
def name
|
137
224
|
return @name if @name
|
138
225
|
|
139
|
-
@name =
|
226
|
+
@name =
|
227
|
+
@call_seq[/^.*?\.(\w+)/, 1] ||
|
228
|
+
@call_seq[/^.*?(\w+)/, 1] ||
|
229
|
+
@call_seq if @call_seq
|
140
230
|
end
|
141
231
|
|
142
232
|
##
|
143
|
-
#
|
233
|
+
# A list of this method's method and yield parameters. +call-seq+ params
|
234
|
+
# are preferred over parsed method and block params.
|
235
|
+
|
236
|
+
def param_list
|
237
|
+
if @call_seq then
|
238
|
+
params = @call_seq.split("\n").last
|
239
|
+
params = params.sub(/.*?\((.*)\)/, '\1')
|
240
|
+
params = params.sub(/(\{|do)\s*\|([^|]*)\|.*/, ',\2')
|
241
|
+
elsif @params then
|
242
|
+
params = @params.sub(/\((.*)\)/, '\1')
|
243
|
+
|
244
|
+
params << ",#{@block_params}" if @block_params
|
245
|
+
elsif @block_params then
|
246
|
+
params = @block_params
|
247
|
+
else
|
248
|
+
return []
|
249
|
+
end
|
250
|
+
|
251
|
+
if @block_params then
|
252
|
+
# If this method has explicit block parameters, remove any explicit
|
253
|
+
# &block
|
254
|
+
params = params.sub(/,?\s*&\w+/, '')
|
255
|
+
else
|
256
|
+
params = params.sub(/\&(\w+)/, '\1')
|
257
|
+
end
|
258
|
+
|
259
|
+
params = params.gsub(/\s+/, '').split(',').reject(&:empty?)
|
260
|
+
|
261
|
+
params.map { |param| param.sub(/=.*/, '') }
|
262
|
+
end
|
263
|
+
|
264
|
+
##
|
265
|
+
# Pretty parameter list for this method. If the method's parameters were
|
266
|
+
# given by +call-seq+ it is preferred over the parsed values.
|
144
267
|
|
145
268
|
def param_seq
|
146
|
-
|
147
|
-
|
148
|
-
|
269
|
+
if @call_seq then
|
270
|
+
params = @call_seq.split("\n").last
|
271
|
+
params = params.sub(/[^( ]+/, '')
|
272
|
+
params = params.sub(/(\|[^|]+\|)\s*\.\.\.\s*(end|\})/, '\1 \2')
|
273
|
+
elsif @params then
|
274
|
+
params = @params.gsub(/\s*\#.*/, '')
|
275
|
+
params = params.tr_s("\n ", " ")
|
276
|
+
params = "(#{params})" unless params[0] == ?(
|
277
|
+
else
|
278
|
+
params = ''
|
279
|
+
end
|
149
280
|
|
150
281
|
if @block_params then
|
151
282
|
# If this method has explicit block parameters, remove any explicit
|
152
283
|
# &block
|
153
|
-
params.sub
|
284
|
+
params = params.sub(/,?\s*&\w+/, '')
|
154
285
|
|
155
|
-
block = @block_params.
|
156
|
-
block = block.tr("\n", " ").squeeze(" ")
|
286
|
+
block = @block_params.tr_s("\n ", " ")
|
157
287
|
if block[0] == ?(
|
158
|
-
block.sub
|
288
|
+
block = block.sub(/^\(/, '').sub(/\)/, '')
|
159
289
|
end
|
160
290
|
params << " { |#{block}| ... }"
|
161
291
|
end
|
@@ -163,5 +293,69 @@ class RDoc::AnyMethod < RDoc::MethodAttr
|
|
163
293
|
params
|
164
294
|
end
|
165
295
|
|
166
|
-
|
296
|
+
##
|
297
|
+
# Sets the store for this method and its referenced code objects.
|
298
|
+
|
299
|
+
def store= store
|
300
|
+
super
|
301
|
+
|
302
|
+
@file = @store.add_file @file.full_name if @file
|
303
|
+
end
|
304
|
+
|
305
|
+
##
|
306
|
+
# For methods that +super+, find the superclass method that would be called.
|
307
|
+
|
308
|
+
def superclass_method
|
309
|
+
return unless @calls_super
|
310
|
+
return @superclass_method if @superclass_method
|
311
|
+
|
312
|
+
parent.each_ancestor do |ancestor|
|
313
|
+
if method = ancestor.method_list.find { |m| m.name == @name } then
|
314
|
+
@superclass_method = method
|
315
|
+
break
|
316
|
+
end
|
317
|
+
end
|
318
|
+
|
319
|
+
@superclass_method
|
320
|
+
end
|
321
|
+
|
322
|
+
protected
|
167
323
|
|
324
|
+
##
|
325
|
+
# call_seq without deduplication and alias lookup.
|
326
|
+
|
327
|
+
def _call_seq
|
328
|
+
@call_seq if defined?(@call_seq) && @call_seq
|
329
|
+
end
|
330
|
+
|
331
|
+
private
|
332
|
+
|
333
|
+
##
|
334
|
+
# call_seq with alias examples information removed, if this
|
335
|
+
# method is an alias method.
|
336
|
+
|
337
|
+
def deduplicate_call_seq(call_seq)
|
338
|
+
return call_seq unless is_alias_for || !aliases.empty?
|
339
|
+
|
340
|
+
method_name = self.name
|
341
|
+
method_name = method_name[0, 1] if method_name =~ /\A\[/
|
342
|
+
|
343
|
+
entries = call_seq.split "\n"
|
344
|
+
|
345
|
+
ignore = aliases.map(&:name)
|
346
|
+
if is_alias_for
|
347
|
+
ignore << is_alias_for.name
|
348
|
+
ignore.concat is_alias_for.aliases.map(&:name)
|
349
|
+
end
|
350
|
+
ignore.map! { |n| n =~ /\A\[/ ? n[0, 1] : n}
|
351
|
+
ignore.delete(method_name)
|
352
|
+
ignore = Regexp.union(ignore)
|
353
|
+
|
354
|
+
matching = entries.reject do |entry|
|
355
|
+
entry =~ /^\w*\.?#{ignore}/ or
|
356
|
+
entry =~ /\s#{ignore}\s/
|
357
|
+
end
|
358
|
+
|
359
|
+
matching.join "\n"
|
360
|
+
end
|
361
|
+
end
|
data/lib/rdoc/attr.rb
CHANGED
@@ -1,12 +1,17 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
3
2
|
##
|
4
3
|
# An attribute created by \#attr, \#attr_reader, \#attr_writer or
|
5
4
|
# \#attr_accessor
|
6
5
|
|
7
6
|
class RDoc::Attr < RDoc::MethodAttr
|
8
7
|
|
9
|
-
|
8
|
+
##
|
9
|
+
# 3::
|
10
|
+
# RDoc 4
|
11
|
+
# Added parent name and class
|
12
|
+
# Added section title
|
13
|
+
|
14
|
+
MARSHAL_VERSION = 3 # :nodoc:
|
10
15
|
|
11
16
|
##
|
12
17
|
# Is the attribute readable ('R'), writable ('W') or both ('RW')?
|
@@ -57,6 +62,16 @@ class RDoc::Attr < RDoc::MethodAttr
|
|
57
62
|
'attribute'
|
58
63
|
end
|
59
64
|
|
65
|
+
##
|
66
|
+
# Attributes never call super. See RDoc::AnyMethod#calls_super
|
67
|
+
#
|
68
|
+
# An RDoc::Attr can show up in the method list in some situations (see
|
69
|
+
# Gem::ConfigFile)
|
70
|
+
|
71
|
+
def calls_super # :nodoc:
|
72
|
+
false
|
73
|
+
end
|
74
|
+
|
60
75
|
##
|
61
76
|
# Returns attr_reader, attr_writer or attr_accessor as appropriate.
|
62
77
|
|
@@ -68,6 +83,19 @@ class RDoc::Attr < RDoc::MethodAttr
|
|
68
83
|
end
|
69
84
|
end
|
70
85
|
|
86
|
+
def inspect # :nodoc:
|
87
|
+
alias_for = @is_alias_for ? " (alias for #{@is_alias_for.name})" : nil
|
88
|
+
visibility = self.visibility
|
89
|
+
visibility = "forced #{visibility}" if force_documentation
|
90
|
+
"#<%s:0x%x %s %s (%s)%s>" % [
|
91
|
+
self.class, object_id,
|
92
|
+
full_name,
|
93
|
+
rw,
|
94
|
+
visibility,
|
95
|
+
alias_for,
|
96
|
+
]
|
97
|
+
end
|
98
|
+
|
71
99
|
##
|
72
100
|
# Dumps this Attr for use by ri. See also #marshal_load
|
73
101
|
|
@@ -79,6 +107,10 @@ class RDoc::Attr < RDoc::MethodAttr
|
|
79
107
|
@visibility,
|
80
108
|
parse(@comment),
|
81
109
|
singleton,
|
110
|
+
@file.relative_name,
|
111
|
+
@parent.full_name,
|
112
|
+
@parent.class,
|
113
|
+
@section.title
|
82
114
|
]
|
83
115
|
end
|
84
116
|
|
@@ -90,19 +122,55 @@ class RDoc::Attr < RDoc::MethodAttr
|
|
90
122
|
# * #parent_name
|
91
123
|
|
92
124
|
def marshal_load array
|
93
|
-
|
94
|
-
|
95
|
-
@
|
96
|
-
@
|
97
|
-
@
|
98
|
-
@
|
99
|
-
|
100
|
-
@
|
125
|
+
initialize_visibility
|
126
|
+
|
127
|
+
@aliases = []
|
128
|
+
@parent = nil
|
129
|
+
@parent_name = nil
|
130
|
+
@parent_class = nil
|
131
|
+
@section = nil
|
132
|
+
@file = nil
|
133
|
+
|
134
|
+
version = array[0]
|
135
|
+
@name = array[1]
|
136
|
+
@full_name = array[2]
|
137
|
+
@rw = array[3]
|
138
|
+
@visibility = array[4]
|
139
|
+
@comment = array[5]
|
140
|
+
@singleton = array[6] || false # MARSHAL_VERSION == 0
|
141
|
+
# 7 handled below
|
142
|
+
@parent_name = array[8]
|
143
|
+
@parent_class = array[9]
|
144
|
+
@section_title = array[10]
|
145
|
+
|
146
|
+
@file = RDoc::TopLevel.new array[7] if version > 1
|
147
|
+
|
148
|
+
@parent_name ||= @full_name.split('#', 2).first
|
149
|
+
end
|
150
|
+
|
151
|
+
def pretty_print q # :nodoc:
|
152
|
+
q.group 2, "[#{self.class.name} #{full_name} #{rw} #{visibility}", "]" do
|
153
|
+
unless comment.empty? then
|
154
|
+
q.breakable
|
155
|
+
q.text "comment:"
|
156
|
+
q.breakable
|
157
|
+
q.pp @comment
|
158
|
+
end
|
159
|
+
end
|
101
160
|
end
|
102
161
|
|
103
162
|
def to_s # :nodoc:
|
104
163
|
"#{definition} #{name} in: #{parent}"
|
105
164
|
end
|
106
165
|
|
166
|
+
##
|
167
|
+
# Attributes do not have token streams.
|
168
|
+
#
|
169
|
+
# An RDoc::Attr can show up in the method list in some situations (see
|
170
|
+
# Gem::ConfigFile)
|
171
|
+
|
172
|
+
def token_stream # :nodoc:
|
173
|
+
end
|
174
|
+
|
107
175
|
end
|
108
176
|
|