nokogiri 1.5.2 → 1.5.3.rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nokogiri might be problematic. Click here for more details.
- data/CHANGELOG.ja.rdoc +15 -0
- data/CHANGELOG.rdoc +11 -0
- data/Manifest.txt +11 -2
- data/ROADMAP.md +65 -0
- data/{nokogiri_help_responses.md → STANDARD_RESPONSES.md} +9 -2
- data/Y_U_NO_GEMSPEC.md +155 -0
- data/build_all +58 -0
- data/ext/nokogiri/xml_node_set.c +1 -1
- data/lib/nokogiri/css/parser.rb +164 -143
- data/lib/nokogiri/css/parser.y +13 -1
- data/lib/nokogiri/version.rb +1 -1
- data/test/css/test_parser.rb +11 -0
- data/test/files/to_be_xincluded.xml +2 -0
- data/test/files/xinclude.xml +4 -0
- data/test/xml/test_document.rb +6 -2
- data/test/xml/test_unparented_node.rb +2 -2
- data/test/xml/test_xpath.rb +11 -0
- data/test_all +84 -0
- metadata +35 -25
data/lib/nokogiri/css/parser.y
CHANGED
@@ -88,7 +88,7 @@ rule
|
|
88
88
|
|
|
89
89
|
;
|
90
90
|
attrib
|
91
|
-
: LSQUARE
|
91
|
+
: LSQUARE attrib_name attrib_val_0or1 RSQUARE {
|
92
92
|
result = Node.new(:ATTRIBUTE_CONDITION,
|
93
93
|
[val[1]] + (val[2] || [])
|
94
94
|
)
|
@@ -105,6 +105,18 @@ rule
|
|
105
105
|
)
|
106
106
|
}
|
107
107
|
;
|
108
|
+
attrib_name
|
109
|
+
: namespace '|' IDENT {
|
110
|
+
result = Node.new(:ELEMENT_NAME,
|
111
|
+
[[val.first, val.last].compact.join(':')]
|
112
|
+
)
|
113
|
+
}
|
114
|
+
| IDENT {
|
115
|
+
# Default namespace is not applied to attributes.
|
116
|
+
# So we don't add prefix "xmlns:" as in namespaced_ident.
|
117
|
+
result = Node.new(:ELEMENT_NAME, [val.first])
|
118
|
+
}
|
119
|
+
;
|
108
120
|
function
|
109
121
|
: FUNCTION RPAREN {
|
110
122
|
result = Node.new(:FUNCTION, [val.first.strip])
|
data/lib/nokogiri/version.rb
CHANGED
data/test/css/test_parser.rb
CHANGED
@@ -6,6 +6,10 @@ module Nokogiri
|
|
6
6
|
def setup
|
7
7
|
super
|
8
8
|
@parser = Nokogiri::CSS::Parser.new
|
9
|
+
@parser_with_ns = Nokogiri::CSS::Parser.new({
|
10
|
+
"xmlns" => "http://default.example.com/",
|
11
|
+
"hoge" => "http://hoge.example.com/",
|
12
|
+
})
|
9
13
|
end
|
10
14
|
|
11
15
|
def test_extra_single_quote
|
@@ -292,6 +296,13 @@ module Nokogiri
|
|
292
296
|
# assert_xpath ['//x/y', '//y/z'], @parser.parse('x > y | y > z')
|
293
297
|
end
|
294
298
|
|
299
|
+
def test_attributes_with_namespace
|
300
|
+
## Default namespace is not applied to attributes.
|
301
|
+
## So this must be @class, not @xmlns:class.
|
302
|
+
assert_xpath "//xmlns:a[@class = 'bar']", @parser_with_ns.parse("a[class='bar']")
|
303
|
+
assert_xpath "//xmlns:a[@hoge:class = 'bar']", @parser_with_ns.parse("a[hoge|class='bar']")
|
304
|
+
end
|
305
|
+
|
295
306
|
def assert_xpath expecteds, asts
|
296
307
|
expecteds = [expecteds].flatten
|
297
308
|
expecteds.zip(asts).each do |expected, actual|
|
data/test/xml/test_document.rb
CHANGED
@@ -358,13 +358,17 @@ module Nokogiri
|
|
358
358
|
def test_subclass_parse
|
359
359
|
klass = Class.new(Nokogiri::XML::Document)
|
360
360
|
doc = klass.parse(File.read(XML_FILE))
|
361
|
-
|
361
|
+
# lame hack uses root to avoid comparing DOCTYPE tags which can appear out of order.
|
362
|
+
# I should really finish lorax and use that here.
|
363
|
+
assert_equal @xml.root.to_s, doc.root.to_s
|
362
364
|
assert_instance_of klass, doc
|
363
365
|
end
|
364
366
|
|
365
367
|
def test_document_parse_method
|
366
368
|
xml = Nokogiri::XML::Document.parse(File.read(XML_FILE))
|
367
|
-
|
369
|
+
# lame hack uses root to avoid comparing DOCTYPE tags which can appear out of order.
|
370
|
+
# I should really finish lorax and use that here.
|
371
|
+
assert_equal @xml.root.to_s, xml.root.to_s
|
368
372
|
end
|
369
373
|
|
370
374
|
def test_encoding=
|
@@ -252,8 +252,8 @@ module Nokogiri
|
|
252
252
|
doc = Nokogiri::XML "<root>foo</root>"
|
253
253
|
pi = Nokogiri::XML::ProcessingInstruction.new(doc, "xml-stylesheet", %q{type="text/xsl" href="foo.xsl"})
|
254
254
|
doc.root.add_previous_sibling pi
|
255
|
-
expected_doc = %Q{<?xml version="1.0"?>\n<?xml-stylesheet type="text/xsl" href="foo.xsl"?>\n<root>foo</root
|
256
|
-
|
255
|
+
expected_doc = %Q{<?xml version="1.0"?>\n<?xml-stylesheet type="text/xsl" href="foo.xsl"?>\n<root>foo</root>}
|
256
|
+
assert_includes doc.to_xml, expected_doc
|
257
257
|
end
|
258
258
|
|
259
259
|
def test_find_by_css_with_tilde_eql
|
data/test/xml/test_xpath.rb
CHANGED
@@ -254,6 +254,17 @@ module Nokogiri
|
|
254
254
|
end
|
255
255
|
assert_equal 123.456, value
|
256
256
|
end
|
257
|
+
|
258
|
+
def test_custom_xpath_with_bullshit_arguments
|
259
|
+
xml = %q{<foo> </foo>}
|
260
|
+
doc = Nokogiri::XML.parse(xml)
|
261
|
+
foo = doc.xpath('//foo[bool_function(bar/baz)]', Class.new {
|
262
|
+
def bool_function(value)
|
263
|
+
true
|
264
|
+
end
|
265
|
+
}.new)
|
266
|
+
assert_equal foo, doc.xpath("//foo")
|
267
|
+
end
|
257
268
|
end
|
258
269
|
end
|
259
270
|
end
|
data/test_all
ADDED
@@ -0,0 +1,84 @@
|
|
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
|
+
|
9
|
+
RUBIES="ruby-1.9.3 jruby-1.6.5 ree-1.8.7 ruby-1.9.2 ruby-1.8.7"
|
10
|
+
TEST_LOG=test.log
|
11
|
+
VALGRIND_LOG=valgrind.log
|
12
|
+
|
13
|
+
# Load RVM into a shell session *as a function*
|
14
|
+
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
|
15
|
+
source "$HOME/.rvm/scripts/rvm"
|
16
|
+
elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
|
17
|
+
source "/usr/local/rvm/scripts/rvm"
|
18
|
+
else
|
19
|
+
echo "ERROR: An RVM installation was not found.\n"
|
20
|
+
fi
|
21
|
+
|
22
|
+
> $TEST_LOG
|
23
|
+
> $VALGRIND_LOG
|
24
|
+
set -o errexit
|
25
|
+
|
26
|
+
function rvm_use {
|
27
|
+
current_ruby=$1
|
28
|
+
rvm use "${1}@nokogiri" --create
|
29
|
+
}
|
30
|
+
|
31
|
+
function generate_parser_and_tokenizer {
|
32
|
+
old_ruby=$current_ruby
|
33
|
+
rvm_use ruby-1.8.7
|
34
|
+
bundle exec rake generate 2>&1 > /dev/null
|
35
|
+
rvm_use $old_ruby
|
36
|
+
}
|
37
|
+
|
38
|
+
function clean {
|
39
|
+
bundle exec rake clean clobber 2>&1 > /dev/null
|
40
|
+
}
|
41
|
+
|
42
|
+
function compile {
|
43
|
+
echo "** compiling ..."
|
44
|
+
generate_parser_and_tokenizer
|
45
|
+
bundle exec rake compile 2>&1 > /dev/null
|
46
|
+
}
|
47
|
+
|
48
|
+
for ruby in $RUBIES ; do
|
49
|
+
rvm_use ${ruby}
|
50
|
+
if gem list bundler | fgrep -v 1.1.rc 2>&1 > /dev/null ; then
|
51
|
+
gem install bundler --pre
|
52
|
+
fi
|
53
|
+
bundle install --quiet --local || bundle install
|
54
|
+
clean
|
55
|
+
done
|
56
|
+
|
57
|
+
for ruby in $RUBIES ; do
|
58
|
+
rvm_use ${ruby}
|
59
|
+
echo -e "**\n** testing nokogiri on ${ruby}\n**" | tee -a $TEST_LOG
|
60
|
+
clean
|
61
|
+
compile
|
62
|
+
echo "** running tests ..."
|
63
|
+
if [[ $ruby =~ "jruby" ]] ; then
|
64
|
+
# I get:
|
65
|
+
# /usr/lib/jvm/java-7-oracle/bin/java: symbol lookup error: /home/mike/.rvm/gems/jruby-1.6.5@nokogiri/gems/racc-1.4.7/lib/racc/cparse.so: undefined symbol: rb_catch
|
66
|
+
# if I use 'bundle exec' with jruby. Anybody?
|
67
|
+
rake test 2>&1 | tee -a $TEST_LOG
|
68
|
+
else
|
69
|
+
bundle exec rake test 2>&1 | tee -a $TEST_LOG
|
70
|
+
fi
|
71
|
+
clean
|
72
|
+
done
|
73
|
+
|
74
|
+
for ruby in $RUBIES ; do
|
75
|
+
if [[ ! $ruby =~ "jruby" ]] ; then
|
76
|
+
rvm_use ${ruby}
|
77
|
+
echo -e "**\n** nokogiri prerelease: ${ruby}\n**" | tee -a $VALGRIND_LOG
|
78
|
+
clean
|
79
|
+
compile
|
80
|
+
echo "** running valgrind on tests ..."
|
81
|
+
bundle exec rake test:valgrind 2>&1 | tee -a $VALGRIND_LOG
|
82
|
+
clean
|
83
|
+
fi
|
84
|
+
done
|
metadata
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nokogiri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: -1629906982
|
5
|
+
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 5
|
9
|
+
- 3
|
10
|
+
- rc
|
9
11
|
- 2
|
10
|
-
version: 1.5.
|
12
|
+
version: 1.5.3.rc2
|
11
13
|
platform: ruby
|
12
14
|
authors:
|
13
15
|
- Aaron Patterson
|
@@ -17,7 +19,7 @@ autorequire:
|
|
17
19
|
bindir: bin
|
18
20
|
cert_chain: []
|
19
21
|
|
20
|
-
date: 2012-03-
|
22
|
+
date: 2012-03-22 00:00:00 Z
|
21
23
|
dependencies:
|
22
24
|
- !ruby/object:Gem::Dependency
|
23
25
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
@@ -32,8 +34,8 @@ dependencies:
|
|
32
34
|
version: "1.1"
|
33
35
|
prerelease: false
|
34
36
|
requirement: *id001
|
35
|
-
type: :development
|
36
37
|
name: hoe-bundler
|
38
|
+
type: :development
|
37
39
|
- !ruby/object:Gem::Dependency
|
38
40
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
39
41
|
none: false
|
@@ -48,8 +50,8 @@ dependencies:
|
|
48
50
|
version: 1.0.3
|
49
51
|
prerelease: false
|
50
52
|
requirement: *id002
|
51
|
-
type: :development
|
52
53
|
name: hoe-debugging
|
54
|
+
type: :development
|
53
55
|
- !ruby/object:Gem::Dependency
|
54
56
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
55
57
|
none: false
|
@@ -63,8 +65,8 @@ dependencies:
|
|
63
65
|
version: "1.0"
|
64
66
|
prerelease: false
|
65
67
|
requirement: *id003
|
66
|
-
type: :development
|
67
68
|
name: hoe-gemspec
|
69
|
+
type: :development
|
68
70
|
- !ruby/object:Gem::Dependency
|
69
71
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
70
72
|
none: false
|
@@ -78,8 +80,8 @@ dependencies:
|
|
78
80
|
version: "1.4"
|
79
81
|
prerelease: false
|
80
82
|
requirement: *id004
|
81
|
-
type: :development
|
82
83
|
name: hoe-git
|
84
|
+
type: :development
|
83
85
|
- !ruby/object:Gem::Dependency
|
84
86
|
version_requirements: &id005 !ruby/object:Gem::Requirement
|
85
87
|
none: false
|
@@ -94,8 +96,8 @@ dependencies:
|
|
94
96
|
version: 0.2.2
|
95
97
|
prerelease: false
|
96
98
|
requirement: *id005
|
97
|
-
type: :development
|
98
99
|
name: mini_portile
|
100
|
+
type: :development
|
99
101
|
- !ruby/object:Gem::Dependency
|
100
102
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
101
103
|
none: false
|
@@ -110,8 +112,8 @@ dependencies:
|
|
110
112
|
version: 2.2.2
|
111
113
|
prerelease: false
|
112
114
|
requirement: *id006
|
113
|
-
type: :development
|
114
115
|
name: minitest
|
116
|
+
type: :development
|
115
117
|
- !ruby/object:Gem::Dependency
|
116
118
|
version_requirements: &id007 !ruby/object:Gem::Requirement
|
117
119
|
none: false
|
@@ -126,8 +128,8 @@ dependencies:
|
|
126
128
|
version: 1.4.6
|
127
129
|
prerelease: false
|
128
130
|
requirement: *id007
|
129
|
-
type: :development
|
130
131
|
name: racc
|
132
|
+
type: :development
|
131
133
|
- !ruby/object:Gem::Dependency
|
132
134
|
version_requirements: &id008 !ruby/object:Gem::Requirement
|
133
135
|
none: false
|
@@ -142,8 +144,8 @@ dependencies:
|
|
142
144
|
version: 0.8.0
|
143
145
|
prerelease: false
|
144
146
|
requirement: *id008
|
145
|
-
type: :development
|
146
147
|
name: rake-compiler
|
148
|
+
type: :development
|
147
149
|
- !ruby/object:Gem::Dependency
|
148
150
|
version_requirements: &id009 !ruby/object:Gem::Requirement
|
149
151
|
none: false
|
@@ -158,8 +160,8 @@ dependencies:
|
|
158
160
|
version: 1.0.5
|
159
161
|
prerelease: false
|
160
162
|
requirement: *id009
|
161
|
-
type: :development
|
162
163
|
name: rexical
|
164
|
+
type: :development
|
163
165
|
- !ruby/object:Gem::Dependency
|
164
166
|
version_requirements: &id010 !ruby/object:Gem::Requirement
|
165
167
|
none: false
|
@@ -173,8 +175,8 @@ dependencies:
|
|
173
175
|
version: "3.10"
|
174
176
|
prerelease: false
|
175
177
|
requirement: *id010
|
176
|
-
type: :development
|
177
178
|
name: rdoc
|
179
|
+
type: :development
|
178
180
|
- !ruby/object:Gem::Dependency
|
179
181
|
version_requirements: &id011 !ruby/object:Gem::Requirement
|
180
182
|
none: false
|
@@ -188,8 +190,8 @@ dependencies:
|
|
188
190
|
version: "2.13"
|
189
191
|
prerelease: false
|
190
192
|
requirement: *id011
|
191
|
-
type: :development
|
192
193
|
name: hoe
|
194
|
+
type: :development
|
193
195
|
description: "Nokogiri (\xE9\x8B\xB8) is an HTML, XML, SAX, and Reader parser. Among Nokogiri's\n\
|
194
196
|
many features is the ability to search documents via XPath or CSS3 selectors.\n\n\
|
195
197
|
XML is like violence - if it doesn\xE2\x80\x99t solve your problems, you are not using\n\
|
@@ -248,11 +250,16 @@ files:
|
|
248
250
|
- .gemtest
|
249
251
|
- CHANGELOG.ja.rdoc
|
250
252
|
- CHANGELOG.rdoc
|
253
|
+
- C_CODING_STYLE.rdoc
|
251
254
|
- Manifest.txt
|
252
255
|
- README.ja.rdoc
|
253
256
|
- README.rdoc
|
257
|
+
- ROADMAP.md
|
254
258
|
- Rakefile
|
259
|
+
- STANDARD_RESPONSES.md
|
260
|
+
- Y_U_NO_GEMSPEC.md
|
255
261
|
- bin/nokogiri
|
262
|
+
- build_all
|
256
263
|
- ext/nokogiri/depend
|
257
264
|
- ext/nokogiri/extconf.rb
|
258
265
|
- ext/nokogiri/html_document.c
|
@@ -384,7 +391,6 @@ files:
|
|
384
391
|
- lib/nokogiri/xslt.rb
|
385
392
|
- lib/nokogiri/xslt/stylesheet.rb
|
386
393
|
- lib/xsd/xmlparser/nokogiri.rb
|
387
|
-
- nokogiri_help_responses.md
|
388
394
|
- tasks/cross_compile.rb
|
389
395
|
- tasks/nokogiri.org.rb
|
390
396
|
- tasks/test.rb
|
@@ -414,7 +420,9 @@ files:
|
|
414
420
|
- test/files/staff.xml
|
415
421
|
- test/files/staff.xslt
|
416
422
|
- test/files/tlm.html
|
423
|
+
- test/files/to_be_xincluded.xml
|
417
424
|
- test/files/valid_bar.xml
|
425
|
+
- test/files/xinclude.xml
|
418
426
|
- test/helper.rb
|
419
427
|
- test/html/sax/test_parser.rb
|
420
428
|
- test/html/sax/test_parser_context.rb
|
@@ -442,6 +450,7 @@ files:
|
|
442
450
|
- test/xml/test_attr.rb
|
443
451
|
- test/xml/test_attribute_decl.rb
|
444
452
|
- test/xml/test_builder.rb
|
453
|
+
- test/xml/test_c14n.rb
|
445
454
|
- test/xml/test_cdata.rb
|
446
455
|
- test/xml/test_comment.rb
|
447
456
|
- test/xml/test_document.rb
|
@@ -457,9 +466,9 @@ files:
|
|
457
466
|
- test/xml/test_node.rb
|
458
467
|
- test/xml/test_node_attributes.rb
|
459
468
|
- test/xml/test_node_encoding.rb
|
469
|
+
- test/xml/test_node_inheritance.rb
|
460
470
|
- test/xml/test_node_reparenting.rb
|
461
471
|
- test/xml/test_node_set.rb
|
462
|
-
- test/xml/test_node_inheritance.rb
|
463
472
|
- test/xml/test_parse_options.rb
|
464
473
|
- test/xml/test_processing_instruction.rb
|
465
474
|
- test/xml/test_reader_encoding.rb
|
@@ -468,12 +477,11 @@ files:
|
|
468
477
|
- test/xml/test_syntax_error.rb
|
469
478
|
- test/xml/test_text.rb
|
470
479
|
- test/xml/test_unparented_node.rb
|
480
|
+
- test/xml/test_xinclude.rb
|
471
481
|
- test/xml/test_xpath.rb
|
472
482
|
- test/xslt/test_custom_functions.rb
|
473
483
|
- test/xslt/test_exception_handling.rb
|
474
|
-
-
|
475
|
-
- test/xml/test_xinclude.rb
|
476
|
-
- C_CODING_STYLE.rdoc
|
484
|
+
- test_all
|
477
485
|
homepage: http://nokogiri.org
|
478
486
|
licenses: []
|
479
487
|
|
@@ -497,16 +505,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
497
505
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
498
506
|
none: false
|
499
507
|
requirements:
|
500
|
-
- - "
|
508
|
+
- - ">"
|
501
509
|
- !ruby/object:Gem::Version
|
502
|
-
hash:
|
510
|
+
hash: 25
|
503
511
|
segments:
|
504
|
-
-
|
505
|
-
|
512
|
+
- 1
|
513
|
+
- 3
|
514
|
+
- 1
|
515
|
+
version: 1.3.1
|
506
516
|
requirements: []
|
507
517
|
|
508
518
|
rubyforge_project: nokogiri
|
509
|
-
rubygems_version: 1.8.
|
519
|
+
rubygems_version: 1.8.17
|
510
520
|
signing_key:
|
511
521
|
specification_version: 3
|
512
522
|
summary: "Nokogiri (\xE9\x8B\xB8) is an HTML, XML, SAX, and Reader parser"
|