nokogiri 1.11.7-x86-linux → 1.12.0.rc1-x86-linux
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/LICENSE-DEPENDENCIES.md +243 -22
- data/LICENSE.md +1 -1
- data/README.md +6 -5
- data/ext/nokogiri/depend +35 -34
- data/ext/nokogiri/extconf.rb +181 -103
- data/ext/nokogiri/gumbo.c +611 -0
- data/ext/nokogiri/{html_document.c → html4_document.c} +8 -8
- data/ext/nokogiri/{html_element_description.c → html4_element_description.c} +20 -18
- data/ext/nokogiri/{html_entity_lookup.c → html4_entity_lookup.c} +7 -7
- data/ext/nokogiri/{html_sax_parser_context.c → html4_sax_parser_context.c} +5 -5
- data/ext/nokogiri/{html_sax_push_parser.c → html4_sax_push_parser.c} +4 -4
- data/ext/nokogiri/libxml2_backwards_compat.c +30 -30
- data/ext/nokogiri/nokogiri.c +51 -38
- data/ext/nokogiri/nokogiri.h +16 -9
- data/ext/nokogiri/xml_document.c +13 -13
- data/ext/nokogiri/xml_element_content.c +2 -0
- data/ext/nokogiri/xml_encoding_handler.c +11 -6
- data/ext/nokogiri/xml_namespace.c +2 -0
- data/ext/nokogiri/xml_node.c +102 -102
- data/ext/nokogiri/xml_node_set.c +20 -20
- data/ext/nokogiri/xml_reader.c +2 -0
- data/ext/nokogiri/xml_sax_parser.c +6 -6
- data/ext/nokogiri/xml_sax_parser_context.c +2 -0
- data/ext/nokogiri/xml_schema.c +2 -0
- data/ext/nokogiri/xml_xpath_context.c +67 -65
- data/ext/nokogiri/xslt_stylesheet.c +2 -1
- data/gumbo-parser/CHANGES.md +63 -0
- data/gumbo-parser/Makefile +101 -0
- data/gumbo-parser/THANKS +27 -0
- data/lib/nokogiri.rb +31 -29
- data/lib/nokogiri/2.5/nokogiri.so +0 -0
- data/lib/nokogiri/2.6/nokogiri.so +0 -0
- data/lib/nokogiri/2.7/nokogiri.so +0 -0
- data/lib/nokogiri/3.0/nokogiri.so +0 -0
- data/lib/nokogiri/css.rb +14 -14
- data/lib/nokogiri/css/parser.rb +1 -1
- data/lib/nokogiri/css/parser.y +1 -1
- data/lib/nokogiri/css/syntax_error.rb +1 -1
- data/lib/nokogiri/extension.rb +2 -2
- data/lib/nokogiri/gumbo.rb +14 -0
- data/lib/nokogiri/html.rb +31 -27
- data/lib/nokogiri/html4.rb +40 -0
- data/lib/nokogiri/{html → html4}/builder.rb +2 -2
- data/lib/nokogiri/{html → html4}/document.rb +4 -4
- data/lib/nokogiri/{html → html4}/document_fragment.rb +3 -3
- data/lib/nokogiri/{html → html4}/element_description.rb +1 -1
- data/lib/nokogiri/{html → html4}/element_description_defaults.rb +1 -1
- data/lib/nokogiri/{html → html4}/entity_lookup.rb +1 -1
- data/lib/nokogiri/{html → html4}/sax/parser.rb +11 -14
- data/lib/nokogiri/html4/sax/parser_context.rb +19 -0
- data/lib/nokogiri/{html → html4}/sax/push_parser.rb +5 -5
- data/lib/nokogiri/html5.rb +473 -0
- data/lib/nokogiri/html5/document.rb +74 -0
- data/lib/nokogiri/html5/document_fragment.rb +80 -0
- data/lib/nokogiri/html5/node.rb +93 -0
- data/lib/nokogiri/version/constant.rb +1 -1
- data/lib/nokogiri/version/info.rb +11 -2
- data/lib/nokogiri/xml.rb +35 -36
- data/lib/nokogiri/xml/node.rb +6 -5
- data/lib/nokogiri/xml/parse_options.rb +2 -0
- data/lib/nokogiri/xml/pp.rb +2 -2
- data/lib/nokogiri/xml/sax.rb +4 -4
- data/lib/nokogiri/xml/sax/document.rb +24 -30
- data/lib/nokogiri/xml/xpath.rb +2 -2
- data/lib/nokogiri/xslt.rb +16 -16
- data/lib/nokogiri/xslt/stylesheet.rb +1 -1
- metadata +37 -37
- data/lib/nokogiri/html/sax/parser_context.rb +0 -17
@@ -71,6 +71,8 @@ module Nokogiri
|
|
71
71
|
|
72
72
|
# the default options used for parsing XML documents
|
73
73
|
DEFAULT_XML = RECOVER | NONET
|
74
|
+
# the default options used for parsing XSLT stylesheets
|
75
|
+
DEFAULT_XSLT = RECOVER | NONET | NOENT | DTDLOAD | DTDATTR | NOCDATA
|
74
76
|
# the default options used for parsing HTML documents
|
75
77
|
DEFAULT_HTML = RECOVER | NOERROR | NOWARNING | NONET
|
76
78
|
# the default options used for parsing XML schemas
|
data/lib/nokogiri/xml/pp.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
2
|
+
require_relative "pp/node"
|
3
|
+
require_relative "pp/character_data"
|
data/lib/nokogiri/xml/sax.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
require_relative "sax/document"
|
3
|
+
require_relative "sax/parser_context"
|
4
|
+
require_relative "sax/parser"
|
5
|
+
require_relative "sax/push_parser"
|
@@ -2,20 +2,19 @@
|
|
2
2
|
module Nokogiri
|
3
3
|
module XML
|
4
4
|
###
|
5
|
-
# SAX Parsers are event driven parsers.
|
6
|
-
#
|
7
|
-
#
|
5
|
+
# SAX Parsers are event driven parsers. Nokogiri provides two different event based parsers when
|
6
|
+
# dealing with XML. If you want to do SAX style parsing using HTML, check out
|
7
|
+
# Nokogiri::HTML4::SAX.
|
8
8
|
#
|
9
|
-
# The basic way a SAX style parser works is by creating a parser,
|
10
|
-
#
|
11
|
-
#
|
12
|
-
# it encounters events you said you would like to know about.
|
9
|
+
# The basic way a SAX style parser works is by creating a parser, telling the parser about the
|
10
|
+
# events we're interested in, then giving the parser some XML to process. The parser will notify
|
11
|
+
# you when it encounters events you said you would like to know about.
|
13
12
|
#
|
14
|
-
# To register for events, you simply subclass Nokogiri::XML::SAX::Document,
|
15
|
-
#
|
13
|
+
# To register for events, you simply subclass Nokogiri::XML::SAX::Document, and implement the
|
14
|
+
# methods for which you would like notification.
|
16
15
|
#
|
17
|
-
# For example, if I want to be notified when a document ends, and when an
|
18
|
-
#
|
16
|
+
# For example, if I want to be notified when a document ends, and when an element starts, I
|
17
|
+
# would write a class like this:
|
19
18
|
#
|
20
19
|
# class MyDocument < Nokogiri::XML::SAX::Document
|
21
20
|
# def end_document
|
@@ -27,8 +26,7 @@ module Nokogiri
|
|
27
26
|
# end
|
28
27
|
# end
|
29
28
|
#
|
30
|
-
# Then I would instantiate a SAX parser with this document, and feed the
|
31
|
-
# parser some XML
|
29
|
+
# Then I would instantiate a SAX parser with this document, and feed the parser some XML
|
32
30
|
#
|
33
31
|
# # Create a new parser
|
34
32
|
# parser = Nokogiri::XML::SAX::Parser.new(MyDocument.new)
|
@@ -36,25 +34,21 @@ module Nokogiri
|
|
36
34
|
# # Feed the parser some XML
|
37
35
|
# parser.parse(File.open(ARGV[0]))
|
38
36
|
#
|
39
|
-
# Now my document handler will be called when each node starts, and when
|
40
|
-
#
|
41
|
-
# a look at Nokogiri::XML::SAX::Document.
|
37
|
+
# Now my document handler will be called when each node starts, and when then document ends. To
|
38
|
+
# see what kinds of events are available, take a look at Nokogiri::XML::SAX::Document.
|
42
39
|
#
|
43
|
-
# Two SAX parsers for XML are available, a parser that reads from a string
|
44
|
-
#
|
45
|
-
#
|
46
|
-
# use the Nokogiri::XML::SAX::Parser. If you want to have fine grain
|
40
|
+
# Two SAX parsers for XML are available, a parser that reads from a string or IO object as it
|
41
|
+
# feels necessary, and a parser that lets you spoon feed it XML. If you want to let Nokogiri
|
42
|
+
# deal with reading your XML, use the Nokogiri::XML::SAX::Parser. If you want to have fine grain
|
47
43
|
# control over the XML input, use the Nokogiri::XML::SAX::PushParser.
|
48
44
|
module SAX
|
49
45
|
###
|
50
|
-
# This class is used for registering types of events you are interested
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
# you are interested in knowing about.
|
46
|
+
# This class is used for registering types of events you are interested in handling. All of
|
47
|
+
# the methods on this class are available as possible events while parsing an XML document. To
|
48
|
+
# register for any particular event, just subclass this class and implement the methods you
|
49
|
+
# are interested in knowing about.
|
55
50
|
#
|
56
|
-
# To only be notified about start and end element events, write a class
|
57
|
-
# like this:
|
51
|
+
# To only be notified about start and end element events, write a class like this:
|
58
52
|
#
|
59
53
|
# class MyDocument < Nokogiri::XML::SAX::Document
|
60
54
|
# def start_element name, attrs = []
|
@@ -66,8 +60,8 @@ module Nokogiri
|
|
66
60
|
# end
|
67
61
|
# end
|
68
62
|
#
|
69
|
-
# You can use this event handler for any SAX style parser included with
|
70
|
-
# Nokogiri
|
63
|
+
# You can use this event handler for any SAX style parser included with Nokogiri. See
|
64
|
+
# Nokogiri::XML::SAX, and Nokogiri::HTML4::SAX.
|
71
65
|
class Document
|
72
66
|
###
|
73
67
|
# Called when an XML declaration is parsed
|
@@ -129,7 +123,7 @@ module Nokogiri
|
|
129
123
|
end
|
130
124
|
|
131
125
|
###
|
132
|
-
# Characters read between a tag.
|
126
|
+
# Characters read between a tag. This method might be called multiple
|
133
127
|
# times given one contiguous string of characters.
|
134
128
|
#
|
135
129
|
# +string+ contains the character data
|
data/lib/nokogiri/xml/xpath.rb
CHANGED
data/lib/nokogiri/xslt.rb
CHANGED
@@ -1,6 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'nokogiri/xslt/stylesheet'
|
3
|
-
|
4
2
|
module Nokogiri
|
5
3
|
class << self
|
6
4
|
###
|
@@ -22,32 +20,32 @@ module Nokogiri
|
|
22
20
|
class << self
|
23
21
|
###
|
24
22
|
# Parse the stylesheet in +string+, register any +modules+
|
25
|
-
def parse
|
23
|
+
def parse(string, modules = {})
|
26
24
|
modules.each do |url, klass|
|
27
|
-
XSLT.register
|
25
|
+
XSLT.register(url, klass)
|
28
26
|
end
|
29
27
|
|
28
|
+
doc = XML::Document.parse(string, nil, nil, XML::ParseOptions::DEFAULT_XSLT)
|
30
29
|
if Nokogiri.jruby?
|
31
|
-
Stylesheet.parse_stylesheet_doc(
|
30
|
+
Stylesheet.parse_stylesheet_doc(doc, string)
|
32
31
|
else
|
33
|
-
Stylesheet.parse_stylesheet_doc(
|
32
|
+
Stylesheet.parse_stylesheet_doc(doc)
|
34
33
|
end
|
35
34
|
end
|
36
35
|
|
37
36
|
###
|
38
37
|
# Quote parameters in +params+ for stylesheet safety
|
39
|
-
def quote_params
|
38
|
+
def quote_params(params)
|
40
39
|
parray = (params.instance_of?(Hash) ? params.to_a.flatten : params).dup
|
41
|
-
parray.each_with_index do |v,i|
|
42
|
-
if i % 2 > 0
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
end
|
40
|
+
parray.each_with_index do |v, i|
|
41
|
+
parray[i] = if i % 2 > 0
|
42
|
+
if v =~ /'/
|
43
|
+
"concat('#{v.gsub(/'/, %q{', "'", '})}')"
|
44
|
+
else
|
45
|
+
"'#{v}'"
|
46
|
+
end
|
49
47
|
else
|
50
|
-
|
48
|
+
v.to_s
|
51
49
|
end
|
52
50
|
end
|
53
51
|
parray.flatten
|
@@ -55,3 +53,5 @@ module Nokogiri
|
|
55
53
|
end
|
56
54
|
end
|
57
55
|
end
|
56
|
+
|
57
|
+
require_relative "xslt/stylesheet"
|
@@ -18,7 +18,7 @@ module Nokogiri
|
|
18
18
|
# Apply an XSLT stylesheet to an XML::Document.
|
19
19
|
# +params+ is an array of strings used as XSLT parameters.
|
20
20
|
# returns serialized document
|
21
|
-
def apply_to
|
21
|
+
def apply_to(document, params = [])
|
22
22
|
serialize(transform(document, params))
|
23
23
|
end
|
24
24
|
end
|
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.12.0.rc1
|
5
5
|
platform: x86-linux
|
6
6
|
authors:
|
7
7
|
- Mike Dalessio
|
@@ -10,6 +10,9 @@ authors:
|
|
10
10
|
- Akinori MUSHA
|
11
11
|
- John Shahid
|
12
12
|
- Karol Bucek
|
13
|
+
- Sam Ruby
|
14
|
+
- Craig Barnes
|
15
|
+
- Stephen Checkoway
|
13
16
|
- Lars Kanis
|
14
17
|
- Sergio Arbeo
|
15
18
|
- Timothy Elliott
|
@@ -17,7 +20,7 @@ authors:
|
|
17
20
|
autorequire:
|
18
21
|
bindir: bin
|
19
22
|
cert_chain: []
|
20
|
-
date: 2021-
|
23
|
+
date: 2021-07-09 00:00:00.000000000 Z
|
21
24
|
dependencies:
|
22
25
|
- !ruby/object:Gem::Dependency
|
23
26
|
name: racc
|
@@ -47,20 +50,6 @@ dependencies:
|
|
47
50
|
- - "~>"
|
48
51
|
- !ruby/object:Gem::Version
|
49
52
|
version: '2.2'
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: concourse
|
52
|
-
requirement: !ruby/object:Gem::Requirement
|
53
|
-
requirements:
|
54
|
-
- - "~>"
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '0.41'
|
57
|
-
type: :development
|
58
|
-
prerelease: false
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - "~>"
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '0.41'
|
64
53
|
- !ruby/object:Gem::Dependency
|
65
54
|
name: hoe-markdown
|
66
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -219,31 +208,32 @@ extra_rdoc_files:
|
|
219
208
|
- ext/nokogiri/xml_sax_parser_context.c
|
220
209
|
- ext/nokogiri/xml_node_set.c
|
221
210
|
- ext/nokogiri/xml_reader.c
|
211
|
+
- ext/nokogiri/html4_document.c
|
222
212
|
- ext/nokogiri/xml_cdata.c
|
213
|
+
- ext/nokogiri/html4_entity_lookup.c
|
223
214
|
- ext/nokogiri/xml_element_content.c
|
224
|
-
- ext/nokogiri/
|
215
|
+
- ext/nokogiri/html4_sax_push_parser.c
|
225
216
|
- ext/nokogiri/xml_namespace.c
|
217
|
+
- ext/nokogiri/html4_sax_parser_context.c
|
226
218
|
- ext/nokogiri/xml_document.c
|
227
219
|
- ext/nokogiri/xml_element_decl.c
|
228
220
|
- ext/nokogiri/xml_schema.c
|
229
|
-
- ext/nokogiri/html_document.c
|
230
221
|
- ext/nokogiri/xml_processing_instruction.c
|
231
222
|
- ext/nokogiri/xml_text.c
|
232
223
|
- ext/nokogiri/xml_syntax_error.c
|
233
224
|
- ext/nokogiri/xml_document_fragment.c
|
234
225
|
- ext/nokogiri/xml_sax_push_parser.c
|
235
226
|
- ext/nokogiri/xml_encoding_handler.c
|
236
|
-
- ext/nokogiri/html_sax_push_parser.c
|
237
227
|
- ext/nokogiri/xml_relax_ng.c
|
238
228
|
- ext/nokogiri/xml_entity_decl.c
|
239
229
|
- ext/nokogiri/test_global_handlers.c
|
240
230
|
- ext/nokogiri/xml_node.c
|
241
231
|
- ext/nokogiri/xml_entity_reference.c
|
242
232
|
- ext/nokogiri/xslt_stylesheet.c
|
243
|
-
- ext/nokogiri/
|
233
|
+
- ext/nokogiri/html4_element_description.c
|
244
234
|
- ext/nokogiri/xml_sax_parser.c
|
245
235
|
- ext/nokogiri/xml_attribute_decl.c
|
246
|
-
- ext/nokogiri/
|
236
|
+
- ext/nokogiri/gumbo.c
|
247
237
|
- README.md
|
248
238
|
files:
|
249
239
|
- Gemfile
|
@@ -254,11 +244,12 @@ files:
|
|
254
244
|
- dependencies.yml
|
255
245
|
- ext/nokogiri/depend
|
256
246
|
- ext/nokogiri/extconf.rb
|
257
|
-
- ext/nokogiri/
|
258
|
-
- ext/nokogiri/
|
259
|
-
- ext/nokogiri/
|
260
|
-
- ext/nokogiri/
|
261
|
-
- ext/nokogiri/
|
247
|
+
- ext/nokogiri/gumbo.c
|
248
|
+
- ext/nokogiri/html4_document.c
|
249
|
+
- ext/nokogiri/html4_element_description.c
|
250
|
+
- ext/nokogiri/html4_entity_lookup.c
|
251
|
+
- ext/nokogiri/html4_sax_parser_context.c
|
252
|
+
- ext/nokogiri/html4_sax_push_parser.c
|
262
253
|
- ext/nokogiri/include/libexslt/exslt.h
|
263
254
|
- ext/nokogiri/include/libexslt/exsltconfig.h
|
264
255
|
- ext/nokogiri/include/libexslt/exsltexports.h
|
@@ -360,6 +351,9 @@ files:
|
|
360
351
|
- ext/nokogiri/xml_text.c
|
361
352
|
- ext/nokogiri/xml_xpath_context.c
|
362
353
|
- ext/nokogiri/xslt_stylesheet.c
|
354
|
+
- gumbo-parser/CHANGES.md
|
355
|
+
- gumbo-parser/Makefile
|
356
|
+
- gumbo-parser/THANKS
|
363
357
|
- lib/nokogiri.rb
|
364
358
|
- lib/nokogiri/2.5/nokogiri.so
|
365
359
|
- lib/nokogiri/2.6/nokogiri.so
|
@@ -376,16 +370,22 @@ files:
|
|
376
370
|
- lib/nokogiri/css/xpath_visitor.rb
|
377
371
|
- lib/nokogiri/decorators/slop.rb
|
378
372
|
- lib/nokogiri/extension.rb
|
373
|
+
- lib/nokogiri/gumbo.rb
|
379
374
|
- lib/nokogiri/html.rb
|
380
|
-
- lib/nokogiri/
|
381
|
-
- lib/nokogiri/
|
382
|
-
- lib/nokogiri/
|
383
|
-
- lib/nokogiri/
|
384
|
-
- lib/nokogiri/
|
385
|
-
- lib/nokogiri/
|
386
|
-
- lib/nokogiri/
|
387
|
-
- lib/nokogiri/
|
388
|
-
- lib/nokogiri/
|
375
|
+
- lib/nokogiri/html4.rb
|
376
|
+
- lib/nokogiri/html4/builder.rb
|
377
|
+
- lib/nokogiri/html4/document.rb
|
378
|
+
- lib/nokogiri/html4/document_fragment.rb
|
379
|
+
- lib/nokogiri/html4/element_description.rb
|
380
|
+
- lib/nokogiri/html4/element_description_defaults.rb
|
381
|
+
- lib/nokogiri/html4/entity_lookup.rb
|
382
|
+
- lib/nokogiri/html4/sax/parser.rb
|
383
|
+
- lib/nokogiri/html4/sax/parser_context.rb
|
384
|
+
- lib/nokogiri/html4/sax/push_parser.rb
|
385
|
+
- lib/nokogiri/html5.rb
|
386
|
+
- lib/nokogiri/html5/document.rb
|
387
|
+
- lib/nokogiri/html5/document_fragment.rb
|
388
|
+
- lib/nokogiri/html5/node.rb
|
389
389
|
- lib/nokogiri/jruby/dependencies.rb
|
390
390
|
- lib/nokogiri/syntax_error.rb
|
391
391
|
- lib/nokogiri/version.rb
|
@@ -456,9 +456,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
456
456
|
version: 3.1.dev
|
457
457
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
458
458
|
requirements:
|
459
|
-
- - "
|
459
|
+
- - ">"
|
460
460
|
- !ruby/object:Gem::Version
|
461
|
-
version:
|
461
|
+
version: 1.3.1
|
462
462
|
requirements: []
|
463
463
|
rubygems_version: 3.2.3
|
464
464
|
signing_key:
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Nokogiri
|
3
|
-
module HTML
|
4
|
-
module SAX
|
5
|
-
###
|
6
|
-
# Context for HTML SAX parsers. This class is usually not instantiated
|
7
|
-
# by the user. Instead, you should be looking at
|
8
|
-
# Nokogiri::HTML::SAX::Parser
|
9
|
-
class ParserContext < Nokogiri::XML::SAX::ParserContext
|
10
|
-
def self.new thing, encoding = 'UTF-8'
|
11
|
-
[:read, :close].all? { |x| thing.respond_to?(x) } ? super :
|
12
|
-
memory(thing, encoding)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|