libxml-ruby 5.0.4 → 5.0.5

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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY +10 -6
  3. data/README.rdoc +1 -1
  4. data/ext/libxml/extconf.rb +5 -0
  5. data/ext/libxml/ruby_xml.c +556 -556
  6. data/ext/libxml/ruby_xml_attributes.h +17 -17
  7. data/ext/libxml/ruby_xml_document.c +1129 -1129
  8. data/ext/libxml/ruby_xml_dtd.c +257 -257
  9. data/ext/libxml/ruby_xml_encoding.c +250 -250
  10. data/ext/libxml/ruby_xml_error.c +1003 -1003
  11. data/ext/libxml/ruby_xml_error.h +14 -14
  12. data/ext/libxml/ruby_xml_html_parser_context.c +351 -351
  13. data/ext/libxml/ruby_xml_input_cbg.c +188 -188
  14. data/ext/libxml/ruby_xml_namespace.c +151 -151
  15. data/ext/libxml/ruby_xml_parser.h +10 -10
  16. data/ext/libxml/ruby_xml_parser_context.c +1009 -1009
  17. data/ext/libxml/ruby_xml_parser_options.c +74 -74
  18. data/ext/libxml/ruby_xml_parser_options.h +10 -10
  19. data/ext/libxml/ruby_xml_sax2_handler.c +326 -326
  20. data/ext/libxml/ruby_xml_sax_parser.c +108 -108
  21. data/ext/libxml/ruby_xml_version.h +9 -9
  22. data/lib/libxml/attr.rb +122 -122
  23. data/lib/libxml/attr_decl.rb +80 -80
  24. data/lib/libxml/attributes.rb +13 -13
  25. data/lib/libxml/document.rb +194 -194
  26. data/lib/libxml/error.rb +95 -95
  27. data/lib/libxml/hpricot.rb +77 -77
  28. data/lib/libxml/html_parser.rb +96 -96
  29. data/lib/libxml/namespace.rb +61 -61
  30. data/lib/libxml/namespaces.rb +37 -37
  31. data/lib/libxml/node.rb +323 -323
  32. data/lib/libxml/parser.rb +102 -102
  33. data/lib/libxml/sax_callbacks.rb +179 -179
  34. data/lib/libxml/sax_parser.rb +40 -40
  35. data/lib/libxml/tree.rb +28 -28
  36. data/lib/libxml.rb +4 -4
  37. data/lib/xml/libxml.rb +10 -10
  38. data/lib/xml.rb +13 -13
  39. data/libxml-ruby.gemspec +50 -49
  40. data/test/test_document.rb +140 -140
  41. data/test/test_document_write.rb +142 -142
  42. data/test/test_dtd.rb +126 -126
  43. data/test/test_encoding.rb +126 -126
  44. data/test/test_error.rb +194 -194
  45. data/test/test_helper.rb +20 -20
  46. data/test/test_namespace.rb +58 -58
  47. data/test/test_node.rb +235 -235
  48. data/test/test_node_write.rb +93 -93
  49. data/test/test_parser.rb +333 -333
  50. data/test/test_reader.rb +364 -364
  51. data/test/test_xml.rb +168 -168
  52. metadata +5 -4
