rdoc 6.3.3 → 6.6.3.1
Sign up to get free protection for your applications and to get access to all the features.
- 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 +21 -3
- 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 +45 -19
- data/lib/rdoc/encoding.rb +1 -17
- 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 +4 -8
- data/lib/rdoc/generator/json_index.rb +2 -2
- data/lib/rdoc/generator/markup.rb +1 -2
- data/lib/rdoc/generator/pot.rb +1 -0
- data/lib/rdoc/generator/ri.rb +0 -1
- data/lib/rdoc/generator/template/darkfish/_head.rhtml +11 -13
- 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 +55 -7
- 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 +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.kpeg +0 -2
- data/lib/rdoc/markdown/literals.rb +73 -35
- 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 +32 -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 +1 -2
- 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 +17 -7
- data/lib/rdoc/markup/pre_process.rb +2 -0
- 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/table.rb +11 -2
- data/lib/rdoc/markup/to_ansi.rb +0 -1
- data/lib/rdoc/markup/to_html.rb +27 -19
- data/lib/rdoc/markup/to_html_crossref.rb +1 -1
- data/lib/rdoc/markup/to_html_snippet.rb +3 -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 +66 -21
- data/lib/rdoc/parser/c.rb +125 -124
- data/lib/rdoc/parser/changelog.rb +15 -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 +11 -1
- data/lib/rdoc/parser/ruby.rb +50 -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 +653 -3
- data/lib/rdoc/rd.rb +3 -4
- data/lib/rdoc/rdoc.rb +21 -37
- data/lib/rdoc/require.rb +0 -1
- data/lib/rdoc/ri/driver.rb +31 -90
- data/lib/rdoc/ri/store.rb +0 -1
- data/lib/rdoc/ri.rb +4 -5
- data/lib/rdoc/rubygems_hook.rb +4 -2
- 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 +29 -19
- data/lib/rdoc/task.rb +31 -5
- data/lib/rdoc/text.rb +22 -4
- data/lib/rdoc/token_stream.rb +1 -2
- data/lib/rdoc/top_level.rb +3 -1
- data/lib/rdoc/version.rb +3 -1
- data/lib/rdoc.rb +58 -46
- metadata +13 -18
- data/Gemfile +0 -12
- data/Rakefile +0 -101
- data/bin/console +0 -7
- data/bin/setup +0 -6
- data/rdoc.gemspec +0 -249
@@ -216,12 +216,22 @@ class RDoc::Parser::ChangeLog < RDoc::Parser
|
|
216
216
|
@top_level
|
217
217
|
end
|
218
218
|
|
219
|
+
##
|
220
|
+
# The extension for Git commit log
|
221
|
+
|
219
222
|
module Git
|
223
|
+
##
|
224
|
+
# Parses auxiliary info. Currentry `base-url` to expand
|
225
|
+
# references is effective.
|
226
|
+
|
220
227
|
def parse_info(info)
|
221
228
|
/^\s*base-url\s*=\s*(.*\S)/ =~ info
|
222
229
|
@base_url = $1
|
223
230
|
end
|
224
231
|
|
232
|
+
##
|
233
|
+
# Parses the entries in the Git commit logs
|
234
|
+
|
225
235
|
def parse_entries
|
226
236
|
entries = []
|
227
237
|
|
@@ -244,6 +254,11 @@ class RDoc::Parser::ChangeLog < RDoc::Parser
|
|
244
254
|
entries
|
245
255
|
end
|
246
256
|
|
257
|
+
##
|
258
|
+
# Returns a list of ChangeLog entries as
|
259
|
+
# RDoc::Parser::ChangeLog::Git::LogEntry list for the given
|
260
|
+
# +entries+.
|
261
|
+
|
247
262
|
def create_entries entries
|
248
263
|
# git log entries have no strictly itemized style like the old
|
249
264
|
# style, just assume Markdown.
|
@@ -332,4 +347,3 @@ class RDoc::Parser::ChangeLog < RDoc::Parser
|
|
332
347
|
end
|
333
348
|
end
|
334
349
|
end
|
335
|
-
|
data/lib/rdoc/parser/markdown.rb
CHANGED
data/lib/rdoc/parser/rd.rb
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'ripper'
|
3
3
|
|
4
|
+
##
|
5
|
+
# Wrapper for Ripper lex states
|
6
|
+
|
4
7
|
class RDoc::Parser::RipperStateLex
|
8
|
+
# :stopdoc:
|
9
|
+
|
5
10
|
# TODO: Remove this constants after Ruby 2.4 EOL
|
6
11
|
RIPPER_HAS_LEX_STATE = Ripper::Filter.method_defined?(:state)
|
7
12
|
|
@@ -368,7 +373,7 @@ class RDoc::Parser::RipperStateLex
|
|
368
373
|
private def get_symbol_tk(tk)
|
369
374
|
is_symbol = true
|
370
375
|
symbol_tk = Token.new(tk.line_no, tk.char_no, :on_symbol)
|
371
|
-
if ":'" == tk[:text] or ':"' == tk[:text]
|
376
|
+
if ":'" == tk[:text] or ':"' == tk[:text] or tk[:text].start_with?('%s')
|
372
377
|
tk1 = get_string_tk(tk)
|
373
378
|
symbol_tk[:text] = tk1[:text]
|
374
379
|
symbol_tk[:state] = tk1[:state]
|
@@ -565,6 +570,9 @@ class RDoc::Parser::RipperStateLex
|
|
565
570
|
tk
|
566
571
|
end
|
567
572
|
|
573
|
+
# :startdoc:
|
574
|
+
|
575
|
+
# New lexer for +code+.
|
568
576
|
def initialize(code)
|
569
577
|
@buf = []
|
570
578
|
@heredoc_queue = []
|
@@ -572,6 +580,7 @@ class RDoc::Parser::RipperStateLex
|
|
572
580
|
@tokens = @inner_lex.parse([])
|
573
581
|
end
|
574
582
|
|
583
|
+
# Returns tokens parsed from +code+.
|
575
584
|
def self.parse(code)
|
576
585
|
lex = self.new(code)
|
577
586
|
tokens = []
|
@@ -584,6 +593,7 @@ class RDoc::Parser::RipperStateLex
|
|
584
593
|
tokens
|
585
594
|
end
|
586
595
|
|
596
|
+
# Returns +true+ if lex state will be +END+ after +token+.
|
587
597
|
def self.end?(token)
|
588
598
|
(token[:state] & EXPR_END)
|
589
599
|
end
|
data/lib/rdoc/parser/ruby.rb
CHANGED
@@ -8,6 +8,9 @@
|
|
8
8
|
# by Keiju ISHITSUKA (Nippon Rational Inc.)
|
9
9
|
#
|
10
10
|
|
11
|
+
require 'ripper'
|
12
|
+
require_relative 'ripper_state_lex'
|
13
|
+
|
11
14
|
##
|
12
15
|
# Extracts code elements from a source file returning a TopLevel object
|
13
16
|
# containing the constituent file elements.
|
@@ -138,9 +141,6 @@
|
|
138
141
|
# Note that by default, the :method: directive will be ignored if there is a
|
139
142
|
# standard rdocable item following it.
|
140
143
|
|
141
|
-
require 'ripper'
|
142
|
-
require_relative 'ripper_state_lex'
|
143
|
-
|
144
144
|
class RDoc::Parser::Ruby < RDoc::Parser
|
145
145
|
|
146
146
|
parse_files_matching(/\.rbw?$/)
|
@@ -164,15 +164,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|
164
164
|
def initialize(top_level, file_name, content, options, stats)
|
165
165
|
super
|
166
166
|
|
167
|
-
|
168
|
-
tab_width = @options.tab_width
|
169
|
-
content = content.split(/\n/).map do |line|
|
170
|
-
1 while line.gsub!(/\t+/) {
|
171
|
-
' ' * (tab_width*$&.length - $`.length % tab_width)
|
172
|
-
} && $~
|
173
|
-
line
|
174
|
-
end.join("\n")
|
175
|
-
end
|
167
|
+
content = handle_tab_width(content)
|
176
168
|
|
177
169
|
@size = 0
|
178
170
|
@token_listeners = nil
|
@@ -188,6 +180,9 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|
188
180
|
reset
|
189
181
|
end
|
190
182
|
|
183
|
+
##
|
184
|
+
# Return +true+ if +tk+ is a newline.
|
185
|
+
|
191
186
|
def tk_nl?(tk)
|
192
187
|
:on_nl == tk[:kind] or :on_ignored_nl == tk[:kind]
|
193
188
|
end
|
@@ -399,6 +394,29 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|
399
394
|
return [container, name_t, given_name, new_modules]
|
400
395
|
end
|
401
396
|
|
397
|
+
##
|
398
|
+
# Skip opening parentheses and yield the block.
|
399
|
+
# Skip closing parentheses too when exists.
|
400
|
+
|
401
|
+
def skip_parentheses(&block)
|
402
|
+
left_tk = peek_tk
|
403
|
+
|
404
|
+
if :on_lparen == left_tk[:kind]
|
405
|
+
get_tk
|
406
|
+
|
407
|
+
ret = skip_parentheses(&block)
|
408
|
+
|
409
|
+
right_tk = peek_tk
|
410
|
+
if :on_rparen == right_tk[:kind]
|
411
|
+
get_tk
|
412
|
+
end
|
413
|
+
|
414
|
+
ret
|
415
|
+
else
|
416
|
+
yield
|
417
|
+
end
|
418
|
+
end
|
419
|
+
|
402
420
|
##
|
403
421
|
# Return a superclass, which can be either a constant of an expression
|
404
422
|
|
@@ -833,7 +851,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|
833
851
|
cls = parse_class_regular container, declaration_context, single,
|
834
852
|
name_t, given_name, comment
|
835
853
|
elsif name_t[:kind] == :on_op && name_t[:text] == '<<'
|
836
|
-
case name = get_class_specification
|
854
|
+
case name = skip_parentheses { get_class_specification }
|
837
855
|
when 'self', container.name
|
838
856
|
read_documentation_modifiers cls, RDoc::CLASS_MODIFIERS
|
839
857
|
parse_statements container, SINGLE
|
@@ -1193,6 +1211,22 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|
1193
1211
|
end
|
1194
1212
|
end
|
1195
1213
|
|
1214
|
+
##
|
1215
|
+
# Parses an +included+ with a block feature of ActiveSupport::Concern.
|
1216
|
+
|
1217
|
+
def parse_included_with_activesupport_concern container, comment # :nodoc:
|
1218
|
+
skip_tkspace_without_nl
|
1219
|
+
tk = get_tk
|
1220
|
+
unless tk[:kind] == :on_lbracket || (tk[:kind] == :on_kw && tk[:text] == 'do')
|
1221
|
+
unget_tk tk
|
1222
|
+
return nil # should be a block
|
1223
|
+
end
|
1224
|
+
|
1225
|
+
parse_statements container
|
1226
|
+
|
1227
|
+
container
|
1228
|
+
end
|
1229
|
+
|
1196
1230
|
##
|
1197
1231
|
# Parses identifiers that can create new methods or change visibility.
|
1198
1232
|
#
|
@@ -1893,6 +1927,8 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|
1893
1927
|
parse_extend_or_include RDoc::Include, container, comment
|
1894
1928
|
when "extend" then
|
1895
1929
|
parse_extend_or_include RDoc::Extend, container, comment
|
1930
|
+
when "included" then
|
1931
|
+
parse_included_with_activesupport_concern container, comment
|
1896
1932
|
end
|
1897
1933
|
|
1898
1934
|
else
|
@@ -2101,7 +2137,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|
2101
2137
|
if :on_nl == tk[:kind] or (:on_kw == tk[:kind] && 'def' == tk[:text]) then
|
2102
2138
|
return
|
2103
2139
|
elsif :on_comment == tk[:kind] or :on_embdoc == tk[:kind] then
|
2104
|
-
return unless tk[:text] =~
|
2140
|
+
return unless tk[:text] =~ /:?\b([\w-]+):\s*(.*)/
|
2105
2141
|
|
2106
2142
|
directive = $1.downcase
|
2107
2143
|
|
data/lib/rdoc/parser/text.rb
CHANGED
data/lib/rdoc/parser.rb
CHANGED
@@ -263,9 +263,26 @@ class RDoc::Parser
|
|
263
263
|
@preprocess.options = @options
|
264
264
|
end
|
265
265
|
|
266
|
-
autoload :RubyTools,
|
267
|
-
autoload :Text,
|
266
|
+
autoload :RubyTools, "#{__dir__}/parser/ruby_tools"
|
267
|
+
autoload :Text, "#{__dir__}/parser/text"
|
268
268
|
|
269
|
+
##
|
270
|
+
# Normalizes tabs in +body+
|
271
|
+
|
272
|
+
def handle_tab_width(body)
|
273
|
+
if /\t/ =~ body
|
274
|
+
tab_width = @options.tab_width
|
275
|
+
body.split(/\n/).map do |line|
|
276
|
+
1 while line.gsub!(/\t+/) do
|
277
|
+
b, e = $~.offset(0)
|
278
|
+
' ' * (tab_width * (e-b) - b % tab_width)
|
279
|
+
end
|
280
|
+
line
|
281
|
+
end.join "\n"
|
282
|
+
else
|
283
|
+
body
|
284
|
+
end
|
285
|
+
end
|
269
286
|
end
|
270
287
|
|
271
288
|
# simple must come first in order to show up last in the parsers list
|