nokogiri 1.4.4.1-x86-mingw32 → 1.4.5-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.
- data/.gemtest +0 -0
- data/CHANGELOG.ja.rdoc +16 -0
- data/CHANGELOG.rdoc +22 -0
- data/Manifest.txt +4 -3
- data/Rakefile +40 -37
- data/ext/nokogiri/xml_document.c +9 -0
- data/ext/nokogiri/xml_io.c +32 -7
- data/ext/nokogiri/xml_node.c +14 -13
- data/ext/nokogiri/xml_sax_parser.c +4 -2
- data/ext/nokogiri/xslt_stylesheet.c +9 -3
- data/lib/nokogiri/1.8/nokogiri.so +0 -0
- data/lib/nokogiri/1.9/nokogiri.so +0 -0
- data/lib/nokogiri/css.rb +6 -3
- data/lib/nokogiri/css/parser.rb +665 -70
- data/lib/nokogiri/css/parser.y +3 -1
- data/lib/nokogiri/css/parser_extras.rb +91 -0
- data/lib/nokogiri/css/tokenizer.rb +148 -3
- data/lib/nokogiri/css/tokenizer.rex +1 -1
- data/lib/nokogiri/ffi/structs/xml_attr.rb +2 -1
- data/lib/nokogiri/ffi/structs/xml_node_set.rb +1 -1
- data/lib/nokogiri/ffi/weak_bucket.rb +10 -10
- data/lib/nokogiri/ffi/xml/document.rb +8 -0
- data/lib/nokogiri/ffi/xml/node_set.rb +1 -0
- data/lib/nokogiri/ffi/xml/sax/parser.rb +9 -1
- data/lib/nokogiri/ffi/xslt/stylesheet.rb +4 -0
- data/lib/nokogiri/html/document.rb +134 -15
- data/lib/nokogiri/html/sax/parser.rb +6 -2
- data/lib/nokogiri/version.rb +6 -1
- data/lib/nokogiri/xml/node.rb +8 -23
- data/lib/nokogiri/xml/node/save_options.rb +10 -0
- data/lib/nokogiri/xml/node_set.rb +1 -1
- data/lib/nokogiri/xml/parse_options.rb +8 -0
- data/lib/nokogiri/xml/reader.rb +6 -6
- data/lib/nokogiri/xml/sax/document.rb +2 -2
- data/lib/nokogiri/xml/schema.rb +7 -1
- data/tasks/cross_compile.rb +2 -14
- data/test/css/test_tokenizer.rb +8 -0
- data/test/files/encoding.html +82 -0
- data/test/files/encoding.xhtml +84 -0
- data/test/helper.rb +2 -0
- data/test/html/sax/test_parser.rb +45 -0
- data/test/html/test_document.rb +55 -0
- data/test/html/test_document_encoding.rb +46 -0
- data/test/html/test_element_description.rb +1 -1
- data/test/test_memory_leak.rb +20 -0
- data/test/test_reader.rb +13 -0
- data/test/test_xslt_transforms.rb +6 -2
- data/test/xml/sax/test_parser.rb +16 -0
- data/test/xml/test_document.rb +3 -1
- data/test/xml/test_node.rb +13 -1
- data/test/xml/test_node_set.rb +10 -0
- data/test/xml/test_schema.rb +5 -0
- metadata +94 -110
- data/deps.rip +0 -5
- data/lib/nokogiri/css/generated_parser.rb +0 -676
- data/lib/nokogiri/css/generated_tokenizer.rb +0 -145
data/test/helper.rb
CHANGED
@@ -20,6 +20,8 @@ module Nokogiri
|
|
20
20
|
NICH_FILE = File.join(ASSETS_DIR, '2ch.html')
|
21
21
|
SHIFT_JIS_XML = File.join(ASSETS_DIR, 'shift_jis.xml')
|
22
22
|
SHIFT_JIS_HTML = File.join(ASSETS_DIR, 'shift_jis.html')
|
23
|
+
ENCODING_XHTML_FILE = File.join(ASSETS_DIR, 'encoding.xhtml')
|
24
|
+
ENCODING_HTML_FILE = File.join(ASSETS_DIR, 'encoding.html')
|
23
25
|
PO_XML_FILE = File.join(ASSETS_DIR, 'po.xml')
|
24
26
|
PO_SCHEMA_FILE = File.join(ASSETS_DIR, 'po.xsd')
|
25
27
|
ADDRESS_SCHEMA_FILE = File.join(ASSETS_DIR, 'address_book.rlx')
|
@@ -68,6 +68,51 @@ module Nokogiri
|
|
68
68
|
assert_equal([["html", []], ["body", []], ["p", []], ["p", []]],
|
69
69
|
@parser.document.start_elements)
|
70
70
|
end
|
71
|
+
|
72
|
+
def test_parser_attributes
|
73
|
+
html = <<-eohtml
|
74
|
+
<html>
|
75
|
+
<head>
|
76
|
+
<title>hello</title>
|
77
|
+
</head>
|
78
|
+
<body>
|
79
|
+
<img src="face.jpg" title="daddy & me">
|
80
|
+
<hr noshade size="2">
|
81
|
+
</body>
|
82
|
+
</html>
|
83
|
+
eohtml
|
84
|
+
|
85
|
+
block_called = false
|
86
|
+
@parser.parse(html) { |ctx|
|
87
|
+
block_called = true
|
88
|
+
ctx.replace_entities = true
|
89
|
+
}
|
90
|
+
|
91
|
+
assert block_called
|
92
|
+
|
93
|
+
noshade_value = if Nokogiri.uses_libxml? && Nokogiri::VERSION_INFO['libxml']['loaded'] < '2.7.7'
|
94
|
+
['noshade', 'noshade']
|
95
|
+
elsif Nokogiri.jruby?
|
96
|
+
['noshade', '']
|
97
|
+
else
|
98
|
+
['noshade', nil]
|
99
|
+
end
|
100
|
+
|
101
|
+
assert_equal [
|
102
|
+
['html', []],
|
103
|
+
['head', []],
|
104
|
+
['title', []],
|
105
|
+
['body', []],
|
106
|
+
['img', [
|
107
|
+
['src', 'face.jpg'],
|
108
|
+
['title', 'daddy & me']
|
109
|
+
]],
|
110
|
+
['hr', [
|
111
|
+
noshade_value,
|
112
|
+
['size', '2']
|
113
|
+
]]
|
114
|
+
], @parser.document.start_elements
|
115
|
+
end
|
71
116
|
end
|
72
117
|
end
|
73
118
|
end
|
data/test/html/test_document.rb
CHANGED
@@ -119,6 +119,18 @@ module Nokogiri
|
|
119
119
|
|
120
120
|
def test_meta_encoding
|
121
121
|
assert_equal 'UTF-8', @html.meta_encoding
|
122
|
+
|
123
|
+
html = Nokogiri::HTML(<<-eohtml)
|
124
|
+
<html>
|
125
|
+
<head>
|
126
|
+
<meta http-equiv="X-Content-Type" content="text/html; charset=Shift_JIS">
|
127
|
+
</head>
|
128
|
+
<body>
|
129
|
+
foo
|
130
|
+
</body>
|
131
|
+
</html>
|
132
|
+
eohtml
|
133
|
+
assert_nil html.meta_encoding
|
122
134
|
end
|
123
135
|
|
124
136
|
def test_meta_encoding=
|
@@ -126,6 +138,49 @@ module Nokogiri
|
|
126
138
|
assert_equal 'EUC-JP', @html.meta_encoding
|
127
139
|
end
|
128
140
|
|
141
|
+
def test_title
|
142
|
+
assert_equal 'Tender Lovemaking ', @html.title
|
143
|
+
doc = Nokogiri::HTML('<html><body>foo</body></html>')
|
144
|
+
assert_nil doc.title
|
145
|
+
end
|
146
|
+
|
147
|
+
def test_title=()
|
148
|
+
doc = Nokogiri::HTML(<<eohtml)
|
149
|
+
<html>
|
150
|
+
<head>
|
151
|
+
<title>old</title>
|
152
|
+
</head>
|
153
|
+
<body>
|
154
|
+
foo
|
155
|
+
</body>
|
156
|
+
</html>
|
157
|
+
eohtml
|
158
|
+
doc.title = 'new'
|
159
|
+
assert_equal 'new', doc.title
|
160
|
+
|
161
|
+
doc = Nokogiri::HTML(<<eohtml)
|
162
|
+
<html>
|
163
|
+
<head>
|
164
|
+
</head>
|
165
|
+
<body>
|
166
|
+
foo
|
167
|
+
</body>
|
168
|
+
</html>
|
169
|
+
eohtml
|
170
|
+
doc.title = 'new'
|
171
|
+
assert_equal 'new', doc.title
|
172
|
+
|
173
|
+
doc = Nokogiri::HTML(<<eohtml)
|
174
|
+
<html>
|
175
|
+
<body>
|
176
|
+
foo
|
177
|
+
</body>
|
178
|
+
</html>
|
179
|
+
eohtml
|
180
|
+
doc.title = 'new'
|
181
|
+
assert_nil doc.title
|
182
|
+
end
|
183
|
+
|
129
184
|
def test_meta_encoding_without_head
|
130
185
|
html = Nokogiri::HTML('<html><body>foo</body></html>')
|
131
186
|
assert_nil html.meta_encoding
|
@@ -73,5 +73,51 @@ module Nokogiri
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
end
|
76
|
+
|
77
|
+
class TestDocumentEncodingDetection < Nokogiri::TestCase
|
78
|
+
if IO.respond_to?(:binread)
|
79
|
+
def binread(file)
|
80
|
+
IO.binread(file)
|
81
|
+
end
|
82
|
+
else
|
83
|
+
def binread(file)
|
84
|
+
IO.read(file)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def binopen(file)
|
89
|
+
File.open(file, 'rb')
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_document_xhtml_enc
|
93
|
+
[ENCODING_XHTML_FILE, ENCODING_HTML_FILE].each { |file|
|
94
|
+
doc_from_string_enc = Nokogiri::HTML(binread(file), nil, 'Shift_JIS')
|
95
|
+
ary_from_string_enc = doc_from_string_enc.xpath('//p/text()').map { |text| text.text }
|
96
|
+
|
97
|
+
doc_from_string = Nokogiri::HTML(binread(file))
|
98
|
+
ary_from_string = doc_from_string.xpath('//p/text()').map { |text| text.text }
|
99
|
+
|
100
|
+
doc_from_file_enc = Nokogiri::HTML(binopen(file), nil, 'Shift_JIS')
|
101
|
+
ary_from_file_enc = doc_from_file_enc.xpath('//p/text()').map { |text| text.text }
|
102
|
+
|
103
|
+
doc_from_file = Nokogiri::HTML(binopen(file))
|
104
|
+
ary_from_file = doc_from_file.xpath('//p/text()').map { |text| text.text }
|
105
|
+
|
106
|
+
title = 'たこ焼き仮面'
|
107
|
+
|
108
|
+
assert_equal(title, doc_from_string_enc.at('//title/text()').text)
|
109
|
+
assert_equal(title, doc_from_string.at('//title/text()').text)
|
110
|
+
assert_equal(title, doc_from_file_enc.at('//title/text()').text)
|
111
|
+
assert_equal(title, doc_from_file.at('//title/text()').text)
|
112
|
+
|
113
|
+
evil = (0..72).map { |i| '超' * i + '悪い事を構想中。' }
|
114
|
+
|
115
|
+
assert_equal(evil, ary_from_string_enc)
|
116
|
+
assert_equal(evil, ary_from_string)
|
117
|
+
assert_equal(evil, ary_from_file_enc)
|
118
|
+
assert_equal(evil, ary_from_file)
|
119
|
+
}
|
120
|
+
end
|
121
|
+
end
|
76
122
|
end
|
77
123
|
end
|
@@ -56,7 +56,7 @@ module Nokogiri
|
|
56
56
|
|
57
57
|
def test_subelements
|
58
58
|
sub_elements = ElementDescription['body'].sub_elements
|
59
|
-
if Nokogiri::LIBXML_VERSION
|
59
|
+
if Nokogiri::LIBXML_VERSION >= '2.7.7'
|
60
60
|
assert_equal 65, sub_elements.length
|
61
61
|
else
|
62
62
|
assert_equal 61, sub_elements.length
|
data/test/test_memory_leak.rb
CHANGED
@@ -13,6 +13,26 @@ class TestMemoryLeak < Nokogiri::TestCase
|
|
13
13
|
GC.start
|
14
14
|
end
|
15
15
|
end
|
16
|
+
|
17
|
+
class BadIO
|
18
|
+
def read(*args)
|
19
|
+
raise 'hell'
|
20
|
+
end
|
21
|
+
|
22
|
+
def write(*args)
|
23
|
+
raise 'chickens'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_for_mem_leak_on_io_callbacks
|
28
|
+
io = File.open SNUGGLES_FILE
|
29
|
+
reader = Nokogiri::XML.parse(io)
|
30
|
+
|
31
|
+
(10**10).times do
|
32
|
+
Nokogiri::XML.parse(BadIO.new) rescue nil
|
33
|
+
doc.write BadIO.new rescue nil
|
34
|
+
end
|
35
|
+
end
|
16
36
|
|
17
37
|
def test_for_memory_leak
|
18
38
|
begin
|
data/test/test_reader.rb
CHANGED
@@ -81,6 +81,19 @@ class TestReader < Nokogiri::TestCase
|
|
81
81
|
assert_equal [false, false, false, false, false, false, false],
|
82
82
|
reader.map { |x| x.default? }
|
83
83
|
end
|
84
|
+
|
85
|
+
class ReallyBadIO
|
86
|
+
def read(size)
|
87
|
+
'a' * size ** 10
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
unless Nokogiri.ffi?
|
92
|
+
def test_io_that_reads_too_much
|
93
|
+
io = ReallyBadIO.new
|
94
|
+
Nokogiri::XML::Reader(io)
|
95
|
+
end
|
96
|
+
end
|
84
97
|
|
85
98
|
def test_in_memory
|
86
99
|
assert Nokogiri::XML::Reader(<<-eoxml)
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require "helper"
|
2
2
|
|
3
3
|
class TestXsltTransforms < Nokogiri::TestCase
|
4
|
-
|
5
4
|
def setup
|
6
5
|
@doc = Nokogiri::XML(File.open(XML_FILE))
|
7
6
|
end
|
@@ -179,11 +178,16 @@ encoding="iso-8859-1" indent="yes"/>
|
|
179
178
|
assert_raises(RuntimeError) { Nokogiri::XSLT.parse(xslt_str) }
|
180
179
|
end
|
181
180
|
|
181
|
+
def test_passing_a_non_document_to_transform
|
182
|
+
xsl = Nokogiri::XSLT('<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></xsl:stylesheet>')
|
183
|
+
assert_raises(ArgumentError) { xsl.transform("<div></div>") }
|
184
|
+
assert_raises(ArgumentError) { xsl.transform(Nokogiri::HTML("").css("body")) }
|
185
|
+
end
|
186
|
+
|
182
187
|
def check_params result_doc, params
|
183
188
|
result_doc.xpath('/root/params/*').each do |p|
|
184
189
|
assert_equal p.content, params[p.name.intern]
|
185
190
|
end
|
186
191
|
end
|
187
|
-
|
188
192
|
end
|
189
193
|
end
|
data/test/xml/sax/test_parser.rb
CHANGED
@@ -309,6 +309,22 @@ module Nokogiri
|
|
309
309
|
<p>Paragraph 2</p>
|
310
310
|
eoxml
|
311
311
|
end
|
312
|
+
|
313
|
+
def test_parser_attributes
|
314
|
+
xml = <<-eoxml
|
315
|
+
<?xml version="1.0" ?><root><foo a="&b" c=">d" /></root>
|
316
|
+
eoxml
|
317
|
+
|
318
|
+
block_called = false
|
319
|
+
@parser.parse(xml) { |ctx|
|
320
|
+
block_called = true
|
321
|
+
ctx.replace_entities = true
|
322
|
+
}
|
323
|
+
|
324
|
+
assert block_called
|
325
|
+
|
326
|
+
assert_equal [['root', []], ['foo', [['a', '&b'], ['c', '>d']]]], @parser.document.start_elements
|
327
|
+
end
|
312
328
|
end
|
313
329
|
end
|
314
330
|
end
|
data/test/xml/test_document.rb
CHANGED
@@ -606,7 +606,7 @@ module Nokogiri
|
|
606
606
|
<a:foo>hello from a</a:foo>
|
607
607
|
<b:foo>hello from b</b:foo>
|
608
608
|
<container xmlns:c="http://c.flavorjon.es/">
|
609
|
-
<c:foo>hello from c</c:foo>
|
609
|
+
<c:foo c:attr='attr-value'>hello from c</c:foo>
|
610
610
|
</container>
|
611
611
|
</root>
|
612
612
|
EOX
|
@@ -620,6 +620,7 @@ module Nokogiri
|
|
620
620
|
assert_equal 1, doc.xpath("//a:foo").length
|
621
621
|
assert_equal 1, doc.xpath("//a:foo").length
|
622
622
|
assert_equal 1, doc.xpath("//x:foo", "x" => "http://c.flavorjon.es/").length
|
623
|
+
assert_match %r{foo c:attr}, doc.to_xml
|
623
624
|
|
624
625
|
doc.remove_namespaces!
|
625
626
|
|
@@ -629,6 +630,7 @@ module Nokogiri
|
|
629
630
|
assert_equal 0, doc.xpath("//a:foo", namespaces).length
|
630
631
|
assert_equal 0, doc.xpath("//a:foo", namespaces).length
|
631
632
|
assert_equal 0, doc.xpath("//x:foo", "x" => "http://c.flavorjon.es/").length
|
633
|
+
assert_match %r{foo attr}, doc.to_xml
|
632
634
|
end
|
633
635
|
|
634
636
|
def test_subset_is_decorated
|
data/test/xml/test_node.rb
CHANGED
@@ -497,7 +497,9 @@ module Nokogiri
|
|
497
497
|
end
|
498
498
|
io.rewind
|
499
499
|
assert called
|
500
|
-
|
500
|
+
string = io.read
|
501
|
+
assert_equal @xml.serialize(nil, conf.options), string
|
502
|
+
assert_equal @xml.serialize(nil, conf), string
|
501
503
|
end
|
502
504
|
|
503
505
|
%w{ xml html xhtml }.each do |type|
|
@@ -519,6 +521,7 @@ module Nokogiri
|
|
519
521
|
end
|
520
522
|
assert called
|
521
523
|
assert_equal @xml.serialize(nil, conf.options), string
|
524
|
+
assert_equal @xml.serialize(nil, conf), string
|
522
525
|
end
|
523
526
|
|
524
527
|
def test_hold_refence_to_subnode
|
@@ -696,6 +699,15 @@ module Nokogiri
|
|
696
699
|
assert_equal('/staff/employee[1]', node.path)
|
697
700
|
end
|
698
701
|
|
702
|
+
def test_parent_xpath
|
703
|
+
assert set = @xml.search('//employee')
|
704
|
+
assert node = set.first
|
705
|
+
assert parent_set = node.search('..')
|
706
|
+
assert parent_node = parent_set.first
|
707
|
+
assert_equal '/staff', parent_node.path
|
708
|
+
assert_equal node.parent, parent_node
|
709
|
+
end
|
710
|
+
|
699
711
|
def test_search_by_symbol
|
700
712
|
assert set = @xml.search(:employee)
|
701
713
|
assert 5, set.length
|
data/test/xml/test_node_set.rb
CHANGED
@@ -158,6 +158,16 @@ module Nokogiri
|
|
158
158
|
set = html.xpath("/html/body/div")
|
159
159
|
assert_equal set.first, set.search(".a").first
|
160
160
|
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
|
161
171
|
|
162
172
|
def test_double_equal
|
163
173
|
assert node_set_one = @xml.xpath('//employee')
|
data/test/xml/test_schema.rb
CHANGED
@@ -74,6 +74,11 @@ 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
|
+
|
77
82
|
def test_valid?
|
78
83
|
valid_doc = Nokogiri::XML(File.read(PO_XML_FILE))
|
79
84
|
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nokogiri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 13
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
|
11
|
-
version: 1.4.4.1
|
9
|
+
- 5
|
10
|
+
version: 1.4.5
|
12
11
|
platform: x86-mingw32
|
13
12
|
authors:
|
14
13
|
- Aaron Patterson
|
@@ -17,27 +16,25 @@ autorequire:
|
|
17
16
|
bindir: bin
|
18
17
|
cert_chain: []
|
19
18
|
|
20
|
-
date:
|
19
|
+
date: 2011-06-16 00:00:00 -04:00
|
21
20
|
default_executable:
|
22
21
|
dependencies:
|
23
22
|
- !ruby/object:Gem::Dependency
|
24
|
-
name:
|
23
|
+
name: racc
|
25
24
|
prerelease: false
|
26
25
|
requirement: &id001 !ruby/object:Gem::Requirement
|
27
26
|
none: false
|
28
27
|
requirements:
|
29
28
|
- - ">="
|
30
29
|
- !ruby/object:Gem::Version
|
31
|
-
hash:
|
30
|
+
hash: 3
|
32
31
|
segments:
|
33
|
-
- 2
|
34
32
|
- 0
|
35
|
-
|
36
|
-
version: 2.0.4
|
33
|
+
version: "0"
|
37
34
|
type: :development
|
38
35
|
version_requirements: *id001
|
39
36
|
- !ruby/object:Gem::Dependency
|
40
|
-
name:
|
37
|
+
name: rexical
|
41
38
|
prerelease: false
|
42
39
|
requirement: &id002 !ruby/object:Gem::Requirement
|
43
40
|
none: false
|
@@ -51,7 +48,7 @@ dependencies:
|
|
51
48
|
type: :development
|
52
49
|
version_requirements: *id002
|
53
50
|
- !ruby/object:Gem::Dependency
|
54
|
-
name:
|
51
|
+
name: rake-compiler
|
55
52
|
prerelease: false
|
56
53
|
requirement: &id003 !ruby/object:Gem::Requirement
|
57
54
|
none: false
|
@@ -64,24 +61,10 @@ dependencies:
|
|
64
61
|
version: "0"
|
65
62
|
type: :development
|
66
63
|
version_requirements: *id003
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: rake-compiler
|
69
|
-
prerelease: false
|
70
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
hash: 3
|
76
|
-
segments:
|
77
|
-
- 0
|
78
|
-
version: "0"
|
79
|
-
type: :development
|
80
|
-
version_requirements: *id004
|
81
64
|
- !ruby/object:Gem::Dependency
|
82
65
|
name: minitest
|
83
66
|
prerelease: false
|
84
|
-
requirement: &
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
85
68
|
none: false
|
86
69
|
requirements:
|
87
70
|
- - ">="
|
@@ -93,23 +76,23 @@ dependencies:
|
|
93
76
|
- 0
|
94
77
|
version: 1.6.0
|
95
78
|
type: :development
|
96
|
-
version_requirements: *
|
79
|
+
version_requirements: *id004
|
97
80
|
- !ruby/object:Gem::Dependency
|
98
81
|
name: hoe
|
99
82
|
prerelease: false
|
100
|
-
requirement: &
|
83
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
101
84
|
none: false
|
102
85
|
requirements:
|
103
86
|
- - ">="
|
104
87
|
- !ruby/object:Gem::Version
|
105
|
-
hash:
|
88
|
+
hash: 35
|
106
89
|
segments:
|
107
90
|
- 2
|
108
|
-
-
|
109
|
-
-
|
110
|
-
version: 2.
|
91
|
+
- 9
|
92
|
+
- 4
|
93
|
+
version: 2.9.4
|
111
94
|
type: :development
|
112
|
-
version_requirements: *
|
95
|
+
version_requirements: *id005
|
113
96
|
description: "Nokogiri (\xE9\x8B\xB8) is an HTML, XML, SAX, and Reader parser. Among Nokogiri's\n\
|
114
97
|
many features is the ability to search documents via XPath or CSS3 selectors.\n\n\
|
115
98
|
XML is like violence - if it doesn\xE2\x80\x99t solve your problems, you are not using\n\
|
@@ -123,45 +106,46 @@ extensions: []
|
|
123
106
|
|
124
107
|
extra_rdoc_files:
|
125
108
|
- Manifest.txt
|
109
|
+
- README.ja.rdoc
|
126
110
|
- CHANGELOG.rdoc
|
127
111
|
- CHANGELOG.ja.rdoc
|
128
112
|
- README.rdoc
|
129
|
-
- README.ja.rdoc
|
130
|
-
- ext/nokogiri/xml_io.c
|
131
|
-
- ext/nokogiri/xml_sax_parser.c
|
132
|
-
- ext/nokogiri/xml_xpath_context.c
|
133
|
-
- ext/nokogiri/html_element_description.c
|
134
|
-
- ext/nokogiri/xml_libxml2_hacks.c
|
135
|
-
- ext/nokogiri/xml_sax_parser_context.c
|
136
113
|
- ext/nokogiri/xml_sax_push_parser.c
|
137
|
-
- ext/nokogiri/
|
114
|
+
- ext/nokogiri/xml_relax_ng.c
|
115
|
+
- ext/nokogiri/html_sax_parser_context.c
|
116
|
+
- ext/nokogiri/html_entity_lookup.c
|
117
|
+
- ext/nokogiri/xml_text.c
|
138
118
|
- ext/nokogiri/nokogiri.c
|
139
119
|
- ext/nokogiri/xml_element_decl.c
|
140
|
-
- ext/nokogiri/
|
141
|
-
- ext/nokogiri/
|
142
|
-
- ext/nokogiri/xml_dtd.c
|
120
|
+
- ext/nokogiri/xml_encoding_handler.c
|
121
|
+
- ext/nokogiri/html_document.c
|
143
122
|
- ext/nokogiri/xslt_stylesheet.c
|
144
|
-
- ext/nokogiri/
|
123
|
+
- ext/nokogiri/xml_attribute_decl.c
|
124
|
+
- ext/nokogiri/xml_io.c
|
145
125
|
- ext/nokogiri/xml_document_fragment.c
|
146
|
-
- ext/nokogiri/xml_text.c
|
147
|
-
- ext/nokogiri/xml_entity_reference.c
|
148
|
-
- ext/nokogiri/html_sax_parser_context.c
|
149
|
-
- ext/nokogiri/xml_comment.c
|
150
126
|
- ext/nokogiri/xml_namespace.c
|
151
|
-
- ext/nokogiri/
|
152
|
-
- ext/nokogiri/
|
153
|
-
- ext/nokogiri/
|
127
|
+
- ext/nokogiri/xml_libxml2_hacks.c
|
128
|
+
- ext/nokogiri/xml_sax_parser_context.c
|
129
|
+
- ext/nokogiri/xml_comment.c
|
130
|
+
- ext/nokogiri/xml_sax_parser.c
|
131
|
+
- ext/nokogiri/html_element_description.c
|
132
|
+
- ext/nokogiri/xml_xpath_context.c
|
154
133
|
- ext/nokogiri/xml_syntax_error.c
|
155
134
|
- ext/nokogiri/xml_document.c
|
156
|
-
- ext/nokogiri/
|
135
|
+
- ext/nokogiri/xml_entity_decl.c
|
136
|
+
- ext/nokogiri/xml_node.c
|
137
|
+
- ext/nokogiri/xml_node_set.c
|
157
138
|
- ext/nokogiri/xml_reader.c
|
158
|
-
- ext/nokogiri/xml_attr.c
|
159
139
|
- ext/nokogiri/xml_processing_instruction.c
|
140
|
+
- ext/nokogiri/xml_element_content.c
|
141
|
+
- ext/nokogiri/xml_dtd.c
|
142
|
+
- ext/nokogiri/xml_attr.c
|
160
143
|
- ext/nokogiri/xml_schema.c
|
161
|
-
- ext/nokogiri/
|
162
|
-
- ext/nokogiri/
|
144
|
+
- ext/nokogiri/xml_cdata.c
|
145
|
+
- ext/nokogiri/xml_entity_reference.c
|
163
146
|
files:
|
164
147
|
- .autotest
|
148
|
+
- .gemtest
|
165
149
|
- CHANGELOG.ja.rdoc
|
166
150
|
- CHANGELOG.rdoc
|
167
151
|
- Manifest.txt
|
@@ -169,7 +153,6 @@ files:
|
|
169
153
|
- README.rdoc
|
170
154
|
- Rakefile
|
171
155
|
- bin/nokogiri
|
172
|
-
- deps.rip
|
173
156
|
- ext/nokogiri/depend
|
174
157
|
- ext/nokogiri/extconf.rb
|
175
158
|
- ext/nokogiri/html_document.c
|
@@ -240,11 +223,10 @@ files:
|
|
240
223
|
- ext/nokogiri/xslt_stylesheet.h
|
241
224
|
- lib/nokogiri.rb
|
242
225
|
- lib/nokogiri/css.rb
|
243
|
-
- lib/nokogiri/css/generated_parser.rb
|
244
|
-
- lib/nokogiri/css/generated_tokenizer.rb
|
245
226
|
- lib/nokogiri/css/node.rb
|
246
227
|
- lib/nokogiri/css/parser.rb
|
247
228
|
- lib/nokogiri/css/parser.y
|
229
|
+
- lib/nokogiri/css/parser_extras.rb
|
248
230
|
- lib/nokogiri/css/syntax_error.rb
|
249
231
|
- lib/nokogiri/css/tokenizer.rb
|
250
232
|
- lib/nokogiri/css/tokenizer.rex
|
@@ -376,6 +358,8 @@ files:
|
|
376
358
|
- test/files/address_book.xml
|
377
359
|
- test/files/bar/bar.xsd
|
378
360
|
- test/files/dont_hurt_em_why.xml
|
361
|
+
- test/files/encoding.html
|
362
|
+
- test/files/encoding.xhtml
|
379
363
|
- test/files/exslt.xml
|
380
364
|
- test/files/exslt.xslt
|
381
365
|
- test/files/foo/foo.xsd
|
@@ -477,67 +461,67 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
477
461
|
requirements: []
|
478
462
|
|
479
463
|
rubyforge_project: nokogiri
|
480
|
-
rubygems_version: 1.
|
464
|
+
rubygems_version: 1.6.0
|
481
465
|
signing_key:
|
482
466
|
specification_version: 3
|
483
467
|
summary: "Nokogiri (\xE9\x8B\xB8) is an HTML, XML, SAX, and Reader parser"
|
484
468
|
test_files:
|
485
|
-
- test/
|
469
|
+
- test/test_convert_xpath.rb
|
470
|
+
- test/test_soap4r_sax.rb
|
471
|
+
- test/test_memory_leak.rb
|
472
|
+
- test/test_nokogiri.rb
|
486
473
|
- test/test_css_cache.rb
|
487
|
-
- test/
|
474
|
+
- test/css/test_nthiness.rb
|
475
|
+
- test/css/test_xpath_visitor.rb
|
476
|
+
- test/css/test_parser.rb
|
477
|
+
- test/css/test_tokenizer.rb
|
488
478
|
- test/decorators/test_slop.rb
|
489
|
-
- test/
|
490
|
-
- test/
|
491
|
-
- test/
|
492
|
-
- test/
|
493
|
-
- test/
|
494
|
-
- test/
|
479
|
+
- test/html/test_document.rb
|
480
|
+
- test/html/test_document_encoding.rb
|
481
|
+
- test/html/test_named_characters.rb
|
482
|
+
- test/html/test_document_fragment.rb
|
483
|
+
- test/html/test_node.rb
|
484
|
+
- test/html/test_builder.rb
|
485
|
+
- test/html/sax/test_parser_context.rb
|
486
|
+
- test/html/sax/test_parser.rb
|
487
|
+
- test/html/test_node_encoding.rb
|
488
|
+
- test/html/test_element_description.rb
|
489
|
+
- test/ffi/test_document.rb
|
490
|
+
- test/test_reader.rb
|
491
|
+
- test/xml/test_parse_options.rb
|
495
492
|
- test/xml/test_unparented_node.rb
|
496
|
-
- test/xml/
|
497
|
-
- test/xml/test_reader_encoding.rb
|
498
|
-
- test/xml/test_processing_instruction.rb
|
499
|
-
- test/xml/test_cdata.rb
|
500
|
-
- test/xml/test_node.rb
|
501
|
-
- test/xml/test_builder.rb
|
502
|
-
- test/xml/test_namespace.rb
|
493
|
+
- test/xml/test_element_decl.rb
|
503
494
|
- test/xml/test_document.rb
|
504
|
-
- test/xml/test_element_content.rb
|
505
|
-
- test/xml/test_document_fragment.rb
|
506
|
-
- test/xml/test_entity_reference.rb
|
507
|
-
- test/xml/test_attr.rb
|
508
495
|
- test/xml/test_dtd.rb
|
509
|
-
- test/xml/
|
510
|
-
- test/xml/sax/test_parser_context.rb
|
511
|
-
- test/xml/sax/test_push_parser.rb
|
512
|
-
- test/xml/test_element_decl.rb
|
513
|
-
- test/xml/test_node_attributes.rb
|
514
|
-
- test/xml/test_xpath.rb
|
515
|
-
- test/xml/test_node_set.rb
|
516
|
-
- test/xml/test_parse_options.rb
|
496
|
+
- test/xml/test_document_encoding.rb
|
517
497
|
- test/xml/test_entity_decl.rb
|
498
|
+
- test/xml/test_dtd_encoding.rb
|
518
499
|
- test/xml/node/test_save_options.rb
|
519
500
|
- test/xml/node/test_subclass.rb
|
520
|
-
- test/xml/
|
501
|
+
- test/xml/test_document_fragment.rb
|
502
|
+
- test/xml/test_cdata.rb
|
503
|
+
- test/xml/test_text.rb
|
504
|
+
- test/xml/test_reader_encoding.rb
|
505
|
+
- test/xml/test_xpath.rb
|
506
|
+
- test/xml/test_element_content.rb
|
507
|
+
- test/xml/test_node.rb
|
508
|
+
- test/xml/test_builder.rb
|
509
|
+
- test/xml/sax/test_push_parser.rb
|
510
|
+
- test/xml/sax/test_parser_context.rb
|
511
|
+
- test/xml/sax/test_parser.rb
|
521
512
|
- test/xml/test_schema.rb
|
522
|
-
- test/xml/
|
513
|
+
- test/xml/test_node_set.rb
|
514
|
+
- test/xml/test_attr.rb
|
515
|
+
- test/xml/test_processing_instruction.rb
|
516
|
+
- test/xml/test_node_encoding.rb
|
517
|
+
- test/xml/test_syntax_error.rb
|
523
518
|
- test/xml/test_comment.rb
|
524
|
-
- test/
|
525
|
-
- test/
|
526
|
-
- test/
|
527
|
-
- test/
|
528
|
-
- test/
|
529
|
-
- test/
|
530
|
-
- test/html/test_document_fragment.rb
|
531
|
-
- test/html/sax/test_parser.rb
|
532
|
-
- test/html/sax/test_parser_context.rb
|
533
|
-
- test/html/test_named_characters.rb
|
534
|
-
- test/html/test_element_description.rb
|
535
|
-
- test/ffi/test_document.rb
|
536
|
-
- test/test_convert_xpath.rb
|
537
|
-
- test/test_soap4r_sax.rb
|
538
|
-
- test/css/test_nthiness.rb
|
539
|
-
- test/css/test_parser.rb
|
540
|
-
- test/css/test_tokenizer.rb
|
541
|
-
- test/css/test_xpath_visitor.rb
|
542
|
-
- test/xslt/test_custom_functions.rb
|
519
|
+
- test/xml/test_entity_reference.rb
|
520
|
+
- test/xml/test_node_reparenting.rb
|
521
|
+
- test/xml/test_attribute_decl.rb
|
522
|
+
- test/xml/test_relax_ng.rb
|
523
|
+
- test/xml/test_namespace.rb
|
524
|
+
- test/xml/test_node_attributes.rb
|
543
525
|
- test/test_xslt_transforms.rb
|
526
|
+
- test/xslt/test_custom_functions.rb
|
527
|
+
- test/test_encoding_handler.rb
|