rdoc 6.5.0 → 6.5.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rdoc/markdown/literals.rb +66 -43
- data/lib/rdoc/markdown.rb +2 -0
- data/lib/rdoc/rd/block_parser.rb +4 -2
- data/lib/rdoc/rd/inline_parser.rb +4 -2
- data/lib/rdoc/store.rb +26 -19
- data/lib/rdoc/version.rb +1 -1
- metadata +3 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 847213367e1e1b418f9b04f706e922fb9819940e738100334aa65307512aaa85
|
4
|
+
data.tar.gz: 04e77e04cf5dff2f3a3a9e3513e3d09613c954ac1c3a07b69c89bf63a829c23d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc0c88c8c59219ed05af3141947b92f32f7123062d77b644d20f9ef5c63ccffbad5a22e705b06f31d9307006a81dfe01d4a1dc483e26894b93c7d9a07e88ae32
|
7
|
+
data.tar.gz: 79d8c258e8e750bcf574288e572a68d8429efa1fa4460928685055aace0bf2010d5da30163cc9d6e40a99d19f305d7c5c4b69a4a7dd5100387cef3ca95ecbbe8
|
@@ -39,45 +39,75 @@ class RDoc::Markdown::Literals
|
|
39
39
|
attr_accessor :result, :pos
|
40
40
|
|
41
41
|
def current_column(target=pos)
|
42
|
-
if c = string.rindex("\n", target-1)
|
43
|
-
return target - c
|
42
|
+
if string[target] == "\n" && (c = string.rindex("\n", target-1) || -1)
|
43
|
+
return target - c
|
44
|
+
elsif c = string.rindex("\n", target)
|
45
|
+
return target - c
|
44
46
|
end
|
45
47
|
|
46
48
|
target + 1
|
47
49
|
end
|
48
50
|
|
51
|
+
def position_line_offsets
|
52
|
+
unless @position_line_offsets
|
53
|
+
@position_line_offsets = []
|
54
|
+
total = 0
|
55
|
+
string.each_line do |line|
|
56
|
+
total += line.size
|
57
|
+
@position_line_offsets << total
|
58
|
+
end
|
59
|
+
end
|
60
|
+
@position_line_offsets
|
61
|
+
end
|
62
|
+
|
49
63
|
if [].respond_to? :bsearch_index
|
50
64
|
def current_line(target=pos)
|
51
|
-
|
52
|
-
|
53
|
-
total = 0
|
54
|
-
string.each_line do |line|
|
55
|
-
total += line.size
|
56
|
-
@line_offsets << total
|
57
|
-
end
|
65
|
+
if line = position_line_offsets.bsearch_index {|x| x > target }
|
66
|
+
return line + 1
|
58
67
|
end
|
59
|
-
|
60
|
-
@line_offsets.bsearch_index {|x| x >= target } + 1 || -1
|
68
|
+
raise "Target position #{target} is outside of string"
|
61
69
|
end
|
62
70
|
else
|
63
71
|
def current_line(target=pos)
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
string.each_line do |line|
|
68
|
-
cur_line += 1
|
69
|
-
cur_offset += line.size
|
70
|
-
return cur_line if cur_offset >= target
|
72
|
+
if line = position_line_offsets.index {|x| x > target }
|
73
|
+
return line + 1
|
71
74
|
end
|
72
75
|
|
73
|
-
|
76
|
+
raise "Target position #{target} is outside of string"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def current_character(target=pos)
|
81
|
+
if target < 0 || target >= string.size
|
82
|
+
raise "Target position #{target} is outside of string"
|
74
83
|
end
|
84
|
+
string[target, 1]
|
85
|
+
end
|
86
|
+
|
87
|
+
KpegPosInfo = Struct.new(:pos, :lno, :col, :line, :char)
|
88
|
+
|
89
|
+
def current_pos_info(target=pos)
|
90
|
+
l = current_line target
|
91
|
+
c = current_column target
|
92
|
+
ln = get_line(l-1)
|
93
|
+
chr = string[target,1]
|
94
|
+
KpegPosInfo.new(target, l, c, ln, chr)
|
75
95
|
end
|
76
96
|
|
77
97
|
def lines
|
78
|
-
lines
|
79
|
-
|
80
|
-
|
98
|
+
string.lines
|
99
|
+
end
|
100
|
+
|
101
|
+
def get_line(no)
|
102
|
+
loff = position_line_offsets
|
103
|
+
if no < 0
|
104
|
+
raise "Line No is out of range: #{no} < 0"
|
105
|
+
elsif no >= loff.size
|
106
|
+
raise "Line No is out of range: #{no} >= #{loff.size}"
|
107
|
+
end
|
108
|
+
lend = loff[no]-1
|
109
|
+
lstart = no > 0 ? loff[no-1] : 0
|
110
|
+
string[lstart..lend]
|
81
111
|
end
|
82
112
|
|
83
113
|
|
@@ -91,6 +121,7 @@ class RDoc::Markdown::Literals
|
|
91
121
|
@string = string
|
92
122
|
@string_size = string ? string.size : 0
|
93
123
|
@pos = pos
|
124
|
+
@position_line_offsets = nil
|
94
125
|
end
|
95
126
|
|
96
127
|
def show_pos
|
@@ -115,30 +146,22 @@ class RDoc::Markdown::Literals
|
|
115
146
|
end
|
116
147
|
|
117
148
|
def failure_caret
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
line = lines[l-1]
|
122
|
-
"#{line}\n#{' ' * (c - 1)}^"
|
149
|
+
p = current_pos_info @failing_rule_offset
|
150
|
+
"#{p.line.chomp}\n#{' ' * (p.col - 1)}^"
|
123
151
|
end
|
124
152
|
|
125
153
|
def failure_character
|
126
|
-
|
127
|
-
c = current_column @failing_rule_offset
|
128
|
-
lines[l-1][c-1, 1]
|
154
|
+
current_character @failing_rule_offset
|
129
155
|
end
|
130
156
|
|
131
157
|
def failure_oneline
|
132
|
-
|
133
|
-
c = current_column @failing_rule_offset
|
134
|
-
|
135
|
-
char = lines[l-1][c-1, 1]
|
158
|
+
p = current_pos_info @failing_rule_offset
|
136
159
|
|
137
160
|
if @failed_rule.kind_of? Symbol
|
138
161
|
info = self.class::Rules[@failed_rule]
|
139
|
-
"@#{
|
162
|
+
"@#{p.lno}:#{p.col} failed rule '#{info.name}', got '#{p.char}'"
|
140
163
|
else
|
141
|
-
"@#{
|
164
|
+
"@#{p.lno}:#{p.col} failed rule '#{@failed_rule}', got '#{p.char}'"
|
142
165
|
end
|
143
166
|
end
|
144
167
|
|
@@ -151,10 +174,9 @@ class RDoc::Markdown::Literals
|
|
151
174
|
|
152
175
|
def show_error(io=STDOUT)
|
153
176
|
error_pos = @failing_rule_offset
|
154
|
-
|
155
|
-
col_no = current_column(error_pos)
|
177
|
+
p = current_pos_info(error_pos)
|
156
178
|
|
157
|
-
io.puts "On line #{
|
179
|
+
io.puts "On line #{p.lno}, column #{p.col}:"
|
158
180
|
|
159
181
|
if @failed_rule.kind_of? Symbol
|
160
182
|
info = self.class::Rules[@failed_rule]
|
@@ -163,10 +185,9 @@ class RDoc::Markdown::Literals
|
|
163
185
|
io.puts "Failed to match rule '#{@failed_rule}'"
|
164
186
|
end
|
165
187
|
|
166
|
-
io.puts "Got: #{
|
167
|
-
|
168
|
-
io.
|
169
|
-
io.print(" " * (col_no + 3))
|
188
|
+
io.puts "Got: #{p.char.inspect}"
|
189
|
+
io.puts "=> #{p.line}"
|
190
|
+
io.print(" " * (p.col + 2))
|
170
191
|
io.puts "^"
|
171
192
|
end
|
172
193
|
|
@@ -275,6 +296,7 @@ class RDoc::Markdown::Literals
|
|
275
296
|
end
|
276
297
|
|
277
298
|
def apply_with_args(rule, *args)
|
299
|
+
@result = nil
|
278
300
|
memo_key = [rule, args]
|
279
301
|
if m = @memoizations[memo_key][@pos]
|
280
302
|
@pos = m.pos
|
@@ -308,6 +330,7 @@ class RDoc::Markdown::Literals
|
|
308
330
|
end
|
309
331
|
|
310
332
|
def apply(rule)
|
333
|
+
@result = nil
|
311
334
|
if m = @memoizations[rule][@pos]
|
312
335
|
@pos = m.pos
|
313
336
|
if !m.set
|
data/lib/rdoc/markdown.rb
CHANGED
@@ -466,6 +466,7 @@ class RDoc::Markdown
|
|
466
466
|
end
|
467
467
|
|
468
468
|
def apply_with_args(rule, *args)
|
469
|
+
@result = nil
|
469
470
|
memo_key = [rule, args]
|
470
471
|
if m = @memoizations[memo_key][@pos]
|
471
472
|
@pos = m.pos
|
@@ -499,6 +500,7 @@ class RDoc::Markdown
|
|
499
500
|
end
|
500
501
|
|
501
502
|
def apply(rule)
|
503
|
+
@result = nil
|
502
504
|
if m = @memoizations[rule][@pos]
|
503
505
|
@pos = m.pos
|
504
506
|
if !m.set
|
data/lib/rdoc/rd/block_parser.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
3
|
# DO NOT MODIFY!!!!
|
4
|
-
# This file is automatically generated by Racc 1.
|
5
|
-
# from Racc grammar file "".
|
4
|
+
# This file is automatically generated by Racc 1.7.3
|
5
|
+
# from Racc grammar file "block_parser.ry".
|
6
6
|
#
|
7
7
|
|
8
8
|
require 'racc/parser.rb'
|
@@ -624,6 +624,7 @@ Racc_arg = [
|
|
624
624
|
racc_shift_n,
|
625
625
|
racc_reduce_n,
|
626
626
|
racc_use_result_var ]
|
627
|
+
Ractor.make_shareable(Racc_arg) if defined?(Ractor)
|
627
628
|
|
628
629
|
Racc_token_to_s_table = [
|
629
630
|
"$end",
|
@@ -674,6 +675,7 @@ Racc_token_to_s_table = [
|
|
674
675
|
"blocks_in_list",
|
675
676
|
"block_in_list",
|
676
677
|
"whitelines2" ]
|
678
|
+
Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
|
677
679
|
|
678
680
|
Racc_debug_parser = false
|
679
681
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
3
|
# DO NOT MODIFY!!!!
|
4
|
-
# This file is automatically generated by Racc 1.
|
5
|
-
# from Racc grammar file "".
|
4
|
+
# This file is automatically generated by Racc 1.7.3
|
5
|
+
# from Racc grammar file "inline_parser.ry".
|
6
6
|
#
|
7
7
|
|
8
8
|
require 'racc/parser.rb'
|
@@ -652,6 +652,7 @@ Racc_arg = [
|
|
652
652
|
racc_shift_n,
|
653
653
|
racc_reduce_n,
|
654
654
|
racc_use_result_var ]
|
655
|
+
Ractor.make_shareable(Racc_arg) if defined?(Ractor)
|
655
656
|
|
656
657
|
Racc_token_to_s_table = [
|
657
658
|
"$end",
|
@@ -723,6 +724,7 @@ Racc_token_to_s_table = [
|
|
723
724
|
"normal_strings",
|
724
725
|
"verb_string",
|
725
726
|
"verb_normal_string" ]
|
727
|
+
Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
|
726
728
|
|
727
729
|
Racc_debug_parser = false
|
728
730
|
|
data/lib/rdoc/store.rb
CHANGED
@@ -556,9 +556,7 @@ class RDoc::Store
|
|
556
556
|
def load_cache
|
557
557
|
#orig_enc = @encoding
|
558
558
|
|
559
|
-
|
560
|
-
@cache = Marshal.load io
|
561
|
-
end
|
559
|
+
@cache = marshal_load(cache_path)
|
562
560
|
|
563
561
|
load_enc = @cache[:encoding]
|
564
562
|
|
@@ -615,9 +613,7 @@ class RDoc::Store
|
|
615
613
|
def load_class_data klass_name
|
616
614
|
file = class_file klass_name
|
617
615
|
|
618
|
-
|
619
|
-
Marshal.load io
|
620
|
-
end
|
616
|
+
marshal_load(file)
|
621
617
|
rescue Errno::ENOENT => e
|
622
618
|
error = MissingFileError.new(self, file, klass_name)
|
623
619
|
error.set_backtrace e.backtrace
|
@@ -630,14 +626,10 @@ class RDoc::Store
|
|
630
626
|
def load_method klass_name, method_name
|
631
627
|
file = method_file klass_name, method_name
|
632
628
|
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
find_class_or_module(klass_name) || load_class(klass_name) unless
|
638
|
-
obj.parent
|
639
|
-
obj
|
640
|
-
end
|
629
|
+
obj = marshal_load(file)
|
630
|
+
obj.store = self
|
631
|
+
obj.parent ||= find_class_or_module(klass_name) || load_class(klass_name)
|
632
|
+
obj
|
641
633
|
rescue Errno::ENOENT => e
|
642
634
|
error = MissingFileError.new(self, file, klass_name + method_name)
|
643
635
|
error.set_backtrace e.backtrace
|
@@ -650,11 +642,9 @@ class RDoc::Store
|
|
650
642
|
def load_page page_name
|
651
643
|
file = page_file page_name
|
652
644
|
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
obj
|
657
|
-
end
|
645
|
+
obj = marshal_load(file)
|
646
|
+
obj.store = self
|
647
|
+
obj
|
658
648
|
rescue Errno::ENOENT => e
|
659
649
|
error = MissingFileError.new(self, file, page_name)
|
660
650
|
error.set_backtrace e.backtrace
|
@@ -976,4 +966,21 @@ class RDoc::Store
|
|
976
966
|
@unique_modules
|
977
967
|
end
|
978
968
|
|
969
|
+
private
|
970
|
+
def marshal_load(file)
|
971
|
+
File.open(file, 'rb') {|io| Marshal.load(io, MarshalFilter)}
|
972
|
+
end
|
973
|
+
|
974
|
+
MarshalFilter = proc do |obj|
|
975
|
+
case obj
|
976
|
+
when true, false, nil, Array, Class, Encoding, Hash, Integer, String, Symbol, RDoc::Text
|
977
|
+
else
|
978
|
+
unless obj.class.name.start_with?("RDoc::")
|
979
|
+
raise TypeError, "not permitted class: #{obj.class.name}"
|
980
|
+
end
|
981
|
+
end
|
982
|
+
obj
|
983
|
+
end
|
984
|
+
private_constant :MarshalFilter
|
985
|
+
|
979
986
|
end
|
data/lib/rdoc/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.5.
|
4
|
+
version: 6.5.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Hodel
|
@@ -11,10 +11,9 @@ authors:
|
|
11
11
|
- Zachary Scott
|
12
12
|
- Hiroshi SHIBATA
|
13
13
|
- ITOYANAGI Sakura
|
14
|
-
autorequire:
|
15
14
|
bindir: exe
|
16
15
|
cert_chain: []
|
17
|
-
date:
|
16
|
+
date: 2024-03-21 00:00:00.000000000 Z
|
18
17
|
dependencies:
|
19
18
|
- !ruby/object:Gem::Dependency
|
20
19
|
name: psych
|
@@ -250,7 +249,6 @@ homepage: https://ruby.github.io/rdoc
|
|
250
249
|
licenses:
|
251
250
|
- Ruby
|
252
251
|
metadata: {}
|
253
|
-
post_install_message:
|
254
252
|
rdoc_options:
|
255
253
|
- "--main"
|
256
254
|
- README.rdoc
|
@@ -267,8 +265,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
267
265
|
- !ruby/object:Gem::Version
|
268
266
|
version: '2.2'
|
269
267
|
requirements: []
|
270
|
-
rubygems_version: 3.
|
271
|
-
signing_key:
|
268
|
+
rubygems_version: 3.6.0.dev
|
272
269
|
specification_version: 4
|
273
270
|
summary: RDoc produces HTML and command-line documentation for Ruby projects
|
274
271
|
test_files: []
|