rexml 3.2.3 → 3.2.8
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rexml might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/NEWS.md +219 -0
- data/README.md +11 -14
- data/doc/rexml/context.rdoc +143 -0
- data/doc/rexml/tasks/rdoc/child.rdoc +87 -0
- data/doc/rexml/tasks/rdoc/document.rdoc +276 -0
- data/doc/rexml/tasks/rdoc/element.rdoc +602 -0
- data/doc/rexml/tasks/rdoc/node.rdoc +97 -0
- data/doc/rexml/tasks/rdoc/parent.rdoc +267 -0
- data/doc/rexml/tasks/tocs/child_toc.rdoc +12 -0
- data/doc/rexml/tasks/tocs/document_toc.rdoc +30 -0
- data/doc/rexml/tasks/tocs/element_toc.rdoc +55 -0
- data/doc/rexml/tasks/tocs/master_toc.rdoc +135 -0
- data/doc/rexml/tasks/tocs/node_toc.rdoc +16 -0
- data/doc/rexml/tasks/tocs/parent_toc.rdoc +25 -0
- data/doc/rexml/tutorial.rdoc +1358 -0
- data/lib/rexml/attribute.rb +14 -9
- data/lib/rexml/doctype.rb +55 -31
- data/lib/rexml/document.rb +194 -34
- data/lib/rexml/element.rb +1786 -456
- data/lib/rexml/entity.rb +26 -16
- data/lib/rexml/formatters/pretty.rb +2 -2
- data/lib/rexml/functions.rb +1 -2
- data/lib/rexml/light/node.rb +0 -8
- data/lib/rexml/namespace.rb +8 -4
- data/lib/rexml/parseexception.rb +1 -0
- data/lib/rexml/parsers/baseparser.rb +321 -222
- data/lib/rexml/parsers/xpathparser.rb +161 -97
- data/lib/rexml/rexml.rb +29 -22
- data/lib/rexml/source.rb +72 -99
- data/lib/rexml/text.rb +7 -5
- data/lib/rexml/xpath_parser.rb +43 -33
- data/lib/rexml.rb +3 -0
- metadata +43 -34
- data/.gitignore +0 -9
- data/.travis.yml +0 -24
- data/Gemfile +0 -6
- data/Rakefile +0 -8
- data/rexml.gemspec +0 -84
data/lib/rexml/source.rb
CHANGED
@@ -30,8 +30,6 @@ module REXML
|
|
30
30
|
# objects and provides consumption of text
|
31
31
|
class Source
|
32
32
|
include Encoding
|
33
|
-
# The current buffer (what we're going to read next)
|
34
|
-
attr_reader :buffer
|
35
33
|
# The line number of the last consumed text
|
36
34
|
attr_reader :line
|
37
35
|
attr_reader :encoding
|
@@ -41,7 +39,8 @@ module REXML
|
|
41
39
|
# @param encoding if non-null, sets the encoding of the source to this
|
42
40
|
# value, overriding all encoding detection
|
43
41
|
def initialize(arg, encoding=nil)
|
44
|
-
@orig =
|
42
|
+
@orig = arg
|
43
|
+
@scanner = StringScanner.new(@orig)
|
45
44
|
if encoding
|
46
45
|
self.encoding = encoding
|
47
46
|
else
|
@@ -50,6 +49,14 @@ module REXML
|
|
50
49
|
@line = 0
|
51
50
|
end
|
52
51
|
|
52
|
+
# The current buffer (what we're going to read next)
|
53
|
+
def buffer
|
54
|
+
@scanner.rest
|
55
|
+
end
|
56
|
+
|
57
|
+
def buffer_encoding=(encoding)
|
58
|
+
@scanner.string.force_encoding(encoding)
|
59
|
+
end
|
53
60
|
|
54
61
|
# Inherited from Encoding
|
55
62
|
# Overridden to support optimized en/decoding
|
@@ -58,98 +65,72 @@ module REXML
|
|
58
65
|
encoding_updated
|
59
66
|
end
|
60
67
|
|
61
|
-
|
62
|
-
# usual scan() method. For one thing, the pattern argument has some
|
63
|
-
# requirements; for another, the source can be consumed. You can easily
|
64
|
-
# confuse this method. Originally, the patterns were easier
|
65
|
-
# to construct and this method more robust, because this method
|
66
|
-
# generated search regexps on the fly; however, this was
|
67
|
-
# computationally expensive and slowed down the entire REXML package
|
68
|
-
# considerably, since this is by far the most commonly called method.
|
69
|
-
# @param pattern must be a Regexp, and must be in the form of
|
70
|
-
# /^\s*(#{your pattern, with no groups})(.*)/. The first group
|
71
|
-
# will be returned; the second group is used if the consume flag is
|
72
|
-
# set.
|
73
|
-
# @param consume if true, the pattern returned will be consumed, leaving
|
74
|
-
# everything after it in the Source.
|
75
|
-
# @return the pattern, if found, or nil if the Source is empty or the
|
76
|
-
# pattern is not found.
|
77
|
-
def scan(pattern, cons=false)
|
78
|
-
return nil if @buffer.nil?
|
79
|
-
rv = @buffer.scan(pattern)
|
80
|
-
@buffer = $' if cons and rv.size>0
|
81
|
-
rv
|
68
|
+
def read(term = nil)
|
82
69
|
end
|
83
70
|
|
84
|
-
def
|
71
|
+
def read_until(term)
|
72
|
+
@scanner.scan_until(Regexp.union(term)) or @scanner.rest
|
85
73
|
end
|
86
74
|
|
87
|
-
def
|
88
|
-
@buffer = $' if pattern.match( @buffer )
|
75
|
+
def ensure_buffer
|
89
76
|
end
|
90
77
|
|
91
|
-
def
|
92
|
-
|
78
|
+
def match(pattern, cons=false)
|
79
|
+
if cons
|
80
|
+
@scanner.scan(pattern).nil? ? nil : @scanner
|
81
|
+
else
|
82
|
+
@scanner.check(pattern).nil? ? nil : @scanner
|
83
|
+
end
|
93
84
|
end
|
94
85
|
|
95
|
-
def
|
96
|
-
|
97
|
-
@buffer = $'
|
98
|
-
return md
|
86
|
+
def position
|
87
|
+
@scanner.pos
|
99
88
|
end
|
100
89
|
|
101
|
-
def
|
102
|
-
|
103
|
-
@buffer = $' if cons and md
|
104
|
-
return md
|
90
|
+
def position=(pos)
|
91
|
+
@scanner.pos = pos
|
105
92
|
end
|
106
93
|
|
107
94
|
# @return true if the Source is exhausted
|
108
95
|
def empty?
|
109
|
-
@
|
110
|
-
end
|
111
|
-
|
112
|
-
def position
|
113
|
-
@orig.index( @buffer )
|
96
|
+
@scanner.eos?
|
114
97
|
end
|
115
98
|
|
116
99
|
# @return the current line in the source
|
117
100
|
def current_line
|
118
101
|
lines = @orig.split
|
119
|
-
res = lines.grep @
|
102
|
+
res = lines.grep @scanner.rest[0..30]
|
120
103
|
res = res[-1] if res.kind_of? Array
|
121
104
|
lines.index( res ) if res
|
122
105
|
end
|
123
106
|
|
124
107
|
private
|
108
|
+
|
125
109
|
def detect_encoding
|
126
|
-
|
110
|
+
scanner_encoding = @scanner.rest.encoding
|
127
111
|
detected_encoding = "UTF-8"
|
128
112
|
begin
|
129
|
-
@
|
130
|
-
if @
|
131
|
-
@buffer[0, 2] = ""
|
113
|
+
@scanner.string.force_encoding("ASCII-8BIT")
|
114
|
+
if @scanner.scan(/\xfe\xff/n)
|
132
115
|
detected_encoding = "UTF-16BE"
|
133
|
-
elsif @
|
134
|
-
@buffer[0, 2] = ""
|
116
|
+
elsif @scanner.scan(/\xff\xfe/n)
|
135
117
|
detected_encoding = "UTF-16LE"
|
136
|
-
elsif @
|
137
|
-
@buffer[0, 3] = ""
|
118
|
+
elsif @scanner.scan(/\xef\xbb\xbf/n)
|
138
119
|
detected_encoding = "UTF-8"
|
139
120
|
end
|
140
121
|
ensure
|
141
|
-
@
|
122
|
+
@scanner.string.force_encoding(scanner_encoding)
|
142
123
|
end
|
143
124
|
self.encoding = detected_encoding
|
144
125
|
end
|
145
126
|
|
146
127
|
def encoding_updated
|
147
128
|
if @encoding != 'UTF-8'
|
148
|
-
@
|
129
|
+
@scanner.string = decode(@scanner.rest)
|
149
130
|
@to_utf = true
|
150
131
|
else
|
151
132
|
@to_utf = false
|
152
|
-
@
|
133
|
+
@scanner.string.force_encoding(::Encoding::UTF_8)
|
153
134
|
end
|
154
135
|
end
|
155
136
|
end
|
@@ -172,7 +153,7 @@ module REXML
|
|
172
153
|
end
|
173
154
|
|
174
155
|
if !@to_utf and
|
175
|
-
@
|
156
|
+
@orig.respond_to?(:force_encoding) and
|
176
157
|
@source.respond_to?(:external_encoding) and
|
177
158
|
@source.external_encoding != ::Encoding::UTF_8
|
178
159
|
@force_utf8 = true
|
@@ -181,65 +162,57 @@ module REXML
|
|
181
162
|
end
|
182
163
|
end
|
183
164
|
|
184
|
-
def
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
if rv.size == 0
|
192
|
-
until @buffer =~ pattern or @source.nil?
|
193
|
-
begin
|
194
|
-
@buffer << readline
|
195
|
-
rescue Iconv::IllegalSequence
|
196
|
-
raise
|
197
|
-
rescue
|
198
|
-
@source = nil
|
199
|
-
end
|
200
|
-
end
|
201
|
-
rv = super
|
165
|
+
def read(term = nil)
|
166
|
+
begin
|
167
|
+
@scanner << readline(term)
|
168
|
+
true
|
169
|
+
rescue Exception, NameError
|
170
|
+
@source = nil
|
171
|
+
false
|
202
172
|
end
|
203
|
-
rv.taint
|
204
|
-
rv
|
205
173
|
end
|
206
174
|
|
207
|
-
def
|
175
|
+
def read_until(term)
|
176
|
+
pattern = Regexp.union(term)
|
208
177
|
begin
|
209
|
-
|
210
|
-
|
211
|
-
|
178
|
+
until str = @scanner.scan_until(pattern)
|
179
|
+
@scanner << readline(term)
|
180
|
+
end
|
181
|
+
rescue EOFError
|
182
|
+
@scanner.rest
|
183
|
+
else
|
184
|
+
read if @scanner.eos? and !@source.eof?
|
185
|
+
str
|
212
186
|
end
|
213
187
|
end
|
214
188
|
|
215
|
-
def
|
216
|
-
|
189
|
+
def ensure_buffer
|
190
|
+
read if @scanner.eos? && @source
|
217
191
|
end
|
218
192
|
|
193
|
+
# Note: When specifying a string for 'pattern', it must not include '>' except in the following formats:
|
194
|
+
# - ">"
|
195
|
+
# - "XXX>" (X is any string excluding '>')
|
219
196
|
def match( pattern, cons=false )
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
rv = pattern.match(@buffer)
|
226
|
-
@buffer = $' if cons and rv
|
227
|
-
rescue
|
228
|
-
@source = nil
|
197
|
+
while true
|
198
|
+
if cons
|
199
|
+
md = @scanner.scan(pattern)
|
200
|
+
else
|
201
|
+
md = @scanner.check(pattern)
|
229
202
|
end
|
203
|
+
break if md
|
204
|
+
return nil if pattern.is_a?(String)
|
205
|
+
return nil if @source.nil?
|
206
|
+
return nil unless read
|
230
207
|
end
|
231
|
-
|
232
|
-
|
208
|
+
|
209
|
+
md.nil? ? nil : @scanner
|
233
210
|
end
|
234
211
|
|
235
212
|
def empty?
|
236
213
|
super and ( @source.nil? || @source.eof? )
|
237
214
|
end
|
238
215
|
|
239
|
-
def position
|
240
|
-
@er_source.pos rescue 0
|
241
|
-
end
|
242
|
-
|
243
216
|
# @return the current line in the source
|
244
217
|
def current_line
|
245
218
|
begin
|
@@ -263,8 +236,8 @@ module REXML
|
|
263
236
|
end
|
264
237
|
|
265
238
|
private
|
266
|
-
def readline
|
267
|
-
str = @source.readline(@line_break)
|
239
|
+
def readline(term = nil)
|
240
|
+
str = @source.readline(term || @line_break)
|
268
241
|
if @pending_buffer
|
269
242
|
if str.nil?
|
270
243
|
str = @pending_buffer
|
@@ -290,7 +263,7 @@ module REXML
|
|
290
263
|
@source.set_encoding(@encoding, @encoding)
|
291
264
|
end
|
292
265
|
@line_break = encode(">")
|
293
|
-
@pending_buffer, @
|
266
|
+
@pending_buffer, @scanner.string = @scanner.rest, ""
|
294
267
|
@pending_buffer.force_encoding(@encoding)
|
295
268
|
super
|
296
269
|
end
|
data/lib/rexml/text.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# frozen_string_literal:
|
1
|
+
# frozen_string_literal: true
|
2
2
|
require_relative 'security'
|
3
3
|
require_relative 'entity'
|
4
4
|
require_relative 'doctype'
|
@@ -109,7 +109,7 @@ module REXML
|
|
109
109
|
@string = arg.instance_variable_get(:@string).dup
|
110
110
|
@raw = arg.raw
|
111
111
|
@entity_filter = arg.instance_variable_get(:@entity_filter)
|
112
|
-
|
112
|
+
else
|
113
113
|
raise "Illegal argument of type #{arg.type} for Text constructor (#{arg})"
|
114
114
|
end
|
115
115
|
|
@@ -131,7 +131,7 @@ module REXML
|
|
131
131
|
def Text.check string, pattern, doctype
|
132
132
|
|
133
133
|
# illegal anywhere
|
134
|
-
if string
|
134
|
+
if !string.match?(VALID_XML_CHARS)
|
135
135
|
if String.method_defined? :encode
|
136
136
|
string.chars.each do |c|
|
137
137
|
case c.ord
|
@@ -371,7 +371,7 @@ module REXML
|
|
371
371
|
copy = input.to_s
|
372
372
|
# Doing it like this rather than in a loop improves the speed
|
373
373
|
#copy = copy.gsub( EREFERENCE, '&' )
|
374
|
-
copy = copy.gsub( "&", "&" )
|
374
|
+
copy = copy.gsub( "&", "&" ) if copy.include?("&")
|
375
375
|
if doctype
|
376
376
|
# Replace all ampersands that aren't part of an entity
|
377
377
|
doctype.entities.each_value do |entity|
|
@@ -382,7 +382,9 @@ module REXML
|
|
382
382
|
else
|
383
383
|
# Replace all ampersands that aren't part of an entity
|
384
384
|
DocType::DEFAULT_ENTITIES.each_value do |entity|
|
385
|
-
|
385
|
+
if copy.include?(entity.value)
|
386
|
+
copy = copy.gsub(entity.value, "&#{entity.name};" )
|
387
|
+
end
|
386
388
|
end
|
387
389
|
end
|
388
390
|
copy
|
data/lib/rexml/xpath_parser.rb
CHANGED
@@ -7,39 +7,45 @@ require_relative 'xmltokens'
|
|
7
7
|
require_relative 'attribute'
|
8
8
|
require_relative 'parsers/xpathparser'
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
10
|
+
module REXML
|
11
|
+
module DClonable
|
12
|
+
refine Object do
|
13
|
+
# provides a unified +clone+ operation, for REXML::XPathParser
|
14
|
+
# to use across multiple Object types
|
15
|
+
def dclone
|
16
|
+
clone
|
17
|
+
end
|
18
|
+
end
|
19
|
+
refine Symbol do
|
20
|
+
# provides a unified +clone+ operation, for REXML::XPathParser
|
21
|
+
# to use across multiple Object types
|
22
|
+
def dclone ; self ; end
|
23
|
+
end
|
24
|
+
refine Integer do
|
25
|
+
# provides a unified +clone+ operation, for REXML::XPathParser
|
26
|
+
# to use across multiple Object types
|
27
|
+
def dclone ; self ; end
|
28
|
+
end
|
29
|
+
refine Float do
|
30
|
+
# provides a unified +clone+ operation, for REXML::XPathParser
|
31
|
+
# to use across multiple Object types
|
32
|
+
def dclone ; self ; end
|
33
|
+
end
|
34
|
+
refine Array do
|
35
|
+
# provides a unified +clone+ operation, for REXML::XPathParser
|
36
|
+
# to use across multiple Object+ types
|
37
|
+
def dclone
|
38
|
+
klone = self.clone
|
39
|
+
klone.clear
|
40
|
+
self.each{|v| klone << v.dclone}
|
41
|
+
klone
|
42
|
+
end
|
43
|
+
end
|
40
44
|
end
|
41
45
|
end
|
42
46
|
|
47
|
+
using REXML::DClonable
|
48
|
+
|
43
49
|
module REXML
|
44
50
|
# You don't want to use this class. Really. Use XPath, which is a wrapper
|
45
51
|
# for this class. Believe me. You don't want to poke around in here.
|
@@ -584,6 +590,7 @@ module REXML
|
|
584
590
|
|
585
591
|
def evaluate_predicate(expression, nodesets)
|
586
592
|
enter(:predicate, expression, nodesets) if @debug
|
593
|
+
new_nodeset_count = 0
|
587
594
|
new_nodesets = nodesets.collect do |nodeset|
|
588
595
|
new_nodeset = []
|
589
596
|
subcontext = { :size => nodeset.size }
|
@@ -600,17 +607,20 @@ module REXML
|
|
600
607
|
result = result[0] if result.kind_of? Array and result.length == 1
|
601
608
|
if result.kind_of? Numeric
|
602
609
|
if result == node.position
|
603
|
-
|
610
|
+
new_nodeset_count += 1
|
611
|
+
new_nodeset << XPathNode.new(node, position: new_nodeset_count)
|
604
612
|
end
|
605
613
|
elsif result.instance_of? Array
|
606
614
|
if result.size > 0 and result.inject(false) {|k,s| s or k}
|
607
615
|
if result.size > 0
|
608
|
-
|
616
|
+
new_nodeset_count += 1
|
617
|
+
new_nodeset << XPathNode.new(node, position: new_nodeset_count)
|
609
618
|
end
|
610
619
|
end
|
611
620
|
else
|
612
621
|
if result
|
613
|
-
|
622
|
+
new_nodeset_count += 1
|
623
|
+
new_nodeset << XPathNode.new(node, position: new_nodeset_count)
|
614
624
|
end
|
615
625
|
end
|
616
626
|
end
|
data/lib/rexml.rb
ADDED
metadata
CHANGED
@@ -1,57 +1,68 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rexml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.2.
|
4
|
+
version: 3.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouhei Sutou
|
8
|
-
|
9
|
-
bindir: exe
|
8
|
+
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2024-05-16 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
13
|
+
name: strscan
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
16
15
|
requirements:
|
17
16
|
- - ">="
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
type: :
|
18
|
+
version: 3.0.9
|
19
|
+
type: :runtime
|
21
20
|
prerelease: false
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
23
|
- - ">="
|
25
24
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
25
|
+
version: 3.0.9
|
41
26
|
description: An XML toolkit for Ruby
|
42
27
|
email:
|
43
28
|
- kou@cozmixng.org
|
44
29
|
executables: []
|
45
30
|
extensions: []
|
46
|
-
extra_rdoc_files:
|
31
|
+
extra_rdoc_files:
|
32
|
+
- LICENSE.txt
|
33
|
+
- NEWS.md
|
34
|
+
- README.md
|
35
|
+
- doc/rexml/context.rdoc
|
36
|
+
- doc/rexml/tasks/rdoc/child.rdoc
|
37
|
+
- doc/rexml/tasks/rdoc/document.rdoc
|
38
|
+
- doc/rexml/tasks/rdoc/element.rdoc
|
39
|
+
- doc/rexml/tasks/rdoc/node.rdoc
|
40
|
+
- doc/rexml/tasks/rdoc/parent.rdoc
|
41
|
+
- doc/rexml/tasks/tocs/child_toc.rdoc
|
42
|
+
- doc/rexml/tasks/tocs/document_toc.rdoc
|
43
|
+
- doc/rexml/tasks/tocs/element_toc.rdoc
|
44
|
+
- doc/rexml/tasks/tocs/master_toc.rdoc
|
45
|
+
- doc/rexml/tasks/tocs/node_toc.rdoc
|
46
|
+
- doc/rexml/tasks/tocs/parent_toc.rdoc
|
47
|
+
- doc/rexml/tutorial.rdoc
|
47
48
|
files:
|
48
|
-
- ".gitignore"
|
49
|
-
- ".travis.yml"
|
50
|
-
- Gemfile
|
51
49
|
- LICENSE.txt
|
52
50
|
- NEWS.md
|
53
51
|
- README.md
|
54
|
-
-
|
52
|
+
- doc/rexml/context.rdoc
|
53
|
+
- doc/rexml/tasks/rdoc/child.rdoc
|
54
|
+
- doc/rexml/tasks/rdoc/document.rdoc
|
55
|
+
- doc/rexml/tasks/rdoc/element.rdoc
|
56
|
+
- doc/rexml/tasks/rdoc/node.rdoc
|
57
|
+
- doc/rexml/tasks/rdoc/parent.rdoc
|
58
|
+
- doc/rexml/tasks/tocs/child_toc.rdoc
|
59
|
+
- doc/rexml/tasks/tocs/document_toc.rdoc
|
60
|
+
- doc/rexml/tasks/tocs/element_toc.rdoc
|
61
|
+
- doc/rexml/tasks/tocs/master_toc.rdoc
|
62
|
+
- doc/rexml/tasks/tocs/node_toc.rdoc
|
63
|
+
- doc/rexml/tasks/tocs/parent_toc.rdoc
|
64
|
+
- doc/rexml/tutorial.rdoc
|
65
|
+
- lib/rexml.rb
|
55
66
|
- lib/rexml/attlistdecl.rb
|
56
67
|
- lib/rexml/attribute.rb
|
57
68
|
- lib/rexml/cdata.rb
|
@@ -101,29 +112,27 @@ files:
|
|
101
112
|
- lib/rexml/xmltokens.rb
|
102
113
|
- lib/rexml/xpath.rb
|
103
114
|
- lib/rexml/xpath_parser.rb
|
104
|
-
- rexml.gemspec
|
105
115
|
homepage: https://github.com/ruby/rexml
|
106
116
|
licenses:
|
107
117
|
- BSD-2-Clause
|
108
118
|
metadata: {}
|
109
|
-
|
110
|
-
|
119
|
+
rdoc_options:
|
120
|
+
- "--main"
|
121
|
+
- README.md
|
111
122
|
require_paths:
|
112
123
|
- lib
|
113
124
|
required_ruby_version: !ruby/object:Gem::Requirement
|
114
125
|
requirements:
|
115
126
|
- - ">="
|
116
127
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
128
|
+
version: 2.5.0
|
118
129
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
130
|
requirements:
|
120
131
|
- - ">="
|
121
132
|
- !ruby/object:Gem::Version
|
122
133
|
version: '0'
|
123
134
|
requirements: []
|
124
|
-
|
125
|
-
rubygems_version: 2.7.6.2
|
126
|
-
signing_key:
|
135
|
+
rubygems_version: 3.6.0.dev
|
127
136
|
specification_version: 4
|
128
137
|
summary: An XML toolkit for Ruby
|
129
138
|
test_files: []
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
notifications:
|
2
|
-
webhooks:
|
3
|
-
- https://webhook.commit-email.info/
|
4
|
-
matrix:
|
5
|
-
include:
|
6
|
-
- name: "2.3"
|
7
|
-
rvm: 2.3
|
8
|
-
- name: "2.4"
|
9
|
-
rvm: 2.4.5
|
10
|
-
- name: "2.5"
|
11
|
-
rvm: 2.5.2
|
12
|
-
- name: "2.6"
|
13
|
-
rvm: 2.6.0-rc2
|
14
|
-
- name: "trunk"
|
15
|
-
rvm: ruby-head
|
16
|
-
- name: "gem"
|
17
|
-
rvm: 2.6
|
18
|
-
install:
|
19
|
-
- rake install
|
20
|
-
script:
|
21
|
-
- mkdir -p tmp
|
22
|
-
- cd tmp
|
23
|
-
- cp -a ../test/ ./
|
24
|
-
- ../run-test.rb
|
data/Gemfile
DELETED