nokogiri 1.5.0 → 1.5.1.rc1
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.
- data/CHANGELOG.ja.rdoc +39 -12
- data/CHANGELOG.rdoc +28 -0
- data/C_CODING_STYLE.rdoc +27 -0
- data/Manifest.txt +4 -0
- data/README.rdoc +11 -7
- data/Rakefile +42 -29
- data/bin/nokogiri +10 -2
- data/ext/nokogiri/extconf.rb +9 -1
- data/ext/nokogiri/html_document.c +16 -0
- data/ext/nokogiri/html_sax_parser_context.c +59 -37
- data/ext/nokogiri/html_sax_push_parser.c +87 -0
- data/ext/nokogiri/html_sax_push_parser.h +9 -0
- data/ext/nokogiri/nokogiri.c +6 -8
- data/ext/nokogiri/nokogiri.h +3 -0
- data/ext/nokogiri/xml_document.c +101 -3
- data/ext/nokogiri/xml_document.h +3 -3
- data/ext/nokogiri/xml_node.c +150 -58
- data/ext/nokogiri/xml_node_set.c +169 -120
- data/ext/nokogiri/xml_node_set.h +5 -0
- data/ext/nokogiri/xml_sax_parser_context.c +64 -41
- data/ext/nokogiri/xml_text.c +2 -0
- data/ext/nokogiri/xml_xpath_context.c +30 -24
- data/ext/nokogiri/xslt_stylesheet.c +62 -16
- data/ext/nokogiri/xslt_stylesheet.h +5 -0
- data/lib/nokogiri/css/parser.rb +165 -159
- data/lib/nokogiri/css/parser.y +6 -3
- data/lib/nokogiri/css/tokenizer.rb +1 -1
- data/lib/nokogiri/css/tokenizer.rex +1 -1
- data/lib/nokogiri/html.rb +1 -0
- data/lib/nokogiri/html/document.rb +82 -42
- data/lib/nokogiri/html/sax/push_parser.rb +16 -0
- data/lib/nokogiri/version.rb +1 -1
- data/lib/nokogiri/xml.rb +6 -0
- data/lib/nokogiri/xml/builder.rb +7 -1
- data/lib/nokogiri/xml/document.rb +32 -17
- data/lib/nokogiri/xml/document_fragment.rb +6 -1
- data/lib/nokogiri/xml/node.rb +40 -9
- data/lib/nokogiri/xslt.rb +5 -1
- data/tasks/cross_compile.rb +1 -0
- data/tasks/nokogiri.org.rb +6 -0
- data/tasks/test.rb +1 -0
- data/test/css/test_xpath_visitor.rb +6 -0
- data/test/helper.rb +1 -0
- data/test/html/test_document.rb +26 -0
- data/test/html/test_document_fragment.rb +1 -2
- data/test/test_memory_leak.rb +81 -1
- data/test/test_xslt_transforms.rb +152 -123
- data/test/xml/test_builder.rb +24 -2
- data/test/xml/test_c14n.rb +151 -0
- data/test/xml/test_document.rb +48 -0
- data/test/xml/test_namespace.rb +5 -0
- data/test/xml/test_node.rb +82 -1
- data/test/xml/test_node_attributes.rb +19 -0
- data/test/xml/test_node_inheritance.rb +32 -0
- data/test/xml/test_node_reparenting.rb +32 -0
- data/test/xml/test_node_set.rb +16 -8
- data/test/xml/test_reader_encoding.rb +16 -0
- data/test/xml/test_unparented_node.rb +24 -0
- data/test/xml/test_xinclude.rb +83 -0
- data/test/xml/test_xpath.rb +22 -0
- metadata +208 -241
@@ -246,6 +246,22 @@ module Nokogiri
|
|
246
246
|
replacee.add_previous_sibling "foo <p></p> bar"
|
247
247
|
assert_equal "foo <p></p> bartext node", xml.root.children.to_html
|
248
248
|
end
|
249
|
+
|
250
|
+
describe "with a text node before" do
|
251
|
+
it "should not defensively dup the 'before' text node" do
|
252
|
+
xml = Nokogiri::XML %Q(<root>before<p></p>after</root>)
|
253
|
+
pivot = xml.at_css("p")
|
254
|
+
before = xml.root.children.first
|
255
|
+
after = xml.root.children.last
|
256
|
+
pivot.add_previous_sibling("x")
|
257
|
+
|
258
|
+
assert_equal "after", after.content
|
259
|
+
assert !after.parent.nil?, "unrelated node should not be affected"
|
260
|
+
|
261
|
+
assert_equal "before", before.content
|
262
|
+
assert !before.parent.nil?, "no need to reparent"
|
263
|
+
end
|
264
|
+
end
|
249
265
|
end
|
250
266
|
|
251
267
|
describe "#add_next_sibling" do
|
@@ -255,6 +271,22 @@ module Nokogiri
|
|
255
271
|
replacee.add_next_sibling "foo <p></p> bar"
|
256
272
|
assert_equal "text nodefoo <p></p> bar", xml.root.children.to_html
|
257
273
|
end
|
274
|
+
|
275
|
+
describe "with a text node after" do
|
276
|
+
it "should not defensively dup the 'after' text node" do
|
277
|
+
xml = Nokogiri::XML %Q(<root>before<p></p>after</root>)
|
278
|
+
pivot = xml.at_css("p")
|
279
|
+
before = xml.root.children.first
|
280
|
+
after = xml.root.children.last
|
281
|
+
pivot.add_next_sibling("x")
|
282
|
+
|
283
|
+
assert_equal "before", before.content
|
284
|
+
assert !before.parent.nil?, "unrelated node should not be affected"
|
285
|
+
|
286
|
+
assert_equal "after", after.content
|
287
|
+
assert !after.parent.nil?
|
288
|
+
end
|
289
|
+
end
|
258
290
|
end
|
259
291
|
|
260
292
|
describe "#replace" do
|
data/test/xml/test_node_set.rb
CHANGED
@@ -22,6 +22,12 @@ module Nokogiri
|
|
22
22
|
@list.push @list.first
|
23
23
|
@list.delete @list.first
|
24
24
|
end
|
25
|
+
|
26
|
+
def test_reference_after_delete
|
27
|
+
first = @list.first
|
28
|
+
@list.delete(first)
|
29
|
+
assert_equal 'http://www.w3.org/XML/1998/namespace', first.href
|
30
|
+
end
|
25
31
|
end
|
26
32
|
|
27
33
|
def setup
|
@@ -634,14 +640,16 @@ module Nokogiri
|
|
634
640
|
end
|
635
641
|
|
636
642
|
def test_should_not_splode_when_accessing_namespace_declarations_in_a_node_set
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
643
|
+
2.times do
|
644
|
+
xml = Nokogiri::XML "<foo></foo>"
|
645
|
+
node_set = xml.xpath("//namespace::*")
|
646
|
+
assert_equal 1, node_set.size
|
647
|
+
node = node_set.first
|
648
|
+
node.to_s # segfaults in 1.4.0 and earlier
|
649
|
+
|
650
|
+
# if we haven't segfaulted, let's make sure we handled it correctly
|
651
|
+
assert_instance_of Nokogiri::XML::Namespace, node
|
652
|
+
end
|
645
653
|
end
|
646
654
|
|
647
655
|
def test_should_not_splode_when_arrayifying_node_set_containing_namespace_declarations
|
@@ -120,6 +120,22 @@ module Nokogiri
|
|
120
120
|
assert_equal @reader.encoding, name.encoding.name
|
121
121
|
end
|
122
122
|
end
|
123
|
+
|
124
|
+
def test_value_lookup_segfault
|
125
|
+
skip("JRuby doesn't do GC.") if Nokogiri.jruby?
|
126
|
+
old_stress = GC.stress
|
127
|
+
|
128
|
+
begin
|
129
|
+
GC.stress = true
|
130
|
+
|
131
|
+
while node = @reader.read
|
132
|
+
nodes = node.send(:attr_nodes)
|
133
|
+
nodes.first.name if nodes.first
|
134
|
+
end
|
135
|
+
ensure
|
136
|
+
GC.stress = old_stress
|
137
|
+
end
|
138
|
+
end
|
123
139
|
end
|
124
140
|
end
|
125
141
|
end
|
@@ -223,6 +223,30 @@ module Nokogiri
|
|
223
223
|
right_space.add_next_sibling(left_space)
|
224
224
|
assert_equal left_space, right_space
|
225
225
|
end
|
226
|
+
|
227
|
+
def test_add_next_sibling_to_root_raises_exception
|
228
|
+
xml = Nokogiri::XML(<<-eoxml)
|
229
|
+
<root />
|
230
|
+
eoxml
|
231
|
+
|
232
|
+
node = Nokogiri::XML::Node.new 'child', xml
|
233
|
+
|
234
|
+
assert_raise(ArgumentError) do
|
235
|
+
xml.root.add_next_sibling(node)
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
def test_add_previous_sibling_to_root_raises_exception
|
240
|
+
xml = Nokogiri::XML(<<-eoxml)
|
241
|
+
<root />
|
242
|
+
eoxml
|
243
|
+
|
244
|
+
node = Nokogiri::XML::Node.new 'child', xml
|
245
|
+
|
246
|
+
assert_raise(ArgumentError) do
|
247
|
+
xml.root.add_previous_sibling(node)
|
248
|
+
end
|
249
|
+
end
|
226
250
|
|
227
251
|
def test_find_by_css_with_tilde_eql
|
228
252
|
xml = Nokogiri::XML.parse(<<-eoxml)
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require "helper"
|
2
|
+
|
3
|
+
module Nokogiri
|
4
|
+
module XML
|
5
|
+
class TestXInclude < Nokogiri::TestCase
|
6
|
+
def setup
|
7
|
+
super
|
8
|
+
@xml = Nokogiri::XML.parse(File.read(XML_XINCLUDE_FILE), XML_XINCLUDE_FILE)
|
9
|
+
@included = "this snippet is to be included from xinclude.xml"
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_xinclude_on_document_parse
|
13
|
+
skip("Pure Java version XInlcude has a conflict with NekoDTD setting. This will be fixed later.") if Nokogiri.jruby?
|
14
|
+
# first test that xinclude works when requested
|
15
|
+
xml_doc = nil
|
16
|
+
|
17
|
+
File.open(XML_XINCLUDE_FILE) do |fp|
|
18
|
+
xml_doc = Nokogiri::XML(fp) do |conf|
|
19
|
+
conf.strict.dtdload.noent.nocdata.xinclude
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
assert_not_nil xml_doc
|
24
|
+
assert_not_nil included = xml_doc.at_xpath('//included')
|
25
|
+
assert_equal @included, included.content
|
26
|
+
|
27
|
+
# no xinclude should happen when not requested
|
28
|
+
xml_doc = nil
|
29
|
+
|
30
|
+
File.open(XML_XINCLUDE_FILE) do |fp|
|
31
|
+
xml_doc = Nokogiri::XML(fp) do |conf|
|
32
|
+
conf.strict.dtdload.noent.nocdata
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
assert_not_nil xml_doc
|
37
|
+
assert_nil xml_doc.at_xpath('//included')
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_xinclude_on_document_node
|
41
|
+
skip("Pure Java version turns XInlcude on against a parser.") if Nokogiri.jruby?
|
42
|
+
assert_nil @xml.at_xpath('//included')
|
43
|
+
@xml.do_xinclude
|
44
|
+
assert_not_nil included = @xml.at_xpath('//included')
|
45
|
+
assert_equal @included, included.content
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_xinclude_on_element_subtree
|
49
|
+
skip("Pure Java version turns XInlcude on against a parser.") if Nokogiri.jruby?
|
50
|
+
assert_nil @xml.at_xpath('//included')
|
51
|
+
@xml.root.do_xinclude
|
52
|
+
assert_not_nil included = @xml.at_xpath('//included')
|
53
|
+
assert_equal @included, included.content
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_do_xinclude_accepts_block
|
57
|
+
non_default_options = Nokogiri::XML::ParseOptions::NOBLANKS | \
|
58
|
+
Nokogiri::XML::ParseOptions::XINCLUDE
|
59
|
+
|
60
|
+
@xml.do_xinclude(non_default_options) do |options|
|
61
|
+
assert_equal non_default_options, options.to_i
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_include_nonexistent_throws_exception
|
66
|
+
skip("Pure Java version behaves differently") if Nokogiri.jruby?
|
67
|
+
# break inclusion deliberately
|
68
|
+
@xml.at_xpath('//xi:include')['href'] = "nonexistent.xml"
|
69
|
+
|
70
|
+
exception_raised = false
|
71
|
+
begin
|
72
|
+
@xml.do_xinclude { |opts| opts.nowarning }
|
73
|
+
rescue Exception => e
|
74
|
+
assert_equal Nokogiri::XML::SyntaxError, e.class
|
75
|
+
exception_raised = true
|
76
|
+
end
|
77
|
+
|
78
|
+
assert exception_raised
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
data/test/xml/test_xpath.rb
CHANGED
@@ -58,6 +58,10 @@ module Nokogiri
|
|
58
58
|
def saves_node_set node_set
|
59
59
|
@things = node_set
|
60
60
|
end
|
61
|
+
|
62
|
+
def value
|
63
|
+
123.456
|
64
|
+
end
|
61
65
|
}.new
|
62
66
|
end
|
63
67
|
|
@@ -130,6 +134,15 @@ module Nokogiri
|
|
130
134
|
assert_equal(['asdf'] * set.length, @handler.things)
|
131
135
|
end
|
132
136
|
|
137
|
+
def test_custom_xpath_function_returns_string
|
138
|
+
if Nokogiri.uses_libxml?
|
139
|
+
result = @xml.xpath('thing("asdf")', @handler)
|
140
|
+
else
|
141
|
+
result = @xml.xpath('nokogiri:thing("asdf")', @ns, @handler)
|
142
|
+
end
|
143
|
+
assert_equal 'asdf', result
|
144
|
+
end
|
145
|
+
|
133
146
|
def test_custom_xpath_gets_true_booleans
|
134
147
|
set = @xml.xpath('//employee')
|
135
148
|
if Nokogiri.uses_libxml?
|
@@ -232,6 +245,15 @@ module Nokogiri
|
|
232
245
|
|
233
246
|
assert_equal doc.xpath("//tool[@name='hammer']"), doc.xpath(xpath, tool_inspector)
|
234
247
|
end
|
248
|
+
|
249
|
+
def test_custom_xpath_without_arguments
|
250
|
+
if Nokogiri.uses_libxml?
|
251
|
+
value = @xml.xpath('value()', @handler)
|
252
|
+
else
|
253
|
+
value = @xml.xpath('nokogiri:value()', @ns, @handler)
|
254
|
+
end
|
255
|
+
assert_equal 123.456, value
|
256
|
+
end
|
235
257
|
end
|
236
258
|
end
|
237
259
|
end
|
metadata
CHANGED
@@ -1,229 +1,197 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: nokogiri
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 5
|
9
|
-
- 0
|
10
|
-
version: 1.5.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.5.1.rc1
|
5
|
+
prerelease: 6
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Aaron Patterson
|
14
9
|
- Mike Dalessio
|
15
10
|
- Yoko Harada
|
16
11
|
autorequire:
|
17
12
|
bindir: bin
|
18
13
|
cert_chain: []
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
name: racc
|
25
|
-
prerelease: false
|
26
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
14
|
+
date: 2012-02-28 00:00:00.000000000 Z
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: hoe-bundler
|
18
|
+
requirement: &8843680 !ruby/object:Gem::Requirement
|
27
19
|
none: false
|
28
|
-
requirements:
|
29
|
-
- -
|
30
|
-
- !ruby/object:Gem::Version
|
31
|
-
|
32
|
-
segments:
|
33
|
-
- 1
|
34
|
-
- 4
|
35
|
-
- 6
|
36
|
-
version: 1.4.6
|
20
|
+
requirements:
|
21
|
+
- - ! '>='
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '1.1'
|
37
24
|
type: :development
|
38
|
-
version_requirements: *id001
|
39
|
-
- !ruby/object:Gem::Dependency
|
40
|
-
name: rexical
|
41
25
|
prerelease: false
|
42
|
-
|
26
|
+
version_requirements: *8843680
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: hoe-debugging
|
29
|
+
requirement: &8843000 !ruby/object:Gem::Requirement
|
43
30
|
none: false
|
44
|
-
requirements:
|
45
|
-
- -
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
|
48
|
-
segments:
|
49
|
-
- 1
|
50
|
-
- 0
|
51
|
-
- 5
|
52
|
-
version: 1.0.5
|
31
|
+
requirements:
|
32
|
+
- - ! '>='
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 1.0.3
|
53
35
|
type: :development
|
54
|
-
version_requirements: *id002
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rake-compiler
|
57
36
|
prerelease: false
|
58
|
-
|
37
|
+
version_requirements: *8843000
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: hoe-gemspec
|
40
|
+
requirement: &8841700 !ruby/object:Gem::Requirement
|
59
41
|
none: false
|
60
|
-
requirements:
|
61
|
-
- -
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
|
64
|
-
segments:
|
65
|
-
- 0
|
66
|
-
- 7
|
67
|
-
- 9
|
68
|
-
version: 0.7.9
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '1.0'
|
69
46
|
type: :development
|
70
|
-
version_requirements: *id003
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: minitest
|
73
47
|
prerelease: false
|
74
|
-
|
48
|
+
version_requirements: *8841700
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: hoe-git
|
51
|
+
requirement: &8840860 !ruby/object:Gem::Requirement
|
75
52
|
none: false
|
76
|
-
requirements:
|
77
|
-
- -
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
|
80
|
-
segments:
|
81
|
-
- 2
|
82
|
-
- 2
|
83
|
-
- 2
|
84
|
-
version: 2.2.2
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '1.4'
|
85
57
|
type: :development
|
86
|
-
version_requirements: *id004
|
87
|
-
- !ruby/object:Gem::Dependency
|
88
|
-
name: mini_portile
|
89
58
|
prerelease: false
|
90
|
-
|
59
|
+
version_requirements: *8840860
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: mini_portile
|
62
|
+
requirement: &8839900 !ruby/object:Gem::Requirement
|
91
63
|
none: false
|
92
|
-
requirements:
|
93
|
-
- -
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
hash: 19
|
96
|
-
segments:
|
97
|
-
- 0
|
98
|
-
- 2
|
99
|
-
- 2
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
100
67
|
version: 0.2.2
|
101
68
|
type: :development
|
102
|
-
version_requirements: *id005
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: hoe-debugging
|
105
69
|
prerelease: false
|
106
|
-
|
70
|
+
version_requirements: *8839900
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: minitest
|
73
|
+
requirement: &8839380 !ruby/object:Gem::Requirement
|
107
74
|
none: false
|
108
|
-
requirements:
|
109
|
-
- -
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
75
|
+
requirements:
|
76
|
+
- - ~>
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 2.2.2
|
79
|
+
type: :development
|
80
|
+
prerelease: false
|
81
|
+
version_requirements: *8839380
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: racc
|
84
|
+
requirement: &8838560 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.4.6
|
115
90
|
type: :development
|
116
|
-
version_requirements: *id006
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
|
-
name: hoe-git
|
119
91
|
prerelease: false
|
120
|
-
|
92
|
+
version_requirements: *8838560
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: rake-compiler
|
95
|
+
requirement: &8837820 !ruby/object:Gem::Requirement
|
121
96
|
none: false
|
122
|
-
requirements:
|
123
|
-
- -
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
|
126
|
-
segments:
|
127
|
-
- 0
|
128
|
-
version: "0"
|
97
|
+
requirements:
|
98
|
+
- - =
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: 0.8.0
|
129
101
|
type: :development
|
130
|
-
version_requirements: *id007
|
131
|
-
- !ruby/object:Gem::Dependency
|
132
|
-
name: hoe-gemspec
|
133
102
|
prerelease: false
|
134
|
-
|
103
|
+
version_requirements: *8837820
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: rexical
|
106
|
+
requirement: &8837300 !ruby/object:Gem::Requirement
|
135
107
|
none: false
|
136
|
-
requirements:
|
137
|
-
- -
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
|
140
|
-
segments:
|
141
|
-
- 0
|
142
|
-
version: "0"
|
108
|
+
requirements:
|
109
|
+
- - ! '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 1.0.5
|
143
112
|
type: :development
|
144
|
-
version_requirements: *id008
|
145
|
-
- !ruby/object:Gem::Dependency
|
146
|
-
name: hoe-bundler
|
147
113
|
prerelease: false
|
148
|
-
|
114
|
+
version_requirements: *8837300
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: rdoc
|
117
|
+
requirement: &8836700 !ruby/object:Gem::Requirement
|
149
118
|
none: false
|
150
|
-
requirements:
|
151
|
-
- -
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
|
154
|
-
segments:
|
155
|
-
- 0
|
156
|
-
version: "0"
|
119
|
+
requirements:
|
120
|
+
- - ~>
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '3.10'
|
157
123
|
type: :development
|
158
|
-
version_requirements: *id009
|
159
|
-
- !ruby/object:Gem::Dependency
|
160
|
-
name: hoe
|
161
124
|
prerelease: false
|
162
|
-
|
125
|
+
version_requirements: *8836700
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: hoe
|
128
|
+
requirement: &8866580 !ruby/object:Gem::Requirement
|
163
129
|
none: false
|
164
|
-
requirements:
|
165
|
-
- -
|
166
|
-
- !ruby/object:Gem::Version
|
167
|
-
|
168
|
-
segments:
|
169
|
-
- 2
|
170
|
-
- 9
|
171
|
-
- 4
|
172
|
-
version: 2.9.4
|
130
|
+
requirements:
|
131
|
+
- - ~>
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '2.13'
|
173
134
|
type: :development
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: *8866580
|
137
|
+
description: ! 'Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser. Among Nokogiri''s
|
138
|
+
|
139
|
+
many features is the ability to search documents via XPath or CSS3 selectors.
|
140
|
+
|
141
|
+
|
142
|
+
XML is like violence - if it doesn’t solve your problems, you are not using
|
143
|
+
|
144
|
+
enough of it.'
|
145
|
+
email:
|
180
146
|
- aaronp@rubyforge.org
|
181
147
|
- mike.dalessio@gmail.com
|
182
148
|
- yokolet@gmail.com
|
183
|
-
executables:
|
149
|
+
executables:
|
184
150
|
- nokogiri
|
185
|
-
extensions:
|
151
|
+
extensions:
|
186
152
|
- ext/nokogiri/extconf.rb
|
187
|
-
extra_rdoc_files:
|
153
|
+
extra_rdoc_files:
|
188
154
|
- Manifest.txt
|
189
|
-
- README.ja.rdoc
|
190
|
-
- CHANGELOG.rdoc
|
191
155
|
- CHANGELOG.ja.rdoc
|
156
|
+
- README.ja.rdoc
|
192
157
|
- README.rdoc
|
193
|
-
-
|
194
|
-
-
|
195
|
-
- ext/nokogiri/
|
196
|
-
- ext/nokogiri/
|
158
|
+
- C_CODING_STYLE.rdoc
|
159
|
+
- CHANGELOG.rdoc
|
160
|
+
- ext/nokogiri/xml_encoding_handler.c
|
161
|
+
- ext/nokogiri/html_sax_push_parser.c
|
162
|
+
- ext/nokogiri/xml_processing_instruction.c
|
197
163
|
- ext/nokogiri/xml_text.c
|
164
|
+
- ext/nokogiri/xml_entity_reference.c
|
165
|
+
- ext/nokogiri/xml_relax_ng.c
|
198
166
|
- ext/nokogiri/nokogiri.c
|
167
|
+
- ext/nokogiri/xml_node.c
|
168
|
+
- ext/nokogiri/xml_attr.c
|
169
|
+
- ext/nokogiri/xml_reader.c
|
170
|
+
- ext/nokogiri/xml_entity_decl.c
|
199
171
|
- ext/nokogiri/xml_element_decl.c
|
200
|
-
- ext/nokogiri/xml_encoding_handler.c
|
201
|
-
- ext/nokogiri/html_document.c
|
202
|
-
- ext/nokogiri/xslt_stylesheet.c
|
203
|
-
- ext/nokogiri/xml_attribute_decl.c
|
204
|
-
- ext/nokogiri/xml_io.c
|
205
|
-
- ext/nokogiri/xml_document_fragment.c
|
206
|
-
- ext/nokogiri/xml_namespace.c
|
207
|
-
- ext/nokogiri/xml_libxml2_hacks.c
|
208
|
-
- ext/nokogiri/xml_sax_parser_context.c
|
209
|
-
- ext/nokogiri/xml_comment.c
|
210
|
-
- ext/nokogiri/xml_sax_parser.c
|
211
172
|
- ext/nokogiri/html_element_description.c
|
212
|
-
- ext/nokogiri/
|
173
|
+
- ext/nokogiri/xslt_stylesheet.c
|
213
174
|
- ext/nokogiri/xml_syntax_error.c
|
214
175
|
- ext/nokogiri/xml_document.c
|
215
|
-
- ext/nokogiri/xml_entity_decl.c
|
216
|
-
- ext/nokogiri/xml_node.c
|
217
|
-
- ext/nokogiri/xml_node_set.c
|
218
|
-
- ext/nokogiri/xml_reader.c
|
219
|
-
- ext/nokogiri/xml_processing_instruction.c
|
220
|
-
- ext/nokogiri/xml_element_content.c
|
221
176
|
- ext/nokogiri/xml_dtd.c
|
222
|
-
- ext/nokogiri/xml_attr.c
|
223
|
-
- ext/nokogiri/xml_schema.c
|
224
177
|
- ext/nokogiri/xml_cdata.c
|
225
|
-
- ext/nokogiri/
|
226
|
-
|
178
|
+
- ext/nokogiri/xml_sax_parser.c
|
179
|
+
- ext/nokogiri/xml_comment.c
|
180
|
+
- ext/nokogiri/xml_node_set.c
|
181
|
+
- ext/nokogiri/xml_xpath_context.c
|
182
|
+
- ext/nokogiri/html_entity_lookup.c
|
183
|
+
- ext/nokogiri/xml_sax_push_parser.c
|
184
|
+
- ext/nokogiri/xml_sax_parser_context.c
|
185
|
+
- ext/nokogiri/xml_io.c
|
186
|
+
- ext/nokogiri/xml_libxml2_hacks.c
|
187
|
+
- ext/nokogiri/html_document.c
|
188
|
+
- ext/nokogiri/xml_attribute_decl.c
|
189
|
+
- ext/nokogiri/xml_document_fragment.c
|
190
|
+
- ext/nokogiri/xml_schema.c
|
191
|
+
- ext/nokogiri/xml_element_content.c
|
192
|
+
- ext/nokogiri/html_sax_parser_context.c
|
193
|
+
- ext/nokogiri/xml_namespace.c
|
194
|
+
files:
|
227
195
|
- .autotest
|
228
196
|
- .gemtest
|
229
197
|
- CHANGELOG.ja.rdoc
|
@@ -243,6 +211,8 @@ files:
|
|
243
211
|
- ext/nokogiri/html_entity_lookup.h
|
244
212
|
- ext/nokogiri/html_sax_parser_context.c
|
245
213
|
- ext/nokogiri/html_sax_parser_context.h
|
214
|
+
- ext/nokogiri/html_sax_push_parser.c
|
215
|
+
- ext/nokogiri/html_sax_push_parser.h
|
246
216
|
- ext/nokogiri/nokogiri.c
|
247
217
|
- ext/nokogiri/nokogiri.h
|
248
218
|
- ext/nokogiri/xml_attr.c
|
@@ -321,6 +291,7 @@ files:
|
|
321
291
|
- lib/nokogiri/html/entity_lookup.rb
|
322
292
|
- lib/nokogiri/html/sax/parser.rb
|
323
293
|
- lib/nokogiri/html/sax/parser_context.rb
|
294
|
+
- lib/nokogiri/html/sax/push_parser.rb
|
324
295
|
- lib/nokogiri/syntax_error.rb
|
325
296
|
- lib/nokogiri/version.rb
|
326
297
|
- lib/nokogiri/xml.rb
|
@@ -436,6 +407,7 @@ files:
|
|
436
407
|
- test/xml/test_node_encoding.rb
|
437
408
|
- test/xml/test_node_reparenting.rb
|
438
409
|
- test/xml/test_node_set.rb
|
410
|
+
- test/xml/test_node_inheritance.rb
|
439
411
|
- test/xml/test_parse_options.rb
|
440
412
|
- test/xml/test_processing_instruction.rb
|
441
413
|
- test/xml/test_reader_encoding.rb
|
@@ -447,100 +419,95 @@ files:
|
|
447
419
|
- test/xml/test_xpath.rb
|
448
420
|
- test/xslt/test_custom_functions.rb
|
449
421
|
- test/xslt/test_exception_handling.rb
|
450
|
-
|
422
|
+
- test/xml/test_c14n.rb
|
423
|
+
- test/xml/test_xinclude.rb
|
424
|
+
- C_CODING_STYLE.rdoc
|
451
425
|
homepage: http://nokogiri.org
|
452
426
|
licenses: []
|
453
|
-
|
454
427
|
post_install_message:
|
455
|
-
rdoc_options:
|
428
|
+
rdoc_options:
|
456
429
|
- --main
|
457
430
|
- README.rdoc
|
458
|
-
require_paths:
|
431
|
+
require_paths:
|
459
432
|
- lib
|
460
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
433
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
461
434
|
none: false
|
462
|
-
requirements:
|
463
|
-
- -
|
464
|
-
- !ruby/object:Gem::Version
|
465
|
-
hash: 57
|
466
|
-
segments:
|
467
|
-
- 1
|
468
|
-
- 8
|
469
|
-
- 7
|
435
|
+
requirements:
|
436
|
+
- - ! '>='
|
437
|
+
- !ruby/object:Gem::Version
|
470
438
|
version: 1.8.7
|
471
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
439
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
472
440
|
none: false
|
473
|
-
requirements:
|
474
|
-
- -
|
475
|
-
- !ruby/object:Gem::Version
|
476
|
-
|
477
|
-
segments:
|
478
|
-
- 0
|
479
|
-
version: "0"
|
441
|
+
requirements:
|
442
|
+
- - ! '>'
|
443
|
+
- !ruby/object:Gem::Version
|
444
|
+
version: 1.3.1
|
480
445
|
requirements: []
|
481
|
-
|
482
446
|
rubyforge_project: nokogiri
|
483
|
-
rubygems_version: 1.
|
447
|
+
rubygems_version: 1.8.10
|
484
448
|
signing_key:
|
485
449
|
specification_version: 3
|
486
|
-
summary:
|
487
|
-
test_files:
|
488
|
-
- test/test_convert_xpath.rb
|
489
|
-
- test/test_soap4r_sax.rb
|
490
|
-
- test/test_memory_leak.rb
|
450
|
+
summary: Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser
|
451
|
+
test_files:
|
491
452
|
- test/test_nokogiri.rb
|
492
|
-
- test/
|
493
|
-
- test/css/test_nthiness.rb
|
453
|
+
- test/css/test_tokenizer.rb
|
494
454
|
- test/css/test_xpath_visitor.rb
|
455
|
+
- test/css/test_nthiness.rb
|
495
456
|
- test/css/test_parser.rb
|
496
|
-
- test/
|
497
|
-
- test/decorators/test_slop.rb
|
498
|
-
- test/html/test_document.rb
|
499
|
-
- test/html/test_document_encoding.rb
|
500
|
-
- test/html/test_named_characters.rb
|
501
|
-
- test/html/test_document_fragment.rb
|
502
|
-
- test/html/test_node.rb
|
503
|
-
- test/html/test_builder.rb
|
504
|
-
- test/html/sax/test_parser_context.rb
|
505
|
-
- test/html/sax/test_parser.rb
|
506
|
-
- test/html/test_node_encoding.rb
|
507
|
-
- test/html/test_element_description.rb
|
508
|
-
- test/test_reader.rb
|
509
|
-
- test/xml/test_parse_options.rb
|
510
|
-
- test/xml/test_unparented_node.rb
|
511
|
-
- test/xml/test_element_decl.rb
|
512
|
-
- test/xml/test_document.rb
|
513
|
-
- test/xml/test_dtd.rb
|
457
|
+
- test/xml/test_dtd_encoding.rb
|
514
458
|
- test/xml/test_document_encoding.rb
|
459
|
+
- test/xml/test_node_inheritance.rb
|
515
460
|
- test/xml/test_entity_decl.rb
|
516
|
-
- test/xml/
|
517
|
-
- test/xml/
|
518
|
-
- test/xml/
|
519
|
-
- test/xml/
|
461
|
+
- test/xml/test_node_reparenting.rb
|
462
|
+
- test/xml/sax/test_parser_context.rb
|
463
|
+
- test/xml/sax/test_push_parser.rb
|
464
|
+
- test/xml/sax/test_parser.rb
|
465
|
+
- test/xml/test_attr.rb
|
520
466
|
- test/xml/test_cdata.rb
|
467
|
+
- test/xml/test_document.rb
|
468
|
+
- test/xml/test_node_encoding.rb
|
469
|
+
- test/xml/test_document_fragment.rb
|
470
|
+
- test/xml/test_c14n.rb
|
471
|
+
- test/xml/test_dtd.rb
|
472
|
+
- test/xml/test_node.rb
|
473
|
+
- test/xml/test_comment.rb
|
521
474
|
- test/xml/test_text.rb
|
522
|
-
- test/xml/
|
475
|
+
- test/xml/node/test_save_options.rb
|
476
|
+
- test/xml/node/test_subclass.rb
|
477
|
+
- test/xml/test_schema.rb
|
478
|
+
- test/xml/test_node_attributes.rb
|
479
|
+
- test/xml/test_namespace.rb
|
480
|
+
- test/xml/test_attribute_decl.rb
|
523
481
|
- test/xml/test_xpath.rb
|
524
|
-
- test/xml/
|
525
|
-
- test/xml/
|
482
|
+
- test/xml/test_processing_instruction.rb
|
483
|
+
- test/xml/test_reader_encoding.rb
|
484
|
+
- test/xml/test_element_decl.rb
|
526
485
|
- test/xml/test_builder.rb
|
527
|
-
- test/xml/sax/test_push_parser.rb
|
528
|
-
- test/xml/sax/test_parser_context.rb
|
529
|
-
- test/xml/sax/test_parser.rb
|
530
|
-
- test/xml/test_schema.rb
|
531
486
|
- test/xml/test_node_set.rb
|
532
|
-
- test/xml/test_attr.rb
|
533
|
-
- test/xml/test_processing_instruction.rb
|
534
|
-
- test/xml/test_node_encoding.rb
|
535
487
|
- test/xml/test_syntax_error.rb
|
536
|
-
- test/xml/
|
488
|
+
- test/xml/test_parse_options.rb
|
489
|
+
- test/xml/test_xinclude.rb
|
490
|
+
- test/xml/test_element_content.rb
|
491
|
+
- test/xml/test_unparented_node.rb
|
537
492
|
- test/xml/test_entity_reference.rb
|
538
|
-
- test/xml/test_node_reparenting.rb
|
539
|
-
- test/xml/test_attribute_decl.rb
|
540
493
|
- test/xml/test_relax_ng.rb
|
541
|
-
- test/xml/test_namespace.rb
|
542
|
-
- test/xml/test_node_attributes.rb
|
543
494
|
- test/test_xslt_transforms.rb
|
544
|
-
- test/
|
545
|
-
- test/
|
495
|
+
- test/test_memory_leak.rb
|
496
|
+
- test/test_css_cache.rb
|
497
|
+
- test/decorators/test_slop.rb
|
498
|
+
- test/test_soap4r_sax.rb
|
546
499
|
- test/test_encoding_handler.rb
|
500
|
+
- test/html/test_document_encoding.rb
|
501
|
+
- test/html/test_named_characters.rb
|
502
|
+
- test/html/sax/test_parser_context.rb
|
503
|
+
- test/html/sax/test_parser.rb
|
504
|
+
- test/html/test_document.rb
|
505
|
+
- test/html/test_node_encoding.rb
|
506
|
+
- test/html/test_document_fragment.rb
|
507
|
+
- test/html/test_node.rb
|
508
|
+
- test/html/test_element_description.rb
|
509
|
+
- test/html/test_builder.rb
|
510
|
+
- test/xslt/test_exception_handling.rb
|
511
|
+
- test/xslt/test_custom_functions.rb
|
512
|
+
- test/test_reader.rb
|
513
|
+
- test/test_convert_xpath.rb
|