nokogiri 1.4.7 → 1.5.0.beta.1
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 +8 -83
- data/CHANGELOG.rdoc +6 -80
- data/Manifest.txt +4 -74
- data/README.ja.rdoc +5 -1
- data/README.rdoc +8 -22
- data/Rakefile +79 -60
- data/bin/nokogiri +1 -6
- data/deps.rip +5 -0
- data/ext/nokogiri/extconf.rb +32 -53
- data/ext/nokogiri/nokogiri.c +0 -2
- data/ext/nokogiri/nokogiri.h +0 -9
- data/ext/nokogiri/xml_document.c +0 -14
- data/ext/nokogiri/xml_dtd.c +2 -2
- data/ext/nokogiri/xml_io.c +7 -32
- data/ext/nokogiri/xml_node.c +31 -103
- data/ext/nokogiri/xml_node_set.c +8 -8
- data/ext/nokogiri/xml_reader.c +1 -20
- data/ext/nokogiri/xml_sax_parser.c +3 -5
- data/ext/nokogiri/xml_sax_parser_context.c +0 -40
- data/ext/nokogiri/xml_xpath_context.c +2 -35
- data/ext/nokogiri/xslt_stylesheet.c +6 -124
- data/lib/nokogiri.rb +7 -3
- data/lib/nokogiri/css.rb +3 -6
- data/lib/nokogiri/css/generated_parser.rb +669 -0
- data/lib/nokogiri/css/generated_tokenizer.rb +145 -0
- data/lib/nokogiri/css/parser.rb +70 -665
- data/lib/nokogiri/css/parser.y +1 -6
- data/lib/nokogiri/css/tokenizer.rb +3 -148
- data/lib/nokogiri/css/tokenizer.rex +1 -1
- data/lib/nokogiri/css/xpath_visitor.rb +14 -16
- data/lib/nokogiri/decorators/slop.rb +3 -5
- data/lib/nokogiri/html.rb +3 -2
- data/lib/nokogiri/html/document.rb +18 -134
- data/lib/nokogiri/html/document_fragment.rb +21 -26
- data/lib/nokogiri/html/element_description_defaults.rb +671 -0
- data/lib/nokogiri/html/sax/parser.rb +2 -6
- data/lib/nokogiri/version.rb +4 -9
- data/lib/nokogiri/xml/attribute_decl.rb +1 -1
- data/lib/nokogiri/xml/builder.rb +1 -1
- data/lib/nokogiri/xml/document.rb +3 -27
- data/lib/nokogiri/xml/document_fragment.rb +2 -9
- data/lib/nokogiri/xml/dtd.rb +1 -12
- data/lib/nokogiri/xml/element_decl.rb +1 -1
- data/lib/nokogiri/xml/entity_decl.rb +1 -1
- data/lib/nokogiri/xml/node.rb +75 -172
- data/lib/nokogiri/xml/node/save_options.rb +0 -10
- data/lib/nokogiri/xml/node_set.rb +3 -28
- data/lib/nokogiri/xml/parse_options.rb +0 -8
- data/lib/nokogiri/xml/reader.rb +6 -44
- data/lib/nokogiri/xml/sax/document.rb +5 -9
- data/lib/nokogiri/xml/schema.rb +1 -7
- data/lib/nokogiri/xslt.rb +5 -9
- data/tasks/cross_compile.rb +12 -27
- data/tasks/test.rb +0 -0
- data/test/css/test_parser.rb +19 -40
- data/test/css/test_tokenizer.rb +0 -8
- data/test/helper.rb +1 -4
- data/test/html/sax/test_parser.rb +21 -47
- data/test/html/sax/test_parser_context.rb +2 -2
- data/test/html/test_document.rb +3 -58
- data/test/html/test_document_encoding.rb +0 -53
- data/test/html/test_document_fragment.rb +13 -82
- data/test/html/test_element_description.rb +4 -2
- data/test/html/test_node.rb +0 -9
- data/test/test_memory_leak.rb +2 -57
- data/test/test_nokogiri.rb +14 -20
- data/test/test_reader.rb +7 -47
- data/test/test_xslt_transforms.rb +5 -8
- data/test/xml/sax/test_parser.rb +17 -34
- data/test/xml/sax/test_parser_context.rb +0 -50
- data/test/xml/sax/test_push_parser.rb +1 -18
- data/test/xml/test_attr.rb +4 -31
- data/test/xml/test_attribute_decl.rb +7 -3
- data/test/xml/test_builder.rb +5 -5
- data/test/xml/test_cdata.rb +3 -3
- data/test/xml/test_document.rb +18 -15
- data/test/xml/test_document_fragment.rb +20 -19
- data/test/xml/test_dtd.rb +13 -18
- data/test/xml/test_element_content.rb +1 -1
- data/test/xml/test_element_decl.rb +1 -1
- data/test/xml/test_entity_decl.rb +12 -10
- data/test/xml/test_namespace.rb +7 -5
- data/test/xml/test_node.rb +15 -54
- data/test/xml/test_node_reparenting.rb +42 -85
- data/test/xml/test_node_set.rb +2 -61
- data/test/xml/test_schema.rb +0 -5
- data/test/xml/test_text.rb +2 -11
- data/test/xml/test_unparented_node.rb +1 -1
- data/test/xml/test_xpath.rb +7 -43
- metadata +131 -155
- data/.gemtest +0 -0
- data/ext/nokogiri/depend +0 -358
- data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
- data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
- data/lib/nokogiri/css/parser_extras.rb +0 -91
- data/lib/nokogiri/ffi/encoding_handler.rb +0 -42
- data/lib/nokogiri/ffi/html/document.rb +0 -28
- data/lib/nokogiri/ffi/html/element_description.rb +0 -81
- data/lib/nokogiri/ffi/html/entity_lookup.rb +0 -16
- data/lib/nokogiri/ffi/html/sax/parser_context.rb +0 -38
- data/lib/nokogiri/ffi/io_callbacks.rb +0 -42
- data/lib/nokogiri/ffi/libxml.rb +0 -420
- data/lib/nokogiri/ffi/structs/common_node.rb +0 -38
- data/lib/nokogiri/ffi/structs/html_elem_desc.rb +0 -24
- data/lib/nokogiri/ffi/structs/html_entity_desc.rb +0 -13
- data/lib/nokogiri/ffi/structs/xml_alloc.rb +0 -16
- data/lib/nokogiri/ffi/structs/xml_attr.rb +0 -20
- data/lib/nokogiri/ffi/structs/xml_attribute.rb +0 -27
- data/lib/nokogiri/ffi/structs/xml_buffer.rb +0 -16
- data/lib/nokogiri/ffi/structs/xml_char_encoding_handler.rb +0 -11
- data/lib/nokogiri/ffi/structs/xml_document.rb +0 -117
- data/lib/nokogiri/ffi/structs/xml_dtd.rb +0 -28
- data/lib/nokogiri/ffi/structs/xml_element.rb +0 -26
- data/lib/nokogiri/ffi/structs/xml_element_content.rb +0 -17
- data/lib/nokogiri/ffi/structs/xml_entity.rb +0 -32
- data/lib/nokogiri/ffi/structs/xml_enumeration.rb +0 -12
- data/lib/nokogiri/ffi/structs/xml_node.rb +0 -28
- data/lib/nokogiri/ffi/structs/xml_node_set.rb +0 -53
- data/lib/nokogiri/ffi/structs/xml_notation.rb +0 -11
- data/lib/nokogiri/ffi/structs/xml_ns.rb +0 -15
- data/lib/nokogiri/ffi/structs/xml_parser_context.rb +0 -20
- data/lib/nokogiri/ffi/structs/xml_parser_input.rb +0 -19
- data/lib/nokogiri/ffi/structs/xml_relax_ng.rb +0 -14
- data/lib/nokogiri/ffi/structs/xml_sax_handler.rb +0 -51
- data/lib/nokogiri/ffi/structs/xml_sax_push_parser_context.rb +0 -124
- data/lib/nokogiri/ffi/structs/xml_schema.rb +0 -13
- data/lib/nokogiri/ffi/structs/xml_syntax_error.rb +0 -31
- data/lib/nokogiri/ffi/structs/xml_text_reader.rb +0 -12
- data/lib/nokogiri/ffi/structs/xml_xpath_context.rb +0 -38
- data/lib/nokogiri/ffi/structs/xml_xpath_object.rb +0 -35
- data/lib/nokogiri/ffi/structs/xml_xpath_parser_context.rb +0 -20
- data/lib/nokogiri/ffi/structs/xslt_stylesheet.rb +0 -13
- data/lib/nokogiri/ffi/weak_bucket.rb +0 -40
- data/lib/nokogiri/ffi/xml/attr.rb +0 -41
- data/lib/nokogiri/ffi/xml/attribute_decl.rb +0 -27
- data/lib/nokogiri/ffi/xml/cdata.rb +0 -19
- data/lib/nokogiri/ffi/xml/comment.rb +0 -18
- data/lib/nokogiri/ffi/xml/document.rb +0 -174
- data/lib/nokogiri/ffi/xml/document_fragment.rb +0 -21
- data/lib/nokogiri/ffi/xml/dtd.rb +0 -67
- data/lib/nokogiri/ffi/xml/element_content.rb +0 -43
- data/lib/nokogiri/ffi/xml/element_decl.rb +0 -19
- data/lib/nokogiri/ffi/xml/entity_decl.rb +0 -36
- data/lib/nokogiri/ffi/xml/entity_reference.rb +0 -19
- data/lib/nokogiri/ffi/xml/namespace.rb +0 -44
- data/lib/nokogiri/ffi/xml/node.rb +0 -559
- data/lib/nokogiri/ffi/xml/node_set.rb +0 -150
- data/lib/nokogiri/ffi/xml/processing_instruction.rb +0 -20
- data/lib/nokogiri/ffi/xml/reader.rb +0 -236
- data/lib/nokogiri/ffi/xml/relax_ng.rb +0 -85
- data/lib/nokogiri/ffi/xml/sax/parser.rb +0 -143
- data/lib/nokogiri/ffi/xml/sax/parser_context.rb +0 -79
- data/lib/nokogiri/ffi/xml/sax/push_parser.rb +0 -51
- data/lib/nokogiri/ffi/xml/schema.rb +0 -109
- data/lib/nokogiri/ffi/xml/syntax_error.rb +0 -98
- data/lib/nokogiri/ffi/xml/text.rb +0 -18
- data/lib/nokogiri/ffi/xml/xpath.rb +0 -9
- data/lib/nokogiri/ffi/xml/xpath_context.rb +0 -153
- data/lib/nokogiri/ffi/xslt/stylesheet.rb +0 -77
- data/test/decorators/test_slop.rb +0 -16
- data/test/ffi/test_document.rb +0 -35
- data/test/files/encoding.html +0 -82
- data/test/files/encoding.xhtml +0 -84
- data/test/xslt/test_custom_functions.rb +0 -94
@@ -50,22 +50,21 @@ module Nokogiri
|
|
50
50
|
# end
|
51
51
|
|
52
52
|
{
|
53
|
-
:add_child => {:target => "/root/a1", :
|
54
|
-
:<< => {:target => "/root/a1", :
|
53
|
+
:add_child => {:target => "/root/a1", :returns => :reparented, :children_tags => %w[text b1 b2]},
|
54
|
+
:<< => {:target => "/root/a1", :returns => :reparented, :children_tags => %w[text b1 b2]},
|
55
55
|
|
56
|
-
:replace => {:target => "/root/a1/node()", :
|
57
|
-
:swap => {:target => "/root/a1/node()", :
|
56
|
+
:replace => {:target => "/root/a1/node()", :returns => :reparented, :children_tags => %w[b1 b2]},
|
57
|
+
:swap => {:target => "/root/a1/node()", :returns => :self, :children_tags => %w[b1 b2]},
|
58
58
|
|
59
|
-
:
|
60
|
-
:inner_html= => {:target => "/root/a1", :returns_self => true, :children_tags => %w[b1 b2]},
|
59
|
+
:inner_html= => {:target => "/root/a1", :returns => :self, :children_tags => %w[b1 b2]},
|
61
60
|
|
62
|
-
:add_previous_sibling => {:target => "/root/a1/text()", :
|
63
|
-
:previous= => {:target => "/root/a1/text()", :
|
64
|
-
:before => {:target => "/root/a1/text()", :
|
61
|
+
:add_previous_sibling => {:target => "/root/a1/text()", :returns => :reparented, :children_tags => %w[b1 b2 text]},
|
62
|
+
:previous= => {:target => "/root/a1/text()", :returns => :reparented, :children_tags => %w[b1 b2 text]},
|
63
|
+
:before => {:target => "/root/a1/text()", :returns => :self, :children_tags => %w[b1 b2 text]},
|
65
64
|
|
66
|
-
:add_next_sibling => {:target => "/root/a1/text()", :
|
67
|
-
:next= => {:target => "/root/a1/text()", :
|
68
|
-
:after => {:target => "/root/a1/text()", :
|
65
|
+
:add_next_sibling => {:target => "/root/a1/text()", :returns => :reparented, :children_tags => %w[text b1 b2]},
|
66
|
+
:next= => {:target => "/root/a1/text()", :returns => :reparented, :children_tags => %w[text b1 b2]},
|
67
|
+
:after => {:target => "/root/a1/text()", :returns => :self, :children_tags => %w[text b1 b2]}
|
69
68
|
}.each do |method, params|
|
70
69
|
|
71
70
|
before do
|
@@ -96,12 +95,11 @@ module Nokogiri
|
|
96
95
|
end
|
97
96
|
|
98
97
|
it "returns the expected value" do
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
result.must_equal sendee
|
98
|
+
if params[:returns] == :self
|
99
|
+
sendee = @doc.at_xpath(params[:target])
|
100
|
+
sendee.send(method, @other_node).must_equal sendee
|
103
101
|
else
|
104
|
-
|
102
|
+
@doc.at_xpath(params[:target]).send(method, @other_node).must_equal @other_node
|
105
103
|
end
|
106
104
|
end
|
107
105
|
end
|
@@ -112,17 +110,6 @@ module Nokogiri
|
|
112
110
|
@doc.at_xpath(params[:target]).send(method, @fragment_string)
|
113
111
|
@doc.xpath("/root/a1/node()").collect {|n| n.name}.must_equal params[:children_tags]
|
114
112
|
end
|
115
|
-
|
116
|
-
it "returns the expected value" do
|
117
|
-
sendee = @doc.at_xpath(params[:target])
|
118
|
-
result = sendee.send(method, @fragment_string)
|
119
|
-
if params[:returns_self]
|
120
|
-
result.must_equal sendee
|
121
|
-
else
|
122
|
-
result.must_be_kind_of Nokogiri::XML::NodeSet
|
123
|
-
result.to_html.must_equal @fragment_string
|
124
|
-
end
|
125
|
-
end
|
126
113
|
end
|
127
114
|
describe "passed a fragment" do
|
128
115
|
it "inserts the fragment roots in the proper position" do
|
@@ -147,25 +134,37 @@ module Nokogiri
|
|
147
134
|
end
|
148
135
|
end
|
149
136
|
end
|
150
|
-
end
|
151
137
|
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
138
|
+
describe "text node merging" do
|
139
|
+
describe "#add_child" do
|
140
|
+
it "merges the Text node with adjacent Text nodes" do
|
141
|
+
@doc.at_xpath("/root/a1").add_child Nokogiri::XML::Text.new('hello', @doc)
|
142
|
+
@doc.at_xpath("/root/a1/text()").content.must_equal "First nodehello"
|
143
|
+
end
|
157
144
|
end
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
145
|
+
describe "#replace" do
|
146
|
+
it "merges the Text node with adjacent Text nodes" do
|
147
|
+
@doc.at_xpath("/root/a3/bx").replace Nokogiri::XML::Text.new('hello', @doc)
|
148
|
+
@doc.at_xpath("/root/a3/text()").content.must_equal "Third hellonode"
|
149
|
+
end
|
163
150
|
end
|
164
151
|
end
|
165
152
|
end
|
166
153
|
end
|
167
154
|
|
168
155
|
describe "ad hoc node reparenting behavior" do
|
156
|
+
before do
|
157
|
+
@xml = Nokogiri::XML "<root><a1>First node</a1><a2>Second node</a2><a3>Third node</a3></root>"
|
158
|
+
@html = Nokogiri::HTML(<<-eohtml)
|
159
|
+
<html>
|
160
|
+
<head></head>
|
161
|
+
<body>
|
162
|
+
<div class='baz'><a href="foo" class="bar">first</a></div>
|
163
|
+
</body>
|
164
|
+
</html>
|
165
|
+
eohtml
|
166
|
+
end
|
167
|
+
|
169
168
|
describe "#add_child" do
|
170
169
|
describe "given a new node with a namespace" do
|
171
170
|
it "keeps the namespace" do
|
@@ -224,34 +223,7 @@ module Nokogiri
|
|
224
223
|
end
|
225
224
|
end
|
226
225
|
|
227
|
-
describe "#add_previous_sibling" do
|
228
|
-
it "should not merge text nodes during the operation" do
|
229
|
-
xml = Nokogiri::XML %Q(<root>text node</root>)
|
230
|
-
replacee = xml.root.children.first
|
231
|
-
replacee.add_previous_sibling "foo <p></p> bar"
|
232
|
-
assert_equal "foo <p></p> bartext node", xml.root.children.to_html
|
233
|
-
end
|
234
|
-
end
|
235
|
-
|
236
|
-
describe "#add_next_sibling" do
|
237
|
-
it "should not merge text nodes during the operation" do
|
238
|
-
xml = Nokogiri::XML %Q(<root>text node</root>)
|
239
|
-
replacee = xml.root.children.first
|
240
|
-
replacee.add_next_sibling "foo <p></p> bar"
|
241
|
-
assert_equal "text nodefoo <p></p> bar", xml.root.children.to_html
|
242
|
-
end
|
243
|
-
end
|
244
|
-
|
245
226
|
describe "#replace" do
|
246
|
-
describe "a text node with a text node" do
|
247
|
-
it "should not merge text nodes during the operation" do
|
248
|
-
xml = Nokogiri::XML %Q(<root>text node</root>)
|
249
|
-
replacee = xml.root.children.first
|
250
|
-
replacee.replace "new text node"
|
251
|
-
assert_equal "new text node", xml.root.children.first.content
|
252
|
-
end
|
253
|
-
end
|
254
|
-
|
255
227
|
describe "when a document has a default namespace" do
|
256
228
|
before do
|
257
229
|
@fruits = Nokogiri::XML(<<-eoxml)
|
@@ -288,10 +260,10 @@ module Nokogiri
|
|
288
260
|
</root>
|
289
261
|
EOHTML
|
290
262
|
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
263
|
+
root = doc.at("root")
|
264
|
+
a = root.at("a")
|
265
|
+
b = a.at("b")
|
266
|
+
c = a.at("c")
|
295
267
|
a.add_next_sibling(b.unlink)
|
296
268
|
c.unlink
|
297
269
|
end
|
@@ -300,21 +272,6 @@ module Nokogiri
|
|
300
272
|
end
|
301
273
|
end
|
302
274
|
|
303
|
-
describe "replace-merging text nodes" do
|
304
|
-
[
|
305
|
-
['<root>a<br/></root>', 'afoo'],
|
306
|
-
['<root>a<br/>b</root>', 'afoob'],
|
307
|
-
['<root><br/>b</root>', 'foob']
|
308
|
-
].each do |xml, result|
|
309
|
-
it "doesn't blow up on #{xml}" do
|
310
|
-
doc = Nokogiri::XML.parse(xml)
|
311
|
-
saved_nodes = doc.root.children
|
312
|
-
doc.at_xpath("/root/br").replace(Nokogiri::XML::Text.new('foo', doc))
|
313
|
-
saved_nodes.each { |child| child.inspect } # try to cause a crash
|
314
|
-
assert_equal result, doc.at_xpath("/root/text()").inner_text
|
315
|
-
end
|
316
|
-
end
|
317
|
-
end
|
318
275
|
end
|
319
276
|
end
|
320
277
|
end
|
data/test/xml/test_node_set.rb
CHANGED
@@ -3,27 +3,6 @@ require "helper"
|
|
3
3
|
module Nokogiri
|
4
4
|
module XML
|
5
5
|
class TestNodeSet < Nokogiri::TestCase
|
6
|
-
class TestNodeSetNamespaces < Nokogiri::TestCase
|
7
|
-
def setup
|
8
|
-
super
|
9
|
-
@xml = Nokogiri.XML('<foo xmlns:n0="http://example.com" />')
|
10
|
-
@list = @xml.xpath('//namespace::*')
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_include?
|
14
|
-
assert @list.include?(@list.first), 'list should have item'
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_push
|
18
|
-
@list.push @list.first
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_delete
|
22
|
-
@list.push @list.first
|
23
|
-
@list.delete @list.first
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
6
|
def setup
|
28
7
|
super
|
29
8
|
@xml = Nokogiri::XML(File.read(XML_FILE), XML_FILE)
|
@@ -158,16 +137,6 @@ module Nokogiri
|
|
158
137
|
set = html.xpath("/html/body/div")
|
159
138
|
assert_equal set.first, set.search(".a").first
|
160
139
|
end
|
161
|
-
|
162
|
-
def test_css_search_with_namespace
|
163
|
-
fragment = Nokogiri::XML.fragment(<<-eoxml)
|
164
|
-
<html xmlns="http://www.w3.org/1999/xhtml">
|
165
|
-
<head></head>
|
166
|
-
<body></body>
|
167
|
-
</html>
|
168
|
-
eoxml
|
169
|
-
assert_nothing_raised{ fragment.children.search( 'body', { 'xmlns' => 'http://www.w3.org/1999/xhtml' }) }
|
170
|
-
end
|
171
140
|
|
172
141
|
def test_double_equal
|
173
142
|
assert node_set_one = @xml.xpath('//employee')
|
@@ -286,26 +255,11 @@ module Nokogiri
|
|
286
255
|
assert_match '<a>', html
|
287
256
|
end
|
288
257
|
|
289
|
-
def test_gt_string_arg
|
290
|
-
assert node_set = @xml.search('//employee')
|
291
|
-
assert_equal node_set.xpath('./employeeId'), (node_set > 'employeeId')
|
292
|
-
end
|
293
|
-
|
294
258
|
def test_at
|
295
259
|
assert node_set = @xml.search('//employee')
|
296
260
|
assert_equal node_set.first, node_set.at(0)
|
297
261
|
end
|
298
262
|
|
299
|
-
def test_at_xpath
|
300
|
-
assert node_set = @xml.search('//employee')
|
301
|
-
assert_equal node_set.first.first_element_child, node_set.at_xpath('./employeeId')
|
302
|
-
end
|
303
|
-
|
304
|
-
def test_at_css
|
305
|
-
assert node_set = @xml.search('//employee')
|
306
|
-
assert_equal node_set.first.first_element_child, node_set.at_css('employeeId')
|
307
|
-
end
|
308
|
-
|
309
263
|
def test_percent
|
310
264
|
assert node_set = @xml.search('//employee')
|
311
265
|
assert_equal node_set.first, node_set % 0
|
@@ -441,19 +395,6 @@ module Nokogiri
|
|
441
395
|
assert_equal 'employee', @xml.search("//wrapper").first.children[0].name
|
442
396
|
end
|
443
397
|
|
444
|
-
def test_wrap_a_fragment
|
445
|
-
frag = Nokogiri::XML::DocumentFragment.parse <<-EOXML
|
446
|
-
<employees>
|
447
|
-
<employee>hello</employee>
|
448
|
-
<employee>goodbye</employee>
|
449
|
-
</employees>
|
450
|
-
EOXML
|
451
|
-
employees = frag.xpath ".//employee"
|
452
|
-
employees.wrap("<wrapper/>")
|
453
|
-
assert_equal 'wrapper', employees[0].parent.name
|
454
|
-
assert_equal 'employee', frag.at(".//wrapper").children.first.name
|
455
|
-
end
|
456
|
-
|
457
398
|
def test_wrap_preserves_document_structure
|
458
399
|
assert_equal "employeeId",
|
459
400
|
@xml.at_xpath("//employee").children.detect{|j| ! j.text? }.name
|
@@ -469,7 +410,7 @@ module Nokogiri
|
|
469
410
|
names_len = names.length
|
470
411
|
positions_len = positions.length
|
471
412
|
|
472
|
-
assert_raises(ArgumentError) { names + positions.first }
|
413
|
+
assert_raises(ArgumentError) { result = names + positions.first }
|
473
414
|
|
474
415
|
result = names + positions
|
475
416
|
assert_equal names_len, names.length
|
@@ -493,7 +434,7 @@ module Nokogiri
|
|
493
434
|
employees_len = employees.length
|
494
435
|
females_len = females.length
|
495
436
|
|
496
|
-
assert_raises(ArgumentError) { employees - females.first }
|
437
|
+
assert_raises(ArgumentError) { result = employees - females.first }
|
497
438
|
|
498
439
|
result = employees - females
|
499
440
|
assert_equal employees_len, employees.length
|
data/test/xml/test_schema.rb
CHANGED
@@ -74,11 +74,6 @@ module Nokogiri
|
|
74
74
|
assert_equal 2, errors.length
|
75
75
|
end
|
76
76
|
|
77
|
-
def test_validate_non_document
|
78
|
-
string = File.read(PO_XML_FILE)
|
79
|
-
assert_raise(ArgumentError) {@xsd.validate(string)}
|
80
|
-
end
|
81
|
-
|
82
77
|
def test_valid?
|
83
78
|
valid_doc = Nokogiri::XML(File.read(PO_XML_FILE))
|
84
79
|
|
data/test/xml/test_text.rb
CHANGED
@@ -3,13 +3,6 @@ require "helper"
|
|
3
3
|
module Nokogiri
|
4
4
|
module XML
|
5
5
|
class TestText < Nokogiri::TestCase
|
6
|
-
def test_css_path
|
7
|
-
doc = Nokogiri.XML "<root> foo <a>something</a> bar bazz </root>"
|
8
|
-
node = doc.root.children[2]
|
9
|
-
assert_instance_of Nokogiri::XML::Text, node
|
10
|
-
assert_equal node, doc.at_css(node.css_path)
|
11
|
-
end
|
12
|
-
|
13
6
|
def test_inspect
|
14
7
|
node = Text.new('hello world', Document.new)
|
15
8
|
assert_equal "#<#{node.class.name}:#{sprintf("0x%x",node.object_id)} #{node.text.inspect}>", node.inspect
|
@@ -26,13 +19,11 @@ module Nokogiri
|
|
26
19
|
100.times { Text.new('hello world', Document.new) }
|
27
20
|
end
|
28
21
|
|
22
|
+
# No assertion because this was a segv
|
29
23
|
def test_new_without_document
|
30
24
|
doc = Document.new
|
31
25
|
node = Nokogiri::XML::Element.new('foo', doc)
|
32
|
-
|
33
|
-
assert_nothing_raised do
|
34
|
-
Text.new('hello world', node)
|
35
|
-
end
|
26
|
+
text = Text.new('hello world', node)
|
36
27
|
end
|
37
28
|
|
38
29
|
def test_content=
|
@@ -129,7 +129,7 @@ module Nokogiri
|
|
129
129
|
def test_add_child_in_same_document
|
130
130
|
child = @node.css('employee').first
|
131
131
|
|
132
|
-
assert child.children.last
|
132
|
+
assert previous_last_child = child.children.last
|
133
133
|
assert new_child = child.children.first
|
134
134
|
|
135
135
|
last = child.children.last
|
data/test/xml/test_xpath.rb
CHANGED
@@ -61,10 +61,6 @@ module Nokogiri
|
|
61
61
|
}.new
|
62
62
|
end
|
63
63
|
|
64
|
-
def test_variable_binding
|
65
|
-
assert_equal 4, @xml.xpath('//address[@domestic=$value]', nil, :value => 'Yes').length
|
66
|
-
end
|
67
|
-
|
68
64
|
def test_unknown_attribute
|
69
65
|
assert_equal 0, @xml.xpath('//employee[@id="asdfasdf"]/@fooo').length
|
70
66
|
assert_nil @xml.xpath('//employee[@id="asdfasdf"]/@fooo')[0]
|
@@ -96,13 +92,11 @@ module Nokogiri
|
|
96
92
|
|
97
93
|
def test_css_search_uses_custom_selectors
|
98
94
|
set = @xml.xpath('//employee')
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
end
|
105
|
-
end
|
95
|
+
css_set = if Nokogiri.uses_libxml?
|
96
|
+
@xml.css('employee:thing()', @handler)
|
97
|
+
else
|
98
|
+
@xml.xpath("//employee[nokogiri:thing(.)]", @ns, @handler)
|
99
|
+
end
|
106
100
|
assert_equal(set.length, @handler.things.length)
|
107
101
|
assert_equal(set.to_a, @handler.things.flatten)
|
108
102
|
end
|
@@ -190,9 +184,7 @@ module Nokogiri
|
|
190
184
|
def awesome! ; end
|
191
185
|
end
|
192
186
|
util_decorate(@xml, x)
|
193
|
-
|
194
|
-
assert @xml.xpath('//employee/name')
|
195
|
-
|
187
|
+
set = @xml.xpath('//employee/name')
|
196
188
|
@xml.xpath('//employee[saves_node_set(name)]', @handler)
|
197
189
|
assert_equal @xml, @handler.things.document
|
198
190
|
assert @handler.things.respond_to?(:awesome!)
|
@@ -202,35 +194,7 @@ module Nokogiri
|
|
202
194
|
doc = "<html><body id='foo'><foo>hi</foo></body></html>"
|
203
195
|
xpath = 'id("foo")//foo'
|
204
196
|
nokogiri = Nokogiri::HTML.parse(doc)
|
205
|
-
|
206
|
-
end
|
207
|
-
|
208
|
-
def test_custom_xpath_handler_with_args_under_gc_pressure
|
209
|
-
# see http://github.com/tenderlove/nokogiri/issues/#issue/345
|
210
|
-
tool_inspector = Class.new do
|
211
|
-
def name_equals(nodeset, name, *args)
|
212
|
-
nodeset.all? do |node|
|
213
|
-
args.each { |thing| thing.inspect }
|
214
|
-
node["name"] == name
|
215
|
-
end
|
216
|
-
end
|
217
|
-
end.new
|
218
|
-
|
219
|
-
xml = <<-EOXML
|
220
|
-
<toolbox>
|
221
|
-
#{"<tool name='hammer'/><tool name='wrench'/>" * 10}
|
222
|
-
</toolbox>
|
223
|
-
EOXML
|
224
|
-
doc = Nokogiri::XML xml
|
225
|
-
|
226
|
-
# long list of long arguments, to apply GC pressure during
|
227
|
-
# ruby_funcall argument marshalling
|
228
|
-
xpath = ["//tool[name_equals(.,'hammer'"]
|
229
|
-
1000.times { xpath << "'unused argument #{'x' * 1000}'" }
|
230
|
-
xpath << "'unused argument')]"
|
231
|
-
xpath = xpath.join(',')
|
232
|
-
|
233
|
-
assert_equal doc.xpath("//tool[@name='hammer']"), doc.xpath(xpath, tool_inspector)
|
197
|
+
tree = nokogiri.xpath(xpath)
|
234
198
|
end
|
235
199
|
end
|
236
200
|
end
|
metadata
CHANGED
@@ -1,8 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nokogiri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
4
|
+
hash: 62196433
|
5
|
+
prerelease: true
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
- beta
|
11
|
+
- 1
|
12
|
+
version: 1.5.0.beta.1
|
6
13
|
platform: ruby
|
7
14
|
authors:
|
8
15
|
- Aaron Patterson
|
@@ -11,64 +18,99 @@ autorequire:
|
|
11
18
|
bindir: bin
|
12
19
|
cert_chain: []
|
13
20
|
|
14
|
-
date:
|
21
|
+
date: 2010-06-08 00:00:00 -04:00
|
15
22
|
default_executable:
|
16
23
|
dependencies:
|
17
24
|
- !ruby/object:Gem::Dependency
|
18
|
-
name:
|
25
|
+
name: rubyforge
|
19
26
|
prerelease: false
|
20
27
|
requirement: &id001 !ruby/object:Gem::Requirement
|
21
28
|
none: false
|
22
29
|
requirements:
|
23
30
|
- - ">="
|
24
31
|
- !ruby/object:Gem::Version
|
25
|
-
|
32
|
+
hash: 7
|
33
|
+
segments:
|
34
|
+
- 2
|
35
|
+
- 0
|
36
|
+
- 4
|
37
|
+
version: 2.0.4
|
26
38
|
type: :development
|
27
39
|
version_requirements: *id001
|
28
40
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
41
|
+
name: racc
|
30
42
|
prerelease: false
|
31
43
|
requirement: &id002 !ruby/object:Gem::Requirement
|
32
44
|
none: false
|
33
45
|
requirements:
|
34
46
|
- - ">="
|
35
47
|
- !ruby/object:Gem::Version
|
48
|
+
hash: 3
|
49
|
+
segments:
|
50
|
+
- 0
|
36
51
|
version: "0"
|
37
52
|
type: :development
|
38
53
|
version_requirements: *id002
|
39
54
|
- !ruby/object:Gem::Dependency
|
40
|
-
name:
|
55
|
+
name: rexical
|
41
56
|
prerelease: false
|
42
57
|
requirement: &id003 !ruby/object:Gem::Requirement
|
43
58
|
none: false
|
44
59
|
requirements:
|
45
60
|
- - ">="
|
46
61
|
- !ruby/object:Gem::Version
|
62
|
+
hash: 3
|
63
|
+
segments:
|
64
|
+
- 0
|
47
65
|
version: "0"
|
48
66
|
type: :development
|
49
67
|
version_requirements: *id003
|
50
68
|
- !ruby/object:Gem::Dependency
|
51
|
-
name:
|
69
|
+
name: rake-compiler
|
52
70
|
prerelease: false
|
53
71
|
requirement: &id004 !ruby/object:Gem::Requirement
|
54
72
|
none: false
|
55
73
|
requirements:
|
56
74
|
- - ">="
|
57
75
|
- !ruby/object:Gem::Version
|
58
|
-
|
76
|
+
hash: 3
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
version: "0"
|
59
80
|
type: :development
|
60
81
|
version_requirements: *id004
|
61
82
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
83
|
+
name: minitest
|
63
84
|
prerelease: false
|
64
85
|
requirement: &id005 !ruby/object:Gem::Requirement
|
65
86
|
none: false
|
66
87
|
requirements:
|
67
88
|
- - ">="
|
68
89
|
- !ruby/object:Gem::Version
|
69
|
-
|
90
|
+
hash: 15
|
91
|
+
segments:
|
92
|
+
- 1
|
93
|
+
- 6
|
94
|
+
- 0
|
95
|
+
version: 1.6.0
|
70
96
|
type: :development
|
71
97
|
version_requirements: *id005
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: hoe
|
100
|
+
prerelease: false
|
101
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
102
|
+
none: false
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
hash: 23
|
107
|
+
segments:
|
108
|
+
- 2
|
109
|
+
- 6
|
110
|
+
- 0
|
111
|
+
version: 2.6.0
|
112
|
+
type: :development
|
113
|
+
version_requirements: *id006
|
72
114
|
description: "Nokogiri (\xE9\x8B\xB8) is an HTML, XML, SAX, and Reader parser. Among Nokogiri's\n\
|
73
115
|
many features is the ability to search documents via XPath or CSS3 selectors.\n\n\
|
74
116
|
XML is like violence - if it doesn\xE2\x80\x99t solve your problems, you are not using\n\
|
@@ -82,46 +124,44 @@ extensions:
|
|
82
124
|
- ext/nokogiri/extconf.rb
|
83
125
|
extra_rdoc_files:
|
84
126
|
- Manifest.txt
|
85
|
-
- README.ja.rdoc
|
86
|
-
- CHANGELOG.rdoc
|
87
127
|
- CHANGELOG.ja.rdoc
|
128
|
+
- CHANGELOG.rdoc
|
129
|
+
- README.ja.rdoc
|
88
130
|
- README.rdoc
|
89
|
-
- ext/nokogiri/
|
90
|
-
- ext/nokogiri/
|
91
|
-
- ext/nokogiri/html_sax_parser_context.c
|
131
|
+
- ext/nokogiri/html_document.c
|
132
|
+
- ext/nokogiri/html_element_description.c
|
92
133
|
- ext/nokogiri/html_entity_lookup.c
|
93
|
-
- ext/nokogiri/
|
134
|
+
- ext/nokogiri/html_sax_parser_context.c
|
94
135
|
- ext/nokogiri/nokogiri.c
|
95
|
-
- ext/nokogiri/
|
96
|
-
- ext/nokogiri/xml_encoding_handler.c
|
97
|
-
- ext/nokogiri/html_document.c
|
98
|
-
- ext/nokogiri/xslt_stylesheet.c
|
136
|
+
- ext/nokogiri/xml_attr.c
|
99
137
|
- ext/nokogiri/xml_attribute_decl.c
|
100
|
-
- ext/nokogiri/
|
101
|
-
- ext/nokogiri/xml_document_fragment.c
|
102
|
-
- ext/nokogiri/xml_namespace.c
|
103
|
-
- ext/nokogiri/xml_libxml2_hacks.c
|
104
|
-
- ext/nokogiri/xml_sax_parser_context.c
|
138
|
+
- ext/nokogiri/xml_cdata.c
|
105
139
|
- ext/nokogiri/xml_comment.c
|
106
|
-
- ext/nokogiri/xml_sax_parser.c
|
107
|
-
- ext/nokogiri/html_element_description.c
|
108
|
-
- ext/nokogiri/xml_xpath_context.c
|
109
|
-
- ext/nokogiri/xml_syntax_error.c
|
110
140
|
- ext/nokogiri/xml_document.c
|
141
|
+
- ext/nokogiri/xml_document_fragment.c
|
142
|
+
- ext/nokogiri/xml_dtd.c
|
143
|
+
- ext/nokogiri/xml_element_content.c
|
144
|
+
- ext/nokogiri/xml_element_decl.c
|
145
|
+
- ext/nokogiri/xml_encoding_handler.c
|
111
146
|
- ext/nokogiri/xml_entity_decl.c
|
147
|
+
- ext/nokogiri/xml_entity_reference.c
|
148
|
+
- ext/nokogiri/xml_io.c
|
149
|
+
- ext/nokogiri/xml_namespace.c
|
112
150
|
- ext/nokogiri/xml_node.c
|
113
151
|
- ext/nokogiri/xml_node_set.c
|
114
|
-
- ext/nokogiri/xml_reader.c
|
115
152
|
- ext/nokogiri/xml_processing_instruction.c
|
116
|
-
- ext/nokogiri/
|
117
|
-
- ext/nokogiri/
|
118
|
-
- ext/nokogiri/
|
153
|
+
- ext/nokogiri/xml_reader.c
|
154
|
+
- ext/nokogiri/xml_relax_ng.c
|
155
|
+
- ext/nokogiri/xml_sax_parser.c
|
156
|
+
- ext/nokogiri/xml_sax_parser_context.c
|
157
|
+
- ext/nokogiri/xml_sax_push_parser.c
|
119
158
|
- ext/nokogiri/xml_schema.c
|
120
|
-
- ext/nokogiri/
|
121
|
-
- ext/nokogiri/
|
159
|
+
- ext/nokogiri/xml_syntax_error.c
|
160
|
+
- ext/nokogiri/xml_text.c
|
161
|
+
- ext/nokogiri/xml_xpath_context.c
|
162
|
+
- ext/nokogiri/xslt_stylesheet.c
|
122
163
|
files:
|
123
164
|
- .autotest
|
124
|
-
- .gemtest
|
125
165
|
- CHANGELOG.ja.rdoc
|
126
166
|
- CHANGELOG.rdoc
|
127
167
|
- Manifest.txt
|
@@ -129,7 +169,7 @@ files:
|
|
129
169
|
- README.rdoc
|
130
170
|
- Rakefile
|
131
171
|
- bin/nokogiri
|
132
|
-
-
|
172
|
+
- deps.rip
|
133
173
|
- ext/nokogiri/extconf.rb
|
134
174
|
- ext/nokogiri/html_document.c
|
135
175
|
- ext/nokogiri/html_document.h
|
@@ -167,8 +207,6 @@ files:
|
|
167
207
|
- ext/nokogiri/xml_entity_reference.h
|
168
208
|
- ext/nokogiri/xml_io.c
|
169
209
|
- ext/nokogiri/xml_io.h
|
170
|
-
- ext/nokogiri/xml_libxml2_hacks.c
|
171
|
-
- ext/nokogiri/xml_libxml2_hacks.h
|
172
210
|
- ext/nokogiri/xml_namespace.c
|
173
211
|
- ext/nokogiri/xml_namespace.h
|
174
212
|
- ext/nokogiri/xml_node.c
|
@@ -199,84 +237,22 @@ files:
|
|
199
237
|
- ext/nokogiri/xslt_stylesheet.h
|
200
238
|
- lib/nokogiri.rb
|
201
239
|
- lib/nokogiri/css.rb
|
240
|
+
- lib/nokogiri/css/generated_parser.rb
|
241
|
+
- lib/nokogiri/css/generated_tokenizer.rb
|
202
242
|
- lib/nokogiri/css/node.rb
|
203
243
|
- lib/nokogiri/css/parser.rb
|
204
244
|
- lib/nokogiri/css/parser.y
|
205
|
-
- lib/nokogiri/css/parser_extras.rb
|
206
245
|
- lib/nokogiri/css/syntax_error.rb
|
207
246
|
- lib/nokogiri/css/tokenizer.rb
|
208
247
|
- lib/nokogiri/css/tokenizer.rex
|
209
248
|
- lib/nokogiri/css/xpath_visitor.rb
|
210
249
|
- lib/nokogiri/decorators/slop.rb
|
211
|
-
- lib/nokogiri/ffi/encoding_handler.rb
|
212
|
-
- lib/nokogiri/ffi/html/document.rb
|
213
|
-
- lib/nokogiri/ffi/html/element_description.rb
|
214
|
-
- lib/nokogiri/ffi/html/entity_lookup.rb
|
215
|
-
- lib/nokogiri/ffi/html/sax/parser_context.rb
|
216
|
-
- lib/nokogiri/ffi/io_callbacks.rb
|
217
|
-
- lib/nokogiri/ffi/libxml.rb
|
218
|
-
- lib/nokogiri/ffi/structs/common_node.rb
|
219
|
-
- lib/nokogiri/ffi/structs/html_elem_desc.rb
|
220
|
-
- lib/nokogiri/ffi/structs/html_entity_desc.rb
|
221
|
-
- lib/nokogiri/ffi/structs/xml_alloc.rb
|
222
|
-
- lib/nokogiri/ffi/structs/xml_attr.rb
|
223
|
-
- lib/nokogiri/ffi/structs/xml_attribute.rb
|
224
|
-
- lib/nokogiri/ffi/structs/xml_buffer.rb
|
225
|
-
- lib/nokogiri/ffi/structs/xml_char_encoding_handler.rb
|
226
|
-
- lib/nokogiri/ffi/structs/xml_document.rb
|
227
|
-
- lib/nokogiri/ffi/structs/xml_dtd.rb
|
228
|
-
- lib/nokogiri/ffi/structs/xml_element.rb
|
229
|
-
- lib/nokogiri/ffi/structs/xml_element_content.rb
|
230
|
-
- lib/nokogiri/ffi/structs/xml_entity.rb
|
231
|
-
- lib/nokogiri/ffi/structs/xml_enumeration.rb
|
232
|
-
- lib/nokogiri/ffi/structs/xml_node.rb
|
233
|
-
- lib/nokogiri/ffi/structs/xml_node_set.rb
|
234
|
-
- lib/nokogiri/ffi/structs/xml_notation.rb
|
235
|
-
- lib/nokogiri/ffi/structs/xml_ns.rb
|
236
|
-
- lib/nokogiri/ffi/structs/xml_parser_context.rb
|
237
|
-
- lib/nokogiri/ffi/structs/xml_parser_input.rb
|
238
|
-
- lib/nokogiri/ffi/structs/xml_relax_ng.rb
|
239
|
-
- lib/nokogiri/ffi/structs/xml_sax_handler.rb
|
240
|
-
- lib/nokogiri/ffi/structs/xml_sax_push_parser_context.rb
|
241
|
-
- lib/nokogiri/ffi/structs/xml_schema.rb
|
242
|
-
- lib/nokogiri/ffi/structs/xml_syntax_error.rb
|
243
|
-
- lib/nokogiri/ffi/structs/xml_text_reader.rb
|
244
|
-
- lib/nokogiri/ffi/structs/xml_xpath_context.rb
|
245
|
-
- lib/nokogiri/ffi/structs/xml_xpath_object.rb
|
246
|
-
- lib/nokogiri/ffi/structs/xml_xpath_parser_context.rb
|
247
|
-
- lib/nokogiri/ffi/structs/xslt_stylesheet.rb
|
248
|
-
- lib/nokogiri/ffi/weak_bucket.rb
|
249
|
-
- lib/nokogiri/ffi/xml/attr.rb
|
250
|
-
- lib/nokogiri/ffi/xml/attribute_decl.rb
|
251
|
-
- lib/nokogiri/ffi/xml/cdata.rb
|
252
|
-
- lib/nokogiri/ffi/xml/comment.rb
|
253
|
-
- lib/nokogiri/ffi/xml/document.rb
|
254
|
-
- lib/nokogiri/ffi/xml/document_fragment.rb
|
255
|
-
- lib/nokogiri/ffi/xml/dtd.rb
|
256
|
-
- lib/nokogiri/ffi/xml/element_content.rb
|
257
|
-
- lib/nokogiri/ffi/xml/element_decl.rb
|
258
|
-
- lib/nokogiri/ffi/xml/entity_decl.rb
|
259
|
-
- lib/nokogiri/ffi/xml/entity_reference.rb
|
260
|
-
- lib/nokogiri/ffi/xml/namespace.rb
|
261
|
-
- lib/nokogiri/ffi/xml/node.rb
|
262
|
-
- lib/nokogiri/ffi/xml/node_set.rb
|
263
|
-
- lib/nokogiri/ffi/xml/processing_instruction.rb
|
264
|
-
- lib/nokogiri/ffi/xml/reader.rb
|
265
|
-
- lib/nokogiri/ffi/xml/relax_ng.rb
|
266
|
-
- lib/nokogiri/ffi/xml/sax/parser.rb
|
267
|
-
- lib/nokogiri/ffi/xml/sax/parser_context.rb
|
268
|
-
- lib/nokogiri/ffi/xml/sax/push_parser.rb
|
269
|
-
- lib/nokogiri/ffi/xml/schema.rb
|
270
|
-
- lib/nokogiri/ffi/xml/syntax_error.rb
|
271
|
-
- lib/nokogiri/ffi/xml/text.rb
|
272
|
-
- lib/nokogiri/ffi/xml/xpath.rb
|
273
|
-
- lib/nokogiri/ffi/xml/xpath_context.rb
|
274
|
-
- lib/nokogiri/ffi/xslt/stylesheet.rb
|
275
250
|
- lib/nokogiri/html.rb
|
276
251
|
- lib/nokogiri/html/builder.rb
|
277
252
|
- lib/nokogiri/html/document.rb
|
278
253
|
- lib/nokogiri/html/document_fragment.rb
|
279
254
|
- lib/nokogiri/html/element_description.rb
|
255
|
+
- lib/nokogiri/html/element_description_defaults.rb
|
280
256
|
- lib/nokogiri/html/entity_lookup.rb
|
281
257
|
- lib/nokogiri/html/sax/parser.rb
|
282
258
|
- lib/nokogiri/html/sax/parser_context.rb
|
@@ -327,15 +303,11 @@ files:
|
|
327
303
|
- test/css/test_parser.rb
|
328
304
|
- test/css/test_tokenizer.rb
|
329
305
|
- test/css/test_xpath_visitor.rb
|
330
|
-
- test/decorators/test_slop.rb
|
331
|
-
- test/ffi/test_document.rb
|
332
306
|
- test/files/2ch.html
|
333
307
|
- test/files/address_book.rlx
|
334
308
|
- test/files/address_book.xml
|
335
309
|
- test/files/bar/bar.xsd
|
336
310
|
- test/files/dont_hurt_em_why.xml
|
337
|
-
- test/files/encoding.html
|
338
|
-
- test/files/encoding.xhtml
|
339
311
|
- test/files/exslt.xml
|
340
312
|
- test/files/exslt.xslt
|
341
313
|
- test/files/foo/foo.xsd
|
@@ -402,7 +374,6 @@ files:
|
|
402
374
|
- test/xml/test_text.rb
|
403
375
|
- test/xml/test_unparented_node.rb
|
404
376
|
- test/xml/test_xpath.rb
|
405
|
-
- test/xslt/test_custom_functions.rb
|
406
377
|
has_rdoc: true
|
407
378
|
homepage: http://nokogiri.org
|
408
379
|
licenses: []
|
@@ -418,77 +389,82 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
418
389
|
requirements:
|
419
390
|
- - ">="
|
420
391
|
- !ruby/object:Gem::Version
|
392
|
+
hash: 3
|
393
|
+
segments:
|
394
|
+
- 0
|
421
395
|
version: "0"
|
422
396
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
423
397
|
none: false
|
424
398
|
requirements:
|
425
|
-
- - "
|
399
|
+
- - ">"
|
426
400
|
- !ruby/object:Gem::Version
|
427
|
-
|
401
|
+
hash: 25
|
402
|
+
segments:
|
403
|
+
- 1
|
404
|
+
- 3
|
405
|
+
- 1
|
406
|
+
version: 1.3.1
|
428
407
|
requirements: []
|
429
408
|
|
430
409
|
rubyforge_project: nokogiri
|
431
|
-
rubygems_version: 1.
|
410
|
+
rubygems_version: 1.3.7
|
432
411
|
signing_key:
|
433
412
|
specification_version: 3
|
434
413
|
summary: "Nokogiri (\xE9\x8B\xB8) is an HTML, XML, SAX, and Reader parser"
|
435
414
|
test_files:
|
436
|
-
- test/test_convert_xpath.rb
|
437
|
-
- test/test_soap4r_sax.rb
|
438
|
-
- test/test_memory_leak.rb
|
439
|
-
- test/test_nokogiri.rb
|
440
|
-
- test/test_css_cache.rb
|
441
415
|
- test/css/test_nthiness.rb
|
442
|
-
- test/css/test_xpath_visitor.rb
|
443
416
|
- test/css/test_parser.rb
|
444
417
|
- test/css/test_tokenizer.rb
|
445
|
-
- test/
|
418
|
+
- test/css/test_xpath_visitor.rb
|
419
|
+
- test/html/sax/test_parser.rb
|
420
|
+
- test/html/sax/test_parser_context.rb
|
421
|
+
- test/html/test_builder.rb
|
446
422
|
- test/html/test_document.rb
|
447
423
|
- test/html/test_document_encoding.rb
|
448
|
-
- test/html/test_named_characters.rb
|
449
424
|
- test/html/test_document_fragment.rb
|
425
|
+
- test/html/test_element_description.rb
|
426
|
+
- test/html/test_named_characters.rb
|
450
427
|
- test/html/test_node.rb
|
451
|
-
- test/html/test_builder.rb
|
452
|
-
- test/html/sax/test_parser_context.rb
|
453
|
-
- test/html/sax/test_parser.rb
|
454
428
|
- test/html/test_node_encoding.rb
|
455
|
-
- test/
|
456
|
-
- test/
|
429
|
+
- test/test_convert_xpath.rb
|
430
|
+
- test/test_css_cache.rb
|
431
|
+
- test/test_encoding_handler.rb
|
432
|
+
- test/test_memory_leak.rb
|
433
|
+
- test/test_nokogiri.rb
|
457
434
|
- test/test_reader.rb
|
458
|
-
- test/
|
459
|
-
- test/
|
460
|
-
- test/xml/test_element_decl.rb
|
461
|
-
- test/xml/test_document.rb
|
462
|
-
- test/xml/test_dtd.rb
|
463
|
-
- test/xml/test_document_encoding.rb
|
464
|
-
- test/xml/test_entity_decl.rb
|
465
|
-
- test/xml/test_dtd_encoding.rb
|
435
|
+
- test/test_soap4r_sax.rb
|
436
|
+
- test/test_xslt_transforms.rb
|
466
437
|
- test/xml/node/test_save_options.rb
|
467
438
|
- test/xml/node/test_subclass.rb
|
468
|
-
- test/xml/test_document_fragment.rb
|
469
|
-
- test/xml/test_cdata.rb
|
470
|
-
- test/xml/test_text.rb
|
471
|
-
- test/xml/test_reader_encoding.rb
|
472
|
-
- test/xml/test_xpath.rb
|
473
|
-
- test/xml/test_element_content.rb
|
474
|
-
- test/xml/test_node.rb
|
475
|
-
- test/xml/test_builder.rb
|
476
|
-
- test/xml/sax/test_push_parser.rb
|
477
|
-
- test/xml/sax/test_parser_context.rb
|
478
439
|
- test/xml/sax/test_parser.rb
|
479
|
-
- test/xml/
|
480
|
-
- test/xml/
|
440
|
+
- test/xml/sax/test_parser_context.rb
|
441
|
+
- test/xml/sax/test_push_parser.rb
|
481
442
|
- test/xml/test_attr.rb
|
482
|
-
- test/xml/
|
483
|
-
- test/xml/
|
484
|
-
- test/xml/
|
443
|
+
- test/xml/test_attribute_decl.rb
|
444
|
+
- test/xml/test_builder.rb
|
445
|
+
- test/xml/test_cdata.rb
|
485
446
|
- test/xml/test_comment.rb
|
447
|
+
- test/xml/test_document.rb
|
448
|
+
- test/xml/test_document_encoding.rb
|
449
|
+
- test/xml/test_document_fragment.rb
|
450
|
+
- test/xml/test_dtd.rb
|
451
|
+
- test/xml/test_dtd_encoding.rb
|
452
|
+
- test/xml/test_element_content.rb
|
453
|
+
- test/xml/test_element_decl.rb
|
454
|
+
- test/xml/test_entity_decl.rb
|
486
455
|
- test/xml/test_entity_reference.rb
|
487
|
-
- test/xml/test_node_reparenting.rb
|
488
|
-
- test/xml/test_attribute_decl.rb
|
489
|
-
- test/xml/test_relax_ng.rb
|
490
456
|
- test/xml/test_namespace.rb
|
457
|
+
- test/xml/test_node.rb
|
491
458
|
- test/xml/test_node_attributes.rb
|
492
|
-
- test/
|
493
|
-
- test/
|
494
|
-
- test/
|
459
|
+
- test/xml/test_node_encoding.rb
|
460
|
+
- test/xml/test_node_reparenting.rb
|
461
|
+
- test/xml/test_node_set.rb
|
462
|
+
- test/xml/test_parse_options.rb
|
463
|
+
- test/xml/test_processing_instruction.rb
|
464
|
+
- test/xml/test_reader_encoding.rb
|
465
|
+
- test/xml/test_relax_ng.rb
|
466
|
+
- test/xml/test_schema.rb
|
467
|
+
- test/xml/test_syntax_error.rb
|
468
|
+
- test/xml/test_text.rb
|
469
|
+
- test/xml/test_unparented_node.rb
|
470
|
+
- test/xml/test_xpath.rb
|