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/top_level.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
3
2
|
##
|
4
3
|
# A TopLevel context is a representation of the contents of a single file
|
5
4
|
|
6
5
|
class RDoc::TopLevel < RDoc::Context
|
7
6
|
|
7
|
+
MARSHAL_VERSION = 0 # :nodoc:
|
8
|
+
|
8
9
|
##
|
9
10
|
# This TopLevel's File::Stat struct
|
10
11
|
|
@@ -30,275 +31,47 @@ class RDoc::TopLevel < RDoc::Context
|
|
30
31
|
attr_accessor :diagram # :nodoc:
|
31
32
|
|
32
33
|
##
|
33
|
-
# The parser that processed this file
|
34
|
-
|
35
|
-
attr_accessor :parser
|
36
|
-
|
37
|
-
##
|
38
|
-
# Returns all classes discovered by RDoc
|
39
|
-
|
40
|
-
def self.all_classes
|
41
|
-
@all_classes_hash.values
|
42
|
-
end
|
43
|
-
|
44
|
-
##
|
45
|
-
# Returns all classes and modules discovered by RDoc
|
46
|
-
|
47
|
-
def self.all_classes_and_modules
|
48
|
-
@all_classes_hash.values + @all_modules_hash.values
|
49
|
-
end
|
50
|
-
|
51
|
-
##
|
52
|
-
# Hash of all classes known to RDoc
|
53
|
-
|
54
|
-
def self.all_classes_hash
|
55
|
-
@all_classes_hash
|
56
|
-
end
|
57
|
-
|
58
|
-
##
|
59
|
-
# All TopLevels known to RDoc
|
60
|
-
|
61
|
-
def self.all_files
|
62
|
-
@all_files_hash.values
|
63
|
-
end
|
64
|
-
|
65
|
-
##
|
66
|
-
# Hash of all files known to RDoc
|
67
|
-
|
68
|
-
def self.all_files_hash
|
69
|
-
@all_files_hash
|
70
|
-
end
|
71
|
-
|
72
|
-
##
|
73
|
-
# Returns all modules discovered by RDoc
|
74
|
-
|
75
|
-
def self.all_modules
|
76
|
-
all_modules_hash.values
|
77
|
-
end
|
78
|
-
|
79
|
-
##
|
80
|
-
# Hash of all modules known to RDoc
|
81
|
-
|
82
|
-
def self.all_modules_hash
|
83
|
-
@all_modules_hash
|
84
|
-
end
|
85
|
-
|
86
|
-
##
|
87
|
-
# Prepares the RDoc code object tree for use by a generator.
|
88
|
-
#
|
89
|
-
# It finds unique classes/modules defined, and replaces classes/modules that
|
90
|
-
# are aliases for another one by a copy with RDoc::ClassModule#is_alias_for
|
91
|
-
# set.
|
92
|
-
#
|
93
|
-
# It updates the RDoc::ClassModule#constant_aliases attribute of "real"
|
94
|
-
# classes or modules.
|
95
|
-
#
|
96
|
-
# It also completely removes the classes and modules that should be removed
|
97
|
-
# from the documentation and the methods that have a visibility below
|
98
|
-
# +min_visibility+, which is the <tt>--visibility</tt> option.
|
99
|
-
#
|
100
|
-
# See also RDoc::Context#remove_from_documentation?
|
101
|
-
|
102
|
-
def self.complete min_visibility
|
103
|
-
fix_basic_object_inheritance
|
104
|
-
|
105
|
-
# cache included modules before they are removed from the documentation
|
106
|
-
all_classes_and_modules.each { |cm| cm.ancestors }
|
107
|
-
|
108
|
-
remove_nodoc @all_classes_hash
|
109
|
-
remove_nodoc @all_modules_hash
|
110
|
-
|
111
|
-
@unique_classes = find_unique @all_classes_hash
|
112
|
-
@unique_modules = find_unique @all_modules_hash
|
113
|
-
|
114
|
-
unique_classes_and_modules.each do |cm|
|
115
|
-
cm.complete min_visibility
|
116
|
-
end
|
117
|
-
|
118
|
-
@all_files_hash.each_key do |file_name|
|
119
|
-
tl = @all_files_hash[file_name]
|
120
|
-
|
121
|
-
unless RDoc::Parser::Simple === tl.parser then
|
122
|
-
tl.modules_hash.clear
|
123
|
-
tl.classes_hash.clear
|
124
|
-
|
125
|
-
tl.classes_or_modules.each do |cm|
|
126
|
-
name = cm.full_name
|
127
|
-
if cm.type == 'class' then
|
128
|
-
tl.classes_hash[name] = cm if @all_classes_hash[name]
|
129
|
-
else
|
130
|
-
tl.modules_hash[name] = cm if @all_modules_hash[name]
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end
|
136
|
-
|
137
|
-
##
|
138
|
-
# Finds the class with +name+ in all discovered classes
|
139
|
-
|
140
|
-
def self.find_class_named(name)
|
141
|
-
@all_classes_hash[name]
|
142
|
-
end
|
143
|
-
|
144
|
-
##
|
145
|
-
# Finds the class with +name+ starting in namespace +from+
|
146
|
-
|
147
|
-
def self.find_class_named_from name, from
|
148
|
-
from = find_class_named from unless RDoc::Context === from
|
149
|
-
|
150
|
-
until RDoc::TopLevel === from do
|
151
|
-
return nil unless from
|
152
|
-
|
153
|
-
klass = from.find_class_named name
|
154
|
-
return klass if klass
|
155
|
-
|
156
|
-
from = from.parent
|
157
|
-
end
|
158
|
-
|
159
|
-
find_class_named name
|
160
|
-
end
|
161
|
-
|
162
|
-
##
|
163
|
-
# Finds the class or module with +name+
|
164
|
-
|
165
|
-
def self.find_class_or_module(name)
|
166
|
-
name = $' if name =~ /^::/
|
167
|
-
RDoc::TopLevel.classes_hash[name] || RDoc::TopLevel.modules_hash[name]
|
168
|
-
end
|
169
|
-
|
170
|
-
##
|
171
|
-
# Finds the file with +name+ in all discovered files
|
172
|
-
|
173
|
-
def self.find_file_named(name)
|
174
|
-
@all_files_hash[name]
|
175
|
-
end
|
176
|
-
|
177
|
-
##
|
178
|
-
# Finds the module with +name+ in all discovered modules
|
179
|
-
|
180
|
-
def self.find_module_named(name)
|
181
|
-
modules_hash[name]
|
182
|
-
end
|
183
|
-
|
184
|
-
##
|
185
|
-
# Finds unique classes/modules defined in +all_hash+,
|
186
|
-
# and returns them as an array. Performs the alias
|
187
|
-
# updates in +all_hash+: see ::complete.
|
188
|
-
#--
|
189
|
-
# TODO aliases should be registered by Context#add_module_alias
|
190
|
-
|
191
|
-
def self.find_unique(all_hash)
|
192
|
-
unique = []
|
193
|
-
|
194
|
-
all_hash.each_pair do |full_name, cm|
|
195
|
-
unique << cm if full_name == cm.full_name
|
196
|
-
end
|
197
|
-
|
198
|
-
unique
|
199
|
-
end
|
200
|
-
|
201
|
-
##
|
202
|
-
# Fixes the erroneous <tt>BasicObject < Object</tt> in 1.9.
|
203
|
-
#
|
204
|
-
# Because we assumed all classes without a stated superclass
|
205
|
-
# inherit from Object, we have the above wrong inheritance.
|
206
|
-
#
|
207
|
-
# We fix BasicObject right away if we are running in a Ruby
|
208
|
-
# version >= 1.9. If not, we may be documenting 1.9 source
|
209
|
-
# while running under 1.8: we search the files of BasicObject
|
210
|
-
# for "object.c", and fix the inheritance if we find it.
|
211
|
-
|
212
|
-
def self.fix_basic_object_inheritance
|
213
|
-
basic = all_classes_hash['BasicObject']
|
214
|
-
return unless basic
|
215
|
-
if RUBY_VERSION >= '1.9'
|
216
|
-
basic.superclass = nil
|
217
|
-
elsif basic.in_files.any? { |f| File.basename(f.full_name) == 'object.c' }
|
218
|
-
basic.superclass = nil
|
219
|
-
end
|
220
|
-
end
|
34
|
+
# The parser class that processed this file
|
221
35
|
|
222
|
-
|
223
|
-
# Removes from +all_hash+ the contexts that are nodoc or have no content.
|
224
|
-
#
|
225
|
-
# See RDoc::Context#remove_from_documentation?
|
226
|
-
|
227
|
-
def self.remove_nodoc(all_hash)
|
228
|
-
all_hash.keys.each do |name|
|
229
|
-
context = all_hash[name]
|
230
|
-
all_hash.delete(name) if context.remove_from_documentation?
|
231
|
-
end
|
232
|
-
end
|
36
|
+
attr_reader :parser
|
233
37
|
|
234
38
|
##
|
235
|
-
#
|
39
|
+
# Creates a new TopLevel for the file at +absolute_name+. If documentation
|
40
|
+
# is being generated outside the source dir +relative_name+ is relative to
|
41
|
+
# the source directory.
|
236
42
|
|
237
|
-
def
|
238
|
-
|
239
|
-
@
|
240
|
-
@
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
#
|
246
|
-
# ::complete must have been called prior to using this method.
|
43
|
+
def initialize absolute_name, relative_name = absolute_name
|
44
|
+
super()
|
45
|
+
@name = nil
|
46
|
+
@absolute_name = absolute_name
|
47
|
+
@relative_name = relative_name
|
48
|
+
@file_stat = File.stat(absolute_name) rescue nil # HACK for testing
|
49
|
+
@diagram = nil
|
50
|
+
@parser = nil
|
247
51
|
|
248
|
-
|
249
|
-
@unique_classes
|
52
|
+
@classes_or_modules = []
|
250
53
|
end
|
251
54
|
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
def self.unique_classes_and_modules
|
257
|
-
@unique_classes + @unique_modules
|
55
|
+
def parser=(val)
|
56
|
+
@parser = val
|
57
|
+
@store.update_parser_of_file(absolute_name, val) if @store
|
58
|
+
@parser
|
258
59
|
end
|
259
60
|
|
260
61
|
##
|
261
|
-
#
|
262
|
-
# ::complete must have been called prior to using this method.
|
62
|
+
# An RDoc::TopLevel is equal to another with the same relative_name
|
263
63
|
|
264
|
-
def
|
265
|
-
@
|
64
|
+
def == other
|
65
|
+
self.class === other and @relative_name == other.relative_name
|
266
66
|
end
|
267
67
|
|
268
|
-
|
269
|
-
alias classes all_classes
|
270
|
-
alias classes_hash all_classes_hash
|
271
|
-
|
272
|
-
alias files all_files
|
273
|
-
alias files_hash all_files_hash
|
274
|
-
|
275
|
-
alias modules all_modules
|
276
|
-
alias modules_hash all_modules_hash
|
277
|
-
end
|
278
|
-
|
279
|
-
reset
|
280
|
-
|
281
|
-
##
|
282
|
-
# Creates a new TopLevel for +file_name+
|
283
|
-
|
284
|
-
def initialize(file_name)
|
285
|
-
super()
|
286
|
-
@name = nil
|
287
|
-
@relative_name = file_name
|
288
|
-
@absolute_name = file_name
|
289
|
-
@file_stat = File.stat(file_name) rescue nil # HACK for testing
|
290
|
-
@diagram = nil
|
291
|
-
@parser = nil
|
292
|
-
|
293
|
-
@classes_or_modules = []
|
294
|
-
|
295
|
-
RDoc::TopLevel.files_hash[file_name] = self
|
296
|
-
end
|
68
|
+
alias eql? ==
|
297
69
|
|
298
70
|
##
|
299
71
|
# Adds +an_alias+ to +Object+ instead of +self+.
|
300
72
|
|
301
73
|
def add_alias(an_alias)
|
74
|
+
object_class.record_location self
|
302
75
|
return an_alias unless @document_self
|
303
76
|
object_class.add_alias an_alias
|
304
77
|
end
|
@@ -306,7 +79,8 @@ class RDoc::TopLevel < RDoc::Context
|
|
306
79
|
##
|
307
80
|
# Adds +constant+ to +Object+ instead of +self+.
|
308
81
|
|
309
|
-
def add_constant
|
82
|
+
def add_constant constant
|
83
|
+
object_class.record_location self
|
310
84
|
return constant unless @document_self
|
311
85
|
object_class.add_constant constant
|
312
86
|
end
|
@@ -315,6 +89,7 @@ class RDoc::TopLevel < RDoc::Context
|
|
315
89
|
# Adds +include+ to +Object+ instead of +self+.
|
316
90
|
|
317
91
|
def add_include(include)
|
92
|
+
object_class.record_location self
|
318
93
|
return include unless @document_self
|
319
94
|
object_class.add_include include
|
320
95
|
end
|
@@ -323,13 +98,14 @@ class RDoc::TopLevel < RDoc::Context
|
|
323
98
|
# Adds +method+ to +Object+ instead of +self+.
|
324
99
|
|
325
100
|
def add_method(method)
|
101
|
+
object_class.record_location self
|
326
102
|
return method unless @document_self
|
327
103
|
object_class.add_method method
|
328
104
|
end
|
329
105
|
|
330
106
|
##
|
331
107
|
# Adds class or module +mod+. Used in the building phase
|
332
|
-
# by the
|
108
|
+
# by the Ruby parser.
|
333
109
|
|
334
110
|
def add_to_classes_or_modules mod
|
335
111
|
@classes_or_modules << mod
|
@@ -339,11 +115,19 @@ class RDoc::TopLevel < RDoc::Context
|
|
339
115
|
# Base name of this file
|
340
116
|
|
341
117
|
def base_name
|
342
|
-
File.basename @
|
118
|
+
File.basename @relative_name
|
343
119
|
end
|
344
120
|
|
345
121
|
alias name base_name
|
346
122
|
|
123
|
+
##
|
124
|
+
# Only a TopLevel that contains text file) will be displayed. See also
|
125
|
+
# RDoc::CodeObject#display?
|
126
|
+
|
127
|
+
def display?
|
128
|
+
text? and super
|
129
|
+
end
|
130
|
+
|
347
131
|
##
|
348
132
|
# See RDoc::TopLevel::find_class_or_module
|
349
133
|
#--
|
@@ -351,7 +135,7 @@ class RDoc::TopLevel < RDoc::Context
|
|
351
135
|
# ones of this instance?
|
352
136
|
|
353
137
|
def find_class_or_module name
|
354
|
-
|
138
|
+
@store.find_class_or_module name
|
355
139
|
end
|
356
140
|
|
357
141
|
##
|
@@ -375,6 +159,14 @@ class RDoc::TopLevel < RDoc::Context
|
|
375
159
|
@relative_name
|
376
160
|
end
|
377
161
|
|
162
|
+
##
|
163
|
+
# An RDoc::TopLevel has the same hash as another with the same
|
164
|
+
# relative_name
|
165
|
+
|
166
|
+
def hash
|
167
|
+
@relative_name.hash
|
168
|
+
end
|
169
|
+
|
378
170
|
##
|
379
171
|
# URL for this with a +prefix+
|
380
172
|
|
@@ -400,6 +192,30 @@ class RDoc::TopLevel < RDoc::Context
|
|
400
192
|
@file_stat ? file_stat.mtime : nil
|
401
193
|
end
|
402
194
|
|
195
|
+
##
|
196
|
+
# Dumps this TopLevel for use by ri. See also #marshal_load
|
197
|
+
|
198
|
+
def marshal_dump
|
199
|
+
[
|
200
|
+
MARSHAL_VERSION,
|
201
|
+
@relative_name,
|
202
|
+
@parser,
|
203
|
+
parse(@comment),
|
204
|
+
]
|
205
|
+
end
|
206
|
+
|
207
|
+
##
|
208
|
+
# Loads this TopLevel from +array+.
|
209
|
+
|
210
|
+
def marshal_load array # :nodoc:
|
211
|
+
initialize array[1]
|
212
|
+
|
213
|
+
@parser = array[2]
|
214
|
+
@comment = array[3]
|
215
|
+
|
216
|
+
@file_stat = nil
|
217
|
+
end
|
218
|
+
|
403
219
|
##
|
404
220
|
# Returns the NormalClass "Object", creating it if not found.
|
405
221
|
#
|
@@ -407,17 +223,27 @@ class RDoc::TopLevel < RDoc::Context
|
|
407
223
|
|
408
224
|
def object_class
|
409
225
|
@object_class ||= begin
|
410
|
-
oc =
|
226
|
+
oc = @store.find_class_named('Object') || add_class(RDoc::NormalClass, 'Object')
|
411
227
|
oc.record_location self
|
412
228
|
oc
|
413
229
|
end
|
414
230
|
end
|
415
231
|
|
416
232
|
##
|
417
|
-
#
|
233
|
+
# Base name of this file without the extension
|
234
|
+
|
235
|
+
def page_name
|
236
|
+
basename = File.basename @relative_name
|
237
|
+
basename =~ /\.(rb|rdoc|txt|md)$/i
|
238
|
+
|
239
|
+
$` || basename
|
240
|
+
end
|
241
|
+
|
242
|
+
##
|
243
|
+
# Path to this file for use with HTML generator output.
|
418
244
|
|
419
245
|
def path
|
420
|
-
http_url
|
246
|
+
http_url @store.rdoc.generator.file_dir
|
421
247
|
end
|
422
248
|
|
423
249
|
def pretty_print q # :nodoc:
|
@@ -426,11 +252,35 @@ class RDoc::TopLevel < RDoc::Context
|
|
426
252
|
q.breakable
|
427
253
|
|
428
254
|
items = @modules.map { |n,m| m }
|
429
|
-
items.
|
255
|
+
items.concat @modules.map { |n,c| c }
|
430
256
|
q.seplist items do |mod| q.pp mod end
|
431
257
|
end
|
432
258
|
end
|
433
259
|
|
260
|
+
##
|
261
|
+
# Search record used by RDoc::Generator::JsonIndex
|
262
|
+
|
263
|
+
def search_record
|
264
|
+
return unless @parser < RDoc::Parser::Text
|
265
|
+
|
266
|
+
[
|
267
|
+
page_name,
|
268
|
+
'',
|
269
|
+
page_name,
|
270
|
+
'',
|
271
|
+
path,
|
272
|
+
'',
|
273
|
+
snippet(@comment),
|
274
|
+
]
|
275
|
+
end
|
276
|
+
|
277
|
+
##
|
278
|
+
# Is this TopLevel from a text file instead of a source code file?
|
279
|
+
|
280
|
+
def text?
|
281
|
+
@parser and @parser.include? RDoc::Parser::Text
|
282
|
+
end
|
283
|
+
|
434
284
|
def to_s # :nodoc:
|
435
285
|
"file #{full_name}"
|
436
286
|
end
|