nokogiri 1.7.2 → 1.8.0
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/.cross_rubies +4 -4
- data/.travis.yml +43 -24
- data/CHANGELOG.md +54 -6
- data/Gemfile +8 -7
- data/Gemfile-libxml-ruby +3 -0
- data/LICENSE-DEPENDENCIES.md +1612 -0
- data/{LICENSE.txt → LICENSE.md} +1 -1
- data/Manifest.txt +5 -8
- data/README.md +8 -5
- data/Rakefile +15 -31
- data/appveyor.yml +2 -0
- data/dependencies.yml +12 -7
- data/ext/nokogiri/extconf.rb +12 -17
- data/ext/nokogiri/nokogiri.h +0 -10
- data/ext/nokogiri/xml_attr.c +12 -8
- data/ext/nokogiri/xml_node.c +17 -14
- data/ext/nokogiri/xml_sax_push_parser.c +56 -12
- data/lib/nokogiri/html/sax/parser.rb +10 -0
- data/lib/nokogiri/version.rb +5 -4
- data/lib/nokogiri/xml/document.rb +9 -9
- data/lib/nokogiri/xml/node.rb +7 -7
- data/lib/nokogiri/xml/node_set.rb +12 -7
- data/lib/nokogiri/xml/sax/parser.rb +6 -7
- data/lib/nokogiri/xml/searchable.rb +34 -25
- data/lib/nokogiri/xml/syntax_error.rb +24 -1
- data/test/decorators/test_slop.rb +4 -1
- data/test/helper.rb +10 -0
- data/test/html/sax/test_parser.rb +27 -0
- data/test/html/test_document.rb +12 -1
- data/test/html/test_document_encoding.rb +1 -3
- data/test/html/test_document_fragment.rb +3 -0
- data/test/xml/sax/test_push_parser.rb +48 -0
- data/test/xml/test_attr.rb +7 -0
- data/test/xml/test_document.rb +1 -1
- data/test/xml/test_document_fragment.rb +27 -0
- data/test/xml/test_entity_reference.rb +2 -2
- data/test/xml/test_node.rb +12 -15
- data/test/xml/test_node_reparenting.rb +14 -0
- data/test/xml/test_node_set.rb +8 -6
- data/test/xml/test_reader.rb +19 -0
- data/test/xml/test_syntax_error.rb +21 -15
- data/test/xml/test_unparented_node.rb +54 -11
- data/test/xml/test_xpath.rb +23 -6
- metadata +31 -19
- data/suppressions/nokogiri_ree-1.8.7.358.supp +0 -61
- data/suppressions/nokogiri_ruby-1.8.7.370.supp +0 -0
- data/suppressions/nokogiri_ruby-1.9.2.320.supp +0 -28
- data/suppressions/nokogiri_ruby-1.9.3.327.supp +0 -28
- data/test_all +0 -105
data/test/xml/test_xpath.rb
CHANGED
@@ -56,6 +56,10 @@ module Nokogiri
|
|
56
56
|
def value
|
57
57
|
123.456
|
58
58
|
end
|
59
|
+
|
60
|
+
def anint
|
61
|
+
1230456
|
62
|
+
end
|
59
63
|
}.new
|
60
64
|
end
|
61
65
|
|
@@ -200,12 +204,7 @@ module Nokogiri
|
|
200
204
|
end
|
201
205
|
stop = Time.now
|
202
206
|
elapsed_time = stop - start
|
203
|
-
time_limit =
|
204
|
-
if ENV['TRAVIS'] && ENV['CI']
|
205
|
-
20 # Travis CI box slowness
|
206
|
-
else
|
207
|
-
10
|
208
|
-
end
|
207
|
+
time_limit = 20
|
209
208
|
assert_send [elapsed_time, :<, time_limit], "XPath is taking too long"
|
210
209
|
end
|
211
210
|
|
@@ -346,6 +345,15 @@ module Nokogiri
|
|
346
345
|
assert_equal 123.456, value
|
347
346
|
end
|
348
347
|
|
348
|
+
def test_custom_xpath_without_arguments_returning_int
|
349
|
+
if Nokogiri.uses_libxml?
|
350
|
+
value = @xml.xpath('anint()', @handler)
|
351
|
+
else
|
352
|
+
value = @xml.xpath('nokogiri:anint()', @ns, @handler)
|
353
|
+
end
|
354
|
+
assert_equal 1230456, value
|
355
|
+
end
|
356
|
+
|
349
357
|
def test_custom_xpath_with_bullshit_arguments
|
350
358
|
xml = %q{<foo> </foo>}
|
351
359
|
doc = Nokogiri::XML.parse(xml)
|
@@ -440,6 +448,15 @@ XML
|
|
440
448
|
assert_equal 1, sections.size
|
441
449
|
assert_equal "[TEXT_INSIDE_SECTION]", sections.first.text
|
442
450
|
end
|
451
|
+
|
452
|
+
def test_xpath_syntax_error
|
453
|
+
doc = Nokogiri::XML('<ns1:Root></ns1:Root>')
|
454
|
+
begin
|
455
|
+
doc.xpath('//ns1:Root')
|
456
|
+
rescue => e
|
457
|
+
assert_equal false, e.message.include?('0:0')
|
458
|
+
end
|
459
|
+
end
|
443
460
|
end
|
444
461
|
end
|
445
462
|
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.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Patterson
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2017-05
|
15
|
+
date: 2017-06-05 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: mini_portile2
|
@@ -20,14 +20,14 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - "~>"
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 2.
|
23
|
+
version: 2.2.0
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - "~>"
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: 2.
|
30
|
+
version: 2.2.0
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: hoe-bundler
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
@@ -48,14 +48,14 @@ dependencies:
|
|
48
48
|
requirements:
|
49
49
|
- - "~>"
|
50
50
|
- !ruby/object:Gem::Version
|
51
|
-
version: 1.
|
51
|
+
version: 1.3.0
|
52
52
|
type: :development
|
53
53
|
prerelease: false
|
54
54
|
version_requirements: !ruby/object:Gem::Requirement
|
55
55
|
requirements:
|
56
56
|
- - "~>"
|
57
57
|
- !ruby/object:Gem::Version
|
58
|
-
version: 1.
|
58
|
+
version: 1.3.0
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: hoe-gemspec
|
61
61
|
requirement: !ruby/object:Gem::Requirement
|
@@ -104,42 +104,42 @@ dependencies:
|
|
104
104
|
requirements:
|
105
105
|
- - "~>"
|
106
106
|
- !ruby/object:Gem::Version
|
107
|
-
version:
|
107
|
+
version: '12.0'
|
108
108
|
type: :development
|
109
109
|
prerelease: false
|
110
110
|
version_requirements: !ruby/object:Gem::Requirement
|
111
111
|
requirements:
|
112
112
|
- - "~>"
|
113
113
|
- !ruby/object:Gem::Version
|
114
|
-
version:
|
114
|
+
version: '12.0'
|
115
115
|
- !ruby/object:Gem::Dependency
|
116
116
|
name: rake-compiler
|
117
117
|
requirement: !ruby/object:Gem::Requirement
|
118
118
|
requirements:
|
119
119
|
- - "~>"
|
120
120
|
- !ruby/object:Gem::Version
|
121
|
-
version: 0.
|
121
|
+
version: 1.0.3
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
124
|
version_requirements: !ruby/object:Gem::Requirement
|
125
125
|
requirements:
|
126
126
|
- - "~>"
|
127
127
|
- !ruby/object:Gem::Version
|
128
|
-
version: 0.
|
128
|
+
version: 1.0.3
|
129
129
|
- !ruby/object:Gem::Dependency
|
130
130
|
name: rake-compiler-dock
|
131
131
|
requirement: !ruby/object:Gem::Requirement
|
132
132
|
requirements:
|
133
133
|
- - "~>"
|
134
134
|
- !ruby/object:Gem::Version
|
135
|
-
version: 0.
|
135
|
+
version: 0.6.0
|
136
136
|
type: :development
|
137
137
|
prerelease: false
|
138
138
|
version_requirements: !ruby/object:Gem::Requirement
|
139
139
|
requirements:
|
140
140
|
- - "~>"
|
141
141
|
- !ruby/object:Gem::Version
|
142
|
-
version: 0.
|
142
|
+
version: 0.6.0
|
143
143
|
- !ruby/object:Gem::Dependency
|
144
144
|
name: racc
|
145
145
|
requirement: !ruby/object:Gem::Requirement
|
@@ -168,6 +168,20 @@ dependencies:
|
|
168
168
|
- - "~>"
|
169
169
|
- !ruby/object:Gem::Version
|
170
170
|
version: 1.0.5
|
171
|
+
- !ruby/object:Gem::Dependency
|
172
|
+
name: concourse
|
173
|
+
requirement: !ruby/object:Gem::Requirement
|
174
|
+
requirements:
|
175
|
+
- - "~>"
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '0.11'
|
178
|
+
type: :development
|
179
|
+
prerelease: false
|
180
|
+
version_requirements: !ruby/object:Gem::Requirement
|
181
|
+
requirements:
|
182
|
+
- - "~>"
|
183
|
+
- !ruby/object:Gem::Version
|
184
|
+
version: '0.11'
|
171
185
|
- !ruby/object:Gem::Dependency
|
172
186
|
name: rdoc
|
173
187
|
requirement: !ruby/object:Gem::Requirement
|
@@ -214,7 +228,8 @@ extra_rdoc_files:
|
|
214
228
|
- CHANGELOG.md
|
215
229
|
- CONTRIBUTING.md
|
216
230
|
- C_CODING_STYLE.rdoc
|
217
|
-
- LICENSE.
|
231
|
+
- LICENSE-DEPENDENCIES.md
|
232
|
+
- LICENSE.md
|
218
233
|
- Manifest.txt
|
219
234
|
- README.md
|
220
235
|
- ROADMAP.md
|
@@ -265,7 +280,9 @@ files:
|
|
265
280
|
- CONTRIBUTING.md
|
266
281
|
- C_CODING_STYLE.rdoc
|
267
282
|
- Gemfile
|
268
|
-
-
|
283
|
+
- Gemfile-libxml-ruby
|
284
|
+
- LICENSE-DEPENDENCIES.md
|
285
|
+
- LICENSE.md
|
269
286
|
- Manifest.txt
|
270
287
|
- README.md
|
271
288
|
- ROADMAP.md
|
@@ -417,10 +434,6 @@ files:
|
|
417
434
|
- ports/archives/libxml2-2.9.4.tar.gz
|
418
435
|
- ports/archives/libxslt-1.1.29.tar.gz
|
419
436
|
- suppressions/README.txt
|
420
|
-
- suppressions/nokogiri_ree-1.8.7.358.supp
|
421
|
-
- suppressions/nokogiri_ruby-1.8.7.370.supp
|
422
|
-
- suppressions/nokogiri_ruby-1.9.2.320.supp
|
423
|
-
- suppressions/nokogiri_ruby-1.9.3.327.supp
|
424
437
|
- tasks/test.rb
|
425
438
|
- test/css/test_nthiness.rb
|
426
439
|
- test/css/test_parser.rb
|
@@ -530,7 +543,6 @@ files:
|
|
530
543
|
- test/xml/test_xpath.rb
|
531
544
|
- test/xslt/test_custom_functions.rb
|
532
545
|
- test/xslt/test_exception_handling.rb
|
533
|
-
- test_all
|
534
546
|
homepage: http://nokogiri.org
|
535
547
|
licenses:
|
536
548
|
- MIT
|
@@ -1,61 +0,0 @@
|
|
1
|
-
{
|
2
|
-
<insert_a_suppression_name_here>
|
3
|
-
Memcheck:Addr8
|
4
|
-
fun:garbage_collect
|
5
|
-
fun:rb_newobj
|
6
|
-
fun:rb_node_newnode
|
7
|
-
fun:ruby_yyparse
|
8
|
-
fun:yycompile
|
9
|
-
fun:load_file
|
10
|
-
fun:rb_load
|
11
|
-
fun:rb_require_safe
|
12
|
-
fun:rb_call0
|
13
|
-
fun:rb_call
|
14
|
-
fun:eval_fcall
|
15
|
-
fun:rb_eval
|
16
|
-
fun:rb_load
|
17
|
-
fun:rb_require_safe
|
18
|
-
fun:rb_call0
|
19
|
-
fun:rb_call
|
20
|
-
fun:eval_fcall
|
21
|
-
fun:rb_eval
|
22
|
-
fun:rb_load
|
23
|
-
fun:rb_require_safe
|
24
|
-
fun:rb_protect
|
25
|
-
fun:require_libraries
|
26
|
-
fun:proc_options
|
27
|
-
fun:ruby_process_options
|
28
|
-
}
|
29
|
-
{
|
30
|
-
<insert_a_suppression_name_here>
|
31
|
-
Memcheck:Addr8
|
32
|
-
fun:garbage_collect_0
|
33
|
-
fun:rb_newobj
|
34
|
-
fun:rb_node_newnode
|
35
|
-
fun:ruby_yyparse
|
36
|
-
fun:yycompile
|
37
|
-
fun:load_file
|
38
|
-
fun:rb_load
|
39
|
-
fun:rb_require_safe
|
40
|
-
fun:rb_call0
|
41
|
-
fun:rb_call
|
42
|
-
fun:eval_fcall
|
43
|
-
fun:rb_eval
|
44
|
-
fun:rb_load
|
45
|
-
fun:rb_require_safe
|
46
|
-
fun:rb_call0
|
47
|
-
fun:rb_call
|
48
|
-
fun:eval_fcall
|
49
|
-
fun:rb_eval
|
50
|
-
fun:rb_load
|
51
|
-
fun:rb_require_safe
|
52
|
-
fun:rb_protect
|
53
|
-
fun:require_libraries
|
54
|
-
fun:proc_options
|
55
|
-
fun:ruby_process_options
|
56
|
-
}
|
57
|
-
{
|
58
|
-
<insert_a_suppression_name_here>
|
59
|
-
Memcheck:Addr8
|
60
|
-
fun:rb_gc_wipe_stack
|
61
|
-
}
|
File without changes
|
@@ -1,28 +0,0 @@
|
|
1
|
-
{
|
2
|
-
<insert_a_suppression_name_here>
|
3
|
-
Memcheck:Addr4
|
4
|
-
fun:glob_helper
|
5
|
-
fun:ruby_glob0
|
6
|
-
fun:rb_push_glob
|
7
|
-
fun:vm_call_method
|
8
|
-
fun:vm_exec_core
|
9
|
-
fun:vm_exec
|
10
|
-
fun:rb_yield
|
11
|
-
fun:rb_ary_each
|
12
|
-
fun:vm_call_method
|
13
|
-
fun:vm_exec_core
|
14
|
-
fun:vm_exec
|
15
|
-
fun:vm_call0
|
16
|
-
fun:rb_iterate
|
17
|
-
fun:rb_block_call
|
18
|
-
fun:enum_find_all
|
19
|
-
fun:vm_call_method
|
20
|
-
fun:vm_exec_core
|
21
|
-
fun:vm_exec
|
22
|
-
fun:vm_call0
|
23
|
-
fun:rb_class_new_instance
|
24
|
-
fun:vm_call_method
|
25
|
-
fun:vm_exec_core
|
26
|
-
fun:vm_exec
|
27
|
-
fun:vm_call0
|
28
|
-
}
|
@@ -1,28 +0,0 @@
|
|
1
|
-
{
|
2
|
-
<insert_a_suppression_name_here>
|
3
|
-
Memcheck:Addr4
|
4
|
-
fun:glob_helper
|
5
|
-
fun:ruby_glob0
|
6
|
-
fun:rb_push_glob
|
7
|
-
fun:vm_call_method
|
8
|
-
fun:vm_exec_core
|
9
|
-
fun:vm_exec
|
10
|
-
fun:rb_yield
|
11
|
-
fun:rb_ary_each
|
12
|
-
fun:vm_call_method
|
13
|
-
fun:vm_exec_core
|
14
|
-
fun:vm_exec
|
15
|
-
fun:vm_call0
|
16
|
-
fun:rb_iterate
|
17
|
-
fun:rb_block_call
|
18
|
-
fun:enum_find_all
|
19
|
-
fun:vm_call_method
|
20
|
-
fun:vm_exec_core
|
21
|
-
fun:vm_exec
|
22
|
-
fun:vm_call0
|
23
|
-
fun:rb_class_new_instance
|
24
|
-
fun:vm_call_method
|
25
|
-
fun:vm_exec_core
|
26
|
-
fun:vm_exec
|
27
|
-
fun:vm_call0
|
28
|
-
}
|
data/test_all
DELETED
@@ -1,105 +0,0 @@
|
|
1
|
-
#! /usr/bin/env bash
|
2
|
-
#
|
3
|
-
# script to run tests on all relevant rubies, and valgrind on supported rubies.
|
4
|
-
# outputs tests to `test.log` and valgrind output to `valgrind.log`.
|
5
|
-
#
|
6
|
-
# requires `rvm` to be installed. sorry about that, multiruby dudes.
|
7
|
-
#
|
8
|
-
# it's worth periodically using hoe-debugger's ability to generate
|
9
|
-
# valgrind suppression files to remove spurious valgrind messages
|
10
|
-
# (e.g., 1.9.3's glob_helper). ["rake test:valgrind:suppression"]
|
11
|
-
#
|
12
|
-
|
13
|
-
# I'd add rubinius, but rvm errors when building it on my machine. :(
|
14
|
-
RUBIES="\
|
15
|
-
ruby-2.4 \
|
16
|
-
ruby-2.3 \
|
17
|
-
ruby-2.2 \
|
18
|
-
ruby-2.1 \
|
19
|
-
jruby-9.1.6.0 \
|
20
|
-
jruby-1.7.19
|
21
|
-
"
|
22
|
-
|
23
|
-
TEST_LOG=test.log
|
24
|
-
VALGRIND_LOG=valgrind.log
|
25
|
-
|
26
|
-
# make sure we can test with libxml-ruby installed
|
27
|
-
export BUNDLE_GEMFILE="$(pwd)/Gemfile_test_all"
|
28
|
-
cat > $BUNDLE_GEMFILE <<EOF
|
29
|
-
gem "libxml-ruby", :platform => :mri, :require => false
|
30
|
-
eval_gemfile File.join(File.dirname(ENV['BUNDLE_GEMFILE']),"Gemfile")
|
31
|
-
EOF
|
32
|
-
|
33
|
-
# Load RVM into a shell session *as a function*
|
34
|
-
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
|
35
|
-
source "$HOME/.rvm/scripts/rvm"
|
36
|
-
elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
|
37
|
-
source "/usr/local/rvm/scripts/rvm"
|
38
|
-
else
|
39
|
-
echo "ERROR: An RVM installation was not found.\n"
|
40
|
-
fi
|
41
|
-
|
42
|
-
> $TEST_LOG
|
43
|
-
> $VALGRIND_LOG
|
44
|
-
set -o errexit
|
45
|
-
|
46
|
-
function rvm_use {
|
47
|
-
current_ruby=$1
|
48
|
-
rvm use "${1}@nokogiri" --create
|
49
|
-
}
|
50
|
-
|
51
|
-
function clean {
|
52
|
-
bundle exec rake clean clobber 2>&1 > /dev/null
|
53
|
-
}
|
54
|
-
|
55
|
-
function compile {
|
56
|
-
echo "** compiling ..."
|
57
|
-
bundle exec rake compile 2>&1 > /dev/null
|
58
|
-
}
|
59
|
-
|
60
|
-
# quick check that we have All The Rubies
|
61
|
-
for ruby in $RUBIES ; do
|
62
|
-
rvm_use ${ruby}
|
63
|
-
done
|
64
|
-
|
65
|
-
for ruby in $RUBIES ; do
|
66
|
-
rvm_use ${ruby}
|
67
|
-
if ! [[ $(bundle -v) =~ "1.12." ]] ; then
|
68
|
-
yes | gem uninstall --force bundler
|
69
|
-
gem install bundler -v 1.12.5
|
70
|
-
bundle -v
|
71
|
-
fi
|
72
|
-
bundle install --quiet --local || bundle install
|
73
|
-
clean
|
74
|
-
done
|
75
|
-
|
76
|
-
for ruby in $RUBIES ; do
|
77
|
-
rvm_use ${ruby}
|
78
|
-
echo -e "**\n** testing nokogiri on ${ruby}\n**"
|
79
|
-
clean
|
80
|
-
compile
|
81
|
-
echo "** running tests ..."
|
82
|
-
bundle exec rake test 2>&1
|
83
|
-
if [[ ! $ruby =~ "jruby" ]] ; then
|
84
|
-
echo "** running tests again with libxml-ruby loaded ..."
|
85
|
-
if ! gem list libxml-ruby | fgrep 2.8.0 ; then
|
86
|
-
gem install libxml-ruby
|
87
|
-
fi
|
88
|
-
bundle exec rake test:libxml-ruby 2>&1
|
89
|
-
fi
|
90
|
-
clean
|
91
|
-
done | tee -a $TEST_LOG
|
92
|
-
|
93
|
-
for ruby in $RUBIES ; do
|
94
|
-
if [[ ! $ruby =~ "jruby" ]] ; then
|
95
|
-
rvm_use ${ruby}
|
96
|
-
echo -e "**\n** nokogiri prerelease: ${ruby}\n**"
|
97
|
-
clean
|
98
|
-
compile
|
99
|
-
echo "** running valgrind on tests ..."
|
100
|
-
bundle exec rake test:valgrind 2>&1
|
101
|
-
echo "** running valgrind again with libxml-ruby loaded ..."
|
102
|
-
bundle exec rake test:valgrind:libxml-ruby 2>&1
|
103
|
-
clean
|
104
|
-
fi
|
105
|
-
done | tee -a $VALGRIND_LOG
|