libxml-ruby 4.1.2 → 6.0.0

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 (172) hide show
  1. checksums.yaml +4 -4
  2. data/{HISTORY → CHANGELOG.md} +875 -887
  3. data/LICENSE +20 -20
  4. data/README.md +67 -0
  5. data/Rakefile +77 -98
  6. data/ext/libxml/extconf.rb +39 -20
  7. data/ext/libxml/libxml.c +67 -79
  8. data/ext/libxml/ruby_libxml.h +43 -44
  9. data/ext/libxml/ruby_xml.c +556 -899
  10. data/ext/libxml/ruby_xml.h +9 -10
  11. data/ext/libxml/ruby_xml_attr.c +338 -333
  12. data/ext/libxml/ruby_xml_attr.h +13 -12
  13. data/ext/libxml/ruby_xml_attr_decl.c +19 -12
  14. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  15. data/ext/libxml/ruby_xml_attributes.c +18 -9
  16. data/ext/libxml/ruby_xml_attributes.h +17 -15
  17. data/ext/libxml/ruby_xml_document.c +1142 -1129
  18. data/ext/libxml/ruby_xml_document.h +12 -11
  19. data/ext/libxml/ruby_xml_dtd.c +287 -248
  20. data/ext/libxml/ruby_xml_dtd.h +10 -9
  21. data/ext/libxml/ruby_xml_encoding.c +250 -250
  22. data/ext/libxml/ruby_xml_encoding.h +20 -18
  23. data/ext/libxml/ruby_xml_error.c +1003 -996
  24. data/ext/libxml/ruby_xml_error.h +14 -14
  25. data/ext/libxml/ruby_xml_html_parser.c +91 -91
  26. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  27. data/ext/libxml/ruby_xml_html_parser_context.c +364 -337
  28. data/ext/libxml/ruby_xml_html_parser_context.h +11 -10
  29. data/ext/libxml/ruby_xml_html_parser_options.c +48 -48
  30. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  31. data/ext/libxml/ruby_xml_input_cbg.c +216 -188
  32. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  33. data/ext/libxml/ruby_xml_io.c +49 -47
  34. data/ext/libxml/ruby_xml_io.h +10 -10
  35. data/ext/libxml/ruby_xml_namespace.c +159 -154
  36. data/ext/libxml/ruby_xml_namespace.h +11 -10
  37. data/ext/libxml/ruby_xml_namespaces.c +313 -293
  38. data/ext/libxml/ruby_xml_namespaces.h +9 -9
  39. data/ext/libxml/ruby_xml_node.c +1433 -1398
  40. data/ext/libxml/ruby_xml_node.h +15 -13
  41. data/ext/libxml/ruby_xml_parser.c +91 -91
  42. data/ext/libxml/ruby_xml_parser.h +10 -10
  43. data/ext/libxml/ruby_xml_parser_context.c +1016 -1001
  44. data/ext/libxml/ruby_xml_parser_context.h +11 -10
  45. data/ext/libxml/ruby_xml_parser_options.c +74 -66
  46. data/ext/libxml/ruby_xml_parser_options.h +10 -10
  47. data/ext/libxml/ruby_xml_reader.c +40 -31
  48. data/ext/libxml/ruby_xml_reader.h +14 -14
  49. data/ext/libxml/ruby_xml_registry.c +31 -0
  50. data/ext/libxml/ruby_xml_registry.h +22 -0
  51. data/ext/libxml/ruby_xml_relaxng.c +21 -5
  52. data/ext/libxml/ruby_xml_relaxng.h +9 -8
  53. data/ext/libxml/ruby_xml_sax2_handler.c +326 -326
  54. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  55. data/ext/libxml/ruby_xml_sax_parser.c +108 -116
  56. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  57. data/ext/libxml/ruby_xml_schema.c +22 -15
  58. data/ext/libxml/ruby_xml_schema.h +26 -25
  59. data/ext/libxml/ruby_xml_schema_attribute.c +7 -7
  60. data/ext/libxml/ruby_xml_schema_attribute.h +37 -37
  61. data/ext/libxml/ruby_xml_schema_element.c +8 -8
  62. data/ext/libxml/ruby_xml_schema_element.h +11 -11
  63. data/ext/libxml/ruby_xml_schema_facet.c +50 -50
  64. data/ext/libxml/ruby_xml_schema_facet.h +9 -9
  65. data/ext/libxml/ruby_xml_schema_type.c +12 -19
  66. data/ext/libxml/ruby_xml_schema_type.h +9 -9
  67. data/ext/libxml/ruby_xml_version.h +9 -9
  68. data/ext/libxml/ruby_xml_writer.c +183 -185
  69. data/ext/libxml/ruby_xml_writer.h +6 -6
  70. data/ext/libxml/ruby_xml_xinclude.c +20 -20
  71. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  72. data/ext/libxml/ruby_xml_xpath.c +195 -195
  73. data/ext/libxml/ruby_xml_xpath.h +15 -15
  74. data/ext/libxml/ruby_xml_xpath_context.c +408 -362
  75. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  76. data/ext/libxml/ruby_xml_xpath_expression.c +12 -6
  77. data/ext/libxml/ruby_xml_xpath_expression.h +11 -10
  78. data/ext/libxml/ruby_xml_xpath_object.c +69 -54
  79. data/ext/libxml/ruby_xml_xpath_object.h +19 -17
  80. data/ext/vc/libxml_ruby/libxml_ruby.vcxproj +271 -0
  81. data/ext/xcode/libxml-ruby.xcodeproj/project.pbxproj +633 -0
  82. data/ext/xcode/libxml-ruby.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  83. data/ext/xcode/libxml-ruby.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  84. data/ext/xcode/libxml-ruby.xcodeproj/xcshareddata/xcschemes/libxml-ruby.xcscheme +80 -0
  85. data/lib/libxml/attr.rb +122 -122
  86. data/lib/libxml/attr_decl.rb +80 -80
  87. data/lib/libxml/attributes.rb +13 -13
  88. data/lib/libxml/document.rb +165 -194
  89. data/lib/libxml/error.rb +122 -95
  90. data/lib/libxml/html_parser.rb +80 -96
  91. data/lib/libxml/namespace.rb +61 -61
  92. data/lib/libxml/namespaces.rb +37 -37
  93. data/lib/libxml/node.rb +321 -323
  94. data/lib/libxml/parser.rb +94 -100
  95. data/lib/libxml/sax_callbacks.rb +179 -179
  96. data/lib/libxml/sax_parser.rb +40 -40
  97. data/lib/libxml/schema/attribute.rb +27 -19
  98. data/lib/libxml/schema/element.rb +20 -0
  99. data/lib/libxml/schema/type.rb +44 -21
  100. data/lib/libxml/schema.rb +47 -47
  101. data/lib/libxml/tree.rb +28 -28
  102. data/lib/libxml-ruby.rb +30 -30
  103. data/libxml-ruby.gemspec +46 -48
  104. data/test/c14n/result/1-1-without-comments/example-1 +3 -3
  105. data/test/c14n/result/1-1-without-comments/example-2 +10 -10
  106. data/test/c14n/result/1-1-without-comments/example-3 +13 -13
  107. data/test/c14n/result/1-1-without-comments/example-4 +8 -8
  108. data/test/c14n/result/1-1-without-comments/example-5 +2 -2
  109. data/test/c14n/result/with-comments/example-1 +5 -5
  110. data/test/c14n/result/with-comments/example-2 +10 -10
  111. data/test/c14n/result/with-comments/example-3 +13 -13
  112. data/test/c14n/result/with-comments/example-4 +8 -8
  113. data/test/c14n/result/with-comments/example-5 +3 -3
  114. data/test/c14n/result/without-comments/example-1 +3 -3
  115. data/test/c14n/result/without-comments/example-2 +10 -10
  116. data/test/c14n/result/without-comments/example-3 +13 -13
  117. data/test/c14n/result/without-comments/example-4 +8 -8
  118. data/test/c14n/result/without-comments/example-5 +2 -2
  119. data/test/test_attr.rb +179 -180
  120. data/test/test_attr_decl.rb +131 -131
  121. data/test/test_attributes.rb +135 -135
  122. data/test/test_canonicalize.rb +122 -120
  123. data/test/test_document.rb +138 -132
  124. data/test/test_document_write.rb +142 -145
  125. data/test/test_dtd.rb +134 -129
  126. data/test/test_encoding.rb +126 -129
  127. data/test/test_encoding_sax.rb +114 -114
  128. data/test/test_error.rb +197 -194
  129. data/test/test_helper.rb +21 -13
  130. data/test/test_html_parser.rb +166 -162
  131. data/test/test_html_parser_context.rb +22 -22
  132. data/test/test_input_callbacks.rb +36 -0
  133. data/test/test_namespace.rb +58 -60
  134. data/test/test_namespaces.rb +200 -200
  135. data/test/test_node.rb +251 -237
  136. data/test/test_node_cdata.rb +50 -50
  137. data/test/test_node_comment.rb +32 -32
  138. data/test/test_node_copy.rb +40 -40
  139. data/test/test_node_edit.rb +176 -158
  140. data/test/test_node_pi.rb +37 -37
  141. data/test/test_node_text.rb +69 -69
  142. data/test/test_node_write.rb +93 -96
  143. data/test/test_node_xlink.rb +28 -28
  144. data/test/test_parser.rb +297 -324
  145. data/test/test_parser_context.rb +198 -198
  146. data/test/test_properties.rb +38 -38
  147. data/test/test_reader.rb +413 -364
  148. data/test/test_relaxng.rb +59 -53
  149. data/test/test_sax_parser.rb +345 -326
  150. data/test/test_schema.rb +28 -0
  151. data/test/test_traversal.rb +152 -152
  152. data/test/test_writer.rb +469 -468
  153. data/test/test_xinclude.rb +20 -20
  154. data/test/test_xml.rb +164 -267
  155. data/test/test_xpath.rb +244 -244
  156. data/test/test_xpath_context.rb +87 -87
  157. data/test/test_xpath_expression.rb +37 -37
  158. metadata +49 -31
  159. data/README.rdoc +0 -217
  160. data/ext/libxml/extconf.h +0 -3
  161. data/ext/libxml/ruby_xml_cbg.c +0 -85
  162. data/lib/libxml/hpricot.rb +0 -78
  163. data/lib/libxml.rb +0 -5
  164. data/lib/xml/libxml.rb +0 -10
  165. data/lib/xml.rb +0 -14
  166. data/script/benchmark/depixelate +0 -634
  167. data/script/benchmark/hamlet.xml +0 -9055
  168. data/script/benchmark/parsecount +0 -170
  169. data/script/benchmark/sock_entries.xml +0 -507
  170. data/script/benchmark/throughput +0 -41
  171. data/script/test +0 -6
  172. data/test/test_deprecated_require.rb +0 -12
