nokogiri 1.10.8 → 1.11.0.rc3
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/README.md +24 -22
- data/ext/nokogiri/extconf.rb +50 -37
- data/ext/nokogiri/nokogiri.c +12 -6
- data/ext/nokogiri/nokogiri.h +13 -0
- data/ext/nokogiri/xml_document.c +16 -2
- data/ext/nokogiri/xml_io.c +8 -6
- data/ext/nokogiri/xml_node.c +20 -0
- data/ext/nokogiri/xml_reader.c +6 -17
- data/ext/nokogiri/xml_schema.c +29 -0
- data/ext/nokogiri/xslt_stylesheet.c +0 -4
- data/lib/nokogiri.rb +3 -20
- data/lib/nokogiri/css.rb +1 -0
- data/lib/nokogiri/css/node.rb +1 -0
- data/lib/nokogiri/css/parser.rb +61 -60
- data/lib/nokogiri/css/parser_extras.rb +39 -36
- data/lib/nokogiri/css/syntax_error.rb +1 -0
- data/lib/nokogiri/css/tokenizer.rb +1 -0
- data/lib/nokogiri/css/xpath_visitor.rb +3 -1
- data/lib/nokogiri/decorators/slop.rb +1 -0
- data/lib/nokogiri/html.rb +1 -0
- data/lib/nokogiri/html/builder.rb +1 -0
- data/lib/nokogiri/html/document.rb +1 -0
- data/lib/nokogiri/html/document_fragment.rb +1 -0
- data/lib/nokogiri/html/element_description.rb +1 -0
- data/lib/nokogiri/html/element_description_defaults.rb +1 -0
- data/lib/nokogiri/html/entity_lookup.rb +1 -0
- data/lib/nokogiri/html/sax/parser.rb +1 -0
- data/lib/nokogiri/html/sax/parser_context.rb +1 -0
- data/lib/nokogiri/html/sax/push_parser.rb +1 -0
- data/lib/nokogiri/jruby/dependencies.rb +20 -0
- data/lib/nokogiri/syntax_error.rb +1 -0
- data/lib/nokogiri/version.rb +86 -45
- data/lib/nokogiri/xml.rb +1 -0
- data/lib/nokogiri/xml/attr.rb +1 -0
- data/lib/nokogiri/xml/attribute_decl.rb +1 -0
- data/lib/nokogiri/xml/builder.rb +3 -2
- data/lib/nokogiri/xml/cdata.rb +1 -0
- data/lib/nokogiri/xml/character_data.rb +1 -0
- data/lib/nokogiri/xml/document.rb +3 -8
- data/lib/nokogiri/xml/document_fragment.rb +1 -0
- data/lib/nokogiri/xml/dtd.rb +1 -0
- data/lib/nokogiri/xml/element_content.rb +1 -0
- data/lib/nokogiri/xml/element_decl.rb +1 -0
- data/lib/nokogiri/xml/entity_decl.rb +1 -0
- data/lib/nokogiri/xml/entity_reference.rb +1 -0
- data/lib/nokogiri/xml/namespace.rb +1 -0
- data/lib/nokogiri/xml/node.rb +539 -224
- data/lib/nokogiri/xml/node/save_options.rb +1 -0
- data/lib/nokogiri/xml/node_set.rb +1 -0
- data/lib/nokogiri/xml/notation.rb +1 -0
- data/lib/nokogiri/xml/parse_options.rb +4 -3
- data/lib/nokogiri/xml/pp.rb +1 -0
- data/lib/nokogiri/xml/pp/character_data.rb +1 -0
- data/lib/nokogiri/xml/pp/node.rb +1 -0
- data/lib/nokogiri/xml/processing_instruction.rb +1 -0
- data/lib/nokogiri/xml/reader.rb +7 -3
- data/lib/nokogiri/xml/relax_ng.rb +1 -0
- data/lib/nokogiri/xml/sax.rb +1 -0
- data/lib/nokogiri/xml/sax/document.rb +1 -0
- data/lib/nokogiri/xml/sax/parser.rb +1 -0
- data/lib/nokogiri/xml/sax/parser_context.rb +1 -0
- data/lib/nokogiri/xml/sax/push_parser.rb +1 -0
- data/lib/nokogiri/xml/schema.rb +1 -0
- data/lib/nokogiri/xml/searchable.rb +22 -15
- data/lib/nokogiri/xml/syntax_error.rb +1 -0
- data/lib/nokogiri/xml/text.rb +1 -0
- data/lib/nokogiri/xml/xpath.rb +1 -0
- data/lib/nokogiri/xml/xpath/syntax_error.rb +1 -0
- data/lib/nokogiri/xml/xpath_context.rb +1 -0
- data/lib/nokogiri/xslt.rb +1 -0
- data/lib/nokogiri/xslt/stylesheet.rb +1 -0
- data/lib/xsd/xmlparser/nokogiri.rb +1 -0
- metadata +54 -33
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module Nokogiri
|
2
3
|
module XML
|
3
4
|
###
|
@@ -5,11 +6,11 @@ module Nokogiri
|
|
5
6
|
#
|
6
7
|
# == Building combinations of parse options
|
7
8
|
# You can build your own combinations of these parse options by using any of the following methods:
|
8
|
-
# *Note*: All examples attempt to set the +RECOVER+ & +NOENT+ options.
|
9
|
+
# *Note*: All examples attempt to set the +RECOVER+ & +NOENT+ options.
|
9
10
|
# [Ruby's bitwise operators] You can use the Ruby bitwise operators to set various combinations.
|
10
|
-
# Nokogiri.XML('<content>Chapter 1</content',
|
11
|
+
# Nokogiri.XML('<content>Chapter 1</content', nil, nil, Nokogiri::XML::ParseOptions.new((1 << 0) | (1 << 1)))
|
11
12
|
# [Method chaining] Every option has an equivalent method in lowercase. You can chain these methods together to set various combinations.
|
12
|
-
# Nokogiri.XML('<content>Chapter 1</content',
|
13
|
+
# Nokogiri.XML('<content>Chapter 1</content', nil, nil, Nokogiri::XML::ParseOptions.new.recover.noent)
|
13
14
|
# [Using Ruby Blocks] You can also setup parse combinations in the block passed to Nokogiri.XML or Nokogiri.HTML
|
14
15
|
# Nokogiri.XML('<content>Chapter 1</content') {|config| config.recover.noent}
|
15
16
|
#
|
data/lib/nokogiri/xml/pp.rb
CHANGED
data/lib/nokogiri/xml/pp/node.rb
CHANGED
data/lib/nokogiri/xml/reader.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module Nokogiri
|
2
3
|
module XML
|
3
4
|
###
|
@@ -87,9 +88,12 @@ module Nokogiri
|
|
87
88
|
###
|
88
89
|
# Get a list of attributes for the current node.
|
89
90
|
def attributes
|
90
|
-
|
91
|
-
|
92
|
-
|
91
|
+
attrs_hash = attribute_nodes.each_with_object({}) do |node, hash|
|
92
|
+
hash[node.name] = node.to_s
|
93
|
+
end
|
94
|
+
ns = namespaces
|
95
|
+
attrs_hash.merge!(ns) if ns
|
96
|
+
attrs_hash
|
93
97
|
end
|
94
98
|
|
95
99
|
###
|
data/lib/nokogiri/xml/sax.rb
CHANGED
data/lib/nokogiri/xml/schema.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module Nokogiri
|
2
3
|
module XML
|
3
4
|
#
|
@@ -11,7 +12,9 @@ module Nokogiri
|
|
11
12
|
# Regular expression used by Searchable#search to determine if a query
|
12
13
|
# string is CSS or XPath
|
13
14
|
LOOKS_LIKE_XPATH = /^(\.\/|\/|\.\.|\.$)/
|
14
|
-
|
15
|
+
|
16
|
+
# @!group Searching via XPath or CSS Queries
|
17
|
+
|
15
18
|
###
|
16
19
|
# call-seq: search *paths, [namespace-bindings, xpath-variable-bindings, custom-handler-class]
|
17
20
|
#
|
@@ -45,7 +48,7 @@ module Nokogiri
|
|
45
48
|
# )
|
46
49
|
#
|
47
50
|
# See Searchable#xpath and Searchable#css for further usage help.
|
48
|
-
def search
|
51
|
+
def search(*args)
|
49
52
|
paths, handler, ns, binds = extract_params(args)
|
50
53
|
|
51
54
|
xpaths = paths.map(&:to_s).map do |path|
|
@@ -54,6 +57,7 @@ module Nokogiri
|
|
54
57
|
|
55
58
|
xpath(*(xpaths + [ns, handler, binds].compact))
|
56
59
|
end
|
60
|
+
|
57
61
|
alias :/ :search
|
58
62
|
|
59
63
|
###
|
@@ -63,9 +67,10 @@ module Nokogiri
|
|
63
67
|
# result. +paths+ must be one or more XPath or CSS queries.
|
64
68
|
#
|
65
69
|
# See Searchable#search for more information.
|
66
|
-
def at
|
70
|
+
def at(*args)
|
67
71
|
search(*args).first
|
68
72
|
end
|
73
|
+
|
69
74
|
alias :% :at
|
70
75
|
|
71
76
|
###
|
@@ -101,7 +106,7 @@ module Nokogiri
|
|
101
106
|
# found in an XML document, where tags names are case-sensitive
|
102
107
|
# (e.g., "H1" is distinct from "h1").
|
103
108
|
#
|
104
|
-
def css
|
109
|
+
def css(*args)
|
105
110
|
rules, handler, ns, _ = extract_params(args)
|
106
111
|
|
107
112
|
css_internal self, rules, handler, ns
|
@@ -114,7 +119,7 @@ module Nokogiri
|
|
114
119
|
# match. +rules+ must be one or more CSS selectors.
|
115
120
|
#
|
116
121
|
# See Searchable#css for more information.
|
117
|
-
def at_css
|
122
|
+
def at_css(*args)
|
118
123
|
css(*args).first
|
119
124
|
end
|
120
125
|
|
@@ -148,7 +153,7 @@ module Nokogiri
|
|
148
153
|
# end
|
149
154
|
# }.new)
|
150
155
|
#
|
151
|
-
def xpath
|
156
|
+
def xpath(*args)
|
152
157
|
paths, handler, ns, binds = extract_params(args)
|
153
158
|
|
154
159
|
xpath_internal self, paths, handler, ns, binds
|
@@ -161,17 +166,19 @@ module Nokogiri
|
|
161
166
|
# match. +paths+ must be one or more XPath queries.
|
162
167
|
#
|
163
168
|
# See Searchable#xpath for more information.
|
164
|
-
def at_xpath
|
169
|
+
def at_xpath(*args)
|
165
170
|
xpath(*args).first
|
166
171
|
end
|
167
172
|
|
173
|
+
# @!endgroup
|
174
|
+
|
168
175
|
private
|
169
176
|
|
170
|
-
def css_internal
|
177
|
+
def css_internal(node, rules, handler, ns)
|
171
178
|
xpath_internal node, css_rules_to_xpath(rules, ns), handler, ns, nil
|
172
179
|
end
|
173
180
|
|
174
|
-
def xpath_internal
|
181
|
+
def xpath_internal(node, paths, handler, ns, binds)
|
175
182
|
document = node.document
|
176
183
|
return NodeSet.new(document) unless document
|
177
184
|
|
@@ -186,12 +193,12 @@ module Nokogiri
|
|
186
193
|
end
|
187
194
|
end
|
188
195
|
|
189
|
-
def xpath_impl
|
196
|
+
def xpath_impl(node, path, handler, ns, binds)
|
190
197
|
ctx = XPathContext.new(node)
|
191
198
|
ctx.register_namespaces(ns)
|
192
|
-
path = path.gsub(/xmlns:/,
|
199
|
+
path = path.gsub(/xmlns:/, " :") unless Nokogiri.uses_libxml?
|
193
200
|
|
194
|
-
binds.each do |key,value|
|
201
|
+
binds.each do |key, value|
|
195
202
|
ctx.register_variable key.to_s, value
|
196
203
|
end if binds
|
197
204
|
|
@@ -202,13 +209,13 @@ module Nokogiri
|
|
202
209
|
rules.map { |rule| xpath_query_from_css_rule(rule, ns) }
|
203
210
|
end
|
204
211
|
|
205
|
-
def xpath_query_from_css_rule
|
212
|
+
def xpath_query_from_css_rule(rule, ns)
|
206
213
|
self.class::IMPLIED_XPATH_CONTEXTS.map do |implied_xpath_context|
|
207
214
|
CSS.xpath_for(rule.to_s, :prefix => implied_xpath_context, :ns => ns)
|
208
|
-
end.join(
|
215
|
+
end.join(" | ")
|
209
216
|
end
|
210
217
|
|
211
|
-
def extract_params
|
218
|
+
def extract_params(params) # :nodoc:
|
212
219
|
handler = params.find do |param|
|
213
220
|
![Hash, String, Symbol].include?(param.class)
|
214
221
|
end
|
data/lib/nokogiri/xml/text.rb
CHANGED
data/lib/nokogiri/xml/xpath.rb
CHANGED
data/lib/nokogiri/xslt.rb
CHANGED
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.
|
4
|
+
version: 1.11.0.rc3
|
5
5
|
platform: ruby
|
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: 2020-
|
17
|
+
date: 2020-09-08 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: mini_portile2
|
@@ -22,28 +22,48 @@ dependencies:
|
|
22
22
|
requirements:
|
23
23
|
- - "~>"
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: 2.
|
25
|
+
version: 2.5.0
|
26
26
|
type: :runtime
|
27
27
|
prerelease: false
|
28
28
|
version_requirements: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
30
|
- - "~>"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 2.
|
32
|
+
version: 2.5.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: concourse
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '0.
|
39
|
+
version: '0.34'
|
40
40
|
type: :development
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '0.
|
46
|
+
version: '0.34'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: hoe
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '3.22'
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 3.22.1
|
57
|
+
type: :development
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '3.22'
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 3.22.1
|
47
67
|
- !ruby/object:Gem::Dependency
|
48
68
|
name: hoe-bundler
|
49
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,6 +120,20 @@ dependencies:
|
|
100
120
|
- - "~>"
|
101
121
|
- !ruby/object:Gem::Version
|
102
122
|
version: '1.6'
|
123
|
+
- !ruby/object:Gem::Dependency
|
124
|
+
name: hoe-markdown
|
125
|
+
requirement: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - "~>"
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '1.1'
|
130
|
+
type: :development
|
131
|
+
prerelease: false
|
132
|
+
version_requirements: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - "~>"
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '1.1'
|
103
137
|
- !ruby/object:Gem::Dependency
|
104
138
|
name: minitest
|
105
139
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,42 +168,42 @@ dependencies:
|
|
134
168
|
requirements:
|
135
169
|
- - "~>"
|
136
170
|
- !ruby/object:Gem::Version
|
137
|
-
version: '
|
171
|
+
version: '13.0'
|
138
172
|
type: :development
|
139
173
|
prerelease: false
|
140
174
|
version_requirements: !ruby/object:Gem::Requirement
|
141
175
|
requirements:
|
142
176
|
- - "~>"
|
143
177
|
- !ruby/object:Gem::Version
|
144
|
-
version: '
|
178
|
+
version: '13.0'
|
145
179
|
- !ruby/object:Gem::Dependency
|
146
180
|
name: rake-compiler
|
147
181
|
requirement: !ruby/object:Gem::Requirement
|
148
182
|
requirements:
|
149
183
|
- - "~>"
|
150
184
|
- !ruby/object:Gem::Version
|
151
|
-
version: 1.1
|
185
|
+
version: '1.1'
|
152
186
|
type: :development
|
153
187
|
prerelease: false
|
154
188
|
version_requirements: !ruby/object:Gem::Requirement
|
155
189
|
requirements:
|
156
190
|
- - "~>"
|
157
191
|
- !ruby/object:Gem::Version
|
158
|
-
version: 1.1
|
192
|
+
version: '1.1'
|
159
193
|
- !ruby/object:Gem::Dependency
|
160
194
|
name: rake-compiler-dock
|
161
195
|
requirement: !ruby/object:Gem::Requirement
|
162
196
|
requirements:
|
163
197
|
- - "~>"
|
164
198
|
- !ruby/object:Gem::Version
|
165
|
-
version:
|
199
|
+
version: '1.0'
|
166
200
|
type: :development
|
167
201
|
prerelease: false
|
168
202
|
version_requirements: !ruby/object:Gem::Requirement
|
169
203
|
requirements:
|
170
204
|
- - "~>"
|
171
205
|
- !ruby/object:Gem::Version
|
172
|
-
version:
|
206
|
+
version: '1.0'
|
173
207
|
- !ruby/object:Gem::Dependency
|
174
208
|
name: rexical
|
175
209
|
requirement: !ruby/object:Gem::Requirement
|
@@ -190,28 +224,28 @@ dependencies:
|
|
190
224
|
requirements:
|
191
225
|
- - "~>"
|
192
226
|
- !ruby/object:Gem::Version
|
193
|
-
version: '0.
|
227
|
+
version: '0.88'
|
194
228
|
type: :development
|
195
229
|
prerelease: false
|
196
230
|
version_requirements: !ruby/object:Gem::Requirement
|
197
231
|
requirements:
|
198
232
|
- - "~>"
|
199
233
|
- !ruby/object:Gem::Version
|
200
|
-
version: '0.
|
234
|
+
version: '0.88'
|
201
235
|
- !ruby/object:Gem::Dependency
|
202
236
|
name: simplecov
|
203
237
|
requirement: !ruby/object:Gem::Requirement
|
204
238
|
requirements:
|
205
239
|
- - "~>"
|
206
240
|
- !ruby/object:Gem::Version
|
207
|
-
version:
|
241
|
+
version: 0.17.0
|
208
242
|
type: :development
|
209
243
|
prerelease: false
|
210
244
|
version_requirements: !ruby/object:Gem::Requirement
|
211
245
|
requirements:
|
212
246
|
- - "~>"
|
213
247
|
- !ruby/object:Gem::Version
|
214
|
-
version:
|
248
|
+
version: 0.17.0
|
215
249
|
- !ruby/object:Gem::Dependency
|
216
250
|
name: rdoc
|
217
251
|
requirement: !ruby/object:Gem::Requirement
|
@@ -232,20 +266,6 @@ dependencies:
|
|
232
266
|
- - "<"
|
233
267
|
- !ruby/object:Gem::Version
|
234
268
|
version: '7'
|
235
|
-
- !ruby/object:Gem::Dependency
|
236
|
-
name: hoe
|
237
|
-
requirement: !ruby/object:Gem::Requirement
|
238
|
-
requirements:
|
239
|
-
- - "~>"
|
240
|
-
- !ruby/object:Gem::Version
|
241
|
-
version: '3.22'
|
242
|
-
type: :development
|
243
|
-
prerelease: false
|
244
|
-
version_requirements: !ruby/object:Gem::Requirement
|
245
|
-
requirements:
|
246
|
-
- - "~>"
|
247
|
-
- !ruby/object:Gem::Version
|
248
|
-
version: '3.22'
|
249
269
|
description: |-
|
250
270
|
Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser. Among
|
251
271
|
Nokogiri's many features is the ability to search documents via XPath
|
@@ -397,6 +417,7 @@ files:
|
|
397
417
|
- lib/nokogiri/html/sax/parser.rb
|
398
418
|
- lib/nokogiri/html/sax/parser_context.rb
|
399
419
|
- lib/nokogiri/html/sax/push_parser.rb
|
420
|
+
- lib/nokogiri/jruby/dependencies.rb
|
400
421
|
- lib/nokogiri/syntax_error.rb
|
401
422
|
- lib/nokogiri/version.rb
|
402
423
|
- lib/nokogiri/xml.rb
|
@@ -465,12 +486,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
465
486
|
requirements:
|
466
487
|
- - ">="
|
467
488
|
- !ruby/object:Gem::Version
|
468
|
-
version: 2.
|
489
|
+
version: 2.4.0
|
469
490
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
470
491
|
requirements:
|
471
|
-
- - "
|
492
|
+
- - ">"
|
472
493
|
- !ruby/object:Gem::Version
|
473
|
-
version:
|
494
|
+
version: 1.3.1
|
474
495
|
requirements: []
|
475
496
|
rubygems_version: 3.1.2
|
476
497
|
signing_key:
|