rdoc 6.5.0 → 6.5.1.1
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/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: []
|