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,12 +1,13 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #ifndef __RXML_ATTR__
4
- #define __RXML_ATTR__
5
-
6
- extern VALUE cXMLAttr;
7
-
8
- void rxml_init_attr(void);
9
- VALUE rxml_attr_wrap(xmlAttrPtr xattr);
10
- VALUE rxml_attr_value_get(VALUE self);
11
- VALUE rxml_attr_value_set(VALUE self, VALUE val);
12
- #endif
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #ifndef __RXML_ATTR__
4
+ #define __RXML_ATTR__
5
+
6
+ extern VALUE cXMLAttr;
7
+ extern const rb_data_type_t rxml_attr_type;
8
+
9
+ void rxml_init_attr(void);
10
+ VALUE rxml_attr_wrap(xmlAttrPtr xattr);
11
+ VALUE rxml_attr_value_get(VALUE self);
12
+ VALUE rxml_attr_value_set(VALUE self, VALUE val);
13
+ #endif
@@ -13,14 +13,21 @@
13
13
 
14
14
  VALUE cXMLAttrDecl;
15
15
 
16
- void rxml_attr_decl_mark(xmlAttributePtr xattr)
16
+ static void rxml_attr_decl_mark(void *data)
17
17
  {
18
- rxml_node_mark((xmlNodePtr) xattr);
18
+ xmlAttributePtr xattr = (xmlAttributePtr)data;
19
+ rxml_node_mark((xmlNodePtr)xattr);
19
20
  }
20
21
 
22
+ static const rb_data_type_t rxml_attr_decl_type = {
23
+ "LibXML::XML::AttrDecl",
24
+ {rxml_attr_decl_mark, NULL, 0},
25
+ &rxml_attr_type, 0, RUBY_TYPED_FREE_IMMEDIATELY
26
+ };
27
+
21
28
  VALUE rxml_attr_decl_wrap(xmlAttributePtr xattr)
22
29
  {
23
- return Data_Wrap_Struct(cXMLAttrDecl, rxml_attr_decl_mark, NULL, xattr);
30
+ return TypedData_Wrap_Struct(cXMLAttrDecl, &rxml_attr_decl_type, xattr);
24
31
  }
25
32
 
26
33
  /*
@@ -32,11 +39,11 @@ VALUE rxml_attr_decl_wrap(xmlAttributePtr xattr)
32
39
  static VALUE rxml_attr_decl_doc_get(VALUE self)
33
40
  {
34
41
  xmlAttributePtr xattr;
35
- Data_Get_Struct(self, xmlAttribute, xattr);
42
+ TypedData_Get_Struct(self, xmlAttribute, &rxml_attr_decl_type, xattr);
36
43
  if (xattr->doc == NULL)
37
44
  return Qnil;
38
45
  else
39
- return rxml_document_wrap(xattr->doc);
46
+ return rxml_registry_lookup(xattr->doc);
40
47
  }
41
48
 
42
49
 
@@ -49,7 +56,7 @@ static VALUE rxml_attr_decl_doc_get(VALUE self)
49
56
  static VALUE rxml_attr_decl_name_get(VALUE self)
50
57
  {
51
58
  xmlAttributePtr xattr;
52
- Data_Get_Struct(self, xmlAttribute, xattr);
59
+ TypedData_Get_Struct(self, xmlAttribute, &rxml_attr_decl_type, xattr);
53
60
 
54
61
  if (xattr->name == NULL)
55
62
  return Qnil;
@@ -66,7 +73,7 @@ static VALUE rxml_attr_decl_name_get(VALUE self)
66
73
  static VALUE rxml_attr_decl_next_get(VALUE self)
67
74
  {
68
75
  xmlAttributePtr xattr;
69
- Data_Get_Struct(self, xmlAttribute, xattr);
76
+ TypedData_Get_Struct(self, xmlAttribute, &rxml_attr_decl_type, xattr);
70
77
  if (xattr->next == NULL)
71
78
  return Qnil;
72
79
  else
@@ -81,8 +88,8 @@ static VALUE rxml_attr_decl_next_get(VALUE self)
81
88
  */
