nokogiri 1.8.2-x86-mingw32 → 1.8.3-x86-mingw32
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 +5 -5
- data/.travis.yml +14 -14
- data/CHANGELOG.md +43 -1
- data/LICENSE.md +2 -1
- data/Manifest.txt +3 -0
- data/README.md +20 -21
- data/Rakefile +2 -8
- data/SECURITY.md +19 -0
- data/build_all +2 -2
- data/dependencies.yml +11 -11
- data/ext/nokogiri/extconf.rb +1 -1
- data/ext/nokogiri/html_element_description.c +14 -14
- data/ext/nokogiri/xml_cdata.c +6 -4
- data/ext/nokogiri/xml_document.c +2 -3
- data/ext/nokogiri/xml_dtd.c +2 -2
- data/ext/nokogiri/xml_io.c +1 -0
- data/ext/nokogiri/xml_namespace.c +3 -9
- data/ext/nokogiri/xml_namespace.h +2 -0
- data/ext/nokogiri/xml_node.c +23 -15
- data/ext/nokogiri/xml_node_set.c +5 -4
- data/ext/nokogiri/xml_node_set.h +0 -1
- data/ext/nokogiri/xslt_stylesheet.c +2 -2
- data/lib/nokogiri/2.2/nokogiri.so +0 -0
- data/lib/nokogiri/2.3/nokogiri.so +0 -0
- data/lib/nokogiri/2.4/nokogiri.so +0 -0
- data/lib/nokogiri/2.5/nokogiri.so +0 -0
- data/lib/nokogiri/css/parser.rb +108 -90
- data/lib/nokogiri/css/parser.y +13 -2
- data/lib/nokogiri/css/tokenizer.rb +1 -1
- data/lib/nokogiri/css/tokenizer.rex +4 -4
- data/lib/nokogiri/css/xpath_visitor.rb +10 -3
- data/lib/nokogiri/html/document_fragment.rb +11 -1
- data/lib/nokogiri/version.rb +1 -1
- data/lib/nokogiri/xml/node.rb +58 -0
- data/lib/nokogiri/xml/node_set.rb +32 -18
- data/patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch +78 -0
- data/test/css/test_nthiness.rb +21 -21
- data/test/css/test_parser.rb +17 -0
- data/test/html/test_attributes.rb +85 -0
- data/test/html/test_document_fragment.rb +7 -1
- data/test/test_css_cache.rb +5 -3
- data/test/xml/sax/test_parser.rb +9 -1
- data/test/xml/sax/test_push_parser.rb +60 -0
- data/test/xml/test_cdata.rb +1 -1
- data/test/xml/test_document.rb +5 -5
- data/test/xml/test_dtd.rb +4 -4
- data/test/xml/test_node.rb +89 -6
- data/test/xml/test_node_attributes.rb +3 -3
- data/test/xml/test_node_reparenting.rb +18 -0
- data/test/xml/test_node_set.rb +31 -4
- data/test/xml/test_reader.rb +13 -1
- data/test/xml/test_syntax_error.rb +3 -3
- data/test/xml/test_xpath.rb +8 -0
- metadata +26 -5
data/test/xml/test_node_set.rb
CHANGED
@@ -51,6 +51,12 @@ module Nokogiri
|
|
51
51
|
@list.each { |x| assert_nil x['class'] }
|
52
52
|
end
|
53
53
|
|
54
|
+
def test_remove_attribute
|
55
|
+
@list.each { |x| x['class'] = 'blah' }
|
56
|
+
assert_equal @list, @list.remove_attribute('class')
|
57
|
+
@list.each { |x| assert_nil x['class'] }
|
58
|
+
end
|
59
|
+
|
54
60
|
def test_add_class
|
55
61
|
assert_equal @list, @list.add_class('bar')
|
56
62
|
@list.each { |x| assert_equal 'bar', x['class'] }
|
@@ -62,6 +68,17 @@ module Nokogiri
|
|
62
68
|
@list.each { |x| assert_equal 'bar baz', x['class'] }
|
63
69
|
end
|
64
70
|
|
71
|
+
def test_append_class
|
72
|
+
assert_equal @list, @list.append_class('bar')
|
73
|
+
@list.each { |x| assert_equal 'bar', x['class'] }
|
74
|
+
|
75
|
+
@list.append_class('bar')
|
76
|
+
@list.each { |x| assert_equal 'bar bar', x['class'] }
|
77
|
+
|
78
|
+
@list.append_class('baz')
|
79
|
+
@list.each { |x| assert_equal 'bar bar baz', x['class'] }
|
80
|
+
end
|
81
|
+
|
65
82
|
def test_remove_class_with_no_class
|
66
83
|
assert_equal @list, @list.remove_class('bar')
|
67
84
|
@list.each { |e| assert_nil e['class'] }
|
@@ -408,7 +425,7 @@ module Nokogiri
|
|
408
425
|
def test_delete_on_empty_set
|
409
426
|
empty_set = Nokogiri::XML::NodeSet.new @xml, []
|
410
427
|
employee = @xml.at_xpath("//employee")
|
411
|
-
|
428
|
+
assert_nil empty_set.delete(employee)
|
412
429
|
end
|
413
430
|
|
414
431
|
def test_unlink
|
@@ -563,6 +580,8 @@ module Nokogiri
|
|
563
580
|
|
564
581
|
assert_equal 3, employees.index(employees[3])
|
565
582
|
assert_nil employees.index(other)
|
583
|
+
assert_equal 3, employees.index {|employee| employee.search("employeeId/text()").to_s == "EMP0004" }
|
584
|
+
assert_nil employees.index {|employee| employee.search("employeeId/text()").to_s == "EMP0000" }
|
566
585
|
end
|
567
586
|
|
568
587
|
def test_slice_too_far
|
@@ -573,9 +592,9 @@ module Nokogiri
|
|
573
592
|
|
574
593
|
def test_slice_on_empty_node_set
|
575
594
|
empty_set = Nokogiri::XML::NodeSet.new @xml, []
|
576
|
-
|
577
|
-
|
578
|
-
|
595
|
+
assert_nil empty_set[99]
|
596
|
+
assert_nil empty_set[99..101]
|
597
|
+
assert_nil empty_set[99,2]
|
579
598
|
end
|
580
599
|
|
581
600
|
def test_slice_waaaaaay_off_the_end
|
@@ -653,6 +672,14 @@ module Nokogiri
|
|
653
672
|
assert ! empty_set.include?(employee)
|
654
673
|
end
|
655
674
|
|
675
|
+
def test_each
|
676
|
+
employees = @xml.search("//employee")
|
677
|
+
enum = employees.each
|
678
|
+
assert_instance_of Enumerator, enum
|
679
|
+
assert_equal enum.next, employees[0]
|
680
|
+
assert_equal enum.next, employees[1]
|
681
|
+
end
|
682
|
+
|
656
683
|
def test_children
|
657
684
|
employees = @xml.search("//employee")
|
658
685
|
count = 0
|
data/test/xml/test_reader.rb
CHANGED
@@ -4,6 +4,18 @@ require "helper"
|
|
4
4
|
module Nokogiri
|
5
5
|
module XML
|
6
6
|
class TestReader < Nokogiri::TestCase
|
7
|
+
class NonStringIO
|
8
|
+
def read(size)
|
9
|
+
:invalid_object
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_io_non_string
|
14
|
+
io = NonStringIO.new
|
15
|
+
reader = Nokogiri::XML::Reader(io)
|
16
|
+
assert_equal io, reader.source
|
17
|
+
end
|
18
|
+
|
7
19
|
def test_from_io_sets_io_as_source
|
8
20
|
io = File.open SNUGGLES_FILE
|
9
21
|
reader = Nokogiri::XML::Reader.from_io(io)
|
@@ -601,7 +613,7 @@ module Nokogiri
|
|
601
613
|
reader = Nokogiri::XML::Reader("<root xmlns='bob'><el attr='fred' /></root>")
|
602
614
|
reader.read # root
|
603
615
|
reader.read # el
|
604
|
-
|
616
|
+
assert_nil reader.attribute('other')
|
605
617
|
end
|
606
618
|
end
|
607
619
|
end
|
@@ -27,9 +27,9 @@ module Nokogiri
|
|
27
27
|
error = bad_doc.errors.first
|
28
28
|
|
29
29
|
assert_equal "The element type \"root\" must be terminated by the matching end-tag \"</root>\".", error.message
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
assert_nil error.line
|
31
|
+
assert_nil error.column
|
32
|
+
assert_nil error.level
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
data/test/xml/test_xpath.rb
CHANGED
@@ -108,6 +108,14 @@ module Nokogiri
|
|
108
108
|
assert_equal 3, node.search('.//div', 'p.blah').length
|
109
109
|
end
|
110
110
|
|
111
|
+
def test_css_search_with_ambiguous_integer_or_string_attributes
|
112
|
+
# https://github.com/sparklemotion/nokogiri/issues/711
|
113
|
+
html = "<body><div><img width=200>"
|
114
|
+
doc = Nokogiri::HTML(html)
|
115
|
+
assert_not_nil doc.at_css("img[width='200']")
|
116
|
+
assert_not_nil doc.at_css("img[width=200]")
|
117
|
+
end
|
118
|
+
|
111
119
|
def test_css_search_uses_custom_selectors_with_arguments
|
112
120
|
set = @xml.css('employee > address:my_filter("domestic", "Yes")', @handler)
|
113
121
|
assert set.length > 0
|
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.8.
|
4
|
+
version: 1.8.3
|
5
5
|
platform: x86-mingw32
|
6
6
|
authors:
|
7
7
|
- Aaron Patterson
|
@@ -9,10 +9,12 @@ authors:
|
|
9
9
|
- Yoko Harada
|
10
10
|
- Tim Elliott
|
11
11
|
- Akinori MUSHA
|
12
|
+
- John Shahid
|
13
|
+
- Lars Kanis
|
12
14
|
autorequire:
|
13
15
|
bindir: bin
|
14
16
|
cert_chain: []
|
15
|
-
date: 2018-
|
17
|
+
date: 2018-06-16 00:00:00.000000000 Z
|
16
18
|
dependencies:
|
17
19
|
- !ruby/object:Gem::Dependency
|
18
20
|
name: mini_portile2
|
@@ -214,12 +216,27 @@ description: |-
|
|
214
216
|
Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser. Among
|
215
217
|
Nokogiri's many features is the ability to search documents via XPath
|
216
218
|
or CSS3 selectors.
|
219
|
+
|
220
|
+
* http://nokogiri.org
|
221
|
+
* [Installation Help](http://nokogiri.org/tutorials/installing_nokogiri.html)
|
222
|
+
* [Tutorials](http://nokogiri.org)
|
223
|
+
* [GitHub](https://github.com/sparklemotion/nokogiri)
|
224
|
+
* [Mailing List](https://groups.google.com/group/nokogiri-talk)
|
225
|
+
* [Bug Reports](https://github.com/sparklemotion/nokogiri/issues)
|
226
|
+
* [Chat/Gitter](https://gitter.im/sparklemotion/nokogiri)
|
227
|
+
|
228
|
+
[![Concourse CI](https://ci.nokogiri.org/api/v1/teams/nokogiri-core/pipelines/nokogiri/jobs/ruby-2.4-system/badge)](https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri?groups=master)
|
229
|
+
[![Code Climate](https://codeclimate.com/github/sparklemotion/nokogiri.svg)](https://codeclimate.com/github/sparklemotion/nokogiri)
|
230
|
+
[![Version Eye](https://www.versioneye.com/ruby/nokogiri/badge.png)](https://www.versioneye.com/ruby/nokogiri)
|
231
|
+
[![Join the chat at https://gitter.im/sparklemotion/nokogiri](https://badges.gitter.im/sparklemotion/nokogiri.svg)](https://gitter.im/sparklemotion/nokogiri?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
217
232
|
email:
|
218
233
|
- aaronp@rubyforge.org
|
219
234
|
- mike.dalessio@gmail.com
|
220
235
|
- yokolet@gmail.com
|
221
236
|
- tle@holymonkey.com
|
222
237
|
- knu@idaemons.org
|
238
|
+
- jvshahid@gmail.com
|
239
|
+
- lars@greiz-reinsdorf.de
|
223
240
|
executables:
|
224
241
|
- nokogiri
|
225
242
|
extensions: []
|
@@ -232,6 +249,7 @@ extra_rdoc_files:
|
|
232
249
|
- Manifest.txt
|
233
250
|
- README.md
|
234
251
|
- ROADMAP.md
|
252
|
+
- SECURITY.md
|
235
253
|
- STANDARD_RESPONSES.md
|
236
254
|
- Y_U_NO_GEMSPEC.md
|
237
255
|
- suppressions/README.txt
|
@@ -286,6 +304,7 @@ files:
|
|
286
304
|
- README.md
|
287
305
|
- ROADMAP.md
|
288
306
|
- Rakefile
|
307
|
+
- SECURITY.md
|
289
308
|
- STANDARD_RESPONSES.md
|
290
309
|
- Y_U_NO_GEMSPEC.md
|
291
310
|
- appveyor.yml
|
@@ -429,6 +448,7 @@ files:
|
|
429
448
|
- lib/nokogiri/xslt.rb
|
430
449
|
- lib/nokogiri/xslt/stylesheet.rb
|
431
450
|
- lib/xsd/xmlparser/nokogiri.rb
|
451
|
+
- patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch
|
432
452
|
- patches/sort-patches-by-date
|
433
453
|
- suppressions/README.txt
|
434
454
|
- suppressions/nokogiri_ruby-2.supp
|
@@ -480,6 +500,7 @@ files:
|
|
480
500
|
- test/html/sax/test_parser_context.rb
|
481
501
|
- test/html/sax/test_parser_text.rb
|
482
502
|
- test/html/sax/test_push_parser.rb
|
503
|
+
- test/html/test_attributes.rb
|
483
504
|
- test/html/test_builder.rb
|
484
505
|
- test/html/test_document.rb
|
485
506
|
- test/html/test_document_encoding.rb
|
@@ -543,11 +564,11 @@ files:
|
|
543
564
|
- test/xml/test_xpath.rb
|
544
565
|
- test/xslt/test_custom_functions.rb
|
545
566
|
- test/xslt/test_exception_handling.rb
|
546
|
-
homepage:
|
567
|
+
homepage:
|
547
568
|
licenses:
|
548
569
|
- MIT
|
549
570
|
metadata: {}
|
550
|
-
post_install_message: 'Nokogiri is built with the packaged libraries: libxml2-2.9.
|
571
|
+
post_install_message: 'Nokogiri is built with the packaged libraries: libxml2-2.9.8,
|
551
572
|
libxslt-1.1.32, zlib-1.2.11, libiconv-1.15.
|
552
573
|
|
553
574
|
'
|
@@ -571,7 +592,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
571
592
|
version: '0'
|
572
593
|
requirements: []
|
573
594
|
rubyforge_project:
|
574
|
-
rubygems_version: 2.
|
595
|
+
rubygems_version: 2.7.3
|
575
596
|
signing_key:
|
576
597
|
specification_version: 4
|
577
598
|
summary: Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser
|