data/lib/libxml/parser.rb CHANGED
@@ -1,103 +1,103 @@
1
- # encoding: UTF-8
2
-
3
- module LibXML
4
- module XML
5
- class Parser
6
- # call-seq:
7
- # XML::Parser.document(document) -> XML::Parser
8
- #
9
- # Creates a new parser for the specified document.
10
- #
11
- # Parameters:
12
- #
13
- # document - A preparsed document.
14
- def self.document(doc)
15
- context = XML::Parser::Context.document(doc)
16
- self.new(context)
17
- end
18
-
19
- # call-seq:
20
- # XML::Parser.file(path) -> XML::Parser
21
- # XML::Parser.file(path, encoding: XML::Encoding::UTF_8,
22
- # options: XML::Parser::Options::NOENT) -> XML::Parser
23
- #
24
- # Creates a new parser for the specified file or uri.
25
- #
26
- # Parameters:
27
- #
28
- # path - Path to file
29
- # base_uri - The base url for the parsed document.
30
- # encoding - The document encoding, defaults to nil. Valid values
31
- # are the encoding constants defined on XML::Encoding.
32
- # options - Parser options. Valid values are the constants defined on
33
- # XML::Parser::Options. Mutliple options can be combined
34
- # by using Bitwise OR (|).
35
- def self.file(path, base_uri: nil, encoding: nil, options: nil)
36
- context = XML::Parser::Context.file(path)
37
- context.base_uri = base_uri if base_uri
38
- context.encoding = encoding if encoding
39
- context.options = options if options
40
- self.new(context)
41
- end
42
-
43
- # call-seq:
44
- # XML::Parser.io(io) -> XML::Parser
45
- # XML::Parser.io(io, encoding: XML::Encoding::UTF_8,
46
- # options: XML::Parser::Options::NOENT
47
- # base_uri: "http://libxml.org") -> XML::Parser
48
- #
49
- # Creates a new parser for the specified io object.
50
- #
51
- # Parameters:
52
- #
53
- # io - io object that contains the xml to parser
54
- # base_uri - The base url for the parsed document.
55
- # encoding - The document encoding, defaults to nil. Valid values
56
- # are the encoding constants defined on XML::Encoding.
57
- # options - Parser options. Valid values are the constants defined on
58
- # XML::Parser::Options. Mutliple options can be combined
59
- # by using Bitwise OR (|).
60
- def self.io(io, base_uri: nil, encoding: nil, options: nil)
61
- context = XML::Parser::Context.io(io)
62
- context.base_uri = base_uri if base_uri
63
- context.encoding = encoding if encoding
64
- context.options = options if options
65
- self.new(context)
66
- end
67
-
68
- # call-seq:
69
- # XML::Parser.string(string)
70
- # XML::Parser.string(string, encoding: XML::Encoding::UTF_8,
71
- # options: XML::Parser::Options::NOENT
72
- # base_uri: "http://libxml.org") -> XML::Parser
73
- #
74
- # Creates a new parser by parsing the specified string.
75
- #
76
- # Parameters:
77
- #
78
- # string - The string to parse
79
- # base_uri - The base url for the parsed document.
80
- # encoding - The document encoding, defaults to nil. Valid values
81
- # are the encoding constants defined on XML::Encoding.
82
- # options - Parser options. Valid values are the constants defined on
83
- # XML::Parser::Options. Multiple options can be combined
84
- # by using Bitwise OR (|).
85
- def self.string(string, base_uri: nil, encoding: nil, options: nil)
86
- context = XML::Parser::Context.string(string)
87
- context.base_uri = base_uri if base_uri
88
- context.encoding = encoding if encoding
89
- context.options = options if options
90
- self.new(context)
91
- end
92
-
93
- def self.register_error_handler(proc)
94
- warn('Parser.register_error_handler is deprecated. Use Error.set_handler instead')
95
- if proc.nil?
96
- Error.reset_handler
97
- else
98
- Error.set_handler(&proc)
99
- end
100
- end
101
- end
102
- end
1
+ # encoding: UTF-8
2
+
3
+ module LibXML
4
+ module XML
5
+ class Parser
6
+ # call-seq:
7
+ # XML::Parser.document(document) -> XML::Parser
8
+ #
9
+ # Creates a new parser for the specified document.
10
+ #
11
+ # Parameters:
12
+ #
13
+ # document - A preparsed document.
14
+ def self.document(doc)
15
+ context = XML::Parser::Context.document(doc)
16
+ self.new(context)
17
+ end
18
+
19
+ # call-seq:
20
+ # XML::Parser.file(path) -> XML::Parser
21
+ # XML::Parser.file(path, encoding: XML::Encoding::UTF_8,
22
+ # options: XML::Parser::Options::NOENT) -> XML::Parser
23
+ #
24
+ # Creates a new parser for the specified file or uri.
25
+ #
26
+ # Parameters:
27
+ #
28
+ # path - Path to file
29
+ # base_uri - The base url for the parsed document.
30
+ # encoding - The document encoding, defaults to nil. Valid values
31
+ # are the encoding constants defined on XML::Encoding.
32
+ # options - Parser options. Valid values are the constants defined on
33
+ # XML::Parser::Options. Mutliple options can be combined
34
+ # by using Bitwise OR (|).
35
+ def self.file(path, base_uri: nil, encoding: nil, options: nil)
36
+ context = XML::Parser::Context.file(path)
37
+ context.base_uri = base_uri if base_uri
38
+ context.encoding = encoding if encoding
39
+ context.options = options if options
40
+ self.new(context)
41
+ end
42
+
43
+ # call-seq:
44
+ # XML::Parser.io(io) -> XML::Parser
45
+ # XML::Parser.io(io, encoding: XML::Encoding::UTF_8,
46
+ # options: XML::Parser::Options::NOENT
47
+ # base_uri: "http://libxml.org") -> XML::Parser
48
+ #
49
+ # Creates a new parser for the specified io object.
50
+ #
51
+ # Parameters:
52
+ #
53
+ # io - io object that contains the xml to parser
54
+ # base_uri - The base url for the parsed document.
55
+ # encoding - The document encoding, defaults to nil. Valid values
56
+ # are the encoding constants defined on XML::Encoding.
57
+ # options - Parser options. Valid values are the constants defined on
58
+ # XML::Parser::Options. Mutliple options can be combined
59
+ # by using Bitwise OR (|).
60
+ def self.io(io, base_uri: nil, encoding: nil, options: nil)
61
+ context = XML::Parser::Context.io(io)
62
+ context.base_uri = base_uri if base_uri
63
+ context.encoding = encoding if encoding
64
+ context.options = options if options
65
+ self.new(context)
66
+ end
67
+
68
+ # call-seq:
69
+ # XML::Parser.string(string)
70
+ # XML::Parser.string(string, encoding: XML::Encoding::UTF_8,
71
+ # options: XML::Parser::Options::NOENT
72
+ # base_uri: "http://libxml.org") -> XML::Parser
73
+ #
74
+ # Creates a new parser by parsing the specified string.
75
+ #
76
+ # Parameters:
77
+ #
78
+ # string - The string to parse
79
+ # base_uri - The base url for the parsed document.
80
+ # encoding - The document encoding, defaults to nil. Valid values
81
+ # are the encoding constants defined on XML::Encoding.
82
+ # options - Parser options. Valid values are the constants defined on
83
+ # XML::Parser::Options. Multiple options can be combined
84
+ # by using Bitwise OR (|).
85
+ def self.string(string, base_uri: nil, encoding: nil, options: nil)
86
+ context = XML::Parser::Context.string(string)
87
+ context.base_uri = base_uri if base_uri
88
+ context.encoding = encoding if encoding
89
+ context.options = options if options
90
+ self.new(context)
91
+ end
92
+
93
+ def self.register_error_handler(proc)
94
+ warn('Parser.register_error_handler is deprecated. Use Error.set_handler instead')
95
+ if proc.nil?
96
+ Error.reset_handler
97
+ else
98
+ Error.set_handler(&proc)
99
+ end
100
+ end
101
+ end
102
+ end
103
103
  end
