nokogiri 1.5.0.beta.3 → 1.5.0.beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nokogiri might be problematic. Click here for more details.
- data/CHANGELOG.ja.rdoc +32 -16
- data/CHANGELOG.rdoc +18 -0
- data/Manifest.txt +1 -2
- data/README.rdoc +27 -3
- data/Rakefile +39 -83
- data/ext/java/nokogiri/EncodingHandler.java +1 -1
- data/ext/java/nokogiri/HtmlDocument.java +11 -14
- data/ext/java/nokogiri/HtmlElementDescription.java +1 -1
- data/ext/java/nokogiri/HtmlEntityLookup.java +1 -1
- data/ext/java/nokogiri/HtmlSaxParserContext.java +13 -10
- data/ext/java/nokogiri/NokogiriService.java +103 -34
- data/ext/java/nokogiri/XmlAttr.java +14 -6
- data/ext/java/nokogiri/XmlAttributeDecl.java +1 -1
- data/ext/java/nokogiri/XmlCdata.java +3 -1
- data/ext/java/nokogiri/XmlComment.java +3 -1
- data/ext/java/nokogiri/XmlDocument.java +29 -8
- data/ext/java/nokogiri/XmlDocumentFragment.java +14 -13
- data/ext/java/nokogiri/XmlDtd.java +5 -2
- data/ext/java/nokogiri/XmlElement.java +2 -1
- data/ext/java/nokogiri/XmlElementContent.java +1 -1
- data/ext/java/nokogiri/XmlElementDecl.java +2 -1
- data/ext/java/nokogiri/XmlEntityDecl.java +2 -1
- data/ext/java/nokogiri/XmlEntityReference.java +1 -1
- data/ext/java/nokogiri/XmlNamespace.java +3 -2
- data/ext/java/nokogiri/XmlNode.java +17 -10
- data/ext/java/nokogiri/XmlNodeSet.java +40 -13
- data/ext/java/nokogiri/XmlProcessingInstruction.java +1 -1
- data/ext/java/nokogiri/XmlReader.java +3 -1
- data/ext/java/nokogiri/XmlRelaxng.java +37 -92
- data/ext/java/nokogiri/XmlSaxParserContext.java +25 -11
- data/ext/java/nokogiri/XmlSaxPushParser.java +6 -4
- data/ext/java/nokogiri/XmlSchema.java +190 -46
- data/ext/java/nokogiri/XmlSyntaxError.java +42 -37
- data/ext/java/nokogiri/XmlText.java +3 -2
- data/ext/java/nokogiri/XmlXpathContext.java +8 -4
- data/ext/java/nokogiri/XsltStylesheet.java +12 -10
- data/ext/java/nokogiri/internals/HtmlDomParserContext.java +8 -7
- data/ext/java/nokogiri/internals/NokogiriDocumentCache.java +1 -1
- data/ext/java/nokogiri/internals/NokogiriErrorHandler.java +11 -5
- data/ext/java/nokogiri/internals/NokogiriHandler.java +36 -9
- data/ext/java/nokogiri/internals/NokogiriHelpers.java +21 -22
- data/ext/java/nokogiri/internals/NokogiriNamespaceCache.java +5 -4
- data/ext/java/nokogiri/internals/NokogiriNamespaceContext.java +1 -1
- data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +2 -1
- data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java +1 -1
- data/ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java +2 -1
- data/ext/java/nokogiri/internals/NokogiriXPathFunction.java +15 -9
- data/ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java +1 -1
- data/ext/java/nokogiri/internals/ParserContext.java +18 -7
- data/ext/java/nokogiri/internals/PushInputStream.java +1 -1
- data/ext/java/nokogiri/internals/ReaderNode.java +7 -6
- data/ext/java/nokogiri/internals/SaveContext.java +16 -10
- data/ext/java/nokogiri/internals/SchemaErrorHandler.java +13 -5
- data/ext/java/nokogiri/internals/XmlDeclHandler.java +1 -1
- data/ext/java/nokogiri/internals/XmlDomParser.java +1 -1
- data/ext/java/nokogiri/internals/XmlDomParserContext.java +13 -8
- data/ext/java/nokogiri/internals/XmlSaxParser.java +1 -1
- data/ext/java/nokogiri/internals/XsltExtensionFunction.java +1 -1
- data/ext/nokogiri/extconf.rb +3 -3
- data/ext/nokogiri/xml_document.c +9 -0
- data/ext/nokogiri/xml_sax_parser.c +4 -2
- data/lib/nokogiri.rb +9 -6
- data/lib/nokogiri/css.rb +1 -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/html/document.rb +138 -11
- data/lib/nokogiri/html/sax/parser.rb +6 -2
- data/lib/nokogiri/version.rb +1 -1
- data/lib/nokogiri/xml/node.rb +2 -2
- data/lib/nokogiri/xml/node/save_options.rb +3 -0
- data/lib/nokogiri/xml/node_set.rb +1 -1
- data/test/css/test_tokenizer.rb +8 -0
- data/test/helper.rb +2 -0
- data/test/html/sax/test_parser.rb +43 -0
- data/test/html/test_document.rb +59 -0
- data/test/html/test_document_encoding.rb +48 -0
- data/test/html/test_element_description.rb +1 -1
- data/test/xml/sax/test_parser.rb +16 -0
- data/test/xml/test_document.rb +3 -1
- data/test/xml/test_node.rb +4 -1
- data/test/xml/test_node_set.rb +10 -0
- metadata +90 -107
- data/lib/nokogiri/css/generated_parser.rb +0 -676
- data/lib/nokogiri/css/generated_tokenizer.rb +0 -145
data/lib/nokogiri/version.rb
CHANGED
data/lib/nokogiri/xml/node.rb
CHANGED
@@ -720,6 +720,7 @@ module Nokogiri
|
|
720
720
|
}
|
721
721
|
|
722
722
|
encoding = options[:encoding] || document.encoding
|
723
|
+
options[:encoding] = encoding
|
723
724
|
|
724
725
|
outstring = ""
|
725
726
|
if encoding && outstring.respond_to?(:force_encoding)
|
@@ -803,8 +804,7 @@ module Nokogiri
|
|
803
804
|
indent_text = options[:indent_text] || ' '
|
804
805
|
indent_times = options[:indent] || 2
|
805
806
|
|
806
|
-
|
807
|
-
config = SaveOptions.new(save_options)
|
807
|
+
config = SaveOptions.new(save_options.to_i)
|
808
808
|
yield config if block_given?
|
809
809
|
|
810
810
|
native_write_to(io, encoding, indent_text * indent_times, config.options)
|
@@ -24,6 +24,7 @@ module Nokogiri
|
|
24
24
|
|
25
25
|
# Create a new SaveOptions object with +options+
|
26
26
|
def initialize options = 0; @options = options; end
|
27
|
+
|
27
28
|
constants.each do |constant|
|
28
29
|
class_eval %{
|
29
30
|
def #{constant.downcase}
|
@@ -36,6 +37,8 @@ module Nokogiri
|
|
36
37
|
end
|
37
38
|
}
|
38
39
|
end
|
40
|
+
|
41
|
+
alias :to_i :options
|
39
42
|
end
|
40
43
|
end
|
41
44
|
end
|
data/test/css/test_tokenizer.rb
CHANGED
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')
|
@@ -87,6 +87,49 @@ module Nokogiri
|
|
87
87
|
@parser.document.start_elements)
|
88
88
|
end
|
89
89
|
end
|
90
|
+
|
91
|
+
def test_parser_attributes
|
92
|
+
html = <<-eohtml
|
93
|
+
<html>
|
94
|
+
<head>
|
95
|
+
<title>hello</title>
|
96
|
+
</head>
|
97
|
+
<body>
|
98
|
+
<img src="face.jpg" title="daddy & me">
|
99
|
+
<hr noshade size="2">
|
100
|
+
</body>
|
101
|
+
</html>
|
102
|
+
eohtml
|
103
|
+
|
104
|
+
block_called = false
|
105
|
+
@parser.parse(html) { |ctx|
|
106
|
+
block_called = true
|
107
|
+
ctx.replace_entities = true
|
108
|
+
}
|
109
|
+
|
110
|
+
assert block_called
|
111
|
+
|
112
|
+
noshade_value = if Nokogiri.uses_libxml? && Nokogiri::VERSION_INFO['libxml']['loaded'] < '2.7.7'
|
113
|
+
['noshade', 'noshade']
|
114
|
+
else
|
115
|
+
['noshade', nil]
|
116
|
+
end
|
117
|
+
|
118
|
+
assert_equal [
|
119
|
+
['html', []],
|
120
|
+
['head', []],
|
121
|
+
['title', []],
|
122
|
+
['body', []],
|
123
|
+
['img', [
|
124
|
+
['src', 'face.jpg'],
|
125
|
+
['title', 'daddy & me']
|
126
|
+
]],
|
127
|
+
['hr', [
|
128
|
+
noshade_value,
|
129
|
+
['size', '2']
|
130
|
+
]]
|
131
|
+
], @parser.document.start_elements
|
132
|
+
end
|
90
133
|
end
|
91
134
|
end
|
92
135
|
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,53 @@ 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
|
+
if Nokogiri.uses_libxml?
|
182
|
+
assert_nil doc.title
|
183
|
+
else
|
184
|
+
assert_equal 'new', doc.title
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
129
188
|
def test_meta_encoding_without_head
|
130
189
|
html = Nokogiri::HTML('<html><body>foo</body></html>')
|
131
190
|
assert_nil html.meta_encoding
|
@@ -73,5 +73,53 @@ 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
|
+
unless Nokogiri.jruby? && file == ENCODING_HTML_FILE
|
112
|
+
assert_equal(title, doc_from_file.at('//title/text()').text)
|
113
|
+
end
|
114
|
+
|
115
|
+
evil = (0..72).map { |i| '超' * i + '悪い事を構想中。' }
|
116
|
+
|
117
|
+
assert_equal(evil, ary_from_string_enc)
|
118
|
+
assert_equal(evil, ary_from_string)
|
119
|
+
assert_equal(evil, ary_from_file_enc)
|
120
|
+
assert_equal(evil, ary_from_file)
|
121
|
+
}
|
122
|
+
end
|
123
|
+
end
|
76
124
|
end
|
77
125
|
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.uses_libxml? && Nokogiri::LIBXML_VERSION
|
59
|
+
if Nokogiri.uses_libxml? && Nokogiri::LIBXML_VERSION >= '2.7.7'
|
60
60
|
assert_equal 65, sub_elements.length
|
61
61
|
elsif Nokogiri.uses_libxml?
|
62
62
|
assert_equal 61, sub_elements.length
|
data/test/xml/sax/test_parser.rb
CHANGED
@@ -316,6 +316,22 @@ module Nokogiri
|
|
316
316
|
eoxml
|
317
317
|
end
|
318
318
|
end
|
319
|
+
|
320
|
+
def test_parser_attributes
|
321
|
+
xml = <<-eoxml
|
322
|
+
<?xml version="1.0" ?><root><foo a="&b" c=">d" /></root>
|
323
|
+
eoxml
|
324
|
+
|
325
|
+
block_called = false
|
326
|
+
@parser.parse(xml) { |ctx|
|
327
|
+
block_called = true
|
328
|
+
ctx.replace_entities = true
|
329
|
+
}
|
330
|
+
|
331
|
+
assert block_called
|
332
|
+
|
333
|
+
assert_equal [['root', []], ['foo', [['a', '&b'], ['c', '>d']]]], @parser.document.start_elements
|
334
|
+
end
|
319
335
|
end
|
320
336
|
end
|
321
337
|
end
|
data/test/xml/test_document.rb
CHANGED
@@ -611,7 +611,7 @@ module Nokogiri
|
|
611
611
|
<a:foo>hello from a</a:foo>
|
612
612
|
<b:foo>hello from b</b:foo>
|
613
613
|
<container xmlns:c="http://c.flavorjon.es/">
|
614
|
-
<c:foo>hello from c</c:foo>
|
614
|
+
<c:foo c:attr='attr-value'>hello from c</c:foo>
|
615
615
|
</container>
|
616
616
|
</root>
|
617
617
|
EOX
|
@@ -625,6 +625,7 @@ module Nokogiri
|
|
625
625
|
assert_equal 1, doc.xpath("//a:foo").length
|
626
626
|
assert_equal 1, doc.xpath("//a:foo").length
|
627
627
|
assert_equal 1, doc.xpath("//x:foo", "x" => "http://c.flavorjon.es/").length
|
628
|
+
assert_match %r{foo c:attr}, doc.to_xml
|
628
629
|
|
629
630
|
doc.remove_namespaces!
|
630
631
|
|
@@ -634,6 +635,7 @@ module Nokogiri
|
|
634
635
|
assert_equal 0, doc.xpath("//a:foo", namespaces).length
|
635
636
|
assert_equal 0, doc.xpath("//a:foo", namespaces).length
|
636
637
|
assert_equal 0, doc.xpath("//x:foo", "x" => "http://c.flavorjon.es/").length
|
638
|
+
assert_match %r{foo attr}, doc.to_xml
|
637
639
|
end
|
638
640
|
|
639
641
|
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
|
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')
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nokogiri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 62196443
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 5
|
9
9
|
- 0
|
10
10
|
- beta
|
11
|
-
-
|
12
|
-
version: 1.5.0.beta.
|
11
|
+
- 4
|
12
|
+
version: 1.5.0.beta.4
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Aaron Patterson
|
@@ -18,27 +18,25 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date:
|
21
|
+
date: 2011-01-27 00:00:00 -08:00
|
22
22
|
default_executable:
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
25
|
-
name:
|
25
|
+
name: racc
|
26
26
|
prerelease: false
|
27
27
|
requirement: &id001 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
hash:
|
32
|
+
hash: 3
|
33
33
|
segments:
|
34
|
-
- 2
|
35
34
|
- 0
|
36
|
-
|
37
|
-
version: 2.0.4
|
35
|
+
version: "0"
|
38
36
|
type: :development
|
39
37
|
version_requirements: *id001
|
40
38
|
- !ruby/object:Gem::Dependency
|
41
|
-
name:
|
39
|
+
name: rexical
|
42
40
|
prerelease: false
|
43
41
|
requirement: &id002 !ruby/object:Gem::Requirement
|
44
42
|
none: false
|
@@ -52,7 +50,7 @@ dependencies:
|
|
52
50
|
type: :development
|
53
51
|
version_requirements: *id002
|
54
52
|
- !ruby/object:Gem::Dependency
|
55
|
-
name:
|
53
|
+
name: rake-compiler
|
56
54
|
prerelease: false
|
57
55
|
requirement: &id003 !ruby/object:Gem::Requirement
|
58
56
|
none: false
|
@@ -65,24 +63,10 @@ dependencies:
|
|
65
63
|
version: "0"
|
66
64
|
type: :development
|
67
65
|
version_requirements: *id003
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
name: rake-compiler
|
70
|
-
prerelease: false
|
71
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
|
-
requirements:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
hash: 3
|
77
|
-
segments:
|
78
|
-
- 0
|
79
|
-
version: "0"
|
80
|
-
type: :development
|
81
|
-
version_requirements: *id004
|
82
66
|
- !ruby/object:Gem::Dependency
|
83
67
|
name: minitest
|
84
68
|
prerelease: false
|
85
|
-
requirement: &
|
69
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
86
70
|
none: false
|
87
71
|
requirements:
|
88
72
|
- - ">="
|
@@ -94,23 +78,23 @@ dependencies:
|
|
94
78
|
- 0
|
95
79
|
version: 1.6.0
|
96
80
|
type: :development
|
97
|
-
version_requirements: *
|
81
|
+
version_requirements: *id004
|
98
82
|
- !ruby/object:Gem::Dependency
|
99
83
|
name: hoe
|
100
84
|
prerelease: false
|
101
|
-
requirement: &
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
102
86
|
none: false
|
103
87
|
requirements:
|
104
88
|
- - ">="
|
105
89
|
- !ruby/object:Gem::Version
|
106
|
-
hash:
|
90
|
+
hash: 47
|
107
91
|
segments:
|
108
92
|
- 2
|
109
|
-
-
|
110
|
-
-
|
111
|
-
version: 2.
|
93
|
+
- 8
|
94
|
+
- 0
|
95
|
+
version: 2.8.0
|
112
96
|
type: :development
|
113
|
-
version_requirements: *
|
97
|
+
version_requirements: *id005
|
114
98
|
description: "Nokogiri (\xE9\x8B\xB8) is an HTML, XML, SAX, and Reader parser. Among Nokogiri's\n\
|
115
99
|
many features is the ability to search documents via XPath or CSS3 selectors.\n\n\
|
116
100
|
XML is like violence - if it doesn\xE2\x80\x99t solve your problems, you are not using\n\
|
@@ -124,43 +108,43 @@ extensions:
|
|
124
108
|
- ext/nokogiri/extconf.rb
|
125
109
|
extra_rdoc_files:
|
126
110
|
- Manifest.txt
|
127
|
-
- CHANGELOG.rdoc
|
128
111
|
- CHANGELOG.ja.rdoc
|
129
|
-
-
|
112
|
+
- CHANGELOG.rdoc
|
130
113
|
- README.ja.rdoc
|
131
|
-
-
|
132
|
-
- ext/nokogiri/
|
133
|
-
- ext/nokogiri/xml_xpath_context.c
|
114
|
+
- README.rdoc
|
115
|
+
- ext/nokogiri/html_document.c
|
134
116
|
- ext/nokogiri/html_element_description.c
|
135
|
-
- ext/nokogiri/xml_libxml2_hacks.c
|
136
|
-
- ext/nokogiri/xml_sax_parser_context.c
|
137
|
-
- ext/nokogiri/xml_sax_push_parser.c
|
138
|
-
- ext/nokogiri/xml_attribute_decl.c
|
139
|
-
- ext/nokogiri/nokogiri.c
|
140
|
-
- ext/nokogiri/xml_element_decl.c
|
141
|
-
- ext/nokogiri/xml_element_content.c
|
142
117
|
- ext/nokogiri/html_entity_lookup.c
|
143
|
-
- ext/nokogiri/xml_dtd.c
|
144
|
-
- ext/nokogiri/xslt_stylesheet.c
|
145
|
-
- ext/nokogiri/xml_node_set.c
|
146
|
-
- ext/nokogiri/xml_document_fragment.c
|
147
|
-
- ext/nokogiri/xml_text.c
|
148
|
-
- ext/nokogiri/xml_entity_reference.c
|
149
118
|
- ext/nokogiri/html_sax_parser_context.c
|
119
|
+
- ext/nokogiri/nokogiri.c
|
120
|
+
- ext/nokogiri/xml_attr.c
|
121
|
+
- ext/nokogiri/xml_attribute_decl.c
|
122
|
+
- ext/nokogiri/xml_cdata.c
|
150
123
|
- ext/nokogiri/xml_comment.c
|
151
|
-
- ext/nokogiri/
|
124
|
+
- ext/nokogiri/xml_document.c
|
125
|
+
- ext/nokogiri/xml_document_fragment.c
|
126
|
+
- ext/nokogiri/xml_dtd.c
|
127
|
+
- ext/nokogiri/xml_element_content.c
|
128
|
+
- ext/nokogiri/xml_element_decl.c
|
129
|
+
- ext/nokogiri/xml_encoding_handler.c
|
152
130
|
- ext/nokogiri/xml_entity_decl.c
|
131
|
+
- ext/nokogiri/xml_entity_reference.c
|
132
|
+
- ext/nokogiri/xml_io.c
|
133
|
+
- ext/nokogiri/xml_libxml2_hacks.c
|
134
|
+
- ext/nokogiri/xml_namespace.c
|
153
135
|
- ext/nokogiri/xml_node.c
|
154
|
-
- ext/nokogiri/
|
155
|
-
- ext/nokogiri/xml_syntax_error.c
|
156
|
-
- ext/nokogiri/xml_document.c
|
157
|
-
- ext/nokogiri/xml_cdata.c
|
158
|
-
- ext/nokogiri/xml_reader.c
|
159
|
-
- ext/nokogiri/xml_attr.c
|
136
|
+
- ext/nokogiri/xml_node_set.c
|
160
137
|
- ext/nokogiri/xml_processing_instruction.c
|
161
|
-
- ext/nokogiri/
|
162
|
-
- ext/nokogiri/xml_encoding_handler.c
|
138
|
+
- ext/nokogiri/xml_reader.c
|
163
139
|
- ext/nokogiri/xml_relax_ng.c
|
140
|
+
- ext/nokogiri/xml_sax_parser.c
|
141
|
+
- ext/nokogiri/xml_sax_parser_context.c
|
142
|
+
- ext/nokogiri/xml_sax_push_parser.c
|
143
|
+
- ext/nokogiri/xml_schema.c
|
144
|
+
- ext/nokogiri/xml_syntax_error.c
|
145
|
+
- ext/nokogiri/xml_text.c
|
146
|
+
- ext/nokogiri/xml_xpath_context.c
|
147
|
+
- ext/nokogiri/xslt_stylesheet.c
|
164
148
|
files:
|
165
149
|
- .autotest
|
166
150
|
- CHANGELOG.ja.rdoc
|
@@ -298,11 +282,10 @@ files:
|
|
298
282
|
- lib/nekohtml.jar
|
299
283
|
- lib/nokogiri.rb
|
300
284
|
- lib/nokogiri/css.rb
|
301
|
-
- lib/nokogiri/css/generated_parser.rb
|
302
|
-
- lib/nokogiri/css/generated_tokenizer.rb
|
303
285
|
- lib/nokogiri/css/node.rb
|
304
286
|
- lib/nokogiri/css/parser.rb
|
305
287
|
- lib/nokogiri/css/parser.y
|
288
|
+
- lib/nokogiri/css/parser_extras.rb
|
306
289
|
- lib/nokogiri/css/syntax_error.rb
|
307
290
|
- lib/nokogiri/css/tokenizer.rb
|
308
291
|
- lib/nokogiri/css/tokenizer.rex
|
@@ -475,61 +458,61 @@ signing_key:
|
|
475
458
|
specification_version: 3
|
476
459
|
summary: "Nokogiri (\xE9\x8B\xB8) is an HTML, XML, SAX, and Reader parser"
|
477
460
|
test_files:
|
478
|
-
- test/
|
461
|
+
- test/css/test_nthiness.rb
|
462
|
+
- test/css/test_parser.rb
|
463
|
+
- test/css/test_tokenizer.rb
|
464
|
+
- test/css/test_xpath_visitor.rb
|
465
|
+
- test/decorators/test_slop.rb
|
466
|
+
- test/html/sax/test_parser.rb
|
467
|
+
- test/html/sax/test_parser_context.rb
|
468
|
+
- test/html/test_builder.rb
|
469
|
+
- test/html/test_document.rb
|
470
|
+
- test/html/test_document_encoding.rb
|
471
|
+
- test/html/test_document_fragment.rb
|
472
|
+
- test/html/test_element_description.rb
|
473
|
+
- test/html/test_named_characters.rb
|
474
|
+
- test/html/test_node.rb
|
475
|
+
- test/html/test_node_encoding.rb
|
476
|
+
- test/test_convert_xpath.rb
|
479
477
|
- test/test_css_cache.rb
|
480
478
|
- test/test_encoding_handler.rb
|
481
|
-
- test/decorators/test_slop.rb
|
482
479
|
- test/test_memory_leak.rb
|
483
|
-
- test/
|
484
|
-
- test/
|
485
|
-
- test/
|
486
|
-
- test/
|
487
|
-
- test/xml/
|
488
|
-
- test/xml/
|
489
|
-
- test/xml/
|
490
|
-
- test/xml/
|
491
|
-
- test/xml/
|
492
|
-
- test/xml/
|
493
|
-
- test/xml/
|
480
|
+
- test/test_nokogiri.rb
|
481
|
+
- test/test_reader.rb
|
482
|
+
- test/test_soap4r_sax.rb
|
483
|
+
- test/test_xslt_transforms.rb
|
484
|
+
- test/xml/node/test_save_options.rb
|
485
|
+
- test/xml/node/test_subclass.rb
|
486
|
+
- test/xml/sax/test_parser.rb
|
487
|
+
- test/xml/sax/test_parser_context.rb
|
488
|
+
- test/xml/sax/test_push_parser.rb
|
489
|
+
- test/xml/test_attr.rb
|
490
|
+
- test/xml/test_attribute_decl.rb
|
494
491
|
- test/xml/test_builder.rb
|
495
|
-
- test/xml/
|
492
|
+
- test/xml/test_cdata.rb
|
493
|
+
- test/xml/test_comment.rb
|
496
494
|
- test/xml/test_document.rb
|
497
|
-
- test/xml/
|
495
|
+
- test/xml/test_document_encoding.rb
|
498
496
|
- test/xml/test_document_fragment.rb
|
499
|
-
- test/xml/test_entity_reference.rb
|
500
|
-
- test/xml/test_attr.rb
|
501
497
|
- test/xml/test_dtd.rb
|
502
|
-
- test/xml/
|
503
|
-
- test/xml/
|
504
|
-
- test/xml/sax/test_push_parser.rb
|
498
|
+
- test/xml/test_dtd_encoding.rb
|
499
|
+
- test/xml/test_element_content.rb
|
505
500
|
- test/xml/test_element_decl.rb
|
501
|
+
- test/xml/test_entity_decl.rb
|
502
|
+
- test/xml/test_entity_reference.rb
|
503
|
+
- test/xml/test_namespace.rb
|
504
|
+
- test/xml/test_node.rb
|
506
505
|
- test/xml/test_node_attributes.rb
|
507
|
-
- test/xml/
|
506
|
+
- test/xml/test_node_encoding.rb
|
507
|
+
- test/xml/test_node_reparenting.rb
|
508
508
|
- test/xml/test_node_set.rb
|
509
509
|
- test/xml/test_parse_options.rb
|
510
|
-
- test/xml/
|
511
|
-
- test/xml/
|
512
|
-
- test/xml/
|
513
|
-
- test/xml/test_attribute_decl.rb
|
510
|
+
- test/xml/test_processing_instruction.rb
|
511
|
+
- test/xml/test_reader_encoding.rb
|
512
|
+
- test/xml/test_relax_ng.rb
|
514
513
|
- test/xml/test_schema.rb
|
515
|
-
- test/xml/
|
516
|
-
- test/xml/
|
517
|
-
- test/
|
518
|
-
- test/
|
519
|
-
- test/html/test_node_encoding.rb
|
520
|
-
- test/html/test_node.rb
|
521
|
-
- test/html/test_builder.rb
|
522
|
-
- test/html/test_document.rb
|
523
|
-
- test/html/test_document_fragment.rb
|
524
|
-
- test/html/sax/test_parser.rb
|
525
|
-
- test/html/sax/test_parser_context.rb
|
526
|
-
- test/html/test_named_characters.rb
|
527
|
-
- test/html/test_element_description.rb
|
528
|
-
- test/test_convert_xpath.rb
|
529
|
-
- test/test_soap4r_sax.rb
|
530
|
-
- test/css/test_nthiness.rb
|
531
|
-
- test/css/test_parser.rb
|
532
|
-
- test/css/test_tokenizer.rb
|
533
|
-
- test/css/test_xpath_visitor.rb
|
514
|
+
- test/xml/test_syntax_error.rb
|
515
|
+
- test/xml/test_text.rb
|
516
|
+
- test/xml/test_unparented_node.rb
|
517
|
+
- test/xml/test_xpath.rb
|
534
518
|
- test/xslt/test_custom_functions.rb
|
535
|
-
- test/test_xslt_transforms.rb
|