nokogiri 1.6.1-x86-mingw32 → 1.6.2.rc1-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 +7 -7
- data/.editorconfig +17 -0
- data/.travis.yml +4 -6
- data/CHANGELOG.ja.rdoc +37 -8
- data/CHANGELOG.rdoc +48 -3
- data/Gemfile +3 -3
- data/Manifest.txt +57 -1
- data/README.ja.rdoc +22 -16
- data/README.rdoc +24 -19
- data/ROADMAP.md +1 -2
- data/Rakefile +161 -58
- data/build_all +56 -31
- data/dependencies.yml +3 -3
- data/ext/nokogiri/extconf.rb +379 -121
- data/ext/nokogiri/html_document.c +2 -2
- data/ext/nokogiri/nokogiri.c +6 -1
- data/ext/nokogiri/xml_document.c +5 -4
- data/ext/nokogiri/xml_node.c +11 -4
- data/ext/nokogiri/xml_reader.c +1 -1
- data/ext/nokogiri/xml_sax_parser_context.c +40 -0
- data/ext/nokogiri/xml_syntax_error.c +10 -5
- data/ext/nokogiri/xml_syntax_error.h +1 -1
- data/ext/nokogiri/xml_xpath_context.c +2 -14
- data/ext/nokogiri/xslt_stylesheet.c +1 -1
- data/lib/nokogiri.rb +31 -22
- data/lib/nokogiri/1.9/nokogiri.so +0 -0
- data/lib/nokogiri/2.0/nokogiri.so +0 -0
- data/lib/nokogiri/2.1/nokogiri.so +0 -0
- data/lib/nokogiri/css/node.rb +0 -50
- data/lib/nokogiri/css/parser.rb +213 -218
- data/lib/nokogiri/css/parser.y +21 -30
- data/lib/nokogiri/css/xpath_visitor.rb +62 -14
- data/lib/nokogiri/html/document.rb +97 -18
- data/lib/nokogiri/html/sax/parser.rb +2 -2
- data/lib/nokogiri/version.rb +1 -1
- data/lib/nokogiri/xml/builder.rb +1 -1
- data/lib/nokogiri/xml/document.rb +2 -2
- data/lib/nokogiri/xml/dtd.rb +10 -0
- data/lib/nokogiri/xml/node.rb +26 -1
- data/lib/nokogiri/xml/sax/parser.rb +1 -1
- data/suppressions/README.txt +1 -0
- data/suppressions/nokogiri_ree-1.8.7.358.supp +61 -0
- data/suppressions/nokogiri_ruby-1.8.7.370.supp +0 -0
- data/suppressions/nokogiri_ruby-1.9.2.320.supp +28 -0
- data/suppressions/nokogiri_ruby-1.9.3.327.supp +28 -0
- data/test/css/test_nthiness.rb +65 -2
- data/test/css/test_parser.rb +27 -10
- data/test/css/test_tokenizer.rb +1 -1
- data/test/css/test_xpath_visitor.rb +6 -1
- data/test/files/atom.xml +344 -0
- data/test/files/shift_jis_no_charset.html +9 -0
- data/test/helper.rb +10 -0
- data/test/html/test_document.rb +74 -7
- data/test/html/test_document_encoding.rb +10 -0
- data/test/html/test_document_fragment.rb +3 -3
- data/test/namespaces/test_namespaces_in_cloned_doc.rb +31 -0
- data/test/test_nokogiri.rb +6 -0
- data/test/test_reader.rb +7 -4
- data/test/test_xslt_transforms.rb +25 -0
- data/test/xml/sax/test_parser.rb +16 -0
- data/test/xml/sax/test_parser_context.rb +9 -0
- data/test/xml/test_builder.rb +9 -0
- data/test/xml/test_c14n.rb +12 -2
- data/test/xml/test_document.rb +66 -0
- data/test/xml/test_document_fragment.rb +5 -0
- data/test/xml/test_dtd.rb +84 -0
- data/test/xml/test_entity_reference.rb +3 -3
- data/test/xml/test_node.rb +21 -3
- data/test/xml/test_node_attributes.rb +17 -0
- data/test/xml/test_schema.rb +26 -0
- data/test/xml/test_xpath.rb +81 -0
- metadata +235 -176
- data/lib/nokogiri/nokogiri.rb +0 -1
- data/tasks/cross_compile.rb +0 -134
@@ -76,6 +76,11 @@ module Nokogiri
|
|
76
76
|
assert_instance_of klass, doc
|
77
77
|
end
|
78
78
|
|
79
|
+
def test_unparented_text_node_parse
|
80
|
+
fragment = Nokogiri::XML::DocumentFragment.parse("foo")
|
81
|
+
fragment.children.after("<bar/>")
|
82
|
+
end
|
83
|
+
|
79
84
|
def test_xml_fragment
|
80
85
|
fragment = Nokogiri::XML.fragment("<div>a</div>")
|
81
86
|
assert_equal "<div>a</div>", fragment.to_s
|
data/test/xml/test_dtd.rb
CHANGED
@@ -19,6 +19,90 @@ module Nokogiri
|
|
19
19
|
assert_equal 'bar', dtd.external_id
|
20
20
|
end
|
21
21
|
|
22
|
+
def test_html_dtd
|
23
|
+
{
|
24
|
+
'MathML 2.0' => [
|
25
|
+
'<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">',
|
26
|
+
false,
|
27
|
+
false,
|
28
|
+
],
|
29
|
+
'HTML 2.0' => [
|
30
|
+
'<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">',
|
31
|
+
true,
|
32
|
+
false,
|
33
|
+
],
|
34
|
+
'HTML 3.2' => [
|
35
|
+
'<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">',
|
36
|
+
true,
|
37
|
+
false,
|
38
|
+
],
|
39
|
+
'XHTML Basic 1.0' => [
|
40
|
+
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">',
|
41
|
+
true,
|
42
|
+
false,
|
43
|
+
],
|
44
|
+
'XHTML 1.0 Strict' => [
|
45
|
+
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
|
46
|
+
true,
|
47
|
+
false,
|
48
|
+
],
|
49
|
+
'XHTML + MathML + SVG Profile (XHTML as the host language)' => [
|
50
|
+
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
|
51
|
+
true,
|
52
|
+
false,
|
53
|
+
],
|
54
|
+
'XHTML + MathML + SVG Profile (Using SVG as the host)' => [
|
55
|
+
'<!DOCTYPE svg:svg PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
|
56
|
+
false,
|
57
|
+
false,
|
58
|
+
],
|
59
|
+
'CHTML 1.0' => [
|
60
|
+
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD Compact HTML 1.0 Draft//EN">',
|
61
|
+
true,
|
62
|
+
false,
|
63
|
+
],
|
64
|
+
'HTML 4.01 Strict' => [
|
65
|
+
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',
|
66
|
+
true,
|
67
|
+
false,
|
68
|
+
],
|
69
|
+
'HTML 4.01 Transitional' => [
|
70
|
+
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
|
71
|
+
true,
|
72
|
+
false,
|
73
|
+
],
|
74
|
+
'HTML 4.01 Frameset' => [
|
75
|
+
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">',
|
76
|
+
true,
|
77
|
+
false,
|
78
|
+
],
|
79
|
+
'HTML 5' => [
|
80
|
+
'<!DOCTYPE html>',
|
81
|
+
true,
|
82
|
+
true,
|
83
|
+
],
|
84
|
+
'HTML 5 legacy compatible' => [
|
85
|
+
'<!DOCTYPE HTML SYSTEM "about:legacy-compat">',
|
86
|
+
true,
|
87
|
+
true,
|
88
|
+
],
|
89
|
+
}.each { |name, (dtd_str, html_p, html5_p)|
|
90
|
+
doc = Nokogiri(dtd_str)
|
91
|
+
dtd = doc.internal_subset
|
92
|
+
assert_instance_of Nokogiri::XML::DTD, dtd, name
|
93
|
+
if html_p
|
94
|
+
assert_send [dtd, :html_dtd?], name
|
95
|
+
else
|
96
|
+
assert_not_send [dtd, :html_dtd?], name
|
97
|
+
end
|
98
|
+
if html5_p
|
99
|
+
assert_send [dtd, :html5_dtd?], name
|
100
|
+
else
|
101
|
+
assert_not_send [dtd, :html5_dtd?], name
|
102
|
+
end
|
103
|
+
}
|
104
|
+
end
|
105
|
+
|
22
106
|
def test_content
|
23
107
|
assert_raise NoMethodError do
|
24
108
|
@dtd.content
|
@@ -233,10 +233,10 @@ EOF
|
|
233
233
|
|
234
234
|
test_relative_and_absolute_path :test_reader_entity_reference_without_dtdload do
|
235
235
|
html = File.read xml_document
|
236
|
+
reader = Nokogiri::XML::Reader html, path do |cfg|
|
237
|
+
cfg.default_xml
|
238
|
+
end
|
236
239
|
assert_raises(Nokogiri::XML::SyntaxError) do
|
237
|
-
reader = Nokogiri::XML::Reader html, path do |cfg|
|
238
|
-
cfg.default_xml
|
239
|
-
end
|
240
240
|
reader.each { |n| n }
|
241
241
|
end
|
242
242
|
end
|
data/test/xml/test_node.rb
CHANGED
@@ -133,6 +133,12 @@ module Nokogiri
|
|
133
133
|
node.parse('<baz><</baz>')
|
134
134
|
end
|
135
135
|
|
136
|
+
def test_parse_with_unparented_text_context_node
|
137
|
+
doc = XML::Document.new
|
138
|
+
elem = XML::Text.new("foo", doc)
|
139
|
+
elem.parse("<bar/>")
|
140
|
+
end
|
141
|
+
|
136
142
|
def test_subclass_dup
|
137
143
|
subclass = Class.new(Nokogiri::XML::Node)
|
138
144
|
node = subclass.new('foo', @xml).dup
|
@@ -1006,16 +1012,28 @@ EOXML
|
|
1006
1012
|
<y xmlns:c='http://bazz.com/'>
|
1007
1013
|
<a:div>hello a</a:div>
|
1008
1014
|
<b:div>hello b</b:div>
|
1009
|
-
<c:div>hello c</c:div>
|
1010
|
-
<div
|
1015
|
+
<c:div x="1" b:y="2">hello c</c:div>
|
1016
|
+
<div x="1" xmlns="http://ns.example.com/d"/>
|
1017
|
+
<div x="1">hello moon</div>
|
1011
1018
|
</y>
|
1012
1019
|
</x>
|
1013
1020
|
EOF
|
1014
1021
|
set = xml.search("//y/*")
|
1015
1022
|
assert_equal "a", set[0].namespace.prefix
|
1023
|
+
assert_equal 'http://foo.com/', set[0].namespace.href
|
1016
1024
|
assert_equal "b", set[1].namespace.prefix
|
1025
|
+
assert_equal 'http://bar.com/', set[1].namespace.href
|
1017
1026
|
assert_equal "c", set[2].namespace.prefix
|
1018
|
-
assert_equal
|
1027
|
+
assert_equal 'http://bazz.com/', set[2].namespace.href
|
1028
|
+
assert_equal nil, set[3].namespace.prefix # default namespace
|
1029
|
+
assert_equal 'http://ns.example.com/d', set[3].namespace.href
|
1030
|
+
assert_equal nil, set[4].namespace # no namespace
|
1031
|
+
|
1032
|
+
assert_equal 'b', set[2].attributes['y'].namespace.prefix
|
1033
|
+
assert_equal 'http://bar.com/', set[2].attributes['y'].namespace.href
|
1034
|
+
assert_equal nil, set[2].attributes['x'].namespace
|
1035
|
+
assert_equal nil, set[3].attributes['x'].namespace
|
1036
|
+
assert_equal nil, set[4].attributes['x'].namespace
|
1019
1037
|
end
|
1020
1038
|
|
1021
1039
|
if Nokogiri.uses_libxml?
|
@@ -59,6 +59,23 @@ module Nokogiri
|
|
59
59
|
assert_equal [], node.namespace_definitions.map(&:prefix)
|
60
60
|
end
|
61
61
|
|
62
|
+
def test_append_child_element_with_prefixed_attributes
|
63
|
+
doc = Nokogiri::XML "<root/>"
|
64
|
+
node = doc.root
|
65
|
+
|
66
|
+
assert_equal [], node.namespace_definitions.map(&:prefix)
|
67
|
+
|
68
|
+
|
69
|
+
# assert_nothing_raised do
|
70
|
+
child_node = Nokogiri::XML::Node.new 'foo', doc
|
71
|
+
child_node['xml:lang'] = 'en-GB'
|
72
|
+
|
73
|
+
node << child_node
|
74
|
+
# end
|
75
|
+
|
76
|
+
assert_equal [], child_node.namespace_definitions.map(&:prefix)
|
77
|
+
end
|
78
|
+
|
62
79
|
def test_namespace_key?
|
63
80
|
doc = Nokogiri::XML <<-eoxml
|
64
81
|
<root xmlns:tlm='http://tenderlovemaking.com/'>
|
data/test/xml/test_schema.rb
CHANGED
@@ -14,6 +14,32 @@ module Nokogiri
|
|
14
14
|
assert_instance_of Nokogiri::XML::Schema, xsd
|
15
15
|
end
|
16
16
|
|
17
|
+
def test_invalid_schema_do_not_raise_exceptions
|
18
|
+
xsd = Nokogiri::XML::Schema.new <<EOF
|
19
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
20
|
+
<xs:group name="foo1">
|
21
|
+
<xs:sequence>
|
22
|
+
<xs:element name="bar" type="xs:boolean" />
|
23
|
+
</xs:sequence>
|
24
|
+
</xs:group>
|
25
|
+
<xs:group name="foo2">
|
26
|
+
<xs:sequence>
|
27
|
+
<xs:element name="bar" type="xs:string" />
|
28
|
+
</xs:sequence>
|
29
|
+
</xs:group>
|
30
|
+
<xs:element name="foo">
|
31
|
+
<xs:complexType>
|
32
|
+
<xs:choice>
|
33
|
+
<xs:group ref="foo1"/>
|
34
|
+
<xs:group ref="foo2"/>
|
35
|
+
</xs:choice>
|
36
|
+
</xs:complexType>
|
37
|
+
</xs:element>
|
38
|
+
</xs:schema>
|
39
|
+
EOF
|
40
|
+
assert_instance_of Nokogiri::XML::Schema, xsd
|
41
|
+
end
|
42
|
+
|
17
43
|
def test_schema_from_document_node
|
18
44
|
doc = Nokogiri::XML(File.open(PO_SCHEMA_FILE))
|
19
45
|
assert doc
|
data/test/xml/test_xpath.rb
CHANGED
@@ -132,6 +132,45 @@ module Nokogiri
|
|
132
132
|
assert_equal(['asdf'] * set.length, @handler.things)
|
133
133
|
end
|
134
134
|
|
135
|
+
def parse_params node
|
136
|
+
params={}
|
137
|
+
node.xpath('./param').each do |p|
|
138
|
+
subparams = parse_params p
|
139
|
+
if(subparams.length > 0)
|
140
|
+
if(not params.has_key? p.attributes['name'].value)
|
141
|
+
params[p.attributes['name'].value] = subparams
|
142
|
+
else
|
143
|
+
if(params[p.attributes['name'].value].is_a? Array)
|
144
|
+
params[p.attributes['name'].value] << subparams
|
145
|
+
else
|
146
|
+
value = params[p.attributes['name'].value]
|
147
|
+
params[p.attributes['name'].value] = [value,subparams]
|
148
|
+
end
|
149
|
+
end
|
150
|
+
else
|
151
|
+
params[p.attributes['name'].value]=p.text
|
152
|
+
end
|
153
|
+
end
|
154
|
+
params
|
155
|
+
end
|
156
|
+
|
157
|
+
# issue #741 (xpath() around 10x slower in JRuby)
|
158
|
+
def test_slow_jruby_xpath
|
159
|
+
doc = Nokogiri::XML(File.open(XPATH_FILE))
|
160
|
+
start = Time.now
|
161
|
+
|
162
|
+
doc.xpath('.//category').each do |c|
|
163
|
+
c.xpath('programformats/programformat').each do |p|
|
164
|
+
p.xpath('./modules/module').each do |m|
|
165
|
+
parse_params m
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
stop = Time.now
|
170
|
+
elapsed_time = stop - start
|
171
|
+
assert elapsed_time < 10, "XPath is taking too long"
|
172
|
+
end
|
173
|
+
|
135
174
|
def test_custom_xpath_function_returns_string
|
136
175
|
if Nokogiri.uses_libxml?
|
137
176
|
result = @xml.xpath('thing("asdf")', @handler)
|
@@ -290,6 +329,48 @@ END
|
|
290
329
|
onix = xml_doc.children.first
|
291
330
|
assert_equal 'a', onix.at_xpath('xmlns:Product').at_xpath('xmlns:RecordReference').text
|
292
331
|
end
|
332
|
+
|
333
|
+
def test_xpath_after_attribute_change
|
334
|
+
xml_string = %q{<?xml version="1.0" encoding="UTF-8"?>
|
335
|
+
<mods version="3.0" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-0.xsd" xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
336
|
+
<titleInfo>
|
337
|
+
<nonSort>THE</nonSort>
|
338
|
+
<title xml:lang="eng">ARTICLE TITLE HYDRANGEA ARTICLE 1</title>
|
339
|
+
<subTitle>SUBTITLE</subTitle>
|
340
|
+
</titleInfo>
|
341
|
+
<titleInfo lang="finnish">
|
342
|
+
<title>Artikkelin otsikko Hydrangea artiklan 1</title>
|
343
|
+
</titleInfo>
|
344
|
+
</mods>}
|
345
|
+
|
346
|
+
xml_doc = Nokogiri::XML(xml_string)
|
347
|
+
ns_hash = {'mods'=>'http://www.loc.gov/mods/v3'}
|
348
|
+
node = xml_doc.at_xpath('//mods:titleInfo[1]',ns_hash)
|
349
|
+
node['lang'] = 'english'
|
350
|
+
assert_equal 1, xml_doc.xpath('//mods:titleInfo[1]/@lang',ns_hash).length
|
351
|
+
assert_equal 'english', xml_doc.xpath('//mods:titleInfo[1]/@lang',ns_hash).first.value
|
352
|
+
end
|
353
|
+
|
354
|
+
def test_xpath_after_element_removal
|
355
|
+
xml_string = %q{<?xml version="1.0" encoding="UTF-8"?>
|
356
|
+
<mods version="3.0" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-0.xsd" xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
357
|
+
<titleInfo>
|
358
|
+
<nonSort>THE</nonSort>
|
359
|
+
<title xml:lang="eng">ARTICLE TITLE HYDRANGEA ARTICLE 1</title>
|
360
|
+
<subTitle>SUBTITLE</subTitle>
|
361
|
+
</titleInfo>
|
362
|
+
<titleInfo lang="finnish">
|
363
|
+
<title>Artikkelin otsikko Hydrangea artiklan 1</title>
|
364
|
+
</titleInfo>
|
365
|
+
</mods>}
|
366
|
+
|
367
|
+
xml_doc = Nokogiri::XML(xml_string)
|
368
|
+
ns_hash = {'mods'=>'http://www.loc.gov/mods/v3'}
|
369
|
+
node = xml_doc.at_xpath('//mods:titleInfo[1]',ns_hash)
|
370
|
+
node.remove
|
371
|
+
assert_equal 1, xml_doc.xpath('//mods:titleInfo',ns_hash).length
|
372
|
+
assert_equal 'finnish', xml_doc.xpath('//mods:titleInfo[1]/@lang',ns_hash).first.value
|
373
|
+
end
|
293
374
|
end
|
294
375
|
end
|
295
376
|
end
|
metadata
CHANGED
@@ -1,153 +1,203 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: nokogiri
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.6.2.rc1
|
5
5
|
platform: x86-mingw32
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Aaron Patterson
|
8
8
|
- Mike Dalessio
|
9
9
|
- Yoko Harada
|
10
10
|
- Tim Elliott
|
11
|
+
- Akinori MUSHA
|
11
12
|
autorequire:
|
12
13
|
bindir: bin
|
13
14
|
cert_chain: []
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
requirements:
|
15
|
+
date: 2014-04-06 00:00:00.000000000 Z
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: mini_portile
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
20
21
|
- - ~>
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 0.5.
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.5.2
|
23
24
|
type: :runtime
|
24
|
-
name: mini_portile
|
25
25
|
prerelease: false
|
26
|
-
|
27
|
-
|
28
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
29
|
-
requirements:
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
requirements:
|
30
28
|
- - ~>
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version:
|
33
|
-
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 0.5.2
|
31
|
+
- !ruby/object:Gem::Dependency
|
34
32
|
name: rdoc
|
35
|
-
|
36
|
-
|
37
|
-
-
|
38
|
-
|
39
|
-
|
40
|
-
- - ">="
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: "1.1"
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '4.0'
|
43
38
|
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - ~>
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '4.0'
|
45
|
+
- !ruby/object:Gem::Dependency
|
44
46
|
name: hoe-bundler
|
47
|
+
requirement: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - '>='
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '1.1'
|
52
|
+
type: :development
|
45
53
|
prerelease: false
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
54
|
+
version_requirements: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - '>='
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '1.1'
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: hoe-debugging
|
61
|
+
requirement: !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - '>='
|
64
|
+
- !ruby/object:Gem::Version
|
52
65
|
version: 1.0.3
|
53
66
|
type: :development
|
54
|
-
name: hoe-debugging
|
55
67
|
prerelease: false
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
version: "1.0"
|
63
|
-
type: :development
|
68
|
+
version_requirements: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - '>='
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 1.0.3
|
73
|
+
- !ruby/object:Gem::Dependency
|
64
74
|
name: hoe-gemspec
|
65
|
-
|
66
|
-
|
67
|
-
-
|
68
|
-
|
69
|
-
|
70
|
-
- - ">="
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: "1.4"
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '1.0'
|
73
80
|
type: :development
|
81
|
+
prerelease: false
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '1.0'
|
87
|
+
- !ruby/object:Gem::Dependency
|
74
88
|
name: hoe-git
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '1.4'
|
94
|
+
type: :development
|
75
95
|
prerelease: false
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
96
|
+
version_requirements: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - '>='
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '1.4'
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: minitest
|
103
|
+
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
80
105
|
- - ~>
|
81
|
-
- !ruby/object:Gem::Version
|
106
|
+
- !ruby/object:Gem::Version
|
82
107
|
version: 2.2.2
|
83
108
|
type: :development
|
84
|
-
name: minitest
|
85
109
|
prerelease: false
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
version: "0.9"
|
93
|
-
type: :development
|
110
|
+
version_requirements: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - ~>
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: 2.2.2
|
115
|
+
- !ruby/object:Gem::Dependency
|
94
116
|
name: rake
|
117
|
+
requirement: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - '>='
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0.9'
|
122
|
+
type: :development
|
95
123
|
prerelease: false
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
124
|
+
version_requirements: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - '>='
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0.9'
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
name: rake-compiler
|
131
|
+
requirement: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
100
133
|
- - ~>
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: 0.
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: 0.9.2
|
103
136
|
type: :development
|
104
|
-
name: rake-compiler
|
105
137
|
prerelease: false
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
138
|
+
version_requirements: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - ~>
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: 0.9.2
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: racc
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - '>='
|
148
|
+
- !ruby/object:Gem::Version
|
112
149
|
version: 1.4.6
|
113
150
|
type: :development
|
114
|
-
name: racc
|
115
151
|
prerelease: false
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
requirements:
|
154
|
+
- - '>='
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: 1.4.6
|
157
|
+
- !ruby/object:Gem::Dependency
|
158
|
+
name: rexical
|
159
|
+
requirement: !ruby/object:Gem::Requirement
|
160
|
+
requirements:
|
161
|
+
- - '>='
|
162
|
+
- !ruby/object:Gem::Version
|
122
163
|
version: 1.0.5
|
123
164
|
type: :development
|
124
|
-
name: rexical
|
125
165
|
prerelease: false
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
166
|
+
version_requirements: !ruby/object:Gem::Requirement
|
167
|
+
requirements:
|
168
|
+
- - '>='
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: 1.0.5
|
171
|
+
- !ruby/object:Gem::Dependency
|
172
|
+
name: hoe
|
173
|
+
requirement: !ruby/object:Gem::Requirement
|
174
|
+
requirements:
|
130
175
|
- - ~>
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version:
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '3.7'
|
133
178
|
type: :development
|
134
|
-
name: hoe
|
135
179
|
prerelease: false
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
180
|
+
version_requirements: !ruby/object:Gem::Requirement
|
181
|
+
requirements:
|
182
|
+
- - ~>
|
183
|
+
- !ruby/object:Gem::Version
|
184
|
+
version: '3.7'
|
185
|
+
description: |-
|
186
|
+
Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser. Among Nokogiri's
|
187
|
+
many features is the ability to search documents via XPath or CSS3 selectors.
|
188
|
+
|
189
|
+
XML is like violence - if it doesn’t solve your problems, you are not using
|
190
|
+
enough of it.
|
191
|
+
email:
|
142
192
|
- aaronp@rubyforge.org
|
143
193
|
- mike.dalessio@gmail.com
|
144
194
|
- yokolet@gmail.com
|
145
195
|
- tle@holymonkey.com
|
146
|
-
|
196
|
+
- knu@idaemons.org
|
197
|
+
executables:
|
147
198
|
- nokogiri
|
148
199
|
extensions: []
|
149
|
-
|
150
|
-
extra_rdoc_files:
|
200
|
+
extra_rdoc_files:
|
151
201
|
- CHANGELOG.ja.rdoc
|
152
202
|
- CHANGELOG.rdoc
|
153
203
|
- C_CODING_STYLE.rdoc
|
@@ -157,6 +207,7 @@ extra_rdoc_files:
|
|
157
207
|
- ROADMAP.md
|
158
208
|
- STANDARD_RESPONSES.md
|
159
209
|
- Y_U_NO_GEMSPEC.md
|
210
|
+
- suppressions/README.txt
|
160
211
|
- ext/nokogiri/html_document.c
|
161
212
|
- ext/nokogiri/html_element_description.c
|
162
213
|
- ext/nokogiri/html_entity_lookup.c
|
@@ -191,8 +242,9 @@ extra_rdoc_files:
|
|
191
242
|
- ext/nokogiri/xml_text.c
|
192
243
|
- ext/nokogiri/xml_xpath_context.c
|
193
244
|
- ext/nokogiri/xslt_stylesheet.c
|
194
|
-
files:
|
245
|
+
files:
|
195
246
|
- .autotest
|
247
|
+
- .editorconfig
|
196
248
|
- .gemtest
|
197
249
|
- .travis.yml
|
198
250
|
- CHANGELOG.ja.rdoc
|
@@ -280,6 +332,9 @@ files:
|
|
280
332
|
- ext/nokogiri/xslt_stylesheet.c
|
281
333
|
- ext/nokogiri/xslt_stylesheet.h
|
282
334
|
- lib/nokogiri.rb
|
335
|
+
- lib/nokogiri/1.9/nokogiri.so
|
336
|
+
- lib/nokogiri/2.0/nokogiri.so
|
337
|
+
- lib/nokogiri/2.1/nokogiri.so
|
283
338
|
- lib/nokogiri/css.rb
|
284
339
|
- lib/nokogiri/css/node.rb
|
285
340
|
- lib/nokogiri/css/parser.rb
|
@@ -340,7 +395,11 @@ files:
|
|
340
395
|
- lib/nokogiri/xslt.rb
|
341
396
|
- lib/nokogiri/xslt/stylesheet.rb
|
342
397
|
- lib/xsd/xmlparser/nokogiri.rb
|
343
|
-
-
|
398
|
+
- suppressions/README.txt
|
399
|
+
- suppressions/nokogiri_ree-1.8.7.358.supp
|
400
|
+
- suppressions/nokogiri_ruby-1.8.7.370.supp
|
401
|
+
- suppressions/nokogiri_ruby-1.9.2.320.supp
|
402
|
+
- suppressions/nokogiri_ruby-1.9.3.327.supp
|
344
403
|
- tasks/nokogiri.org.rb
|
345
404
|
- tasks/test.rb
|
346
405
|
- test/css/test_nthiness.rb
|
@@ -351,6 +410,7 @@ files:
|
|
351
410
|
- test/files/2ch.html
|
352
411
|
- test/files/address_book.rlx
|
353
412
|
- test/files/address_book.xml
|
413
|
+
- test/files/atom.xml
|
354
414
|
- test/files/bar/bar.xsd
|
355
415
|
- test/files/bogus.xml
|
356
416
|
- test/files/dont_hurt_em_why.xml
|
@@ -369,6 +429,7 @@ files:
|
|
369
429
|
- test/files/saml/xmldsig_schema.xsd
|
370
430
|
- test/files/shift_jis.html
|
371
431
|
- test/files/shift_jis.xml
|
432
|
+
- test/files/shift_jis_no_charset.html
|
372
433
|
- test/files/snuggles.xml
|
373
434
|
- test/files/staff.dtd
|
374
435
|
- test/files/staff.xml
|
@@ -393,6 +454,7 @@ files:
|
|
393
454
|
- test/html/test_node_encoding.rb
|
394
455
|
- test/namespaces/test_additional_namespaces_in_builder_doc.rb
|
395
456
|
- test/namespaces/test_namespaces_in_builder_doc.rb
|
457
|
+
- test/namespaces/test_namespaces_in_cloned_doc.rb
|
396
458
|
- test/namespaces/test_namespaces_in_created_doc.rb
|
397
459
|
- test/namespaces/test_namespaces_in_parsed_doc.rb
|
398
460
|
- test/test_convert_xpath.rb
|
@@ -443,101 +505,98 @@ files:
|
|
443
505
|
- test/xslt/test_custom_functions.rb
|
444
506
|
- test/xslt/test_exception_handling.rb
|
445
507
|
- test_all
|
446
|
-
- lib/nokogiri/nokogiri.rb
|
447
|
-
- lib/nokogiri/1.9/nokogiri.so
|
448
|
-
- lib/nokogiri/2.0/nokogiri.so
|
449
508
|
homepage: http://nokogiri.org
|
450
|
-
licenses:
|
509
|
+
licenses:
|
451
510
|
- MIT
|
452
511
|
metadata: {}
|
453
|
-
|
454
|
-
|
455
|
-
rdoc_options:
|
512
|
+
post_install_message: |
|
513
|
+
Nokogiri is built with the packaged libraries: libxml2-2.8.0, libxslt-1.1.28, zlib-1.2.8, libiconv-1.14.
|
514
|
+
rdoc_options:
|
456
515
|
- --main
|
457
516
|
- README.rdoc
|
458
|
-
require_paths:
|
517
|
+
require_paths:
|
459
518
|
- lib
|
460
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
461
|
-
requirements:
|
462
|
-
- -
|
463
|
-
- !ruby/object:Gem::Version
|
519
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
520
|
+
requirements:
|
521
|
+
- - '>='
|
522
|
+
- !ruby/object:Gem::Version
|
464
523
|
version: 1.9.2
|
465
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
466
|
-
requirements:
|
467
|
-
- -
|
468
|
-
- !ruby/object:Gem::Version
|
469
|
-
version:
|
524
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
525
|
+
requirements:
|
526
|
+
- - '>'
|
527
|
+
- !ruby/object:Gem::Version
|
528
|
+
version: 1.3.1
|
470
529
|
requirements: []
|
471
|
-
|
472
530
|
rubyforge_project: nokogiri
|
473
|
-
rubygems_version: 2.
|
531
|
+
rubygems_version: 2.2.2
|
474
532
|
signing_key:
|
475
533
|
specification_version: 4
|
476
|
-
summary:
|
477
|
-
test_files:
|
478
|
-
- test/
|
479
|
-
- test/
|
480
|
-
- test/
|
481
|
-
- test/
|
482
|
-
- test/
|
483
|
-
- test/css/test_xpath_visitor.rb
|
484
|
-
- test/xslt/test_exception_handling.rb
|
485
|
-
- test/xslt/test_custom_functions.rb
|
486
|
-
- test/test_reader.rb
|
487
|
-
- test/xml/test_comment.rb
|
488
|
-
- test/xml/test_unparented_node.rb
|
489
|
-
- test/xml/test_processing_instruction.rb
|
490
|
-
- test/xml/test_node_attributes.rb
|
491
|
-
- test/xml/test_xpath.rb
|
492
|
-
- test/xml/test_node_encoding.rb
|
534
|
+
summary: Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser
|
535
|
+
test_files:
|
536
|
+
- test/test_nokogiri.rb
|
537
|
+
- test/test_memory_leak.rb
|
538
|
+
- test/test_convert_xpath.rb
|
539
|
+
- test/xml/test_element_content.rb
|
540
|
+
- test/xml/test_builder.rb
|
493
541
|
- test/xml/test_element_decl.rb
|
494
|
-
- test/xml/test_entity_decl.rb
|
495
|
-
- test/xml/test_namespace.rb
|
496
|
-
- test/xml/test_cdata.rb
|
497
|
-
- test/xml/test_node_inheritance.rb
|
498
|
-
- test/xml/test_entity_reference.rb
|
499
|
-
- test/xml/test_text.rb
|
500
|
-
- test/xml/test_reader_encoding.rb
|
501
|
-
- test/xml/test_dtd.rb
|
502
|
-
- test/xml/test_xinclude.rb
|
503
542
|
- test/xml/test_parse_options.rb
|
504
|
-
- test/xml/test_schema.rb
|
505
|
-
- test/xml/test_element_content.rb
|
506
|
-
- test/xml/test_document.rb
|
507
|
-
- test/xml/test_relax_ng.rb
|
508
|
-
- test/xml/test_c14n.rb
|
509
543
|
- test/xml/test_dtd_encoding.rb
|
510
|
-
- test/xml/test_syntax_error.rb
|
511
544
|
- test/xml/test_attribute_decl.rb
|
512
|
-
- test/xml/
|
513
|
-
- test/xml/test_builder.rb
|
514
|
-
- test/xml/sax/test_parser.rb
|
515
|
-
- test/xml/sax/test_push_parser.rb
|
516
|
-
- test/xml/sax/test_parser_context.rb
|
517
|
-
- test/xml/test_document_encoding.rb
|
518
|
-
- test/xml/test_attr.rb
|
545
|
+
- test/xml/test_cdata.rb
|
519
546
|
- test/xml/test_document_fragment.rb
|
520
|
-
- test/xml/
|
547
|
+
- test/xml/test_dtd.rb
|
521
548
|
- test/xml/test_node_reparenting.rb
|
549
|
+
- test/xml/test_c14n.rb
|
550
|
+
- test/xml/test_node_inheritance.rb
|
551
|
+
- test/xml/test_schema.rb
|
522
552
|
- test/xml/node/test_save_options.rb
|
523
553
|
- test/xml/node/test_subclass.rb
|
554
|
+
- test/xml/test_processing_instruction.rb
|
555
|
+
- test/xml/test_attr.rb
|
556
|
+
- test/xml/test_namespace.rb
|
557
|
+
- test/xml/test_relax_ng.rb
|
558
|
+
- test/xml/test_xpath.rb
|
559
|
+
- test/xml/test_reader_encoding.rb
|
560
|
+
- test/xml/test_node_encoding.rb
|
561
|
+
- test/xml/test_node_attributes.rb
|
562
|
+
- test/xml/test_text.rb
|
563
|
+
- test/xml/test_document.rb
|
564
|
+
- test/xml/test_entity_reference.rb
|
565
|
+
- test/xml/test_node.rb
|
566
|
+
- test/xml/test_document_encoding.rb
|
567
|
+
- test/xml/test_unparented_node.rb
|
568
|
+
- test/xml/test_syntax_error.rb
|
569
|
+
- test/xml/test_entity_decl.rb
|
570
|
+
- test/xml/test_comment.rb
|
571
|
+
- test/xml/sax/test_parser.rb
|
572
|
+
- test/xml/sax/test_parser_context.rb
|
573
|
+
- test/xml/sax/test_push_parser.rb
|
574
|
+
- test/xml/test_node_set.rb
|
575
|
+
- test/xml/test_xinclude.rb
|
524
576
|
- test/test_css_cache.rb
|
525
|
-
- test/
|
577
|
+
- test/xslt/test_exception_handling.rb
|
578
|
+
- test/xslt/test_custom_functions.rb
|
579
|
+
- test/decorators/test_slop.rb
|
580
|
+
- test/html/test_builder.rb
|
581
|
+
- test/html/test_document_fragment.rb
|
582
|
+
- test/html/test_named_characters.rb
|
583
|
+
- test/html/test_element_description.rb
|
526
584
|
- test/html/test_node_encoding.rb
|
527
585
|
- test/html/test_document.rb
|
528
|
-
- test/html/
|
529
|
-
- test/html/
|
586
|
+
- test/html/test_node.rb
|
587
|
+
- test/html/test_document_encoding.rb
|
530
588
|
- test/html/sax/test_parser.rb
|
531
589
|
- test/html/sax/test_parser_context.rb
|
532
|
-
- test/
|
533
|
-
- test/
|
534
|
-
- test/
|
535
|
-
- test/
|
536
|
-
- test/
|
537
|
-
- test/
|
538
|
-
- test/namespaces/
|
590
|
+
- test/test_xslt_transforms.rb
|
591
|
+
- test/css/test_tokenizer.rb
|
592
|
+
- test/css/test_parser.rb
|
593
|
+
- test/css/test_nthiness.rb
|
594
|
+
- test/css/test_xpath_visitor.rb
|
595
|
+
- test/test_encoding_handler.rb
|
596
|
+
- test/namespaces/test_namespaces_in_parsed_doc.rb
|
597
|
+
- test/namespaces/test_namespaces_in_cloned_doc.rb
|
539
598
|
- test/namespaces/test_namespaces_in_created_doc.rb
|
540
599
|
- test/namespaces/test_additional_namespaces_in_builder_doc.rb
|
541
|
-
- test/namespaces/
|
542
|
-
- test/
|
543
|
-
- test/
|
600
|
+
- test/namespaces/test_namespaces_in_builder_doc.rb
|
601
|
+
- test/test_soap4r_sax.rb
|
602
|
+
- test/test_reader.rb
|