nokogiri 1.10.3-java → 1.10.4-java
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of nokogiri might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/nokogiri/css/tokenizer.rb +104 -103
- data/lib/nokogiri/nokogiri.jar +0 -0
- data/lib/nokogiri/version.rb +1 -1
- data/lib/nokogiri/xml/builder.rb +33 -30
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0797aca98d5ad2099030b9bad08ed85ceb1053aa8b6c6783643e8c4ee2165bb5'
|
4
|
+
data.tar.gz: 9baf4be0570382077e11a32355072156667bf5a5198f5ab64d8dfbcbbea36f54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce8981fee41420d318226f6760a8a353b81682f2fc11b4c02fabed8ff7674ebc707cc4b1dbd90d027d4716ae73203a6fcee17e490aaf4c00873846ae5029548c
|
7
|
+
data.tar.gz: 4026765b017fcda7763c19c2e4c4f88e875c7f4d5cbed5e36096125a72fbc516760638399b40a43f72dd6698eee72a004ae319ae845ab2ef629d572bf9c07d38
|
@@ -1,151 +1,152 @@
|
|
1
1
|
#--
|
2
2
|
# DO NOT MODIFY!!!!
|
3
|
-
# This file is automatically generated by rex 1.0.
|
3
|
+
# This file is automatically generated by rex 1.0.7
|
4
4
|
# from lexical definition file "lib/nokogiri/css/tokenizer.rex".
|
5
5
|
#++
|
6
6
|
|
7
7
|
module Nokogiri
|
8
8
|
module CSS
|
9
9
|
class Tokenizer # :nodoc:
|
10
|
-
|
10
|
+
require 'strscan'
|
11
11
|
|
12
|
-
|
12
|
+
class ScanError < StandardError ; end
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
attr_reader :lineno
|
15
|
+
attr_reader :filename
|
16
|
+
attr_accessor :state
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
def scan_setup(str)
|
19
|
+
@ss = StringScanner.new(str)
|
20
|
+
@lineno = 1
|
21
|
+
@state = nil
|
22
|
+
end
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
def action
|
25
|
+
yield
|
26
|
+
end
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
28
|
+
def scan_str(str)
|
29
|
+
scan_setup(str)
|
30
|
+
do_parse
|
31
|
+
end
|
32
|
+
alias :scan :scan_str
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
34
|
+
def load_file( filename )
|
35
|
+
@filename = filename
|
36
|
+
File.open(filename, "r") do |f|
|
37
|
+
scan_setup(f.read)
|
38
|
+
end
|
39
|
+
end
|
40
40
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
41
|
+
def scan_file( filename )
|
42
|
+
load_file(filename)
|
43
|
+
do_parse
|
44
|
+
end
|
45
45
|
|
46
46
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
# skips empty actions
|
51
|
-
until token = _next_token or @ss.eos?; end
|
52
|
-
token
|
53
|
-
end
|
47
|
+
def next_token
|
48
|
+
return if @ss.eos?
|
54
49
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
when nil
|
60
|
-
case
|
61
|
-
when (text = @ss.scan(/has\([\s]*/))
|
62
|
-
action { [:HAS, text] }
|
50
|
+
# skips empty actions
|
51
|
+
until token = _next_token or @ss.eos?; end
|
52
|
+
token
|
53
|
+
end
|
63
54
|
|
64
|
-
|
65
|
-
|
55
|
+
def _next_token
|
56
|
+
text = @ss.peek(1)
|
57
|
+
@lineno += 1 if text == "\n"
|
58
|
+
token = case @state
|
59
|
+
when nil
|
60
|
+
case
|
61
|
+
when (text = @ss.scan(/has\([\s]*/))
|
62
|
+
action { [:HAS, text] }
|
66
63
|
|
67
|
-
|
68
|
-
|
64
|
+
when (text = @ss.scan(/[-@]?([_A-Za-z]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])([_A-Za-z0-9-]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*\([\s]*/))
|
65
|
+
action { [:FUNCTION, text] }
|
69
66
|
|
70
|
-
|
71
|
-
|
67
|
+
when (text = @ss.scan(/[-@]?([_A-Za-z]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])([_A-Za-z0-9-]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*/))
|
68
|
+
action { [:IDENT, text] }
|
72
69
|
|
73
|
-
|
74
|
-
|
70
|
+
when (text = @ss.scan(/\#([_A-Za-z0-9-]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])+/))
|
71
|
+
action { [:HASH, text] }
|
75
72
|
|
76
|
-
|
77
|
-
|
73
|
+
when (text = @ss.scan(/[\s]*~=[\s]*/))
|
74
|
+
action { [:INCLUDES, text] }
|
78
75
|
|
79
|
-
|
80
|
-
|
76
|
+
when (text = @ss.scan(/[\s]*\|=[\s]*/))
|
77
|
+
action { [:DASHMATCH, text] }
|
81
78
|
|
82
|
-
|
83
|
-
|
79
|
+
when (text = @ss.scan(/[\s]*\^=[\s]*/))
|
80
|
+
action { [:PREFIXMATCH, text] }
|
84
81
|
|
85
|
-
|
86
|
-
|
82
|
+
when (text = @ss.scan(/[\s]*\$=[\s]*/))
|
83
|
+
action { [:SUFFIXMATCH, text] }
|
87
84
|
|
88
|
-
|
89
|
-
|
85
|
+
when (text = @ss.scan(/[\s]*\*=[\s]*/))
|
86
|
+
action { [:SUBSTRINGMATCH, text] }
|
90
87
|
|
91
|
-
|
92
|
-
|
88
|
+
when (text = @ss.scan(/[\s]*!=[\s]*/))
|
89
|
+
action { [:NOT_EQUAL, text] }
|
93
90
|
|
94
|
-
|
95
|
-
|
91
|
+
when (text = @ss.scan(/[\s]*=[\s]*/))
|
92
|
+
action { [:EQUAL, text] }
|
96
93
|
|
97
|
-
|
98
|
-
|
94
|
+
when (text = @ss.scan(/[\s]*\)/))
|
95
|
+
action { [:RPAREN, text] }
|
99
96
|
|
100
|
-
|
101
|
-
|
97
|
+
when (text = @ss.scan(/\[[\s]*/))
|
98
|
+
action { [:LSQUARE, text] }
|
102
99
|
|
103
|
-
|
104
|
-
|
100
|
+
when (text = @ss.scan(/[\s]*\]/))
|
101
|
+
action { [:RSQUARE, text] }
|
105
102
|
|
106
|
-
|
107
|
-
|
103
|
+
when (text = @ss.scan(/[\s]*\+[\s]*/))
|
104
|
+
action { [:PLUS, text] }
|
108
105
|
|
109
|
-
|
110
|
-
|
106
|
+
when (text = @ss.scan(/[\s]*>[\s]*/))
|
107
|
+
action { [:GREATER, text] }
|
111
108
|
|
112
|
-
|
113
|
-
|
109
|
+
when (text = @ss.scan(/[\s]*,[\s]*/))
|
110
|
+
action { [:COMMA, text] }
|
114
111
|
|
115
|
-
|
116
|
-
|
112
|
+
when (text = @ss.scan(/[\s]*~[\s]*/))
|
113
|
+
action { [:TILDE, text] }
|
117
114
|
|
118
|
-
|
119
|
-
|
115
|
+
when (text = @ss.scan(/\:not\([\s]*/))
|
116
|
+
action { [:NOT, text] }
|
120
117
|
|
121
|
-
|
122
|
-
|
118
|
+
when (text = @ss.scan(/-?([0-9]+|[0-9]*\.[0-9]+)/))
|
119
|
+
action { [:NUMBER, text] }
|
123
120
|
|
124
|
-
|
125
|
-
|
121
|
+
when (text = @ss.scan(/[\s]*\/\/[\s]*/))
|
122
|
+
action { [:DOUBLESLASH, text] }
|
126
123
|
|
127
|
-
|
128
|
-
|
124
|
+
when (text = @ss.scan(/[\s]*\/[\s]*/))
|
125
|
+
action { [:SLASH, text] }
|
129
126
|
|
130
|
-
|
131
|
-
|
127
|
+
when (text = @ss.scan(/U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})?/))
|
128
|
+
action {[:UNICODE_RANGE, text] }
|
132
129
|
|
133
|
-
|
134
|
-
|
130
|
+
when (text = @ss.scan(/[\s]+/))
|
131
|
+
action { [:S, text] }
|
135
132
|
|
136
|
-
|
137
|
-
|
133
|
+
when (text = @ss.scan(/"([^\n\r\f"]|\n|\r\n|\r|\f|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*(?<!\\)(?:\\{2})*"|'([^\n\r\f']|\n|\r\n|\r|\f|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*(?<!\\)(?:\\{2})*'/))
|
134
|
+
action { [:STRING, text] }
|
138
135
|
|
139
|
-
|
140
|
-
|
141
|
-
raise ScanError, "can not match: '" + text + "'"
|
142
|
-
end # if
|
136
|
+
when (text = @ss.scan(/./))
|
137
|
+
action { [text, text] }
|
143
138
|
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
139
|
+
|
140
|
+
else
|
141
|
+
text = @ss.string[@ss.pos .. -1]
|
142
|
+
raise ScanError, "can not match: '" + text + "'"
|
143
|
+
end # if
|
144
|
+
|
145
|
+
else
|
146
|
+
raise ScanError, "undefined state: '" + state.to_s + "'"
|
147
|
+
end # case state
|
148
|
+
token
|
149
|
+
end # def _next_token
|
149
150
|
|
150
151
|
end # class
|
151
152
|
end
|
data/lib/nokogiri/nokogiri.jar
CHANGED
Binary file
|
data/lib/nokogiri/version.rb
CHANGED
data/lib/nokogiri/xml/builder.rb
CHANGED
@@ -213,7 +213,7 @@ module Nokogiri
|
|
213
213
|
# xml.foo
|
214
214
|
# end
|
215
215
|
# end
|
216
|
-
#
|
216
|
+
#
|
217
217
|
# puts builder.to_xml
|
218
218
|
#
|
219
219
|
# Will output this xml:
|
@@ -250,7 +250,7 @@ module Nokogiri
|
|
250
250
|
# xml.awesome # add the "awesome" tag below "some_tag"
|
251
251
|
# end
|
252
252
|
#
|
253
|
-
def self.with
|
253
|
+
def self.with(root, &block)
|
254
254
|
new({}, root, &block)
|
255
255
|
end
|
256
256
|
|
@@ -263,23 +263,25 @@ module Nokogiri
|
|
263
263
|
# Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
|
264
264
|
# ...
|
265
265
|
# end
|
266
|
-
def initialize
|
267
|
-
|
266
|
+
def initialize(options = {}, root = nil, &block)
|
268
267
|
if root
|
269
|
-
@doc
|
268
|
+
@doc = root.document
|
270
269
|
@parent = root
|
271
270
|
else
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
271
|
+
klassname = "::" + (self.class.name.split("::")[0..-2] + ["Document"]).join("::")
|
272
|
+
klass = begin
|
273
|
+
Object.const_get(klassname)
|
274
|
+
rescue NameError
|
275
|
+
Nokogiri::XML::Document
|
276
|
+
end
|
277
|
+
@parent = @doc = klass.new
|
276
278
|
end
|
277
279
|
|
278
|
-
@context
|
279
|
-
@arity
|
280
|
-
@ns
|
280
|
+
@context = nil
|
281
|
+
@arity = nil
|
282
|
+
@ns = nil
|
281
283
|
|
282
|
-
options.each do |k,v|
|
284
|
+
options.each do |k, v|
|
283
285
|
@doc.send(:"#{k}=", v)
|
284
286
|
end
|
285
287
|
|
@@ -287,7 +289,7 @@ module Nokogiri
|
|
287
289
|
|
288
290
|
@arity = block.arity
|
289
291
|
if @arity <= 0
|
290
|
-
@context = eval(
|
292
|
+
@context = eval("self", block.binding)
|
291
293
|
instance_eval(&block)
|
292
294
|
else
|
293
295
|
yield self
|
@@ -298,26 +300,26 @@ module Nokogiri
|
|
298
300
|
|
299
301
|
###
|
300
302
|
# Create a Text Node with content of +string+
|
301
|
-
def text
|
303
|
+
def text(string)
|
302
304
|
insert @doc.create_text_node(string)
|
303
305
|
end
|
304
306
|
|
305
307
|
###
|
306
308
|
# Create a CDATA Node with content of +string+
|
307
|
-
def cdata
|
309
|
+
def cdata(string)
|
308
310
|
insert doc.create_cdata(string)
|
309
311
|
end
|
310
312
|
|
311
313
|
###
|
312
314
|
# Create a Comment Node with content of +string+
|
313
|
-
def comment
|
315
|
+
def comment(string)
|
314
316
|
insert doc.create_comment(string)
|
315
317
|
end
|
316
318
|
|
317
319
|
###
|
318
320
|
# Build a tag that is associated with namespace +ns+. Raises an
|
319
321
|
# ArgumentError if +ns+ has not been defined higher in the tree.
|
320
|
-
def []
|
322
|
+
def [](ns)
|
321
323
|
if @parent != @doc
|
322
324
|
@ns = @parent.namespace_definitions.find { |x| x.prefix == ns.to_s }
|
323
325
|
end
|
@@ -348,15 +350,15 @@ module Nokogiri
|
|
348
350
|
|
349
351
|
###
|
350
352
|
# Append the given raw XML +string+ to the document
|
351
|
-
def <<
|
353
|
+
def <<(string)
|
352
354
|
@doc.fragment(string).children.each { |x| insert(x) }
|
353
355
|
end
|
354
356
|
|
355
|
-
def method_missing
|
357
|
+
def method_missing(method, *args, &block) # :nodoc:
|
356
358
|
if @context && @context.respond_to?(method)
|
357
359
|
@context.send(method, *args, &block)
|
358
360
|
else
|
359
|
-
node = @doc.create_element(method.to_s.sub(/[_!]$/,
|
361
|
+
node = @doc.create_element(method.to_s.sub(/[_!]$/, ""), *args) { |n|
|
360
362
|
# Set up the namespace
|
361
363
|
if @ns.is_a? Nokogiri::XML::Namespace
|
362
364
|
n.namespace = @ns
|
@@ -377,13 +379,14 @@ module Nokogiri
|
|
377
379
|
end
|
378
380
|
|
379
381
|
private
|
382
|
+
|
380
383
|
###
|
381
384
|
# Insert +node+ as a child of the current Node
|
382
385
|
def insert(node, &block)
|
383
386
|
node = @parent.add_child(node)
|
384
387
|
if block_given?
|
385
388
|
old_parent = @parent
|
386
|
-
@parent
|
389
|
+
@parent = node
|
387
390
|
@arity ||= block.arity
|
388
391
|
if @arity <= 0
|
389
392
|
instance_eval(&block)
|
@@ -396,16 +399,16 @@ module Nokogiri
|
|
396
399
|
end
|
397
400
|
|
398
401
|
class NodeBuilder # :nodoc:
|
399
|
-
def initialize
|
402
|
+
def initialize(node, doc_builder)
|
400
403
|
@node = node
|
401
404
|
@doc_builder = doc_builder
|
402
405
|
end
|
403
406
|
|
404
|
-
def []=
|
407
|
+
def []=(k, v)
|
405
408
|
@node[k] = v
|
406
409
|
end
|
407
410
|
|
408
|
-
def []
|
411
|
+
def [](k)
|
409
412
|
@node[k]
|
410
413
|
end
|
411
414
|
|
@@ -413,19 +416,19 @@ module Nokogiri
|
|
413
416
|
opts = args.last.is_a?(Hash) ? args.pop : {}
|
414
417
|
case method.to_s
|
415
418
|
when /^(.*)!$/
|
416
|
-
@node[
|
419
|
+
@node["id"] = $1
|
417
420
|
@node.content = args.first if args.first
|
418
421
|
when /^(.*)=/
|
419
422
|
@node[$1] = args.first
|
420
423
|
else
|
421
|
-
@node[
|
422
|
-
((@node[
|
424
|
+
@node["class"] =
|
425
|
+
((@node["class"] || "").split(/\s/) + [method.to_s]).join(" ")
|
423
426
|
@node.content = args.first if args.first
|
424
427
|
end
|
425
428
|
|
426
429
|
# Assign any extra options
|
427
|
-
opts.each do |k,v|
|
428
|
-
@node[k.to_s] = ((@node[k.to_s] ||
|
430
|
+
opts.each do |k, v|
|
431
|
+
@node[k.to_s] = ((@node[k.to_s] || "").split(/\s/) + [v]).join(" ")
|
429
432
|
end
|
430
433
|
|
431
434
|
if block_given?
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nokogiri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.10.
|
4
|
+
version: 1.10.4
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Aaron Patterson
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2019-
|
17
|
+
date: 2019-08-11 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,6 +170,20 @@ dependencies:
|
|
170
170
|
- - "~>"
|
171
171
|
- !ruby/object:Gem::Version
|
172
172
|
version: 1.0.5
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
requirement: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - "~>"
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '0.73'
|
179
|
+
name: rubocop
|
180
|
+
prerelease: false
|
181
|
+
type: :development
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - "~>"
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0.73'
|
173
187
|
- !ruby/object:Gem::Dependency
|
174
188
|
requirement: !ruby/object:Gem::Requirement
|
175
189
|
requirements:
|
@@ -209,7 +223,7 @@ dependencies:
|
|
209
223
|
requirements:
|
210
224
|
- - "~>"
|
211
225
|
- !ruby/object:Gem::Version
|
212
|
-
version: '3.
|
226
|
+
version: '3.18'
|
213
227
|
name: hoe
|
214
228
|
prerelease: false
|
215
229
|
type: :development
|
@@ -217,7 +231,7 @@ dependencies:
|
|
217
231
|
requirements:
|
218
232
|
- - "~>"
|
219
233
|
- !ruby/object:Gem::Version
|
220
|
-
version: '3.
|
234
|
+
version: '3.18'
|
221
235
|
description: |-
|
222
236
|
Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser. Among
|
223
237
|
Nokogiri's many features is the ability to search documents via XPath
|