rdoc 6.4.0 → 6.6.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.rdoc +1 -2
- data/LEGAL.rdoc +1 -1
- data/README.rdoc +2 -2
- data/TODO.rdoc +1 -1
- data/exe/rdoc +0 -1
- data/lib/rdoc/alias.rb +0 -1
- data/lib/rdoc/anon_class.rb +0 -1
- data/lib/rdoc/any_method.rb +17 -2
- data/lib/rdoc/attr.rb +0 -1
- data/lib/rdoc/class_module.rb +0 -1
- data/lib/rdoc/code_objects.rb +1 -2
- data/lib/rdoc/comment.rb +20 -41
- data/lib/rdoc/constant.rb +0 -1
- data/lib/rdoc/context/section.rb +2 -1
- data/lib/rdoc/context.rb +1 -3
- data/lib/rdoc/cross_reference.rb +17 -2
- data/lib/rdoc/encoding.rb +1 -6
- data/lib/rdoc/erb_partial.rb +0 -1
- data/lib/rdoc/erbio.rb +2 -7
- data/lib/rdoc/extend.rb +0 -1
- data/lib/rdoc/generator/darkfish.rb +2 -6
- data/lib/rdoc/generator/json_index.rb +2 -2
- data/lib/rdoc/generator/markup.rb +1 -2
- data/lib/rdoc/generator/ri.rb +0 -1
- data/lib/rdoc/generator/template/darkfish/_head.rhtml +10 -10
- data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +27 -3
- data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +22 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +25 -4
- data/lib/rdoc/generator/template/darkfish/class.rhtml +28 -20
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +44 -7
- data/lib/rdoc/generator/template/darkfish/index.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/js/darkfish.js +14 -1
- data/lib/rdoc/generator/template/darkfish/js/search.js +4 -4
- data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +7 -6
- data/lib/rdoc/generator/template/json_index/js/navigation.js +8 -8
- data/lib/rdoc/generator.rb +5 -5
- data/lib/rdoc/ghost_method.rb +0 -1
- data/lib/rdoc/i18n.rb +1 -1
- data/lib/rdoc/include.rb +0 -1
- data/lib/rdoc/known_classes.rb +5 -4
- data/lib/rdoc/markdown/entities.rb +0 -1
- data/lib/rdoc/markdown/literals.rb +98 -40
- data/lib/rdoc/markdown.kpeg +26 -19
- data/lib/rdoc/markdown.rb +326 -227
- data/lib/rdoc/markup/attr_changer.rb +0 -1
- data/lib/rdoc/markup/attr_span.rb +0 -1
- data/lib/rdoc/markup/attribute_manager.rb +29 -36
- data/lib/rdoc/markup/attributes.rb +0 -1
- data/lib/rdoc/markup/blank_line.rb +0 -1
- data/lib/rdoc/markup/block_quote.rb +0 -1
- data/lib/rdoc/markup/document.rb +0 -1
- data/lib/rdoc/markup/formatter.rb +0 -1
- data/lib/rdoc/markup/hard_break.rb +0 -1
- data/lib/rdoc/markup/heading.rb +0 -1
- data/lib/rdoc/markup/include.rb +0 -1
- data/lib/rdoc/markup/indented_paragraph.rb +0 -1
- data/lib/rdoc/markup/list.rb +0 -1
- data/lib/rdoc/markup/list_item.rb +0 -1
- data/lib/rdoc/markup/paragraph.rb +0 -1
- data/lib/rdoc/markup/parser.rb +12 -6
- data/lib/rdoc/markup/raw.rb +0 -1
- data/lib/rdoc/markup/regexp_handling.rb +0 -1
- data/lib/rdoc/markup/rule.rb +0 -1
- data/lib/rdoc/markup/to_ansi.rb +0 -1
- data/lib/rdoc/markup/to_html.rb +21 -16
- data/lib/rdoc/markup/to_html_crossref.rb +0 -1
- data/lib/rdoc/markup/to_html_snippet.rb +0 -1
- data/lib/rdoc/markup/to_joined_paragraph.rb +2 -3
- data/lib/rdoc/markup/to_label.rb +1 -2
- data/lib/rdoc/markup/to_markdown.rb +0 -1
- data/lib/rdoc/markup/to_rdoc.rb +3 -21
- data/lib/rdoc/markup/to_table_of_contents.rb +0 -1
- data/lib/rdoc/markup/to_test.rb +0 -1
- data/lib/rdoc/markup/to_tt_only.rb +0 -1
- data/lib/rdoc/markup/verbatim.rb +0 -1
- data/lib/rdoc/markup.rb +35 -667
- data/lib/rdoc/meta_method.rb +0 -1
- data/lib/rdoc/method_attr.rb +1 -2
- data/lib/rdoc/mixin.rb +0 -1
- data/lib/rdoc/normal_class.rb +1 -2
- data/lib/rdoc/normal_module.rb +1 -2
- data/lib/rdoc/options.rb +36 -20
- data/lib/rdoc/parser/c.rb +89 -101
- data/lib/rdoc/parser/changelog.rb +0 -1
- data/lib/rdoc/parser/markdown.rb +0 -2
- data/lib/rdoc/parser/rd.rb +0 -1
- data/lib/rdoc/parser/ripper_state_lex.rb +1 -1
- data/lib/rdoc/parser/ruby.rb +29 -14
- data/lib/rdoc/parser/ruby_tools.rb +0 -2
- data/lib/rdoc/parser/text.rb +0 -1
- data/lib/rdoc/parser.rb +19 -2
- data/lib/rdoc/rd/block_parser.rb +666 -12
- data/lib/rdoc/rd/block_parser.ry +13 -9
- data/lib/rdoc/rd/inline.rb +0 -1
- data/lib/rdoc/rd/inline_parser.rb +3 -1
- data/lib/rdoc/rd.rb +3 -4
- data/lib/rdoc/rdoc.rb +19 -7
- data/lib/rdoc/require.rb +0 -1
- data/lib/rdoc/ri/driver.rb +20 -86
- data/lib/rdoc/ri/store.rb +0 -1
- data/lib/rdoc/ri.rb +4 -5
- data/lib/rdoc/rubygems_hook.rb +1 -1
- data/lib/rdoc/servlet.rb +1 -1
- data/lib/rdoc/single_class.rb +5 -1
- data/lib/rdoc/stats/quiet.rb +0 -1
- data/lib/rdoc/stats/verbose.rb +0 -2
- data/lib/rdoc/stats.rb +3 -4
- data/lib/rdoc/store.rb +4 -4
- data/lib/rdoc/task.rb +31 -5
- data/lib/rdoc/token_stream.rb +0 -1
- data/lib/rdoc/top_level.rb +0 -1
- data/lib/rdoc/version.rb +3 -1
- data/lib/rdoc.rb +46 -46
- metadata +9 -11
- data/Gemfile +0 -12
- data/Rakefile +0 -107
- data/bin/console +0 -7
- data/bin/setup +0 -6
- data/rdoc.gemspec +0 -249
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 947667e0cc733b38e36c829627ea1cca454420e44124b9536bf7f6ab7c687688
|
|
4
|
+
data.tar.gz: ce0d8a98c383e7c6b03138fbb62a31626bb24a20be3967aefa3c29a302b0d9f6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dd6e321fe810da6ed4b5257df5347474adb514b061c9c5ad981c57feef340544e6e51fe9bfe48ef31bc7eaa87fc179883635d5448f6f2ab669443adcd6e98d46
|
|
7
|
+
data.tar.gz: 1c7d9158ca93ab8a913f282d6a641bc6d2f69eecf779b452d93fb935f6fde8e0e536d186ca8c2eba90a58a31ffd34cffd9af7a220fd5ff0ed63da6cf68ad8ed2
|
data/CONTRIBUTING.rdoc
CHANGED
|
@@ -34,8 +34,7 @@ RDoc uses bundler for development. To get ready to work on RDoc run:
|
|
|
34
34
|
This will install all the necessary dependencies for development with rake,
|
|
35
35
|
generate documentation and run the tests for the first time.
|
|
36
36
|
|
|
37
|
-
If the tests don't pass on the first run check the {
|
|
38
|
-
RDoc}[https://travis-ci.org/ruby/rdoc] to see if there are any known failures
|
|
37
|
+
If the tests don't pass on the first run check the {GitHub Actions page}[https://github.com/ruby/rdoc/actions] to see if there are any known failures
|
|
39
38
|
(there shouldn't be).
|
|
40
39
|
|
|
41
40
|
You can now use `rake` and `autotest` to run the tests.
|
data/LEGAL.rdoc
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
The files in this distribution are covered by the Ruby license (see LICENSE) except the features mentioned below:
|
|
6
6
|
|
|
7
7
|
Darkfish::
|
|
8
|
-
Darkfish was written by Michael Granger and is included under the
|
|
8
|
+
Darkfish was written by Michael Granger and is included under the BSD 3-Clause
|
|
9
9
|
license. Darkfish contains images from the Silk Icons set by Mark James.
|
|
10
10
|
|
|
11
11
|
See lib/rdoc/generator/darkfish.rb for license information.
|
data/README.rdoc
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
home :: https://github.com/ruby/rdoc
|
|
4
4
|
rdoc :: https://ruby.github.io/rdoc
|
|
5
5
|
bugs :: https://github.com/ruby/rdoc/issues
|
|
6
|
-
code quality ::
|
|
6
|
+
code quality :: https://codeclimate.com/github/ruby/rdoc
|
|
7
7
|
|
|
8
8
|
== Description
|
|
9
9
|
|
|
@@ -46,7 +46,7 @@ contain just Markup-style markup (with or without leading '#' comment
|
|
|
46
46
|
markers). If directory names are passed to RDoc, they are scanned
|
|
47
47
|
recursively for C and Ruby source files only.
|
|
48
48
|
|
|
49
|
-
To generate documentation using +rake+ see RDoc::Task[https://ruby.github.io/rdoc/
|
|
49
|
+
To generate documentation using +rake+ see RDoc::Task[https://ruby.github.io/rdoc/RDoc/Task.html].
|
|
50
50
|
|
|
51
51
|
To generate documentation programmatically:
|
|
52
52
|
|
data/TODO.rdoc
CHANGED
data/exe/rdoc
CHANGED
data/lib/rdoc/alias.rb
CHANGED
data/lib/rdoc/anon_class.rb
CHANGED
data/lib/rdoc/any_method.rb
CHANGED
|
@@ -115,6 +115,13 @@ class RDoc::AnyMethod < RDoc::MethodAttr
|
|
|
115
115
|
@call_seq = call_seq
|
|
116
116
|
end
|
|
117
117
|
|
|
118
|
+
##
|
|
119
|
+
# Whether the method has a call-seq.
|
|
120
|
+
|
|
121
|
+
def has_call_seq?
|
|
122
|
+
!!(@call_seq || is_alias_for&._call_seq)
|
|
123
|
+
end
|
|
124
|
+
|
|
118
125
|
##
|
|
119
126
|
# Loads is_alias_for from the internal name. Returns nil if the alias
|
|
120
127
|
# cannot be found.
|
|
@@ -296,6 +303,14 @@ class RDoc::AnyMethod < RDoc::MethodAttr
|
|
|
296
303
|
params
|
|
297
304
|
end
|
|
298
305
|
|
|
306
|
+
##
|
|
307
|
+
# Whether to skip the method description, true for methods that have
|
|
308
|
+
# aliases with a call-seq that doesn't include the method name.
|
|
309
|
+
|
|
310
|
+
def skip_description?
|
|
311
|
+
has_call_seq? && call_seq.nil? && !!(is_alias_for || !aliases.empty?)
|
|
312
|
+
end
|
|
313
|
+
|
|
299
314
|
##
|
|
300
315
|
# Sets the store for this method and its referenced code objects.
|
|
301
316
|
|
|
@@ -350,12 +365,12 @@ class RDoc::AnyMethod < RDoc::MethodAttr
|
|
|
350
365
|
ignore << is_alias_for.name
|
|
351
366
|
ignore.concat is_alias_for.aliases.map(&:name)
|
|
352
367
|
end
|
|
353
|
-
ignore.map! { |n| n =~ /\A\[/ ?
|
|
368
|
+
ignore.map! { |n| n =~ /\A\[/ ? /\[.*\]/ : n}
|
|
354
369
|
ignore.delete(method_name)
|
|
355
370
|
ignore = Regexp.union(ignore)
|
|
356
371
|
|
|
357
372
|
matching = entries.reject do |entry|
|
|
358
|
-
entry =~ /^\w*\.?#{ignore}/ or
|
|
373
|
+
entry =~ /^\w*\.?#{ignore}[$\(\s]/ or
|
|
359
374
|
entry =~ /\s#{ignore}\s/
|
|
360
375
|
end
|
|
361
376
|
|
data/lib/rdoc/attr.rb
CHANGED
data/lib/rdoc/class_module.rb
CHANGED
data/lib/rdoc/code_objects.rb
CHANGED
data/lib/rdoc/comment.rb
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
# Each comment may have a different markup format set by #format=. By default
|
|
7
7
|
# 'rdoc' is used. The :markup: directive tells RDoc which format to use.
|
|
8
8
|
#
|
|
9
|
-
# See RDoc::
|
|
10
|
-
|
|
9
|
+
# See RDoc::MarkupReference@Directive+for+Specifying+RDoc+Source+Format.
|
|
10
|
+
|
|
11
11
|
|
|
12
12
|
class RDoc::Comment
|
|
13
13
|
|
|
@@ -97,42 +97,26 @@ class RDoc::Comment
|
|
|
97
97
|
# comment. The difficulty is to make sure not to match lines starting
|
|
98
98
|
# with ARGF at the same indent, but that are after the first description
|
|
99
99
|
# paragraph.
|
|
100
|
-
if
|
|
100
|
+
if /^(?<S> ((?!\n)\s)*+ (?# whitespaces except newline))
|
|
101
|
+
:?call-seq:
|
|
102
|
+
(?<B> \g<S>(?<N>\n|\z) (?# trailing spaces))?
|
|
103
|
+
(?<seq>
|
|
104
|
+
(\g<S>(?!\w)\S.*\g<N>)*
|
|
105
|
+
(?>
|
|
106
|
+
(?<H> \g<S>\w+ (?# ' # ARGF' in the example above))
|
|
107
|
+
.*\g<N>)?
|
|
108
|
+
(\g<S>\S.*\g<N> (?# other non-blank line))*+
|
|
109
|
+
(\g<B>+(\k<H>.*\g<N> (?# ARGF.to_a lines))++)*+
|
|
110
|
+
)
|
|
111
|
+
(?m:^\s*$|\z)
|
|
112
|
+
/x =~ @text
|
|
113
|
+
seq = $~[:seq]
|
|
114
|
+
|
|
101
115
|
all_start, all_stop = $~.offset(0)
|
|
102
|
-
seq_start, seq_stop = $~.offset(1)
|
|
103
|
-
|
|
104
|
-
# we get the following lines that start with the leading word at the
|
|
105
|
-
# same indent, even if they have blank lines before
|
|
106
|
-
if $1 =~ /(^\s*\n)+^(\s*\w+)/m then
|
|
107
|
-
leading = $2 # ' * ARGF' in the example above
|
|
108
|
-
re = %r%
|
|
109
|
-
\A(
|
|
110
|
-
(^\s*\n)+
|
|
111
|
-
(^#{Regexp.escape leading}.*?\n)+
|
|
112
|
-
)+
|
|
113
|
-
^\s*$
|
|
114
|
-
%xm
|
|
115
|
-
|
|
116
|
-
if @text[seq_stop..-1] =~ re then
|
|
117
|
-
all_stop = seq_stop + $~.offset(0).last
|
|
118
|
-
seq_stop = seq_stop + $~.offset(1).last
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
seq = @text[seq_start..seq_stop]
|
|
123
|
-
seq.gsub!(/^\s*(\S|\n)/m, '\1')
|
|
124
116
|
@text.slice! all_start...all_stop
|
|
125
117
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
else
|
|
129
|
-
regexp = /^\s*:?call-seq:(.*?)(^\s*$|\z)/m
|
|
130
|
-
if regexp =~ @text then
|
|
131
|
-
@text = @text.sub(regexp, '')
|
|
132
|
-
seq = $1
|
|
133
|
-
seq.gsub!(/^\s*/, '')
|
|
134
|
-
method.call_seq = seq
|
|
135
|
-
end
|
|
118
|
+
seq.gsub!(/^\s*/, '')
|
|
119
|
+
method.call_seq = seq
|
|
136
120
|
end
|
|
137
121
|
|
|
138
122
|
method
|
|
@@ -149,12 +133,7 @@ class RDoc::Comment
|
|
|
149
133
|
# HACK dubious
|
|
150
134
|
|
|
151
135
|
def encode! encoding
|
|
152
|
-
|
|
153
|
-
if RUBY_VERSION < '2.3.0'
|
|
154
|
-
@text = @text.force_encoding encoding
|
|
155
|
-
else
|
|
156
|
-
@text = String.new @text, encoding: encoding
|
|
157
|
-
end
|
|
136
|
+
@text = String.new @text, encoding: encoding
|
|
158
137
|
self
|
|
159
138
|
end
|
|
160
139
|
|
data/lib/rdoc/constant.rb
CHANGED
data/lib/rdoc/context/section.rb
CHANGED
data/lib/rdoc/context.rb
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
require 'cgi'
|
|
3
|
-
|
|
4
2
|
##
|
|
5
3
|
# A Context is something that can hold modules, classes, methods, attributes,
|
|
6
4
|
# aliases, requires, and includes. Classes, modules, and files are all
|
|
@@ -1261,6 +1259,6 @@ class RDoc::Context < RDoc::CodeObject
|
|
|
1261
1259
|
klass
|
|
1262
1260
|
end
|
|
1263
1261
|
|
|
1264
|
-
autoload :Section,
|
|
1262
|
+
autoload :Section, "#{__dir__}/context/section"
|
|
1265
1263
|
|
|
1266
1264
|
end
|
data/lib/rdoc/cross_reference.rb
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'markup/attribute_manager' # for PROTECT_ATTR
|
|
4
|
+
|
|
2
5
|
##
|
|
3
6
|
# RDoc::CrossReference is a reusable way to create cross references for names.
|
|
4
7
|
|
|
@@ -14,12 +17,25 @@ class RDoc::CrossReference
|
|
|
14
17
|
|
|
15
18
|
CLASS_REGEXP_STR = '\\\\?((?:\:{2})?[A-Z]\w*(?:\:\:\w+)*)'
|
|
16
19
|
|
|
20
|
+
##
|
|
21
|
+
# Regular expression to match a single method argument.
|
|
22
|
+
|
|
23
|
+
METHOD_ARG_REGEXP_STR = '[\w.+*/=<>-]+'
|
|
24
|
+
|
|
25
|
+
##
|
|
26
|
+
# Regular expression to match method arguments.
|
|
27
|
+
|
|
28
|
+
METHOD_ARGS_REGEXP_STR = /(?:\((?:#{METHOD_ARG_REGEXP_STR}(?:,\s*#{METHOD_ARG_REGEXP_STR})*)?\))?/.source
|
|
29
|
+
|
|
17
30
|
##
|
|
18
31
|
# Regular expression to match method references.
|
|
19
32
|
#
|
|
20
33
|
# See CLASS_REGEXP_STR
|
|
21
34
|
|
|
22
|
-
METHOD_REGEXP_STR =
|
|
35
|
+
METHOD_REGEXP_STR = /(
|
|
36
|
+
(?!\d)[\w#{RDoc::Markup::AttributeManager::PROTECT_ATTR}]+[!?=]?|
|
|
37
|
+
%|=(?:==?|~)|![=~]|\[\]=?|<(?:<|=>?)?|>[>=]?|[-+!]@?|\*\*?|[\/%\`|&^~]
|
|
38
|
+
)#{METHOD_ARGS_REGEXP_STR}/.source.delete("\n ").freeze
|
|
23
39
|
|
|
24
40
|
##
|
|
25
41
|
# Regular expressions matching text that should potentially have
|
|
@@ -207,4 +223,3 @@ class RDoc::CrossReference
|
|
|
207
223
|
end
|
|
208
224
|
|
|
209
225
|
end
|
|
210
|
-
|
data/lib/rdoc/encoding.rb
CHANGED
|
@@ -124,12 +124,7 @@ module RDoc::Encoding
|
|
|
124
124
|
if text.kind_of? RDoc::Comment
|
|
125
125
|
text.encode! encoding
|
|
126
126
|
else
|
|
127
|
-
|
|
128
|
-
if RUBY_VERSION < '2.3.0'
|
|
129
|
-
text.force_encoding encoding
|
|
130
|
-
else
|
|
131
|
-
String.new text, encoding: encoding
|
|
132
|
-
end
|
|
127
|
+
String.new text, encoding: encoding
|
|
133
128
|
end
|
|
134
129
|
end
|
|
135
130
|
|
data/lib/rdoc/erb_partial.rb
CHANGED
data/lib/rdoc/erbio.rb
CHANGED
|
@@ -20,12 +20,8 @@ class RDoc::ERBIO < ERB
|
|
|
20
20
|
##
|
|
21
21
|
# Defaults +eoutvar+ to 'io', otherwise is identical to ERB's initialize
|
|
22
22
|
|
|
23
|
-
def initialize str,
|
|
24
|
-
|
|
25
|
-
super(str, trim_mode: trim_mode, eoutvar: eoutvar)
|
|
26
|
-
else
|
|
27
|
-
super(str, safe_level, legacy_trim_mode, legacy_eoutvar)
|
|
28
|
-
end
|
|
23
|
+
def initialize str, trim_mode: nil, eoutvar: 'io'
|
|
24
|
+
super(str, trim_mode: trim_mode, eoutvar: eoutvar)
|
|
29
25
|
end
|
|
30
26
|
|
|
31
27
|
##
|
|
@@ -39,4 +35,3 @@ class RDoc::ERBIO < ERB
|
|
|
39
35
|
end
|
|
40
36
|
|
|
41
37
|
end
|
|
42
|
-
|
data/lib/rdoc/extend.rb
CHANGED
|
@@ -610,7 +610,7 @@ class RDoc::Generator::Darkfish
|
|
|
610
610
|
|
|
611
611
|
@classes = @store.all_classes_and_modules.sort
|
|
612
612
|
@files = @store.all_files.sort
|
|
613
|
-
@methods = @classes.
|
|
613
|
+
@methods = @classes.flat_map { |m| m.method_list }.sort
|
|
614
614
|
@modsort = get_sorted_module_list @classes
|
|
615
615
|
end
|
|
616
616
|
|
|
@@ -778,11 +778,7 @@ class RDoc::Generator::Darkfish
|
|
|
778
778
|
erbout = "_erbout_#{file_var}"
|
|
779
779
|
end
|
|
780
780
|
|
|
781
|
-
|
|
782
|
-
template = klass.new template, trim_mode: '-', eoutvar: erbout
|
|
783
|
-
else
|
|
784
|
-
template = klass.new template, nil, '-', erbout
|
|
785
|
-
end
|
|
781
|
+
template = klass.new template, trim_mode: '-', eoutvar: erbout
|
|
786
782
|
@template_cache[file] = template
|
|
787
783
|
template
|
|
788
784
|
end
|
|
@@ -230,9 +230,9 @@ class RDoc::Generator::JsonIndex
|
|
|
230
230
|
def index_methods
|
|
231
231
|
debug_msg " generating method search index"
|
|
232
232
|
|
|
233
|
-
list = @classes.uniq.
|
|
233
|
+
list = @classes.uniq.flat_map do |klass|
|
|
234
234
|
klass.method_list
|
|
235
|
-
end.
|
|
235
|
+
end.sort_by do |method|
|
|
236
236
|
[method.name, method.parent.full_name]
|
|
237
237
|
end
|
|
238
238
|
|
|
@@ -109,7 +109,7 @@ class RDoc::MethodAttr
|
|
|
109
109
|
lines.shift if src =~ /\A.*#\ *File/i # remove '# File' comment
|
|
110
110
|
lines.each do |line|
|
|
111
111
|
if line =~ /^ *(?=\S)/
|
|
112
|
-
n =
|
|
112
|
+
n = $~.end(0)
|
|
113
113
|
indent = n if n < indent
|
|
114
114
|
break if n == 0
|
|
115
115
|
end
|
|
@@ -157,4 +157,3 @@ class RDoc::TopLevel
|
|
|
157
157
|
end
|
|
158
158
|
|
|
159
159
|
end
|
|
160
|
-
|
data/lib/rdoc/generator/ri.rb
CHANGED
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
<title><%= h @title %></title>
|
|
4
4
|
|
|
5
5
|
<script type="text/javascript">
|
|
6
|
-
var rdoc_rel_prefix = "<%= asset_rel_prefix %>/";
|
|
7
|
-
var index_rel_prefix = "<%= rel_prefix %>/";
|
|
6
|
+
var rdoc_rel_prefix = "<%= h asset_rel_prefix %>/";
|
|
7
|
+
var index_rel_prefix = "<%= h rel_prefix %>/";
|
|
8
8
|
</script>
|
|
9
9
|
|
|
10
|
-
<script src="<%= asset_rel_prefix %>/js/navigation.js" defer></script>
|
|
11
|
-
<script src="<%= asset_rel_prefix %>/js/search.js" defer></script>
|
|
12
|
-
<script src="<%= asset_rel_prefix %>/js/search_index.js" defer></script>
|
|
13
|
-
<script src="<%= asset_rel_prefix %>/js/searcher.js" defer></script>
|
|
14
|
-
<script src="<%= asset_rel_prefix %>/js/darkfish.js" defer></script>
|
|
10
|
+
<script src="<%= h asset_rel_prefix %>/js/navigation.js" defer></script>
|
|
11
|
+
<script src="<%= h asset_rel_prefix %>/js/search.js" defer></script>
|
|
12
|
+
<script src="<%= h asset_rel_prefix %>/js/search_index.js" defer></script>
|
|
13
|
+
<script src="<%= h asset_rel_prefix %>/js/searcher.js" defer></script>
|
|
14
|
+
<script src="<%= h asset_rel_prefix %>/js/darkfish.js" defer></script>
|
|
15
15
|
|
|
16
|
-
<link href="<%= asset_rel_prefix %>/css/fonts.css" rel="stylesheet">
|
|
17
|
-
<link href="<%= asset_rel_prefix %>/css/rdoc.css" rel="stylesheet">
|
|
16
|
+
<link href="<%= h asset_rel_prefix %>/css/fonts.css" rel="stylesheet">
|
|
17
|
+
<link href="<%= h asset_rel_prefix %>/css/rdoc.css" rel="stylesheet">
|
|
18
18
|
<%- @options.template_stylesheets.each do |stylesheet| -%>
|
|
19
|
-
<link href="<%= asset_rel_prefix %>/<%= File.basename stylesheet %>" rel="stylesheet">
|
|
19
|
+
<link href="<%= h asset_rel_prefix %>/<%= File.basename stylesheet %>" rel="stylesheet">
|
|
20
20
|
<%- end -%>
|
|
@@ -1,9 +1,33 @@
|
|
|
1
1
|
<div id="classindex-section" class="nav-section">
|
|
2
2
|
<h3>Class and Module Index</h3>
|
|
3
3
|
|
|
4
|
+
<%-
|
|
5
|
+
all_classes = @classes.group_by do |klass|
|
|
6
|
+
klass.full_name[/\A[^:]++(?:::[^:]++(?=::))*+(?=::[^:]*+\z)/]
|
|
7
|
+
end.delete_if do |_, klasses|
|
|
8
|
+
!klasses.any?(&:display?)
|
|
9
|
+
end
|
|
10
|
+
link = proc do |index_klass, display = index_klass.display?|
|
|
11
|
+
if display
|
|
12
|
+
-%><code><a href="<%= rel_prefix %>/<%= index_klass.path %>"><%= index_klass.name %></a></code><%-
|
|
13
|
+
else
|
|
14
|
+
-%><code><%= index_klass.name %></code><%-
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
if top = all_classes[nil]
|
|
18
|
+
solo = top.one? {|klass| klass.display?}
|
|
19
|
+
traverse = proc do |klasses| -%>
|
|
4
20
|
<ul class="link-list">
|
|
5
|
-
|
|
6
|
-
|
|
21
|
+
<%- klasses.each do |index_klass| -%>
|
|
22
|
+
<%- if children = all_classes[index_klass.full_name] -%>
|
|
23
|
+
<li><details<% if solo; solo = false %> open<% end %>><summary><% link.call(index_klass) %></summary>
|
|
24
|
+
<%- traverse.call(children) -%>
|
|
25
|
+
</ul></details>
|
|
26
|
+
<%- elsif index_klass.display? -%>
|
|
27
|
+
<li><% link.call(index_klass, true) %>
|
|
28
|
+
<%- end -%>
|
|
29
|
+
<%- end -%>
|
|
30
|
+
<%- end -%>
|
|
31
|
+
<%- traverse.call(top) -%>
|
|
7
32
|
<%- end -%>
|
|
8
|
-
</ul>
|
|
9
33
|
</div>
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
<%- simple_files = @files.select { |f| f.text? } %>
|
|
2
|
+
<%- if defined?(current) -%>
|
|
3
|
+
<%- dir = current.full_name[%r{\A[^/]+(?=/)}] || current.page_name -%>
|
|
4
|
+
<%- end -%>
|
|
2
5
|
<%- unless simple_files.empty? then -%>
|
|
3
6
|
<div id="fileindex-section" class="nav-section">
|
|
4
7
|
<h3>Pages</h3>
|
|
5
8
|
|
|
6
9
|
<ul class="link-list">
|
|
7
|
-
<%- simple_files.
|
|
8
|
-
|
|
10
|
+
<%- simple_files.group_by do |f| -%>
|
|
11
|
+
<%- f.full_name[%r{\A[^/]+(?=/)}] || f.page_name -%>
|
|
12
|
+
<%- end.each do |n, files| -%>
|
|
13
|
+
<%- f = files.shift -%>
|
|
14
|
+
<%- if files.empty? -%>
|
|
15
|
+
<li><a href="<%= rel_prefix %>/<%= h f.path %>"><%= h f.page_name %></a>
|
|
16
|
+
<%- next -%>
|
|
17
|
+
<%- end -%>
|
|
18
|
+
<li><details<% if dir == n %> open<% end %>><summary><%
|
|
19
|
+
if n == f.page_name
|
|
20
|
+
%><a href="<%= rel_prefix %>/<%= h f.path %>"><%= h n %></a><%
|
|
21
|
+
else
|
|
22
|
+
%><%= h n %><% files.unshift(f)
|
|
23
|
+
end %></summary>
|
|
24
|
+
<ul class="link-list">
|
|
25
|
+
<%- files.each do |f| -%>
|
|
26
|
+
<li><a href="<%= rel_prefix %>/<%= h f.path %>"><%= h f.page_name %></a>
|
|
27
|
+
<%- end -%>
|
|
28
|
+
</ul></details>
|
|
9
29
|
<%- end -%>
|
|
10
30
|
</ul>
|
|
11
31
|
</div>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<div id="search-field-wrapper">
|
|
4
4
|
<input id="search-field" role="combobox" aria-label="Search"
|
|
5
5
|
aria-autocomplete="list" aria-controls="search-results"
|
|
6
|
-
type="text" name="search" placeholder="Search" spellcheck="false"
|
|
6
|
+
type="text" name="search" placeholder="Search (/) for a class, method, ..." spellcheck="false"
|
|
7
7
|
title="Type to search, Up and Down to navigate, Enter to load">
|
|
8
8
|
</div>
|
|
9
9
|
|
|
@@ -3,16 +3,37 @@
|
|
|
3
3
|
else
|
|
4
4
|
current.comment
|
|
5
5
|
end
|
|
6
|
-
table = current.parse(comment).table_of_contents
|
|
6
|
+
table = current.parse(comment).table_of_contents.dup
|
|
7
7
|
|
|
8
8
|
if table.length > 1 then %>
|
|
9
9
|
<div class="nav-section">
|
|
10
10
|
<h3>Table of Contents</h3>
|
|
11
11
|
|
|
12
|
+
<%- display_link = proc do |heading| -%>
|
|
13
|
+
<a href="#<%= heading.label current %>"><%= heading.plain_html %></a>
|
|
14
|
+
<%- end -%>
|
|
15
|
+
|
|
16
|
+
<%- list_siblings = proc do -%>
|
|
17
|
+
<%- level = table.first&.level -%>
|
|
18
|
+
<%- while table.first && table.first.level >= level -%>
|
|
19
|
+
<%- heading = table.shift -%>
|
|
20
|
+
<%- if table.first.nil? || table.first.level <= heading.level -%>
|
|
21
|
+
<li><% display_link.call heading -%>
|
|
22
|
+
<%- else -%>
|
|
23
|
+
<li>
|
|
24
|
+
<details open>
|
|
25
|
+
<summary><%- display_link.call heading -%></summary>
|
|
26
|
+
<ul class="link-list" role="directory">
|
|
27
|
+
<% list_siblings.call %>
|
|
28
|
+
</ul>
|
|
29
|
+
</details>
|
|
30
|
+
</li>
|
|
31
|
+
<%- end -%>
|
|
32
|
+
<%- end -%>
|
|
33
|
+
<%- end -%>
|
|
34
|
+
|
|
12
35
|
<ul class="link-list" role="directory">
|
|
13
|
-
|
|
14
|
-
<li><a href="#<%= heading.label current %>"><%= heading.plain_html %></a>
|
|
15
|
-
<%- end -%>
|
|
36
|
+
<% list_siblings.call %>
|
|
16
37
|
</ul>
|
|
17
38
|
</div>
|
|
18
39
|
<%- end -%>
|
|
@@ -98,29 +98,36 @@
|
|
|
98
98
|
|
|
99
99
|
<%- methods.each do |method| -%>
|
|
100
100
|
<div id="<%= method.aref %>" class="method-detail <%= method.is_alias_for ? "method-alias" : '' %>">
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
<
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
<
|
|
117
|
-
class="method-
|
|
118
|
-
|
|
119
|
-
|
|
101
|
+
<div class="method-header">
|
|
102
|
+
<%- if (call_seq = method.call_seq) then -%>
|
|
103
|
+
<%- call_seq.strip.split("\n").each_with_index do |call_seq, i| -%>
|
|
104
|
+
<div class="method-heading">
|
|
105
|
+
<span class="method-callseq">
|
|
106
|
+
<%= h(call_seq.strip.
|
|
107
|
+
gsub( /^\w+\./m, '')).
|
|
108
|
+
gsub(/(.*)[-=]>/, '\1→') %>
|
|
109
|
+
</span>
|
|
110
|
+
<%- if i == 0 and method.token_stream then -%>
|
|
111
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
112
|
+
<%- end -%>
|
|
113
|
+
</div>
|
|
114
|
+
<%- end -%>
|
|
115
|
+
<%- elsif method.has_call_seq? then -%>
|
|
116
|
+
<div class="method-heading">
|
|
117
|
+
<span class="method-name"><%= h method.name %></span>
|
|
118
|
+
</div>
|
|
119
|
+
<%- else -%>
|
|
120
|
+
<div class="method-heading">
|
|
121
|
+
<span class="method-name"><%= h method.name %></span><span
|
|
122
|
+
class="method-args"><%= h method.param_seq %></span>
|
|
123
|
+
<%- if method.token_stream then -%>
|
|
124
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
125
|
+
<%- end -%>
|
|
126
|
+
</div>
|
|
120
127
|
<%- end -%>
|
|
121
128
|
</div>
|
|
122
|
-
<%- end -%>
|
|
123
129
|
|
|
130
|
+
<%- unless method.skip_description? then -%>
|
|
124
131
|
<div class="method-description">
|
|
125
132
|
<%- if method.comment then -%>
|
|
126
133
|
<%= method.description.strip %>
|
|
@@ -143,6 +150,7 @@
|
|
|
143
150
|
</div>
|
|
144
151
|
<%- end -%>
|
|
145
152
|
</div>
|
|
153
|
+
<%- end -%>
|
|
146
154
|
|
|
147
155
|
<%- unless method.aliases.empty? then -%>
|
|
148
156
|
<div class="aliases">
|