@@ -1,180 +1,180 @@
1
- # encoding: UTF-8
2
-
3
- module LibXML
4
- module XML
5
- class SaxParser
6
- module Callbacks
7
- # Called for a CDATA block event.
8
- def on_cdata_block(cdata)
9
- end
10
-
11
- # Called for a characters event.
12
- def on_characters(chars)
13
- end
14
-
15
- # Called for a comment event.
16
- def on_comment(msg)
17
- end
18
-
19
- # Called for a end document event.
20
- def on_end_document
21
- end
22
-
23
- # Called for a end element event.
24
- def on_end_element_ns(name, prefix, uri)
25
- end
26
-
27
- # Called for parser errors.
28
- def on_error(msg)
29
- end
30
-
31
- # Called for an external subset event.
32
- def on_external_subset(name, external_id, system_id)
33
- end
34
-
35
- # Called for an external subset notification event.
36
- def on_has_external_subset
37
- end
38
-
39
- # Called for an internal subset notification event.
40
- def on_has_internal_subset
41
- end
42
-
43
- # Called for an internal subset event.
44
- def on_internal_subset(name, external_id, system_id)
45
- end
46
-
47
- # Called for 'is standalone' event.
48
- def on_is_standalone
49
- end
50
-
51
- # Called for an processing instruction event.
52
- def on_processing_instruction(target, data)
53
- end
54
-
55
- # Called for a reference event.
56
- def on_reference(name)
57
- end
58
-
59
- # Called for a start document event.
60
- def on_start_document
61
- end
62
-
63
- # Called for a start element event.
64
- def on_start_element_ns(name, attributes, prefix, uri, namespaces)
65
- end
66
- end
67
-
68
- module VerboseCallbacks
69
- # Called for a CDATA block event.
70
- def on_cdata_block(cdata)
71
- STDOUT << "on_cdata_block" << "\n" <<
72
- " cdata " << cdata << "\n"
73
- STDOUT.flush
74
- end
75
-
76
- # Called for a characters event.
77
- def on_characters(chars)
78
- STDOUT << "on_characters" << "\n" <<
79
- " chars " << chars << "\n"
80
- STDOUT.flush
81
- end
82
-
83
- # Called for a comment event.
84
- def on_comment(comment)
85
- STDOUT << "on_comment" << "\n" <<
86
- " comment: " << comment << "\n"
87
- STDOUT.flush
88
- end
89
-
90
- # Called for a end document event.
91
- def on_end_document
92
- STDOUT << "on_end_document\n"
93
- STDOUT.flush
94
- end
95
-
96
- # Called for a end element event.
97
- def on_end_element_ns(name, prefix, uri)
98
- STDOUT << "on_end_element_ns" << "\n" <<
99
- " name: " << name << "\n" <<
100
- " prefix: " << prefix << "\n" <<
101
- " uri: " << uri << "\n"
102
- STDOUT.flush
103
- end
104
-
105
- # Called for parser errors.
106
- def on_error(error)
107
- STDOUT << "on_error" << "\n"
108
- " error " << error << "\n"
109
- STDOUT.flush
110
- end
111
-
112
- # Called for an external subset event.
113
- def on_external_subset(name, external_id, system_id)
114
- STDOUT << "on_external_subset" << "\n"
115
- " external_id " << external_id << "\n" <<
116
- " system_id " << system_id << "\n"
117
- STDOUT.flush
118
- end
119
-
120
- # Called for an external subset notification event.
121
- def on_has_external_subset
122
- STDOUT << "on_has_internal_subset\n"
123
- STDOUT.flush
124
- end
125
-
126
- # Called for an internal subset notification event.
127
- def on_has_internal_subset
128
- STDOUT << "on_has_internal_subset\n"
129
- STDOUT.flush
130
- end
131
-
132
- # Called for an internal subset event.
133
- def on_internal_subset(name, external_id, system_id)
134
- STDOUT << "on_internal_subset" << "\n"
135
- " external_id " << external_id << "\n" <<
136
- " system_id " << system_id << "\n"
137
- STDOUT.flush
138
- end
139
-
140
- # Called for 'is standalone' event.
141
- def on_is_standalone
142
- STDOUT << "on_is_standalone\n"
143
- STDOUT.flush
144
- end
145
-
146
- # Called for an processing instruction event.
147
- def on_processing_instruction(target, data)
148
- STDOUT << "on_characters" << "\n"
149
- " target: " << target << "\n" <<
150
- " data: " << data << "\n"
151
- STDOUT.flush
152
- end
153
-
154
- # Called for a reference event.
155
- def on_reference(name)
156
- STDOUT << "on_reference:" << "\n" <<
157
- " name:" << name << "\n"
158
- STDOUT.flush
159
- end
160
-
161
- # Called for a start document event.
162
- def on_start_document
163
- STDOUT << "on_start_document\n"
164
- STDOUT.flush
165
- end
166
-
167
- # Called for a start element event.
168
- def on_start_element_ns(name, attributes, prefix, uri, namespaces)
169
- STDOUT << "on_start_element_ns" << "\n" <<
170
- " name: " << name << "\n" <<
171
- " attr: " << (attributes || Hash.new).inspect << "\n" <<
172
- " prefix: " << prefix << "\n" <<
173
- " uri: " << uri << "\n" <<
174
- " ns_defs: " << (namespaces || Hash.new).inspect << "\n"
175
- STDOUT.flush
176
- end
177
- end
178
- end
179
- end
1
+ # encoding: UTF-8
2
+
3
+ module LibXML
4
+ module XML
5
+ class SaxParser
6
+ module Callbacks
7
+ # Called for a CDATA block event.
8
+ def on_cdata_block(cdata)
9
+ end
10
+
11
+ # Called for a characters event.
12
+ def on_characters(chars)
13
+ end
14
+
15
+ # Called for a comment event.
16
+ def on_comment(msg)
17
+ end
18
+
19
+ # Called for a end document event.
20
+ def on_end_document
21
+ end
22
+
23
+ # Called for a end element event.
24
+ def on_end_element_ns(name, prefix, uri)
25
+ end
26
+
27
+ # Called for parser errors.
28
+ def on_error(msg)
29
+ end
30
+
31
+ # Called for an external subset event.
32
+ def on_external_subset(name, external_id, system_id)
33
+ end
34
+
35
+ # Called for an external subset notification event.
36
+ def on_has_external_subset
37
+ end
38
+
39
+ # Called for an internal subset notification event.
40
+ def on_has_internal_subset
41
+ end
42
+
43
+ # Called for an internal subset event.
44
+ def on_internal_subset(name, external_id, system_id)
45
+ end
46
+
47
+ # Called for 'is standalone' event.
48
+ def on_is_standalone
49
+ end
50
+
51
+ # Called for an processing instruction event.
52
+ def on_processing_instruction(target, data)
53
+ end
54
+
55
+ # Called for a reference event.
56
+ def on_reference(name)
57
+ end
58
+
59
+ # Called for a start document event.
60
+ def on_start_document
61
+ end
62
+
63
+ # Called for a start element event.
64
+ def on_start_element_ns(name, attributes, prefix, uri, namespaces)
65
+ end
66
+ end
67
+
68
+ module VerboseCallbacks
69
+ # Called for a CDATA block event.
70
+ def on_cdata_block(cdata)
71
+ STDOUT << "on_cdata_block" << "\n" <<
72
+ " cdata " << cdata << "\n"
73
+ STDOUT.flush
74
+ end
75
+
76
+ # Called for a characters event.
77
+ def on_characters(chars)
78
+ STDOUT << "on_characters" << "\n" <<
79
+ " chars " << chars << "\n"
80
+ STDOUT.flush
81
+ end
82
+
83
+ # Called for a comment event.
84
+ def on_comment(comment)
85
+ STDOUT << "on_comment" << "\n" <<
86
+ " comment: " << comment << "\n"
87
+ STDOUT.flush
88
+ end
89
+
90
+ # Called for a end document event.
91
+ def on_end_document
92
+ STDOUT << "on_end_document\n"
93
+ STDOUT.flush
94
+ end
95
+
96
+ # Called for a end element event.
97
+ def on_end_element_ns(name, prefix, uri)
98
+ STDOUT << "on_end_element_ns" << "\n" <<
99
+ " name: " << name << "\n" <<
100
+ " prefix: " << prefix << "\n" <<
101
+ " uri: " << uri << "\n"
102
+ STDOUT.flush
103
+ end
104
+
105
+ # Called for parser errors.
106
+ def on_error(error)
107
+ STDOUT << "on_error" << "\n"
108
+ " error " << error << "\n"
109
+ STDOUT.flush
110
+ end
111
+
112
+ # Called for an external subset event.
113
+ def on_external_subset(name, external_id, system_id)
114
+ STDOUT << "on_external_subset" << "\n"
115
+ " external_id " << external_id << "\n" <<
116
+ " system_id " << system_id << "\n"
117
+ STDOUT.flush
118
+ end
119
+
120
+ # Called for an external subset notification event.
121
+ def on_has_external_subset
122
+ STDOUT << "on_has_internal_subset\n"
123
+ STDOUT.flush
124
+ end
125
+
126
+ # Called for an internal subset notification event.
127
+ def on_has_internal_subset
128
+ STDOUT << "on_has_internal_subset\n"
129
+ STDOUT.flush
130
+ end
131
+
132
+ # Called for an internal subset event.
133
+ def on_internal_subset(name, external_id, system_id)
134
+ STDOUT << "on_internal_subset" << "\n"
135
+ " external_id " << external_id << "\n" <<
136
+ " system_id " << system_id << "\n"
137
+ STDOUT.flush
138
+ end
139
+
140
+ # Called for 'is standalone' event.
141
+ def on_is_standalone
142
+ STDOUT << "on_is_standalone\n"
143
+ STDOUT.flush
144
+ end
145
+
146
+ # Called for an processing instruction event.
147
+ def on_processing_instruction(target, data)
148
+ STDOUT << "on_characters" << "\n"
149
+ " target: " << target << "\n" <<
150
+ " data: " << data << "\n"
151
+ STDOUT.flush
152
+ end
153
+
154
+ # Called for a reference event.
155
+ def on_reference(name)
156
+ STDOUT << "on_reference:" << "\n" <<
157
+ " name:" << name << "\n"
158
+ STDOUT.flush
159
+ end
160
+
161
+ # Called for a start document event.
162
+ def on_start_document
163
+ STDOUT << "on_start_document\n"
164
+ STDOUT.flush
165
+ end
166
+
167
+ # Called for a start element event.
168
+ def on_start_element_ns(name, attributes, prefix, uri, namespaces)
169
+ STDOUT << "on_start_element_ns" << "\n" <<
170
+ " name: " << name << "\n" <<
171
+ " attr: " << (attributes || Hash.new).inspect << "\n" <<
172
+ " prefix: " << prefix << "\n" <<
173
+ " uri: " << uri << "\n" <<
174
+ " ns_defs: " << (namespaces || Hash.new).inspect << "\n"
175
+ STDOUT.flush
176
+ end
177
+ end
178
+ end
179
+ end
180
180
  end