@@ -1,13 +1,15 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #ifndef __RXML_NODE__
4
- #define __RXML_NODE__
5
-
6
- extern VALUE cXMLNode;
7
-
8
- void rxml_init_node(void);
9
- void rxml_node_mark(xmlNodePtr xnode);
10
- VALUE rxml_node_wrap(xmlNodePtr xnode);
11
- void rxml_node_manage(xmlNodePtr xnode, VALUE node);
12
- void rxml_node_unmanage(xmlNodePtr xnode, VALUE node);
13
- #endif
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #ifndef __RXML_NODE__
4
+ #define __RXML_NODE__
5
+
6
+ extern VALUE cXMLNode;
7
+ extern const rb_data_type_t rxml_node_data_type;
8
+ extern const rb_data_type_t rxml_node_unmanaged_data_type;
9
+
10
+ void rxml_init_node(void);
11
+ void rxml_node_mark(xmlNodePtr xnode);
12
+ VALUE rxml_node_wrap(xmlNodePtr xnode);
13
+ void rxml_node_manage(xmlNodePtr xnode, VALUE node);
14
+ void rxml_node_unmanage(xmlNodePtr xnode, VALUE node);
15
+ #endif
@@ -1,91 +1,91 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #include <stdarg.h>
4
- #include "ruby_libxml.h"
5
-
6
- /*
7
- * Document-class: LibXML::XML::Parser
8
- *
9
- * The XML::Parser provides a tree based API for processing
10
- * xml documents, in contract to XML::Reader's stream
11
- * based api and XML::SaxParser callback based API.
12
- *
13
- * As a result, parsing a document creates an in-memory document object
14
- * that consist of any number of XML::Node instances. This is simple
15
- * and powerful model, but has the major limitation that the size of
16
- * the document that can be processed is limited by the amount of
17
- * memory available. In such cases, it is better to use the XML::Reader.
18
- *
19
- * Using the parser is simple:
20
- *
21
- * parser = XML::Parser.file('my_file')
22
- * doc = parser.parse
23
- *
24
- * You can also parse documents (see XML::Parser.document),
25
- * strings (see XML::Parser.string) and io objects (see
26
- * XML::Parser.io).
27
- */
28
-
29
- VALUE cXMLParser;
30
- static ID CONTEXT_ATTR;
31
-
32
- /*
33
- * call-seq:
34
- * parser.initialize(context) -> XML::Parser
35
- *
36
- * Creates a new XML::Parser from the specified
37
- * XML::Parser::Context.
38
- */
39
- static VALUE rxml_parser_initialize(int argc, VALUE *argv, VALUE self)
40
- {
41
- VALUE context = Qnil;
42
-
43
- rb_scan_args(argc, argv, "01", &context);
44
-
45
- if (context == Qnil)
46
- {
47
- rb_raise(rb_eArgError, "An instance of a XML::Parser::Context must be passed to XML::Parser.new");
48
- }
49
-
50
- rb_ivar_set(self, CONTEXT_ATTR, context);
51
- return self;
52
- }
53
-
54
- /*
55
- * call-seq:
56
- * parser.parse -> XML::Document
57
- *
58
- * Parse the input XML and create an XML::Document with
59
- * it's content. If an error occurs, XML::Parser::ParseError
60
- * is thrown.
61
- */
62
- static VALUE rxml_parser_parse(VALUE self)
63
- {
64
- xmlParserCtxtPtr ctxt;
65
- VALUE context = rb_ivar_get(self, CONTEXT_ATTR);
66
-
67
- Data_Get_Struct(context, xmlParserCtxt, ctxt);
68
-
69
- if ((xmlParseDocument(ctxt) == -1 || !ctxt->wellFormed) && ! ctxt->recovery)
70
- {
71
- rxml_raise(&ctxt->lastError);
72
- }
73
-
74
- rb_funcall(context, rb_intern("close"), 0);
75
-
76
- return rxml_document_wrap(ctxt->myDoc);
77
- }
78
-
79
- void rxml_init_parser(void)
80
- {
81
- cXMLParser = rb_define_class_under(mXML, "Parser", rb_cObject);
82
-
83
- /* Atributes */
84
- CONTEXT_ATTR = rb_intern("@context");
85
- rb_define_attr(cXMLParser, "input", 1, 0);
86
- rb_define_attr(cXMLParser, "context", 1, 0);
87
-
88
- /* Instance Methods */
89
- rb_define_method(cXMLParser, "initialize", rxml_parser_initialize, -1);
90
- rb_define_method(cXMLParser, "parse", rxml_parser_parse, 0);
91
- }
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #include <stdarg.h>
4
+ #include "ruby_libxml.h"
5
+
6
+ /*
7
+ * Document-class: LibXML::XML::Parser
8
+ *
9
+ * The XML::Parser provides a tree based API for processing
10
+ * xml documents, in contract to XML::Reader's stream
11
+ * based api and XML::SaxParser callback based API.
12
+ *
13
+ * As a result, parsing a document creates an in-memory document object
14
+ * that consist of any number of XML::Node instances. This is simple
15
+ * and powerful model, but has the major limitation that the size of
16
+ * the document that can be processed is limited by the amount of
17
+ * memory available. In such cases, it is better to use the XML::Reader.
18
+ *
19
+ * Using the parser is simple:
20
+ *
21
+ * parser = XML::Parser.file('my_file')
22
+ * doc = parser.parse
23
+ *
24
+ * You can also parse documents (see XML::Parser.document),
25
+ * strings (see XML::Parser.string) and io objects (see
26
+ * XML::Parser.io).
27
+ */
28
+
29
+ VALUE cXMLParser;
30
+ static ID CONTEXT_ATTR;
31
+
32
+ /*
33
+ * call-seq:
34
+ * parser.initialize(context) -> XML::Parser
35
+ *
36
+ * Creates a new XML::Parser from the specified
37
+ * XML::Parser::Context.
38
+ */
39
+ static VALUE rxml_parser_initialize(int argc, VALUE *argv, VALUE self)
40
+ {
41
+ VALUE context = Qnil;
42
+
43
+ rb_scan_args(argc, argv, "01", &context);
44
+
45
+ if (context == Qnil)
46
+ {
47
+ rb_raise(rb_eArgError, "An instance of a XML::Parser::Context must be passed to XML::Parser.new");
48
+ }
49
+
50
+ rb_ivar_set(self, CONTEXT_ATTR, context);
51
+ return self;
52
+ }
53
+
54
+ /*
55
+ * call-seq:
56
+ * parser.parse -> XML::Document
57
+ *
58
+ * Parse the input XML and create an XML::Document with
59
+ * it's content. If an error occurs, XML::Parser::ParseError
60
+ * is thrown.
61
+ */
62
+ static VALUE rxml_parser_parse(VALUE self)
63
+ {
64
+ xmlParserCtxtPtr ctxt;
65
+ VALUE context = rb_ivar_get(self, CONTEXT_ATTR);
66
+
67
+ TypedData_Get_Struct(context, xmlParserCtxt, &rxml_parser_context_type, ctxt);
68
+
69
+ if ((xmlParseDocument(ctxt) == -1 || !ctxt->wellFormed) && ! ctxt->recovery)
70
+ {
71
+ rxml_raise(&ctxt->lastError);
72
+ }
73
+
74
+ rb_funcall(context, rb_intern("close"), 0);
75
+
76
+ return rxml_document_wrap(ctxt->myDoc);
77
+ }
78
+
79
+ void rxml_init_parser(void)
80
+ {
81
+ cXMLParser = rb_define_class_under(mXML, "Parser", rb_cObject);
82
+
83
+ /* Atributes */
84
+ CONTEXT_ATTR = rb_intern("@context");
85
+ rb_define_attr(cXMLParser, "input", 1, 0);
86
+ rb_define_attr(cXMLParser, "context", 1, 0);
87
+
88
+ /* Instance Methods */
89
+ rb_define_method(cXMLParser, "initialize", rxml_parser_initialize, -1);
90
+ rb_define_method(cXMLParser, "parse", rxml_parser_parse, 0);
91
+ }
@@ -1,10 +1,10 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #ifndef __RXML_PARSER__
4
- #define __RXML_PARSER__
5
-
6
- extern VALUE cXMLParser;
7
-
8
- void rxml_init_parser();
9
-
10
- #endif
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #ifndef __RXML_PARSER__
4
+ #define __RXML_PARSER__
5
+
6
+ extern VALUE cXMLParser;
7
+
8
+ void rxml_init_parser(void);
9
+
10
+ #endif