82
89
  static VALUE rxml_attr_decl_node_type(VALUE self)
83
90
  {
84
- xmlAttrPtr xattr;
85
- Data_Get_Struct(self, xmlAttr, xattr);
91
+ xmlAttributePtr xattr;
92
+ TypedData_Get_Struct(self, xmlAttribute, &rxml_attr_decl_type, xattr);
86
93
  return INT2NUM(xattr->type);
87
94
  }
88
95
 
@@ -96,7 +103,7 @@ static VALUE rxml_attr_decl_node_type(VALUE self)
96
103
  static VALUE rxml_attr_decl_parent_get(VALUE self)
97
104
  {
98
105
  xmlAttributePtr xattr;
99
- Data_Get_Struct(self, xmlAttribute, xattr);
106
+ TypedData_Get_Struct(self, xmlAttribute, &rxml_attr_decl_type, xattr);
100
107
 
101
108
  if (xattr->parent == NULL)
102
109
  return Qnil;
@@ -114,7 +121,7 @@ static VALUE rxml_attr_decl_parent_get(VALUE self)
114
121
  static VALUE rxml_attr_decl_prev_get(VALUE self)
115
122
  {
116
123
  xmlAttributePtr xattr;
117
- Data_Get_Struct(self, xmlAttribute, xattr);
124
+ TypedData_Get_Struct(self, xmlAttribute, &rxml_attr_decl_type, xattr);
118
125
 
119
126
  if (xattr->prev == NULL)
120
127
  return Qnil;
@@ -132,7 +139,7 @@ VALUE rxml_attr_decl_value_get(VALUE self)
132
139
  {
133
140
  xmlAttributePtr xattr;
134
141
 
135
- Data_Get_Struct(self, xmlAttribute, xattr);
142
+ TypedData_Get_Struct(self, xmlAttribute, &rxml_attr_decl_type, xattr);
136
143
 
137
144
  if (xattr->defaultValue)
138
145
  return rxml_new_cstr(xattr->defaultValue, NULL);
@@ -1,11 +1,11 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #ifndef __RXML_ATTR_DECL__
4
- #define __RXML_ATTR_DECL__
5
-
6
- extern VALUE cXMLAttrDecl;
7
-
8
- void rxml_init_attr_decl(void);
9
- VALUE rxml_attr_decl_wrap(xmlAttributePtr xattribute);
10
- VALUE rxml_attr_decl_value_get(VALUE self);
11
- #endif
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #ifndef __RXML_ATTR_DECL__
4
+ #define __RXML_ATTR_DECL__
5
+
6
+ extern VALUE cXMLAttrDecl;
7
+
8
+ void rxml_init_attr_decl(void);
9
+ VALUE rxml_attr_decl_wrap(xmlAttributePtr xattribute);
10
+ VALUE rxml_attr_decl_value_get(VALUE self);
11
+ #endif
@@ -32,17 +32,26 @@
32
32
 
33
33
  VALUE cXMLAttributes;
34
34
 
35
- void rxml_attributes_mark(xmlNodePtr xnode)
35
+ void rxml_attributes_mark(void *data)
36
36
  {
37
- rxml_node_mark(xnode);
37
+ rxml_node_mark((xmlNodePtr)data);
38
38
  }
39
39
 
40
+ static const rb_data_type_t rxml_attributes_data_type = {
41
+ .wrap_struct_name = "LibXML::XML::Attributes",
42
+ .function = {
43
+ .dmark = rxml_attributes_mark,
44
+ .dfree = NULL,
45
+ },
46
+ .flags = RUBY_TYPED_FREE_IMMEDIATELY,
47
+ };
48
+
40
49
  /*
41
50
  * Creates a new attributes instance. Not exposed to ruby.
42
51
  */
43
52
  VALUE rxml_attributes_new(xmlNodePtr xnode)
44
53
  {
45
- return Data_Wrap_Struct(cXMLAttributes, rxml_attributes_mark, NULL, xnode);
54
+ return TypedData_Wrap_Struct(cXMLAttributes, &rxml_attributes_data_type, xnode);
46
55
  }
47
56
 
48
57
  /*
@@ -56,7 +65,7 @@ VALUE rxml_attributes_new(xmlNodePtr xnode)
56
65
  VALUE rxml_attributes_node_get(VALUE self)
57
66
  {
58
67
  xmlNodePtr xnode;
59
- Data_Get_Struct(self, xmlNode, xnode);
68
+ TypedData_Get_Struct(self, xmlNode, &rxml_attributes_data_type, xnode);
60
69
  return rxml_node_wrap(xnode);
61
70
  }
62
71
 
@@ -80,7 +89,7 @@ static VALUE rxml_attributes_get_attribute(VALUE self, VALUE name)
80
89
 
81
90
  name = rb_obj_as_string(name);
82
91
 
83
- Data_Get_Struct(self, xmlNode, xnode);
92
+ TypedData_Get_Struct(self, xmlNode, &rxml_attributes_data_type, xnode);
84
93
 
85
94
  xattr = xmlHasProp(xnode, (xmlChar*) StringValuePtr(name));
86
95
 
@@ -114,7 +123,7 @@ static VALUE rxml_attributes_get_attribute_ns(VALUE self, VALUE namespace,
114
123
 
115
124
  name = rb_obj_as_string(name);
116
125
 
117
- Data_Get_Struct(self, xmlNode, xnode);
126
+ TypedData_Get_Struct(self, xmlNode, &rxml_attributes_data_type, xnode);
118
127
 
119
128
  xattr = xmlHasNsProp(xnode, (xmlChar*) StringValuePtr(name),
120
129
  (xmlChar*) StringValuePtr(namespace));
@@ -191,7 +200,7 @@ static VALUE rxml_attributes_each(VALUE self)
191
200
  {
192
201
  xmlNodePtr xnode;
193
202
  xmlAttrPtr xattr;
194
- Data_Get_Struct(self, xmlNode, xnode);
203
+ TypedData_Get_Struct(self, xmlNode, &rxml_attributes_data_type, xnode);
195
204
 
196
205
  xattr = xnode->properties;
197
206
 
@@ -222,7 +231,7 @@ static VALUE rxml_attributes_length(VALUE self)
222
231
  int length = 0;
223
232
  xmlNodePtr xnode;
224
233
  xmlAttrPtr xattr;
225
- Data_Get_Struct(self, xmlNode, xnode);
234
+ TypedData_Get_Struct(self, xmlNode, &rxml_attributes_data_type, xnode);
226
235
 
227
236
  xattr = xnode->properties;
228
237
 
@@ -246,7 +255,7 @@ static VALUE rxml_attributes_length(VALUE self)
246
255
  static VALUE rxml_attributes_first(VALUE self)
247
256
  {
248
257
  xmlNodePtr xnode;
249
- Data_Get_Struct(self, xmlNode, xnode);
258
+ TypedData_Get_Struct(self, xmlNode, &rxml_attributes_data_type, xnode);
250
259
 
251
260
  if (xnode->type == XML_ELEMENT_NODE)
252
261
  {
@@ -1,15 +1,17 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #ifndef __RXML_ATTRIBUTES__
4
- #define __RXML_ATTRIBUTES__
5
-
6
- extern VALUE cXMLAttributesibutes;
7
-
8
- void rxml_init_attributes(void);
9
- VALUE rxml_attributes_new(xmlNodePtr xnode);
10
-
11
- VALUE rxml_attributes_attribute_get(VALUE self, VALUE name);
12
- VALUE rxml_attributes_attribute_set(VALUE self, VALUE name, VALUE value);
13
-
14
-
15
- #endif
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #ifndef __RXML_ATTRIBUTES__
4
+ #define __RXML_ATTRIBUTES__
5
+
6
+ #include <libxml/tree.h>
7
+
8
+ extern VALUE cXMLAttributesibutes;
9
+
10
+ void rxml_init_attributes(void);
11
+ VALUE rxml_attributes_new(xmlNodePtr xnode);
12
+
13
+ VALUE rxml_attributes_attribute_get(VALUE self, VALUE name);
14
+ VALUE rxml_attributes_attribute_set(VALUE self, VALUE name, VALUE value);
15
+
16
+
17
+ #endif