@@ -1,41 +1,41 @@
1
- # encoding: UTF-8
2
-
3
- module LibXML
4
- module XML
5
- class SaxParser
6
- # call-seq:
7
- # XML::SaxParser.file(path) -> XML::SaxParser
8
- #
9
- # Creates a new parser by parsing the specified file or uri.
10
- def self.file(path)
11
- context = XML::Parser::Context.file(path)
12
- self.new(context)
13
- end
14
-
15
- # call-seq:
16
- # XML::SaxParser.io(io) -> XML::SaxParser
17
- # XML::SaxParser.io(io, :encoding => XML::Encoding::UTF_8) -> XML::SaxParser
18
- #
19
- # Creates a new reader by parsing the specified io object.
20
- #
21
- # Parameters:
22
- #
23
- # encoding - The document encoding, defaults to nil. Valid values
24
- # are the encoding constants defined on XML::Encoding.
25
- def self.io(io, options = {})
26
- context = XML::Parser::Context.io(io)
27
- context.encoding = options[:encoding] if options[:encoding]
28
- self.new(context)
29
- end
30
-
31
- # call-seq:
32
- # XML::SaxParser.string(string)
33
- #
34
- # Creates a new parser by parsing the specified string.
35
- def self.string(string)
36
- context = XML::Parser::Context.string(string)
37
- self.new(context)
38
- end
39
- end
40
- end
1
+ # encoding: UTF-8
2
+
3
+ module LibXML
4
+ module XML
5
+ class SaxParser
6
+ # call-seq:
7
+ # XML::SaxParser.file(path) -> XML::SaxParser
8
+ #
9
+ # Creates a new parser by parsing the specified file or uri.
10
+ def self.file(path)
11
+ context = XML::Parser::Context.file(path)
12
+ self.new(context)
13
+ end
14
+
15
+ # call-seq:
16
+ # XML::SaxParser.io(io) -> XML::SaxParser
17
+ # XML::SaxParser.io(io, :encoding => XML::Encoding::UTF_8) -> XML::SaxParser
18
+ #
19
+ # Creates a new reader by parsing the specified io object.
20
+ #
21
+ # Parameters:
22
+ #
23
+ # encoding - The document encoding, defaults to nil. Valid values
24
+ # are the encoding constants defined on XML::Encoding.
25
+ def self.io(io, options = {})
26
+ context = XML::Parser::Context.io(io)
27
+ context.encoding = options[:encoding] if options[:encoding]
28
+ self.new(context)
29
+ end
30
+
31
+ # call-seq:
32
+ # XML::SaxParser.string(string)
33
+ #
34
+ # Creates a new parser by parsing the specified string.
35
+ def self.string(string)
36
+ context = XML::Parser::Context.string(string)
37
+ self.new(context)
38
+ end
39
+ end
40
+ end
41
41
  end