tenderlove-nokogiri 0.0.0-x86-mswin32-60
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -0
- data/Manifest.txt +120 -0
- data/README.ja.txt +86 -0
- data/README.txt +87 -0
- data/Rakefile +264 -0
- data/ext/nokogiri/extconf.rb +59 -0
- data/ext/nokogiri/html_document.c +83 -0
- data/ext/nokogiri/html_document.h +10 -0
- data/ext/nokogiri/html_sax_parser.c +32 -0
- data/ext/nokogiri/html_sax_parser.h +11 -0
- data/ext/nokogiri/native.c +40 -0
- data/ext/nokogiri/native.h +51 -0
- data/ext/nokogiri/xml_cdata.c +52 -0
- data/ext/nokogiri/xml_cdata.h +9 -0
- data/ext/nokogiri/xml_document.c +159 -0
- data/ext/nokogiri/xml_document.h +10 -0
- data/ext/nokogiri/xml_dtd.c +117 -0
- data/ext/nokogiri/xml_dtd.h +8 -0
- data/ext/nokogiri/xml_node.c +709 -0
- data/ext/nokogiri/xml_node.h +15 -0
- data/ext/nokogiri/xml_node_set.c +124 -0
- data/ext/nokogiri/xml_node_set.h +9 -0
- data/ext/nokogiri/xml_reader.c +429 -0
- data/ext/nokogiri/xml_reader.h +10 -0
- data/ext/nokogiri/xml_sax_parser.c +174 -0
- data/ext/nokogiri/xml_sax_parser.h +10 -0
- data/ext/nokogiri/xml_syntax_error.c +194 -0
- data/ext/nokogiri/xml_syntax_error.h +11 -0
- data/ext/nokogiri/xml_text.c +29 -0
- data/ext/nokogiri/xml_text.h +9 -0
- data/ext/nokogiri/xml_xpath.c +46 -0
- data/ext/nokogiri/xml_xpath.h +11 -0
- data/ext/nokogiri/xml_xpath_context.c +81 -0
- data/ext/nokogiri/xml_xpath_context.h +9 -0
- data/ext/nokogiri/xslt_stylesheet.c +108 -0
- data/ext/nokogiri/xslt_stylesheet.h +9 -0
- data/lib/nokogiri/css/node.rb +95 -0
- data/lib/nokogiri/css/parser.rb +24 -0
- data/lib/nokogiri/css/parser.y +198 -0
- data/lib/nokogiri/css/tokenizer.rb +9 -0
- data/lib/nokogiri/css/tokenizer.rex +63 -0
- data/lib/nokogiri/css/xpath_visitor.rb +165 -0
- data/lib/nokogiri/css.rb +6 -0
- data/lib/nokogiri/decorators/hpricot/node.rb +58 -0
- data/lib/nokogiri/decorators/hpricot/node_set.rb +14 -0
- data/lib/nokogiri/decorators/hpricot/xpath_visitor.rb +17 -0
- data/lib/nokogiri/decorators/hpricot.rb +3 -0
- data/lib/nokogiri/decorators.rb +1 -0
- data/lib/nokogiri/hpricot.rb +47 -0
- data/lib/nokogiri/html/builder.rb +9 -0
- data/lib/nokogiri/html/document.rb +9 -0
- data/lib/nokogiri/html/sax/parser.rb +21 -0
- data/lib/nokogiri/html.rb +95 -0
- data/lib/nokogiri/version.rb +3 -0
- data/lib/nokogiri/xml/after_handler.rb +18 -0
- data/lib/nokogiri/xml/before_handler.rb +32 -0
- data/lib/nokogiri/xml/builder.rb +79 -0
- data/lib/nokogiri/xml/cdata.rb +9 -0
- data/lib/nokogiri/xml/document.rb +30 -0
- data/lib/nokogiri/xml/dtd.rb +6 -0
- data/lib/nokogiri/xml/node.rb +195 -0
- data/lib/nokogiri/xml/node_set.rb +183 -0
- data/lib/nokogiri/xml/notation.rb +6 -0
- data/lib/nokogiri/xml/reader.rb +14 -0
- data/lib/nokogiri/xml/sax/document.rb +59 -0
- data/lib/nokogiri/xml/sax/parser.rb +33 -0
- data/lib/nokogiri/xml/sax.rb +9 -0
- data/lib/nokogiri/xml/syntax_error.rb +21 -0
- data/lib/nokogiri/xml/text.rb +6 -0
- data/lib/nokogiri/xml/xpath.rb +6 -0
- data/lib/nokogiri/xml/xpath_context.rb +14 -0
- data/lib/nokogiri/xml.rb +67 -0
- data/lib/nokogiri/xslt/stylesheet.rb +6 -0
- data/lib/nokogiri/xslt.rb +11 -0
- data/lib/nokogiri.rb +51 -0
- data/nokogiri.gemspec +34 -0
- data/test/css/test_nthiness.rb +159 -0
- data/test/css/test_parser.rb +224 -0
- data/test/css/test_tokenizer.rb +162 -0
- data/test/css/test_xpath_visitor.rb +54 -0
- data/test/files/staff.xml +59 -0
- data/test/files/staff.xslt +32 -0
- data/test/files/tlm.html +850 -0
- data/test/helper.rb +70 -0
- data/test/hpricot/files/basic.xhtml +17 -0
- data/test/hpricot/files/boingboing.html +2266 -0
- data/test/hpricot/files/cy0.html +3653 -0
- data/test/hpricot/files/immob.html +400 -0
- data/test/hpricot/files/pace_application.html +1320 -0
- data/test/hpricot/files/tenderlove.html +16 -0
- data/test/hpricot/files/uswebgen.html +220 -0
- data/test/hpricot/files/utf8.html +1054 -0
- data/test/hpricot/files/week9.html +1723 -0
- data/test/hpricot/files/why.xml +19 -0
- data/test/hpricot/load_files.rb +7 -0
- data/test/hpricot/test_alter.rb +67 -0
- data/test/hpricot/test_builder.rb +27 -0
- data/test/hpricot/test_parser.rb +423 -0
- data/test/hpricot/test_paths.rb +15 -0
- data/test/hpricot/test_preserved.rb +78 -0
- data/test/hpricot/test_xml.rb +30 -0
- data/test/html/sax/test_parser.rb +27 -0
- data/test/html/test_builder.rb +78 -0
- data/test/html/test_document.rb +86 -0
- data/test/test_convert_xpath.rb +180 -0
- data/test/test_nokogiri.rb +36 -0
- data/test/test_reader.rb +222 -0
- data/test/test_xslt_transforms.rb +29 -0
- data/test/xml/sax/test_parser.rb +93 -0
- data/test/xml/test_builder.rb +16 -0
- data/test/xml/test_cdata.rb +18 -0
- data/test/xml/test_document.rb +171 -0
- data/test/xml/test_dtd.rb +43 -0
- data/test/xml/test_node.rb +223 -0
- data/test/xml/test_node_set.rb +116 -0
- data/test/xml/test_text.rb +13 -0
- metadata +214 -0
@@ -0,0 +1,183 @@
|
|
1
|
+
module Nokogiri
|
2
|
+
module XML
|
3
|
+
class NodeSet
|
4
|
+
include Enumerable
|
5
|
+
|
6
|
+
attr_accessor :document
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
yield self if block_given?
|
10
|
+
end
|
11
|
+
|
12
|
+
###
|
13
|
+
# Get the first element of the NodeSet.
|
14
|
+
def first
|
15
|
+
self[0]
|
16
|
+
end
|
17
|
+
|
18
|
+
###
|
19
|
+
# Get the last element of the NodeSet.
|
20
|
+
def last
|
21
|
+
self[length - 1]
|
22
|
+
end
|
23
|
+
|
24
|
+
###
|
25
|
+
# Is this NodeSet empty?
|
26
|
+
def empty?
|
27
|
+
length == 0
|
28
|
+
end
|
29
|
+
|
30
|
+
###
|
31
|
+
# Insert +datum+ before the first Node in this NodeSet
|
32
|
+
def before datum
|
33
|
+
first.before datum
|
34
|
+
end
|
35
|
+
|
36
|
+
###
|
37
|
+
# Insert +datum+ after the last Node in this NodeSet
|
38
|
+
def after datum
|
39
|
+
last.after datum
|
40
|
+
end
|
41
|
+
|
42
|
+
###
|
43
|
+
# Append +node+ to the NodeSet.
|
44
|
+
def << node
|
45
|
+
push(node)
|
46
|
+
end
|
47
|
+
|
48
|
+
###
|
49
|
+
# Unlink this NodeSet and all Node objects it contains from their
|
50
|
+
# current context.
|
51
|
+
def unlink
|
52
|
+
each { |node| node.unlink }
|
53
|
+
self.document = nil
|
54
|
+
self
|
55
|
+
end
|
56
|
+
alias :remove :unlink
|
57
|
+
|
58
|
+
###
|
59
|
+
# Search this document for +paths+
|
60
|
+
def search *paths
|
61
|
+
sub_set = NodeSet.new
|
62
|
+
document.decorate(sub_set)
|
63
|
+
each do |node|
|
64
|
+
node.search(*paths).each do |sub_node|
|
65
|
+
sub_set << sub_node
|
66
|
+
end
|
67
|
+
end
|
68
|
+
sub_set.document = document
|
69
|
+
sub_set
|
70
|
+
end
|
71
|
+
alias :/ :search
|
72
|
+
alias :xpath :search
|
73
|
+
alias :css :search
|
74
|
+
|
75
|
+
###
|
76
|
+
# If path is a string, search this document for +path+ returning the
|
77
|
+
# first Node. Otherwise, index in to the array with +path+.
|
78
|
+
def at path, ns = {}
|
79
|
+
return self[path] if path.is_a?(Numeric)
|
80
|
+
search(path, ns).first
|
81
|
+
end
|
82
|
+
|
83
|
+
###
|
84
|
+
# Append the class attribute +name+ to all Node objects in the NodeSet.
|
85
|
+
def add_class name
|
86
|
+
each do |el|
|
87
|
+
next unless el.respond_to? :get_attribute
|
88
|
+
classes = el.get_attribute('class').to_s.split(" ")
|
89
|
+
el.set_attribute('class', classes.push(name).uniq.join(" "))
|
90
|
+
end
|
91
|
+
self
|
92
|
+
end
|
93
|
+
|
94
|
+
###
|
95
|
+
# Remove the class attribute +name+ from all Node objects in the NodeSet.
|
96
|
+
def remove_class name = nil
|
97
|
+
each do |el|
|
98
|
+
next unless el.respond_to? :get_attribute
|
99
|
+
if name
|
100
|
+
classes = el.get_attribute('class').to_s.split(" ")
|
101
|
+
el.set_attribute('class', (classes - [name]).uniq.join(" "))
|
102
|
+
else
|
103
|
+
el.remove_attribute("class")
|
104
|
+
end
|
105
|
+
end
|
106
|
+
self
|
107
|
+
end
|
108
|
+
|
109
|
+
###
|
110
|
+
# Set the attribute +key+ to +value+ or the return value of +blk+
|
111
|
+
# on all Node objects in the NodeSet.
|
112
|
+
def attr key, value = nil, &blk
|
113
|
+
if value or blk
|
114
|
+
each do |el|
|
115
|
+
el.set_attribute(key, value || blk[el])
|
116
|
+
end
|
117
|
+
return self
|
118
|
+
end
|
119
|
+
if key.is_a? Hash
|
120
|
+
key.each { |k,v| self.attr(k,v) }
|
121
|
+
return self
|
122
|
+
else
|
123
|
+
return self[0].get_attribute(key)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
alias_method :set, :attr
|
127
|
+
|
128
|
+
###
|
129
|
+
# Remove the attributed named +name+ from all Node objects in the NodeSet
|
130
|
+
def remove_attr name
|
131
|
+
each do |el|
|
132
|
+
next unless el.respond_to? :remove_attribute
|
133
|
+
el.remove_attribute(name)
|
134
|
+
end
|
135
|
+
self
|
136
|
+
end
|
137
|
+
|
138
|
+
###
|
139
|
+
# Iterate over each node, yielding to +block+
|
140
|
+
def each(&block)
|
141
|
+
x = 0
|
142
|
+
while x < length
|
143
|
+
yield self[x]
|
144
|
+
x += 1
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
###
|
149
|
+
# Get the inner text of all contained Node objects
|
150
|
+
def inner_text
|
151
|
+
collect{|j| j.inner_text}.join('')
|
152
|
+
end
|
153
|
+
alias :text :inner_text
|
154
|
+
|
155
|
+
###
|
156
|
+
# Wrap this NodeSet with +html+ or the results of the builder in +blk+
|
157
|
+
def wrap(html, &blk)
|
158
|
+
each do |j|
|
159
|
+
new_parent = Nokogiri.make(html, &blk)
|
160
|
+
j.replace(new_parent)
|
161
|
+
nest = new_parent
|
162
|
+
if nest.child
|
163
|
+
nest = nest.child until nest.child.nil?
|
164
|
+
end
|
165
|
+
j.parent = nest
|
166
|
+
end
|
167
|
+
self
|
168
|
+
end
|
169
|
+
|
170
|
+
def to_s
|
171
|
+
map { |x| x.to_s }.join
|
172
|
+
end
|
173
|
+
|
174
|
+
def to_html
|
175
|
+
map { |x| x.to_html }.join('')
|
176
|
+
end
|
177
|
+
|
178
|
+
def size
|
179
|
+
length
|
180
|
+
end
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Nokogiri
|
2
|
+
module XML
|
3
|
+
module SAX
|
4
|
+
class Document
|
5
|
+
###
|
6
|
+
# Called when document starts parsing
|
7
|
+
def start_document
|
8
|
+
end
|
9
|
+
|
10
|
+
###
|
11
|
+
# Called when document ends parsing
|
12
|
+
def end_document
|
13
|
+
end
|
14
|
+
|
15
|
+
###
|
16
|
+
# Called at the beginning of an element
|
17
|
+
# +name+ is the name of the tag with +attrs+ as attributes
|
18
|
+
def start_element name, attrs = []
|
19
|
+
end
|
20
|
+
|
21
|
+
###
|
22
|
+
# Called at the end of an element
|
23
|
+
# +name+ is the tag name
|
24
|
+
def end_element name
|
25
|
+
end
|
26
|
+
|
27
|
+
###
|
28
|
+
# Characters read between a tag
|
29
|
+
# +string+ contains the character data
|
30
|
+
def characters string
|
31
|
+
end
|
32
|
+
|
33
|
+
###
|
34
|
+
# Called when comments are encountered
|
35
|
+
# +string+ contains the comment data
|
36
|
+
def comment string
|
37
|
+
end
|
38
|
+
|
39
|
+
###
|
40
|
+
# Called on document warnings
|
41
|
+
# +string+ contains the warning
|
42
|
+
def warning string
|
43
|
+
end
|
44
|
+
|
45
|
+
###
|
46
|
+
# Called on document errors
|
47
|
+
# +string+ contains the error
|
48
|
+
def error string
|
49
|
+
end
|
50
|
+
|
51
|
+
###
|
52
|
+
# Called when cdata blocks are found
|
53
|
+
# +string+ contains the cdata content
|
54
|
+
def cdata_block string
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Nokogiri
|
2
|
+
module XML
|
3
|
+
module SAX
|
4
|
+
class Parser
|
5
|
+
attr_accessor :document
|
6
|
+
def initialize(doc = XML::SAX::Document.new)
|
7
|
+
@document = doc
|
8
|
+
end
|
9
|
+
|
10
|
+
###
|
11
|
+
# Parse given +thing+ which may be a string containing xml, or an
|
12
|
+
# IO object.
|
13
|
+
def parse thing
|
14
|
+
parse_memory(thing.is_a?(IO) ? thing.read : thing)
|
15
|
+
end
|
16
|
+
|
17
|
+
###
|
18
|
+
# Parse given +io+
|
19
|
+
def parse_io io
|
20
|
+
parse_memory io.read
|
21
|
+
end
|
22
|
+
|
23
|
+
###
|
24
|
+
# Parse a file with +filename+
|
25
|
+
def parse_file filename
|
26
|
+
raise Errno::ENOENT unless File.exists?(filename)
|
27
|
+
raise Errno::EISDIR if File.directory?(filename)
|
28
|
+
native_parse_file filename
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/nokogiri/xml.rb
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'nokogiri/xml/sax'
|
2
|
+
require 'nokogiri/xml/before_handler'
|
3
|
+
require 'nokogiri/xml/after_handler'
|
4
|
+
require 'nokogiri/xml/node'
|
5
|
+
require 'nokogiri/xml/dtd'
|
6
|
+
require 'nokogiri/xml/text'
|
7
|
+
require 'nokogiri/xml/cdata'
|
8
|
+
require 'nokogiri/xml/document'
|
9
|
+
require 'nokogiri/xml/node_set'
|
10
|
+
require 'nokogiri/xml/xpath'
|
11
|
+
require 'nokogiri/xml/xpath_context'
|
12
|
+
require 'nokogiri/xml/builder'
|
13
|
+
require 'nokogiri/xml/reader'
|
14
|
+
require 'nokogiri/xml/syntax_error'
|
15
|
+
require 'nokogiri/xml/notation'
|
16
|
+
require 'nokogiri/xml/element'
|
17
|
+
require 'nokogiri/xml/entity_declaration'
|
18
|
+
|
19
|
+
module Nokogiri
|
20
|
+
class << self
|
21
|
+
def XML thing, url = nil, encoding = nil, options = 1
|
22
|
+
Nokogiri::XML.parse(thing, url, encoding, options)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
module XML
|
27
|
+
# Parser options
|
28
|
+
PARSE_RECOVER = 1 << 0 # Recover from errors
|
29
|
+
PARSE_NOENT = 1 << 1 # Substitute entities
|
30
|
+
PARSE_DTDLOAD = 1 << 2 # Load external subsets
|
31
|
+
PARSE_DTDATTR = 1 << 3 # Default DTD attributes
|
32
|
+
PARSE_DTDVALID = 1 << 4 # validate with the DTD
|
33
|
+
PARSE_NOERROR = 1 << 5 # suppress error reports
|
34
|
+
PARSE_NOWARNING = 1 << 6 # suppress warning reports
|
35
|
+
PARSE_PEDANTIC = 1 << 7 # pedantic error reporting
|
36
|
+
PARSE_NOBLANKS = 1 << 8 # remove blank nodes
|
37
|
+
PARSE_SAX1 = 1 << 9 # use the SAX1 interface internally
|
38
|
+
PARSE_XINCLUDE = 1 << 10 # Implement XInclude substitition
|
39
|
+
PARSE_NONET = 1 << 11 # Forbid network access
|
40
|
+
PARSE_NODICT = 1 << 12 # Do not reuse the context dictionnary
|
41
|
+
PARSE_NSCLEAN = 1 << 13 # remove redundant namespaces declarations
|
42
|
+
PARSE_NOCDATA = 1 << 14 # merge CDATA as text nodes
|
43
|
+
PARSE_NOXINCNODE = 1 << 15 # do not generate XINCLUDE START/END nodes
|
44
|
+
|
45
|
+
class << self
|
46
|
+
def parse string_or_io, url = nil, encoding = nil, options = 2159
|
47
|
+
if string_or_io.respond_to?(:read)
|
48
|
+
url ||= string_or_io.respond_to?(:path) ? string_or_io.path : nil
|
49
|
+
string_or_io = string_or_io.read
|
50
|
+
end
|
51
|
+
|
52
|
+
# read_memory pukes on empty docs
|
53
|
+
return Document.new if string_or_io.nil? or string_or_io.empty?
|
54
|
+
|
55
|
+
Document.read_memory(string_or_io, url, encoding, options)
|
56
|
+
end
|
57
|
+
|
58
|
+
def substitute_entities=(value = true)
|
59
|
+
Document.substitute_entities = value
|
60
|
+
end
|
61
|
+
|
62
|
+
def load_external_subsets=(value = true)
|
63
|
+
Document.load_external_subsets = value
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
data/lib/nokogiri.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'nokogiri/version'
|
2
|
+
require 'nokogiri/xml'
|
3
|
+
require 'nokogiri/xslt'
|
4
|
+
require 'nokogiri/html'
|
5
|
+
require 'nokogiri/decorators'
|
6
|
+
require 'nokogiri/css'
|
7
|
+
require 'nokogiri/html/builder'
|
8
|
+
require 'nokogiri/hpricot'
|
9
|
+
|
10
|
+
# Modify the PATH on windows so that the external DLLs will get loaded.
|
11
|
+
ENV['PATH'] += ";" + File.expand_path(
|
12
|
+
File.join(File.dirname(__FILE__), "..", "ext", "nokogiri")
|
13
|
+
) if RUBY_PLATFORM =~ /mswin/i
|
14
|
+
|
15
|
+
require 'nokogiri/native'
|
16
|
+
|
17
|
+
module Nokogiri
|
18
|
+
class << self
|
19
|
+
attr_accessor :error_handler
|
20
|
+
|
21
|
+
def parse string, url = nil, encoding = nil, options = nil
|
22
|
+
doc =
|
23
|
+
if string =~ /^\s*<[^Hh>]*html/i # Probably html
|
24
|
+
Nokogiri::HTML.parse(string, url, encoding, options || 2145)
|
25
|
+
else
|
26
|
+
Nokogiri::XML.parse(string, url, encoding, options || 2159)
|
27
|
+
end
|
28
|
+
yield doc if block_given?
|
29
|
+
doc
|
30
|
+
end
|
31
|
+
|
32
|
+
def make input = nil, opts = {}, &blk
|
33
|
+
if input
|
34
|
+
Nokogiri::XML::Node.new_from_str(input)
|
35
|
+
else
|
36
|
+
Nokogiri(&blk)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
self.error_handler = lambda { |syntax_error| }
|
42
|
+
end
|
43
|
+
|
44
|
+
def Nokogiri(*args, &block)
|
45
|
+
if block_given?
|
46
|
+
builder = Nokogiri::HTML::Builder.new(&block)
|
47
|
+
return builder.doc
|
48
|
+
else
|
49
|
+
Nokogiri::HTML.parse(*args)
|
50
|
+
end
|
51
|
+
end
|
data/nokogiri.gemspec
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = %q{nokogiri}
|
3
|
+
s.version = "0.0.0"
|
4
|
+
s.platform = %q{x86-mswin32-60}
|
5
|
+
|
6
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
7
|
+
s.authors = ["Aaron Patterson"]
|
8
|
+
s.date = %q{2008-10-29}
|
9
|
+
s.description = %q{Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser.}
|
10
|
+
s.email = ["aaronp@rubyforge.org"]
|
11
|
+
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.ja.txt", "README.txt"]
|
12
|
+
s.files = ["History.txt", "Manifest.txt", "README.ja.txt", "README.txt", "Rakefile", "ext/nokogiri/extconf.rb", "ext/nokogiri/html_document.c", "ext/nokogiri/html_document.h", "ext/nokogiri/html_sax_parser.c", "ext/nokogiri/html_sax_parser.h", "ext/nokogiri/native.c", "ext/nokogiri/native.h", "ext/nokogiri/xml_cdata.c", "ext/nokogiri/xml_cdata.h", "ext/nokogiri/xml_document.c", "ext/nokogiri/xml_document.h", "ext/nokogiri/xml_dtd.c", "ext/nokogiri/xml_dtd.h", "ext/nokogiri/xml_node.c", "ext/nokogiri/xml_node.h", "ext/nokogiri/xml_node_set.c", "ext/nokogiri/xml_node_set.h", "ext/nokogiri/xml_reader.c", "ext/nokogiri/xml_reader.h", "ext/nokogiri/xml_sax_parser.c", "ext/nokogiri/xml_sax_parser.h", "ext/nokogiri/xml_syntax_error.c", "ext/nokogiri/xml_syntax_error.h", "ext/nokogiri/xml_text.c", "ext/nokogiri/xml_text.h", "ext/nokogiri/xml_xpath.c", "ext/nokogiri/xml_xpath.h", "ext/nokogiri/xml_xpath_context.c", "ext/nokogiri/xml_xpath_context.h", "ext/nokogiri/xslt_stylesheet.c", "ext/nokogiri/xslt_stylesheet.h", "lib/nokogiri.rb", "lib/nokogiri/css.rb", "lib/nokogiri/css/generated_parser.rb", "lib/nokogiri/css/generated_tokenizer.rb", "lib/nokogiri/css/node.rb", "lib/nokogiri/css/parser.rb", "lib/nokogiri/css/parser.y", "lib/nokogiri/css/tokenizer.rb", "lib/nokogiri/css/tokenizer.rex", "lib/nokogiri/css/xpath_visitor.rb", "lib/nokogiri/decorators.rb", "lib/nokogiri/decorators/hpricot.rb", "lib/nokogiri/decorators/hpricot/node.rb", "lib/nokogiri/decorators/hpricot/node_set.rb", "lib/nokogiri/decorators/hpricot/xpath_visitor.rb", "lib/nokogiri/hpricot.rb", "lib/nokogiri/html.rb", "lib/nokogiri/html/builder.rb", "lib/nokogiri/html/document.rb", "lib/nokogiri/html/sax/parser.rb", "lib/nokogiri/version.rb", "lib/nokogiri/xml.rb", "lib/nokogiri/xml/after_handler.rb", "lib/nokogiri/xml/before_handler.rb", "lib/nokogiri/xml/builder.rb", "lib/nokogiri/xml/cdata.rb", "lib/nokogiri/xml/document.rb", "lib/nokogiri/xml/dtd.rb", "lib/nokogiri/xml/node.rb", "lib/nokogiri/xml/node_set.rb", "lib/nokogiri/xml/notation.rb", "lib/nokogiri/xml/reader.rb", "lib/nokogiri/xml/sax.rb", "lib/nokogiri/xml/sax/document.rb", "lib/nokogiri/xml/sax/parser.rb", "lib/nokogiri/xml/syntax_error.rb", "lib/nokogiri/xml/text.rb", "lib/nokogiri/xml/xpath.rb", "lib/nokogiri/xml/xpath_context.rb", "lib/nokogiri/xslt.rb", "lib/nokogiri/xslt/stylesheet.rb", "nokogiri.gemspec", "test/css/test_nthiness.rb", "test/css/test_parser.rb", "test/css/test_tokenizer.rb", "test/css/test_xpath_visitor.rb", "test/files/staff.xml", "test/files/staff.xslt", "test/files/tlm.html", "test/helper.rb", "test/hpricot/files/basic.xhtml", "test/hpricot/files/boingboing.html", "test/hpricot/files/cy0.html", "test/hpricot/files/immob.html", "test/hpricot/files/pace_application.html", "test/hpricot/files/tenderlove.html", "test/hpricot/files/uswebgen.html", "test/hpricot/files/utf8.html", "test/hpricot/files/week9.html", "test/hpricot/files/why.xml", "test/hpricot/load_files.rb", "test/hpricot/test_alter.rb", "test/hpricot/test_builder.rb", "test/hpricot/test_parser.rb", "test/hpricot/test_paths.rb", "test/hpricot/test_preserved.rb", "test/hpricot/test_xml.rb", "test/html/sax/test_parser.rb", "test/html/test_builder.rb", "test/html/test_document.rb", "test/test_convert_xpath.rb", "test/test_nokogiri.rb", "test/test_reader.rb", "test/test_xslt_transforms.rb", "test/xml/sax/test_parser.rb", "test/xml/test_builder.rb", "test/xml/test_cdata.rb", "test/xml/test_document.rb", "test/xml/test_dtd.rb", "test/xml/test_node.rb", "test/xml/test_node_set.rb", "test/xml/test_text.rb", "ext/nokogiri/iconv.dll", "ext/nokogiri/libexslt.dll", "ext/nokogiri/libxml2.dll", "ext/nokogiri/libxslt.dll", "ext/nokogiri/zlib1.dll", "ext/nokogiri/native.so"]
|
13
|
+
s.has_rdoc = true
|
14
|
+
s.homepage = %q{http://github.com/tenderlove/nokogiri/tree/master}
|
15
|
+
s.rdoc_options = ["--main", "README.txt"]
|
16
|
+
s.require_paths = ["lib", "ext"]
|
17
|
+
s.rubyforge_project = %q{nokogiri}
|
18
|
+
s.rubygems_version = %q{1.2.0}
|
19
|
+
s.summary = %q{Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser.}
|
20
|
+
s.test_files = ["test/css/test_nthiness.rb", "test/css/test_parser.rb", "test/css/test_tokenizer.rb", "test/css/test_xpath_visitor.rb", "test/hpricot/test_alter.rb", "test/hpricot/test_builder.rb", "test/hpricot/test_parser.rb", "test/hpricot/test_paths.rb", "test/hpricot/test_preserved.rb", "test/hpricot/test_xml.rb", "test/html/sax/test_parser.rb", "test/html/test_builder.rb", "test/html/test_document.rb", "test/test_convert_xpath.rb", "test/test_nokogiri.rb", "test/test_reader.rb", "test/test_xslt_transforms.rb", "test/xml/sax/test_parser.rb", "test/xml/test_builder.rb", "test/xml/test_cdata.rb", "test/xml/test_document.rb", "test/xml/test_dtd.rb", "test/xml/test_node.rb", "test/xml/test_node_set.rb", "test/xml/test_text.rb"]
|
21
|
+
|
22
|
+
if s.respond_to? :specification_version then
|
23
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
24
|
+
s.specification_version = 2
|
25
|
+
|
26
|
+
if current_version >= 3 then
|
27
|
+
s.add_development_dependency(%q<hoe>, [">= 1.7.0"])
|
28
|
+
else
|
29
|
+
s.add_dependency(%q<hoe>, [">= 1.7.0"])
|
30
|
+
end
|
31
|
+
else
|
32
|
+
s.add_dependency(%q<hoe>, [">= 1.7.0"])
|
33
|
+
end
|
34
|
+
end
|