libxml-ruby 2.8.0 → 3.2.1

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 (204) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY +842 -775
  3. data/LICENSE +20 -20
  4. data/MANIFEST +166 -166
  5. data/README.rdoc +217 -184
  6. data/Rakefile +90 -78
  7. data/ext/libxml/extconf.h +3 -0
  8. data/ext/libxml/extconf.rb +61 -116
  9. data/ext/libxml/libxml.c +80 -76
  10. data/ext/libxml/ruby_libxml.h +67 -75
  11. data/ext/libxml/ruby_xml.c +933 -893
  12. data/ext/libxml/ruby_xml.h +10 -10
  13. data/ext/libxml/ruby_xml_attr.c +333 -333
  14. data/ext/libxml/ruby_xml_attr.h +12 -12
  15. data/ext/libxml/ruby_xml_attr_decl.c +153 -153
  16. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  17. data/ext/libxml/ruby_xml_attributes.c +275 -275
  18. data/ext/libxml/ruby_xml_attributes.h +15 -15
  19. data/ext/libxml/ruby_xml_cbg.c +85 -85
  20. data/ext/libxml/ruby_xml_document.c +1123 -1147
  21. data/ext/libxml/ruby_xml_document.h +11 -11
  22. data/ext/libxml/ruby_xml_dtd.c +248 -268
  23. data/ext/libxml/ruby_xml_dtd.h +9 -9
  24. data/ext/libxml/ruby_xml_encoding.c +250 -260
  25. data/ext/libxml/ruby_xml_encoding.h +16 -19
  26. data/ext/libxml/ruby_xml_error.c +996 -996
  27. data/ext/libxml/ruby_xml_error.h +12 -12
  28. data/ext/libxml/ruby_xml_html_parser.c +89 -92
  29. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  30. data/ext/libxml/ruby_xml_html_parser_context.c +337 -338
  31. data/ext/libxml/ruby_xml_html_parser_context.h +10 -10
  32. data/ext/libxml/ruby_xml_html_parser_options.c +46 -46
  33. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  34. data/ext/libxml/ruby_xml_input_cbg.c +191 -191
  35. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  36. data/ext/libxml/ruby_xml_io.c +47 -50
  37. data/ext/libxml/ruby_xml_io.h +10 -10
  38. data/ext/libxml/ruby_xml_namespace.c +153 -153
  39. data/ext/libxml/ruby_xml_namespace.h +10 -10
  40. data/ext/libxml/ruby_xml_namespaces.c +293 -293
  41. data/ext/libxml/ruby_xml_namespaces.h +9 -9
  42. data/ext/libxml/ruby_xml_node.c +1402 -1452
  43. data/ext/libxml/ruby_xml_node.h +13 -11
  44. data/ext/libxml/ruby_xml_parser.c +91 -94
  45. data/ext/libxml/ruby_xml_parser.h +12 -12
  46. data/ext/libxml/ruby_xml_parser_context.c +999 -1001
  47. data/ext/libxml/ruby_xml_parser_context.h +10 -10
  48. data/ext/libxml/ruby_xml_parser_options.c +66 -66
  49. data/ext/libxml/ruby_xml_parser_options.h +12 -12
  50. data/ext/libxml/ruby_xml_reader.c +1239 -1228
  51. data/ext/libxml/ruby_xml_reader.h +17 -17
  52. data/ext/libxml/ruby_xml_relaxng.c +110 -111
  53. data/ext/libxml/ruby_xml_relaxng.h +10 -10
  54. data/ext/libxml/ruby_xml_sax2_handler.c +326 -328
  55. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  56. data/ext/libxml/ruby_xml_sax_parser.c +116 -120
  57. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  58. data/ext/libxml/ruby_xml_schema.c +278 -301
  59. data/ext/libxml/ruby_xml_schema.h +809 -809
  60. data/ext/libxml/ruby_xml_schema_attribute.c +109 -109
  61. data/ext/libxml/ruby_xml_schema_attribute.h +15 -15
  62. data/ext/libxml/ruby_xml_schema_element.c +95 -94
  63. data/ext/libxml/ruby_xml_schema_element.h +14 -14
  64. data/ext/libxml/ruby_xml_schema_facet.c +52 -52
  65. data/ext/libxml/ruby_xml_schema_facet.h +13 -13
  66. data/ext/libxml/ruby_xml_schema_type.c +232 -259
  67. data/ext/libxml/ruby_xml_schema_type.h +9 -9
  68. data/ext/libxml/ruby_xml_version.h +9 -9
  69. data/ext/libxml/ruby_xml_writer.c +1133 -1137
  70. data/ext/libxml/ruby_xml_writer.h +10 -10
  71. data/ext/libxml/ruby_xml_xinclude.c +16 -16
  72. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  73. data/ext/libxml/ruby_xml_xpath.c +194 -188
  74. data/ext/libxml/ruby_xml_xpath.h +13 -13
  75. data/ext/libxml/ruby_xml_xpath_context.c +360 -361
  76. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  77. data/ext/libxml/ruby_xml_xpath_expression.c +81 -81
  78. data/ext/libxml/ruby_xml_xpath_expression.h +10 -10
  79. data/ext/libxml/ruby_xml_xpath_object.c +338 -335
  80. data/ext/libxml/ruby_xml_xpath_object.h +17 -17
  81. data/ext/libxml/ruby_xml_xpointer.c +99 -99
  82. data/ext/libxml/ruby_xml_xpointer.h +11 -11
  83. data/ext/vc/libxml_ruby.sln +17 -15
  84. data/lib/libxml-ruby.rb +30 -0
  85. data/lib/libxml.rb +3 -33
  86. data/lib/libxml/node.rb +2 -78
  87. data/lib/libxml/parser.rb +0 -266
  88. data/lib/libxml/sax_parser.rb +0 -17
  89. data/lib/libxml/schema.rb +47 -66
  90. data/lib/libxml/schema/attribute.rb +19 -19
  91. data/lib/libxml/schema/element.rb +19 -27
  92. data/lib/libxml/schema/type.rb +21 -29
  93. data/libxml-ruby.gemspec +48 -44
  94. data/script/benchmark/depixelate +634 -634
  95. data/script/benchmark/hamlet.xml +9054 -9054
  96. data/script/benchmark/parsecount +170 -170
  97. data/script/benchmark/throughput +41 -41
  98. data/script/test +6 -6
  99. data/setup.rb +0 -1
  100. data/test/c14n/given/example-1.xml +14 -14
  101. data/test/c14n/given/example-2.xml +11 -11
  102. data/test/c14n/given/example-3.xml +18 -18
  103. data/test/c14n/given/example-4.xml +9 -9
  104. data/test/c14n/given/example-5.xml +12 -12
  105. data/test/c14n/given/example-6.xml +2 -2
  106. data/test/c14n/given/example-7.xml +11 -11
  107. data/test/c14n/given/example-8.xml +11 -11
  108. data/test/c14n/given/example-8.xpath +9 -9
  109. data/test/c14n/result/1-1-without-comments/example-1 +3 -3
  110. data/test/c14n/result/1-1-without-comments/example-2 +10 -10
  111. data/test/c14n/result/1-1-without-comments/example-3 +13 -13
  112. data/test/c14n/result/1-1-without-comments/example-4 +8 -8
  113. data/test/c14n/result/1-1-without-comments/example-5 +2 -2
  114. data/test/c14n/result/with-comments/example-1 +5 -5
  115. data/test/c14n/result/with-comments/example-2 +10 -10
  116. data/test/c14n/result/with-comments/example-3 +13 -13
  117. data/test/c14n/result/with-comments/example-4 +8 -8
  118. data/test/c14n/result/with-comments/example-5 +3 -3
  119. data/test/c14n/result/without-comments/example-1 +3 -3
  120. data/test/c14n/result/without-comments/example-2 +10 -10
  121. data/test/c14n/result/without-comments/example-3 +13 -13
  122. data/test/c14n/result/without-comments/example-4 +8 -8
  123. data/test/c14n/result/without-comments/example-5 +2 -2
  124. data/test/model/atom.xml +12 -12
  125. data/test/model/bands.iso-8859-1.xml +4 -4
  126. data/test/model/bands.utf-8.xml +4 -4
  127. data/test/model/bands.xml +4 -4
  128. data/test/model/books.xml +153 -153
  129. data/test/model/cwm_1_0.xml +11336 -0
  130. data/test/model/merge_bug_data.xml +58 -58
  131. data/test/model/ruby-lang.html +238 -238
  132. data/test/model/rubynet.xml +79 -79
  133. data/test/model/shiporder.rnc +28 -28
  134. data/test/model/shiporder.rng +86 -86
  135. data/test/model/shiporder.xml +22 -22
  136. data/test/model/shiporder.xsd +39 -39
  137. data/test/model/soap.xml +27 -27
  138. data/test/model/xinclude.xml +4 -4
  139. data/test/test.xml +2 -0
  140. data/test/{tc_attr.rb → test_attr.rb} +23 -25
  141. data/test/{tc_attr_decl.rb → test_attr_decl.rb} +13 -14
  142. data/test/{tc_attributes.rb → test_attributes.rb} +11 -18
  143. data/test/{tc_canonicalize.rb → test_canonicalize.rb} +36 -41
  144. data/test/test_deprecated_require.rb +12 -0
  145. data/test/{tc_document.rb → test_document.rb} +32 -27
  146. data/test/test_document_write.rb +146 -0
  147. data/test/{tc_dtd.rb → test_dtd.rb} +28 -29
  148. data/test/{tc_encoding.rb → test_encoding.rb} +129 -126
  149. data/test/{tc_encoding_sax.rb → test_encoding_sax.rb} +7 -6
  150. data/test/test_error.rb +178 -0
  151. data/test/test_helper.rb +3 -10
  152. data/test/test_html_parser.rb +162 -0
  153. data/test/test_html_parser_context.rb +23 -0
  154. data/test/test_namespace.rb +60 -0
  155. data/test/{tc_namespaces.rb → test_namespaces.rb} +34 -44
  156. data/test/{tc_node.rb → test_node.rb} +68 -47
  157. data/test/{tc_node_cdata.rb → test_node_cdata.rb} +12 -13
  158. data/test/{tc_node_comment.rb → test_node_comment.rb} +7 -8
  159. data/test/{tc_node_copy.rb → test_node_copy.rb} +4 -6
  160. data/test/{tc_node_edit.rb → test_node_edit.rb} +23 -41
  161. data/test/{tc_node_pi.rb → test_node_pi.rb} +37 -40
  162. data/test/{tc_node_text.rb → test_node_text.rb} +10 -12
  163. data/test/{tc_node_write.rb → test_node_write.rb} +18 -29
  164. data/test/test_node_xlink.rb +28 -0
  165. data/test/test_parser.rb +324 -0
  166. data/test/{tc_parser_context.rb → test_parser_context.rb} +41 -42
  167. data/test/{tc_properties.rb → test_properties.rb} +6 -7
  168. data/test/test_reader.rb +363 -0
  169. data/test/test_relaxng.rb +53 -0
  170. data/test/{tc_sax_parser.rb → test_sax_parser.rb} +36 -37
  171. data/test/{tc_schema.rb → test_schema.rb} +43 -37
  172. data/test/test_suite.rb +38 -40
  173. data/test/{tc_traversal.rb → test_traversal.rb} +5 -6
  174. data/test/{tc_writer.rb → test_writer.rb} +468 -448
  175. data/test/{tc_xinclude.rb → test_xinclude.rb} +4 -5
  176. data/test/test_xml.rb +262 -0
  177. data/test/{tc_xpath.rb → test_xpath.rb} +31 -32
  178. data/test/{tc_xpath_context.rb → test_xpath_context.rb} +8 -9
  179. data/test/test_xpath_expression.rb +37 -0
  180. data/test/{tc_xpointer.rb → test_xpointer.rb} +16 -18
  181. metadata +117 -95
  182. data/lib/libxml/ns.rb +0 -22
  183. data/lib/libxml/properties.rb +0 -23
  184. data/lib/libxml/reader.rb +0 -29
  185. data/lib/libxml/xpath_object.rb +0 -16
  186. data/test/etc_doc_to_s.rb +0 -21
  187. data/test/ets_doc_file.rb +0 -17
  188. data/test/ets_doc_to_s.rb +0 -23
  189. data/test/ets_gpx.rb +0 -28
  190. data/test/ets_node_gc.rb +0 -23
  191. data/test/ets_test.xml +0 -2
  192. data/test/ets_tsr.rb +0 -11
  193. data/test/tc_deprecated_require.rb +0 -13
  194. data/test/tc_document_write.rb +0 -196
  195. data/test/tc_error.rb +0 -180
  196. data/test/tc_html_parser.rb +0 -153
  197. data/test/tc_html_parser_context.rb +0 -24
  198. data/test/tc_namespace.rb +0 -62
  199. data/test/tc_node_xlink.rb +0 -29
  200. data/test/tc_parser.rb +0 -381
  201. data/test/tc_reader.rb +0 -400
  202. data/test/tc_relaxng.rb +0 -54
  203. data/test/tc_xml.rb +0 -226
  204. data/test/tc_xpath_expression.rb +0 -38
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 0b6519d153d5b2c7dfeb51820c994b2d5594e96c
4
- data.tar.gz: 53f1b868aa8c8834db3af1c1fc1bc79ac7f3babd
2
+ SHA256:
3
+ metadata.gz: f8b07d4dd732e06fdc8d4ffefcc9f9ea4a2a70faf8504bfdc1ef064e466656f9
4
+ data.tar.gz: 31fb804f2d87c2b3db049eb24eb2086bbaadc8a3850314060bc066fa87b078f9
5
5
  SHA512:
6
- metadata.gz: 4e91bc40ec03976a3f81fdc1376432c040503757317f14c998a41f31bdbddc0d08a339fa516e4ea089a9332d8454d053bef0a665cbefd1d9932cd1363e3d7d47
7
- data.tar.gz: f41504c67abddf5ed8e8153bc8e55534020b9df2d71f58810351212291dbf78a082d6633636fdb002c16ea21e7c919c0327d88d078620780df1c85924b0a8c36
6
+ metadata.gz: 21126d00b18029300b5d49d32d4534071453d1dfb76e51fbc86d311e47779e606885fe792ca3bc58aab98bafe8dc3e4153cefce5f9bdb41db47755fba00ed44f
7
+ data.tar.gz: f510878992373c898082dfd6291bf6fb4d1b8d096095d08ec2a2550ca99f3b0bcc22b53d230f314e05a3e3fed17e8caf3fea9cc49f5fa682b6c39d44ece876db
data/HISTORY CHANGED
@@ -1,775 +1,842 @@
1
- = Release History
2
-
3
- == 2.8.0 / 2015-01-09 Charlie Savage
4
-
5
- * Use RbConfig instead of Config in extconf.rb (Robert Haines)
6
- * Correct xpath documentation XML (Bill Mill)
7
- * Correct from_string method documentation (Bill Mill)
8
- * Fix compile error with debug not enabled in libxml (Patrick Ziegler)
9
- * Update gemspec to include license (Charlie Savage)
10
- * In XML::Writer prevent writing to io while being GCed (Brett Gibson)
11
-
12
- == 2.7.0 / 2013-08-13 Charlie Savage
13
-
14
- * Don't call rb_warning in GC mark function (Dirkjan Bussink)
15
- * Set libxml error handler when a libxml-ruby error handler is set (Geoffrey Giesemann)
16
- * Fix tests for nil TypeErrors for ruby 2.0=< (Geoffrey Giesemann)
17
- * Fix segmentation fault for issue #62 (Charlie Savage)
18
- * Add #node_type method to dtd (Charlie Savage)
19
- * Fixing equality check of LibXML::XML::Error against other objects (Michał Szajbe)
20
- * Fix #63, XML::Writer.set_quote_char UT, wrong expected string (julp)
21
- * Fix potential segfault when GC occurs while creating ns from xpath (Timothy Elliott)
22
- * Fix for #59, segmentation fault after failure to load external schema (Clifford Heath)
23
-
24
- == 2.6.0 / 2013-02-16 Charlie Savage
25
-
26
- * Fix uninitialized constant LibXML::XML::Error::I18N (NameError) that occurred
27
- with older versions of libxml.
28
- * Various updates/fixes to new XML::Writer class and update how flushing works (julp)
29
-
30
- == 2.5.0 / 2013-01-27 Charlie Savage
31
-
32
- * Compatibility with older versions for IO::write (rb_io_bufwrite is specific to ruby >= 1.9.3?)
33
- and symbols are VALUE not ID (julp).
34
- * Fix version for xmlTextWriterSetQuoteChar, it appeared in libxml2 2.9.0, last version (julp)
35
- * Update use of LIBXML_VERSION (julp).
36
- * Fix misuse of rb_scan_args (julp).
37
- * Update documentation, including DTD docs and added XML Writer (julp).
38
- * Added a new XML::Writer class (julp).
39
- * Improved xml reader api and add namespace support. Note that passing a numeric value
40
- to XML::Reader::move_to_attribute has been deprecated. Instead you should now
41
- use #move_to_attribute_no. (julp).
42
- * Improve error handling and messages (Jarl Friis)
43
-
44
- == 2.4.0 / 2012-12-14 Charlie Savage
45
-
46
- * Support libxml 2.9.0 (Daniel Veillard)
47
-
48
- * Extensive new interfaces for xml schema functionality including suppor for
49
- schemal elements, types, facets and attributes (Anton Sozontov)
50
-
51
- * Fix Encoding#from_s bug and update docs (Nikita Afanasenko)
52
-
53
- * Node#content= encoding (Nikita Afanasenko)
54
-
55
- == 2.3.3 / 2012-07-01 Charlie Savage
56
-
57
- * Add LibXML::XML::Error.get_handler (Carsten Zimmermann)
58
- * Fix variable name in example (Marcus)
59
-
60
- == 2.3.2 / 2012-03-20 Charlie Savage
61
-
62
- * Define various canonicalize constants to support libxml2 versions
63
- older than 1.1.25 (thanks Apple!)
64
-
65
- == 2.3.1 / 2012-03-20 Charlie Savage
66
-
67
- * Yanked - didn't fix the OSX canonicalize issue
68
-
69
- == 2.3.0 / 2012-03-18 Charlie Savage
70
-
71
- * Add ability to insert new PI-nodes into the xmltree (Axel Struebing).
72
-
73
- * Added full pass-through access to libxml2 xmlC14NDocDumpMemory method via
74
- LibXML::XML::Document#canonicalize method with optional arguments.
75
-
76
- * Added full test data for C14N based off of W3C spec.
77
- (http://www.w3.org/TR/xml-c14n#Examples)
78
-
79
- * Update sax handler to support encodings on Ruby 1.9 and higher.
80
-
81
- == 2.2.2 / 2011-08-29 Charlie Savage
82
-
83
- * ++API CHANGE+++
84
-
85
- Reader#relax_ng_validate now takes a RelaxNG object. This is
86
- what the documentation has always said it takes, but it previously
87
- took a string. In addition, it now returns true or false instead of 0 or -1.
88
-
89
- Reader#schema_validate now takes a Schema object. This is
90
- what the documentation has always said it takes, but it previously
91
- took a string. In addition, it now returns true or false instead of 0 or -1.
92
-
93
- Fixes GitHub issue #30.
94
-
95
- * Added Parser::Context#close and HTMLParser::Context#close methods that
96
- allow the underlying io stream (file, string, etc) to be closed. Once a
97
- parser is done parsing its data, it now calls one of these methods.
98
- This means that if you parse thousands of files at the same time,
99
- without running Ruby's garbage colllector, you won't get a too
100
- many files open error. Fixes GitHub issue #29.
101
-
102
- * Fixed bug where Node#inner_xml caused an error when it had no child nodes.
103
- Fixes GitHub issues #31
104
-
105
- * Don't require 'rake' in the gemspec to avoid annoying Bundler bugs
106
-
107
- == 2.2.1 / 2011-08-13 Charlie Savage
108
-
109
- * Packaging fix - include the custom .def file in the gem.
110
-
111
- == 2.2.0 / 2011-08-09 Charlie Savage
112
-
113
- * Update encoding support for Ruby 1.9 so that libxml-ruby returns
114
- strings encoded in UTF-8. This change was required since libxml internally
115
- stores strings in UTF-8. The exceptions to this rule are the #to_s methods
116
- which return UTF-8 by default but can return other encodings if requested.
117
-
118
- == 2.1.2 / 2011-08-03 Charlie Savage
119
-
120
- * Fix segmentation fault that could occur when an XPathContext was marked
121
- before it was fully initialized (Charlie Savage).
122
-
123
- * Add mark method to document to mark all nodes currently being accessed
124
- by ruby. This make Ruby Enterprise Edition happy (Charlie Savage).
125
-
126
- == 2.1.1 / 2011-07-31 Charlie Savage
127
-
128
- * Switch to using def files to control library exports (Charlie Savage).
129
-
130
- == 2.1.0 / 2011-07-31 Charlie Savage
131
-
132
- * Ruby 1.9.3 compatability (Charlie Savage).
133
-
134
- * Added XPath expression <-> Ruby value conversion methods (Jens Wille).
135
-
136
- * Extracted rxml_xpath_to_value from rxml_xpath_context_find (Jens Wille).
137
-
138
- * Adapted rxml_xpath_from_value from Gregoire Lejeune's ruby-xslt
139
- library, see https://github.com/glejeune/ruby-xslt (Jens Wille).
140
-
141
- * Allow calling #find on nodes returned from Reader (Charlie Savage).
142
-
143
- * Change document handling in XPath::Context to address segmentation fault on
144
- Ruby Enterprise Edition (Charlie Savage).
145
-
146
- * Update gemspec file to work directly with bundler thereby allowing git
147
- repository to be used as gem (Charlie Savage).
148
-
149
- * Support gem buld (Charlie Savage).
150
-
151
- * Simplify memory management of attributes namespaces to fix
152
- segmentation faults that occurred when using Ruby 1.9.3 (Charlie Savage).
153
-
154
-
155
- == 2.0.8 / 2011-06-23 Charlie Savage
156
-
157
- * Add in 2 new HTML Parser constants - NODEFDTD and NOIMPLIED.
158
-
159
- * Fix compile issue on Ruby 1.9.3
160
-
161
- == 2.0.6 / 2011-05-23 Charlie Savage
162
-
163
- * Fix segfault that sometimes occurred when looking up encodings on 1.9.
164
- In some cases the Ruby encoding infrastructure was not properly
165
- initialized (nkriege).
166
-
167
- == 2.0.5 / 2011-05-05 Charlie Savage
168
-
169
- * Document#validate_dtd would sometimes cause segmentation faults due to
170
- an improperly initialized data structure (Charlie Savage)
171
-
172
- == 2.0.4 / 2011-05-02 Charlie Savage
173
-
174
- * Fix compile issues on platforms using older versions of libxml2.
175
- The problem as using a C14N constants that was added to libxml2
176
- in July 2009 (Charlie Savage).
177
-
178
- == 2.0.3 / 2011-05-01 Charlie Savage
179
-
180
- * The biggest change in this release is supporting the use of libxml-ruby in
181
- native background Ruby threads. Previously, the use of libxml-ruby in
182
- background threads in Ruby 1.9.x and higher would often cause
183
- segmentation faults. This has now been fixed (Charlie Savage).
184
-
185
- * Update Reader#expand so that returned node correctly remembers its
186
- encoding in Ruby 1.9.x (zerebubuth).
187
-
188
- * Add check to verify a node has not been deleted. This can happen when
189
- a ruby variable holds a reference to a child node that gets freed
190
- when its parent gets freed. Previously when this happened a
191
- segmentation fault would occur, now an exception is raised (Charlie Savage, fixes
192
- RubyForge #26839.
193
-
194
- * Do not unlink nodes before internal validations have run - avoids
195
- segmentation faults caused by freeing a node twice (Charlie Savage).
196
-
197
- * Add support for Document#canonicalization (Victor Lin).
198
-
199
- * Fix memory leak in Reader#lookup_namespace (Charlie Savage).
200
-
201
- * Fix memory leak in Reader#[] (Nathan Kriege).
202
-
203
- * Fix usage of @io instance variable (Jeffrey Taylor)
204
-
205
- * Removed old sax error handling code that has been fixed in newer
206
- versions of libxml (Charlie Savage).
207
-
208
- * Code cleanup - remove unused variables and commented out code (Charlie Savage)
209
-
210
- * Minor text changes and documentation fixes (Charlie Savage).
211
-
212
- * Fix documentation error (fixes RubyForge #26888).
213
-
214
- * Update documentation for Document#validation* methods (fixes RubyForge #24833).
215
-
216
- * Update documentation and test (fixes Ruby Forge Issue #28770).
217
-
218
- * Updated documentation in README (Anurag Priyam):
219
- 1. rake doc does not work; use rake rdoc.
220
- 2. gem mislav-hanna does not exist; use hanna.
221
- 3. rake rdoc 'depends' on hanna; no need of RDOCOPTS
222
- 4. Point to the github issue tracker instead of Ruby Forge
223
- 5. Point to the github (gh-pages) site for docs
224
-
225
- * Add tc_error to test suite (Charlie Savage).
226
-
227
- * Add sax test (Stanislav O.Pogrebnyak).
228
-
229
- == 2.0.2 / 2011-04-17 Charlie Savage
230
-
231
- * Added binaries for windows (Charlie Savage).
232
-
233
- * Update Ruby 1.9 encoding handling to support libxml versions older than
234
- version 2.6.26 which was released on June 6, 2006 (Charlie Savage).
235
-
236
- * Add publish_with_docs rake task - combines publishing the
237
- website and docs (Anurag Priyam).
238
-
239
- * Correctly copy the documentation directory (Anurag Priyam)
240
-
241
- * Use relative link for rdoc so the links are correct on
242
- both rubyforge and github (Anurag Priyam).
243
-
244
- * Update Rakefile to use Hanna RDco template (Charlie Savage).
245
-
246
- * Update dates on license file (Charlie Savage).
247
-
248
- * Add api to allow setting of attribute namespaces. Fixes issue #10 (Charlie Savage).
249
-
250
- * Remove old hack to call the on_error method. This hack isn't needed anymore
251
- since a better workaround was put in place in the parser context. Fixes
252
- This fixes issue #12 (Charlie Savage).
253
-
254
- * Remove references to passing blocks to validation functions. The blocks are no
255
- longer called since the bindings use libxml's structured error handling. See
256
- issue #6 (Charlie Savage).
257
-
258
- * Fix up comment in Document and Node. See issue #8 (Charlie Savage).
259
-
260
- * Update website text (Charlie Savage).
261
-
262
- == 2.0.0 / 2011-04-16 Charlie Savage
263
-
264
- * Ruby 1.9.2 support. The biggest addition is encoding support.
265
- Strings returned by the libxml bindings are now set to the encoding
266
- of the underlying xml document (Charlie Savage).
267
-
268
- * Rubinius compatability. Removed unnecessary use of RHASH_TBL (Aman Gupta)
269
-
270
- * Added .gemspec file (Dudley Flanders).
271
-
272
- * Updated Windows checks to take into account mingw32 (Yaohan Chen).
273
-
274
- * Fix memory leak in Reader#Expand (Szymon Nowak).
275
-
276
- * Fix memory leaks in Reader#read_string, Reader#read_inner_xml
277
- and Reader#read_outer_xml (Sean Geoghegan).
278
-
279
- * Node#space_preserve= was backwards (Dudley Flanders)
280
-
281
- * Fixed typo in readme, added rdoc extension (Loren Sands-Ramshaw).
282
-
283
- * Switched to Rake Compiler (Charlie Savage).
284
-
285
- * Use xmlMalloc() memory for ctxt->sax structure. Sometimes the ctxt->sax pointer
286
- may not be zeroed in rxml_sax_parser_parse(), for example when exception is raised
287
- in one of callbacks. This lets xmlFreeParserCtxt() clean this up (Alexey I. Froloff).
288
-
289
- * Added a rake task to publish the website to github. Moved the jekyll website to
290
- web directory (Anurag Priyam).
291
-
292
- * Modernize project metadata and layout (7rans)
293
-
294
-
295
- == 1.1.3 / 2009-03-18 Charlie Savage
296
-
297
- * Improve performance 10 to 20% by turning on libxml2's dictionary
298
- feature that allows parsers to reuse previously parsed strings.
299
-
300
- * Fix XML::Node#remove! to work correctly with libxml's dictionary feature.
301
-
302
- * Correctly set up parser context options.
303
-
304
- * Simplify DOM modification code (Node#next=, Node#prev=, Node#sibling=) and
305
- update documentation.
306
-
307
- * Deprecated Node#add_child and Node#child=, use Node#<< instead
308
-
309
- * Fix documentation for Node#<<
310
-
311
- * Added Document#import to enable moving nodes from one document
312
- to another document.
313
-
314
-
315
- == 1.1.2 / 2009-03-12 Charlie Savage
316
-
317
- * Added XML::Node#inner_xml helper method.
318
-
319
- * Fix segmentation that could occur when calling the mark function on a
320
- previously freed node.
321
-
322
- == 1.1.1 / 2009-03-10 Charlie Savage
323
-
324
- * Fix - Only include extra html parser context methods for versions of libxml
325
- older than 2.6.27.
326
-
327
- == 1.1.0 / 2009-03-09 Charlie Savage
328
-
329
- * Fix bug caused by the mark function being called on partially initialized
330
- attributes.
331
-
332
- * Revert back to libxml2's internal memory manager.
333
-
334
- == 1.0.0 / 2009-03-05 Charlie Savage
335
-
336
- * OS X (Charlie Savage). Update bindings to support the default installed
337
- version of libxml2 (2.6.16) on OS X 10.5 and the latest version available
338
- via MacPorts.
339
-
340
- == 0.9.9 / 2009-03-05 Charlie Savage
341
-
342
- * Ruby 1.9.1 support (Charlie Savage). libxml-ruby now compiles and runs on either
343
- 1.8.6 and 1.9.1. With 1.8.6 all tests should pass while on 1.9.1 all but
344
- for encoding tests pass. The port to Ruby 1.9.1 revealed two memory
345
- allocation bugs (one with dtds, one with nodes) which are now fixed.
346
-
347
- * Better OS X support (Joe Khoobyar). The default version of libxml2
348
- on OS X 10.5 is fairly old, resulting in this link error:
349
-
350
- NSLinkModule() error
351
- dyld: Symbol not found: _htmlNewParserCtxt
352
-
353
- This can be fixed by using MacPorts to get a newer version of libxml2.
354
- To make use of MacPorts, the build script has been updated to use xml2-config.
355
- This can be fine-tuned using the new --with-xml2-config / --without-xml2-config
356
- options to extconf.rb (default is --without-xml2-config to match existing behavior).
357
-
358
- * Greatly reduced memory usage (Joe Khoobyar).
359
- See http://rubyforge.org/pipermail/libxml-devel/2009-February/001375.html.
360
-
361
- * Add Document#xhtml? and document#node_type methods (Joe Khoobyar)
362
-
363
- * Add XPath::Object#last (Joe Khoobyar)
364
-
365
- * Provide finer control over CDATA nodes on a parser by parser basis (Joe Khoobyar).
366
-
367
- * Bug fix - Namespaces were incorrectly merged with attributes in the new sax2
368
- handler (Charlie Savage).
369
-
370
- * Bug fix - Support iterating over nodes and attributes even with blocks
371
- that call remove! (Charlie Savage)
372
-
373
- * Bug fix - If reader.node is NULL, return nil instead of crashing (Charlie Savage)
374
-
375
- * Bug fix - Dtd's owned by documents were freed twice in some circumstances (Joe Khoobyar).
376
-
377
- * Bug fix - Fix output escaping on attributes nodes (Joe Khoobyar).
378
-
379
- * Bug fix - Make sure IO objects are not garbage collected when used
380
- as parser sources (Charlie Savage).
381
-
382
- == 0.9.8 / 2009-1-24 Charlie Savage
383
-
384
- * Refactored XML::Parser, XML::HTMLParser, XML::SaxParser and
385
- XML::Reader to have consistent APIs. All the parsers
386
- now take a context object in their constructors, allowing fine
387
- grained control over the parsers for advanced use cases. These
388
- API changes are backwards compatible except
389
- for XML::Reader, which now takes an optional hash table as a
390
- second parameter in its various constructors versus an optional
391
- boolean value.
392
-
393
- * Updated all APIs to use the encoding constants defined
394
- in XML::Encoding versus string values. This API change
395
- is not backwards compatible.
396
-
397
- * Added support for attribute declarations in DTD's via the new
398
- XML::AttrDecl class (Len Lattanzi)
399
-
400
- * Support libxml's content escaping capabilities for text nodes by
401
- wrapping libxml's "xmlStringText" and "xmlStringTextNoenc"
402
- (Joe Khoobyar).
403
-
404
- * Updated XML::Reader#read API to return true if a node was read,
405
- false if node was not read and raises an exception on an error.
406
- Previously #read returned 1 if a node was read, 0 if a node was
407
- not read and -1 for an error. This change is not backwards
408
- compatible, but provides a more natural interface for Ruby by
409
- allowing code like this:
410
-
411
- while reader.read
412
- # do stuff
413
- end
414
-
415
- * Changed XML::Error exception objects to return copies of nodes that
416
- cause parse errors instead of the original node. This prevents
417
- segmentation faults when the error is reraised.
418
-
419
- * Added XML::Reader#node method.
420
-
421
- * Fixed compile errors on OS X which uses an older version of libxml.
422
-
423
- * Fixed memory leak when performing XPath searches.
424
-
425
- * Fixed rdocs.
426
-
427
- * Don't override libxml's default settings for entity substitution and
428
- loading external DTDs. This may break some code - you may need to
429
- add in a call to XML.default_substitute_entities = true or
430
- XML.default_load_external_dtd = true.
431
-
432
-
433
- == 0.9.7 / 2008-12-08 Charlie Savage
434
-
435
- * Added SAX2 support. SAX handlers now define two new callbacks,
436
- on_start_element_ns and on_end_element_ns methods. These
437
- new callbacks support namespaces, making them superior to the older
438
- callbacks on_start_element and on_end_element methods. The old callbacks
439
- are still supported, but may be deprecated in the future depending
440
- on community feedback.
441
-
442
- * Added SAX support for libxml's structured error handling.
443
- That menas sax handlers now define a new callback, on_error,
444
- which takes one parameter, an instance of XML::Error. The older
445
- on_parser_error, on_parser_warning and on_parser_fatal_error
446
- callbacks are no longer suported so you must port your code.
447
- Note that the older callbacks took one string parameter, instead of
448
- an XML::Error object.
449
-
450
- * Experimental work-around for libxml error handling bug - see
451
- http://mail.gnome.org/archives/xml/2008-December/msg00014.html
452
- for more information.
453
-
454
- * Fix compilation bugs on Solaris.
455
-
456
- * Fix Rdoc compilation bug.
457
-
458
-
459
- == 0.9.6 / 2008-12-08 Charlie Savage
460
-
461
- * Refactored namespace handling. The existing, and inconsistent,
462
- namespace methods defined on XML::Node have been deprecated.
463
- They have been replaced by a the new XML::Namespaces class.
464
- Use this class to inspect a node's namespace, its default
465
- namespace, its namespace definitions and which namespaces
466
- are in scope. It can be accessed via the the
467
- XML::Node#namespaces method.
468
-
469
- * Rationalized XML::Document#save, XML::Document#to_s and
470
- XML::Node#to_s to take an optional hash table of parameters
471
- that control how output is generated. Supported parameters
472
- include setting indentation on or off, the indentation level
473
- and the output encoding. This is an API change and may break
474
- existing calls to XML::Document#save. However, the previous
475
- API was broken - setting the encoding resulted in an error so
476
- its unlikely anyone is using it.
477
-
478
- * Rationalized XML::Document#debug, XML::Node#debug, XML::XPath::XPathObject#Debug.
479
-
480
- * Deprecated a number of duplicate dump* and debug_* methods in
481
- XML::Document and XML::Node.
482
-
483
- * Additional Ruby 1.9.1 compatability fixes.
484
-
485
- * Cleaned up header file guards.
486
-
487
- == 0.9.5 / 2008-11-29 Charlie Savage
488
-
489
- * Ruby 1.9.1 preview release compatability (Felipe Contreras)
490
-
491
- * Update Node#remove! to return the removed node and to set
492
- its document to nil. This allows the node to be either
493
- moved to another document, another part of the same document
494
- or to be freed on the next garbage collection once its
495
- references have gone out of scope.
496
-
497
- * Fix bug where XPathExpression#compile mistakenly overwrote
498
- RegExp#compile.
499
-
500
- * Update Node to use standard ruby allocators and initializers.
501
-
502
- * Update HTML parser to be more forgiving of invalid documents.
503
-
504
- * Update include paths for Darwin Ports on OS X.
505
-
506
- * Updated C code base to use BSD/Allman style
507
-
508
-
509
- == 0.9.4 / 2008-11-24 Charlie Savage
510
-
511
- * Update HTML parser so that it can read files, strings and io
512
- streams.
513
-
514
- * Update HTML parser to support user specified encodings.
515
-
516
- * Additional C code cleanup.
517
-
518
- == 0.9.3 / 2008-11-22 Charlie Savage
519
-
520
- * Fixed segmentation fault caused by documents being freed
521
- before xpath results that referenced the document (take 2).
522
-
523
- * Allowed sax parser to use io stream
524
-
525
- * Combined encoding and input classes
526
-
527
- * Cleaned up C code - removed remaining legacy structures,
528
- added static to most methods, changed C namespace from ruby_xml
529
- to rxml
530
-
531
- == 0.9.2 / 2008-11-19 Charlie Savage
532
-
533
- * Add support for compiled XPath expressions (donated by Pavel Valodzka)
534
-
535
- * Fixes for compiling on OS X 10.5.4 and 10.5.5
536
-
537
- == 0.9.1 / 2008-11-18 Charlie Savage
538
-
539
- * Expose LibXML's encoding support via a new Encoding object.
540
-
541
- * Revamp error handling to be much easier to use. Errors are now
542
- wrapped by the new XML::Error class and are thrown as exceptions
543
- when it is appropriate.
544
-
545
- * Fixed segmentation fault caused by documents being freed
546
- before xpath results that referenced the document.
547
-
548
- * Add Node#register_default_namespace to simplify default namespace handling.
549
-
550
- * Significantly improve documentation
551
-
552
- * A number of bug fixes and patches.
553
-
554
- == 0.9.0 / 2008-11-18 Charlie Savage
555
-
556
- * Version 0.9.0 was removed due to packaging errors.
557
-
558
-
559
- == 0.8.3 / 2008-07-21 Charlie Savage
560
-
561
- * Missed several files in last release
562
-
563
- == 0.8.2 / 2008-07-21 Charlie Savage
564
-
565
- * To use LibXML you can either require 'xml' or require 'libxml'.
566
- The differences is that require 'xml' mixes the LibXML module into
567
- the global namespace, thereby allowing you to write code such
568
- as document = XML::Document.new. Note that this is different
569
- from 0.8.0 and 0.8.1 and may require updating your code.
570
-
571
- * Support RelaxNG validation (thanks to Morus Walter)
572
-
573
- * Support passing IO objects to XmlReaders (thanks to Tom Hughes)
574
-
575
- * Fix segmentation fault caused by adding an attribute to a CDATA node
576
-
577
- * Moved node checking functions from C to Ruby
578
-
579
- * Improved Windows support - libxml-ruby should now work out of the box.
580
-
581
- * Improved Windows support - turned on libxml's zlib and iconv support.
582
-
583
-
584
- == 0.8.1 / 2008-07-09 Charlie Savage
585
-
586
- * Reimplmented Node#each_attr for backwards compatability
587
-
588
- * Moved node type test to Ruby.
589
-
590
-
591
- == 0.8.0 / 2008-07-09 Charlie Savage
592
-
593
- * Fixed bug in returning attributes from XPath results
594
-
595
- * Fixed DOM traversal methods
596
-
597
- * Changed Node#children to return an array of nodes
598
-
599
- * Fixed bug in returning attributes from XPath results
600
-
601
- * Refactored XPath support, providing more user hooks in the XPath::Context class
602
-
603
- * Added Node#properties for backwards compatibility
604
-
605
- * Updated setup.rb
606
-
607
- * Added more tests
608
-
609
- * Updated rdocs and README file
610
-
611
- * Moved libxml into LibXML namespace
612
-
613
-
614
- == 0.7.0 / 2008-07-09 Charlie Savage
615
-
616
- * Added new attributes class to provide a more natural way of working with attributes
617
-
618
- * Fixed XML::Attr to better support namespaces
619
-
620
- * Added documentation on how to use namespaces with XPath
621
-
622
- * Removed allocation of extraneous structures used to wrap nodes, namespaces and attributes
623
-
624
- * Cleaned up tests and added new test suite
625
-
626
- * Updated rdocs and README file
627
-
628
- * Cleaned out most of the bug list
629
-
630
-
631
- == 0.6.0 / 2008-07-01 Charlie Savage
632
-
633
- * Fixed memory allocation errors in Windows. On Windows, it is essential that the same library that allocates memory must free it. Thus ALLOC calls must be matched to ruby_xfree calls, which they were not. In addition, in one case Ruby was allocating memory to be freed by libxml. On Windows, that's a segmentation fault. On Linux it might fly, but still seems like a bad idea.
634
-
635
- * Fixed segmentation fault in xml reader expand (same xml tree freed twice)
636
-
637
- * Applied a number of patches from Tom Bagby, including fixes for xpath segmentation faults and fixes for various memory leaks
638
-
639
- * Cleaned up a number of compiler warnings
640
-
641
- * Renamed libxml_so.so to libxml_ruby.so (same for xslt). That wasn't actually my original intention, but um, it kind of sort of happened. It should not be noticeable from an end-user perspective.
642
-
643
- * Added rake files for building with MingW
644
-
645
- * Added rake files for packing gems. Note that I did this outside the existing rake tasks because I didn't see how they were actually building the gems.
646
-
647
- * Cleaned up the tests and added a few more based on bug reports from the Tracker and mailing list.
648
-
649
- * Cleaned out the patch queue and went through about 1/2 the bug list
650
-
651
-
652
- === 2007-11-16 "Dan Janowski" <danj at 3skel.com>
653
-
654
- * Merged Dan's MEM2 branch to trunk.
655
-
656
- == 0.5.3 /
657
-
658
- === 2007-11-16 "Dan Janowski" <danj at 3skel.com>
659
-
660
- * Merged Dan's MEM2 branch to trunk.
661
-
662
-
663
- == 0.5.2 / 2007-10-10
664
-
665
- === 2007-10-10 "Dan Janowski" <danj at 3skel.com>
666
-
667
- * (Dan, fill in the major points of the changes you made up to here -thanks)
668
-
669
- === 2007-01-14 "Laurent Sansonetti" <lrz at chopine.be>
670
-
671
- * Added some preliminary RDoc comments for XML::Reader.
672
-
673
- === 2006-12-05 "Laurent Sansonetti" <lrz at chopine.be>
674
-
675
- * Added XML::Reader, a set of bindings to the xmlTextReader API.
676
-
677
-
678
- == 0.3.8.4 / 2006-12-02
679
-
680
- === 2006-04-15 "Ross Bamform" <rosco at roscopeco.co.uk>
681
-
682
- * Implemented SAX parser callback handling.
683
-
684
- === 2006-04-12 "Ross Bamford" <rosco at roscopeco.co.uk>
685
-
686
- * Integrated and tested community patches.
687
- * Defined XML::Node (hash) equality in terms of XML representation.
688
-
689
- === 2006-04-12 "Tim Yamin" <plasmaroo at gentoo.org>
690
-
691
- * Fixed XML::Node#content inoperable bug (plasmaroo) [patch]
692
- * Fixed memory leak in same
693
-
694
- === 2006-04-12 "Mark Van Holstyn" <mvette13 at gmail.com>
695
-
696
- * Added XML::Node::Set#first (mvette13) [patch]
697
- * Added XML::Node::Set#empty?
698
- * Fixed XML::Node::Set#to_a
699
- * Added XML::Node#find_first
700
- * Added XML::Node#remove!
701
-
702
- === 2006-03-27 "Ross Bamford" <rosco at roscopeco.co.uk>
703
-
704
- * Integrated contributed XML::Parser.register_error_handler patch (rosco)
705
-
706
- === 2006-02-27 "Ross Bamford" <rosco at roscopeco.co.uk>
707
-
708
- * Fixed all multiple symbol definitions for -fno-common.
709
- * Removed OSX -fno-common workaround.
710
-
711
-
712
- == 0.3.6 / 2006-02-23
713
-
714
- === 2006-02-21 "Ross Bamford" <rosco at roscopeco.co.uk>
715
-
716
- * Patched extconf.rb with OSX -fno-common workaround
717
- * Added gem and packaging support to Rakefile
718
- * Moved version update to Rakefile
719
- * Removed legacy project utility scripts
720
-
721
- === 2005-02-19 "Ross Bamford" <rosco at roscopeco.co.uk>
722
-
723
- * Fixed doublefree bug in ruby_xml_attr.
724
- * Fixed small leak in parser
725
-
726
- === 2005-12-18 "Ross Bamford" <rosco at roscopeco.co.uk>
727
-
728
- * Updated for GCC 4.0 (community patches)
729
- * Fixed default validation bug
730
- * Refactored project, removed outdated files, cleaned up tests.
731
- * Added RDoc documentation across .c files.
732
- * Fixed up a few strings.
733
-
734
- === 2004-04-04 "Mangler Jurgen" <et@wkv.at>
735
-
736
- * ruby_xml_node.cz: fixed ruby_xml_node_property_set. The ill-behaviour
737
- was, that there was added a second attribute of the same
738
- name, when you were setting the value of an already existing
739
- attribute.
740
-
741
- === 2004-03-17 "Lukas Svoboda" <luks@fi.muni.cz>
742
-
743
- * ruby_xml_node.c: ruby_xml_node_to_s now returns XML subtree dump.
744
-
745
- === 2004-02-27 "Martin Povolny" <martin@solnet.cz>
746
-
747
- * ruby_xml_node.c: added XML::Node.copy, this makes possible building
748
- of xml documents from nodes taken from other xml documents
749
- without making ruby SIGSEGV (see tests/copy_bug.rb).
750
-
751
- === 2004-02-26 "Martin Povolny" <martin@solnet.cz>
752
-
753
- * ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
754
- more work on validation, now you can actually validate
755
- document using dtd or xml schema, also solved warning and
756
- error propagation (see tests/{dtd|schema}-test.rb).
757
-
758
- === 2003-12-30 "Martin Povolny" <martin@solnet.cz>
759
-
760
- * ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
761
- prelimitary support for dtd and schema validation
762
-
763
- === 2003-09-15 "Martin Povolny" <martin@solnet.cz>
764
-
765
- * ruby_xml_input_cbg.c, libxml.c: added class InputCallbacks to make
766
- possible registering custom input callbacks
767
- handlers (xmlRegisterInputCallbacks) written in ruby
768
-
769
- === 2003-08-01 "Martin Povolny" <martin@solnet.cz>
770
-
771
- * ruby_xml_document.c: corrected argument handling in ruby_xml_document_find
772
- * ruby_xml_node.c: corrected argument handling in ruby_xml_node_find
773
-
774
-
775
-
1
+ = Release History
2
+
3
+ == 3.2.1 / 2020-11-05
4
+
5
+ * Fix incorrect handling of encodings when using XMLWriter.io (Charlie Savage)
6
+ * Clean up README (Richard Michael)
7
+
8
+ == 3.2.0 / 2020-05-09 Charlie Savage
9
+
10
+ * Fix crash when creating an empty DTD
11
+ * Modernize tests to use Bundler to load gem
12
+ * Add libxml-ruby.rb file so gem loads in expected way.
13
+ * Add support for xmlSaveNoEmptyTags.
14
+ * Clean up extconf.rb file
15
+
16
+ == 3.1.0 / 2018-02-03 Charlie Savage
17
+
18
+ * Fix segmentation fault when adding one node to another node (Charlie Savage)
19
+ * Fix deprecated "assert_equal(nil, expected)" calls. #148 and #151. (utilum)
20
+ * Remove assigned but unused variables. #150 (utilum)
21
+ * Add Gemfile. #146. (Dorian Marié)
22
+ * Remove duplicate hash key in setup.rb. #147. (Dorian Marié)
23
+ * Fix gemspec by requiring Date. #149 (utilum)
24
+ * Restore default internal encoding after tests are completed. #123 (Charlie Savage)
25
+ * Remove duplicate method definitions. #145. (Charlie Savage)
26
+ * Remove SchemaElement#minOccurs and SchemaElement#maxOccurs since they actually did not work (Charlie Savage)
27
+ * Rename test files to follow Ruby conventions (Charlie Savage)
28
+ * Fix handling of node returned by Reader#expand. #142. (Charlie Savage)
29
+ * Add Travis Build support (Charlie Savage)
30
+ * Fix Fixnum deprecation (Charlie Savage)
31
+ * Cleanup schema code (Charlie Savage)
32
+ * Update Visual Studio project to 2017 (Charlie Savage)
33
+
34
+ == 3.0.0 / 2017-02-07 Charlie Savage
35
+
36
+ * Revamp how libxml-ruby manages memory. Instead of trying to return the same ruby object for each xmlnode,
37
+ the bindings now create wrapper ruby objects as needed which are then freed at the end of use.
38
+ This allows most memory management to be handled by libxml itself. Ruby only manages the lifespan of
39
+ documents and parent xml nodes. When those go out of scope, the underlying libxml objects are also freed.
40
+ This implementation requires almost no overhead, plays nicely with Nokogiri and appears to work much
41
+ better (Charlie Savage).
42
+
43
+ * Change XML::Node#eql? API. Nodes are now considered equal only if they wrap the same underlying
44
+ libxml node. Previously, they would also be considered equal if they contained the same content
45
+ (Charlie Savage)
46
+
47
+ * Change XML::Reader.expand API. Previously it would automatically instantiate a reader document so
48
+ the an xpath expression could be used to search the returned node. Now you should first call
49
+ reader.doc (Charlie Savage)
50
+
51
+ * Update Visual Studio project for Visual Studio 15 - requires ruby 2.4+ (Charlie Savage)
52
+
53
+ * Remove APIs that have been deprecated for several years (Charlie Savage)
54
+
55
+ == 2.9.0 / 2016-06-13 Charlie Savage
56
+
57
+ * Revamp libxml-ruby's memory management to not cause crashes when used with Nokogiri (James Laird-Wah)
58
+ * Fix garbage collection issue that sometimes caused the library to hang (Charlie Savage)
59
+ * Improved multi-threading support (Charlie Savage)
60
+ * Fix crash sometimes caused by a xml node being being freed twice (Charlie Savage)
61
+ * Fix memory leak when setting the text content of a node (Charlie Savage)
62
+ * Set a default task in the Rakefile - use "test" (Robert Haines)
63
+ * Add "hanna_gudao" gem and add "rake-compiler" to develpoment dependencies (Robert Haines)
64
+ * Use Process.getrlimit instead of `ulimit` in the tests (Robert Haines)
65
+ * Build on smartos (Steven Williamson)
66
+ * Fix compiler warnings (Charlie Savage)
67
+ * Add Xcode project for easier debugging on OSX (Charlie Savage)
68
+ * Switch from unit test to minitest (Charlie Savage)
69
+
70
+ == 2.8.0 / 2015-01-09 Charlie Savage
71
+
72
+ * Use RbConfig instead of Config in extconf.rb (Robert Haines)
73
+ * Correct xpath documentation XML (Bill Mill)
74
+ * Correct from_string method documentation (Bill Mill)
75
+ * Fix compile error with debug not enabled in libxml (Patrick Ziegler)
76
+ * Update gemspec to include license (Charlie Savage)
77
+ * In XML::Writer prevent writing to io while being GCed (Brett Gibson)
78
+
79
+ == 2.7.0 / 2013-08-13 Charlie Savage
80
+
81
+ * Don't call rb_warning in GC mark function (Dirkjan Bussink)
82
+ * Set libxml error handler when a libxml-ruby error handler is set (Geoffrey Giesemann)
83
+ * Fix tests for nil TypeErrors for ruby 2.0=< (Geoffrey Giesemann)
84
+ * Fix segmentation fault for issue #62 (Charlie Savage)
85
+ * Add #node_type method to dtd (Charlie Savage)
86
+ * Fixing equality check of LibXML::XML::Error against other objects (Michał Szajbe)
87
+ * Fix #63, XML::Writer.set_quote_char UT, wrong expected string (julp)
88
+ * Fix potential segfault when GC occurs while creating ns from xpath (Timothy Elliott)
89
+ * Fix for #59, segmentation fault after failure to load external schema (Clifford Heath)
90
+
91
+ == 2.6.0 / 2013-02-16 Charlie Savage
92
+
93
+ * Fix uninitialized constant LibXML::XML::Error::I18N (NameError) that occurred
94
+ with older versions of libxml.
95
+ * Various updates/fixes to new XML::Writer class and update how flushing works (julp)
96
+
97
+ == 2.5.0 / 2013-01-27 Charlie Savage
98
+
99
+ * Compatibility with older versions for IO::write (rb_io_bufwrite is specific to ruby >= 1.9.3?)
100
+ and symbols are VALUE not ID (julp).
101
+ * Fix version for xmlTextWriterSetQuoteChar, it appeared in libxml2 2.9.0, last version (julp)
102
+ * Update use of LIBXML_VERSION (julp).
103
+ * Fix misuse of rb_scan_args (julp).
104
+ * Update documentation, including DTD docs and added XML Writer (julp).
105
+ * Added a new XML::Writer class (julp).
106
+ * Improved xml reader api and add namespace support. Note that passing a numeric value
107
+ to XML::Reader::move_to_attribute has been deprecated. Instead you should now
108
+ use #move_to_attribute_no. (julp).
109
+ * Improve error handling and messages (Jarl Friis)
110
+
111
+ == 2.4.0 / 2012-12-14 Charlie Savage
112
+
113
+ * Support libxml 2.9.0 (Daniel Veillard)
114
+
115
+ * Extensive new interfaces for xml schema functionality including suppor for
116
+ schemal elements, types, facets and attributes (Anton Sozontov)
117
+
118
+ * Fix Encoding#from_s bug and update docs (Nikita Afanasenko)
119
+
120
+ * Node#content= encoding (Nikita Afanasenko)
121
+
122
+ == 2.3.3 / 2012-07-01 Charlie Savage
123
+
124
+ * Add LibXML::XML::Error.get_handler (Carsten Zimmermann)
125
+ * Fix variable name in example (Marcus)
126
+
127
+ == 2.3.2 / 2012-03-20 Charlie Savage
128
+
129
+ * Define various canonicalize constants to support libxml2 versions
130
+ older than 1.1.25 (thanks Apple!)
131
+
132
+ == 2.3.1 / 2012-03-20 Charlie Savage
133
+
134
+ * Yanked - didn't fix the OSX canonicalize issue
135
+
136
+ == 2.3.0 / 2012-03-18 Charlie Savage
137
+
138
+ * Add ability to insert new PI-nodes into the xmltree (Axel Struebing).
139
+
140
+ * Added full pass-through access to libxml2 xmlC14NDocDumpMemory method via
141
+ LibXML::XML::Document#canonicalize method with optional arguments.
142
+
143
+ * Added full test data for C14N based off of W3C spec.
144
+ (http://www.w3.org/TR/xml-c14n#Examples)
145
+
146
+ * Update sax handler to support encodings on Ruby 1.9 and higher.
147
+
148
+ == 2.2.2 / 2011-08-29 Charlie Savage
149
+
150
+ * ++API CHANGE+++
151
+
152
+ Reader#relax_ng_validate now takes a RelaxNG object. This is
153
+ what the documentation has always said it takes, but it previously
154
+ took a string. In addition, it now returns true or false instead of 0 or -1.
155
+
156
+ Reader#schema_validate now takes a Schema object. This is
157
+ what the documentation has always said it takes, but it previously
158
+ took a string. In addition, it now returns true or false instead of 0 or -1.
159
+
160
+ Fixes GitHub issue #30.
161
+
162
+ * Added Parser::Context#close and HTMLParser::Context#close methods that
163
+ allow the underlying io stream (file, string, etc) to be closed. Once a
164
+ parser is done parsing its data, it now calls one of these methods.
165
+ This means that if you parse thousands of files at the same time,
166
+ without running Ruby's garbage colllector, you won't get a too
167
+ many files open error. Fixes GitHub issue #29.
168
+
169
+ * Fixed bug where Node#inner_xml caused an error when it had no child nodes.
170
+ Fixes GitHub issues #31
171
+
172
+ * Don't require 'rake' in the gemspec to avoid annoying Bundler bugs
173
+
174
+ == 2.2.1 / 2011-08-13 Charlie Savage
175
+
176
+ * Packaging fix - include the custom .def file in the gem.
177
+
178
+ == 2.2.0 / 2011-08-09 Charlie Savage
179
+
180
+ * Update encoding support for Ruby 1.9 so that libxml-ruby returns
181
+ strings encoded in UTF-8. This change was required since libxml internally
182
+ stores strings in UTF-8. The exceptions to this rule are the #to_s methods
183
+ which return UTF-8 by default but can return other encodings if requested.
184
+
185
+ == 2.1.2 / 2011-08-03 Charlie Savage
186
+
187
+ * Fix segmentation fault that could occur when an XPathContext was marked
188
+ before it was fully initialized (Charlie Savage).
189
+
190
+ * Add mark method to document to mark all nodes currently being accessed
191
+ by ruby. This make Ruby Enterprise Edition happy (Charlie Savage).
192
+
193
+ == 2.1.1 / 2011-07-31 Charlie Savage
194
+
195
+ * Switch to using def files to control library exports (Charlie Savage).
196
+
197
+ == 2.1.0 / 2011-07-31 Charlie Savage
198
+
199
+ * Ruby 1.9.3 compatability (Charlie Savage).
200
+
201
+ * Added XPath expression <-> Ruby value conversion methods (Jens Wille).
202
+
203
+ * Extracted rxml_xpath_to_value from rxml_xpath_context_find (Jens Wille).
204
+
205
+ * Adapted rxml_xpath_from_value from Gregoire Lejeune's ruby-xslt
206
+ library, see https://github.com/glejeune/ruby-xslt (Jens Wille).
207
+
208
+ * Allow calling #find on nodes returned from Reader (Charlie Savage).
209
+
210
+ * Change document handling in XPath::Context to address segmentation fault on
211
+ Ruby Enterprise Edition (Charlie Savage).
212
+
213
+ * Update gemspec file to work directly with bundler thereby allowing git
214
+ repository to be used as gem (Charlie Savage).
215
+
216
+ * Support gem buld (Charlie Savage).
217
+
218
+ * Simplify memory management of attributes namespaces to fix
219
+ segmentation faults that occurred when using Ruby 1.9.3 (Charlie Savage).
220
+
221
+
222
+ == 2.0.8 / 2011-06-23 Charlie Savage
223
+
224
+ * Add in 2 new HTML Parser constants - NODEFDTD and NOIMPLIED.
225
+
226
+ * Fix compile issue on Ruby 1.9.3
227
+
228
+ == 2.0.6 / 2011-05-23 Charlie Savage
229
+
230
+ * Fix segfault that sometimes occurred when looking up encodings on 1.9.
231
+ In some cases the Ruby encoding infrastructure was not properly
232
+ initialized (nkriege).
233
+
234
+ == 2.0.5 / 2011-05-05 Charlie Savage
235
+
236
+ * Document#validate_dtd would sometimes cause segmentation faults due to
237
+ an improperly initialized data structure (Charlie Savage)
238
+
239
+ == 2.0.4 / 2011-05-02 Charlie Savage
240
+
241
+ * Fix compile issues on platforms using older versions of libxml2.
242
+ The problem as using a C14N constants that was added to libxml2
243
+ in July 2009 (Charlie Savage).
244
+
245
+ == 2.0.3 / 2011-05-01 Charlie Savage
246
+
247
+ * The biggest change in this release is supporting the use of libxml-ruby in
248
+ native background Ruby threads. Previously, the use of libxml-ruby in
249
+ background threads in Ruby 1.9.x and higher would often cause
250
+ segmentation faults. This has now been fixed (Charlie Savage).
251
+
252
+ * Update Reader#expand so that returned node correctly remembers its
253
+ encoding in Ruby 1.9.x (zerebubuth).
254
+
255
+ * Add check to verify a node has not been deleted. This can happen when
256
+ a ruby variable holds a reference to a child node that gets freed
257
+ when its parent gets freed. Previously when this happened a
258
+ segmentation fault would occur, now an exception is raised (Charlie Savage, fixes
259
+ RubyForge #26839.
260
+
261
+ * Do not unlink nodes before internal validations have run - avoids
262
+ segmentation faults caused by freeing a node twice (Charlie Savage).
263
+
264
+ * Add support for Document#canonicalization (Victor Lin).
265
+
266
+ * Fix memory leak in Reader#lookup_namespace (Charlie Savage).
267
+
268
+ * Fix memory leak in Reader#[] (Nathan Kriege).
269
+
270
+ * Fix usage of @io instance variable (Jeffrey Taylor)
271
+
272
+ * Removed old sax error handling code that has been fixed in newer
273
+ versions of libxml (Charlie Savage).
274
+
275
+ * Code cleanup - remove unused variables and commented out code (Charlie Savage)
276
+
277
+ * Minor text changes and documentation fixes (Charlie Savage).
278
+
279
+ * Fix documentation error (fixes RubyForge #26888).
280
+
281
+ * Update documentation for Document#validation* methods (fixes RubyForge #24833).
282
+
283
+ * Update documentation and test (fixes Ruby Forge Issue #28770).
284
+
285
+ * Updated documentation in README (Anurag Priyam):
286
+ 1. rake doc does not work; use rake rdoc.
287
+ 2. gem mislav-hanna does not exist; use hanna.
288
+ 3. rake rdoc 'depends' on hanna; no need of RDOCOPTS
289
+ 4. Point to the github issue tracker instead of Ruby Forge
290
+ 5. Point to the github (gh-pages) site for docs
291
+
292
+ * Add tc_error to test suite (Charlie Savage).
293
+
294
+ * Add sax test (Stanislav O.Pogrebnyak).
295
+
296
+ == 2.0.2 / 2011-04-17 Charlie Savage
297
+
298
+ * Added binaries for windows (Charlie Savage).
299
+
300
+ * Update Ruby 1.9 encoding handling to support libxml versions older than
301
+ version 2.6.26 which was released on June 6, 2006 (Charlie Savage).
302
+
303
+ * Add publish_with_docs rake task - combines publishing the
304
+ website and docs (Anurag Priyam).
305
+
306
+ * Correctly copy the documentation directory (Anurag Priyam)
307
+
308
+ * Use relative link for rdoc so the links are correct on
309
+ both rubyforge and github (Anurag Priyam).
310
+
311
+ * Update Rakefile to use Hanna RDco template (Charlie Savage).
312
+
313
+ * Update dates on license file (Charlie Savage).
314
+
315
+ * Add api to allow setting of attribute namespaces. Fixes issue #10 (Charlie Savage).
316
+
317
+ * Remove old hack to call the on_error method. This hack isn't needed anymore
318
+ since a better workaround was put in place in the parser context. Fixes
319
+ This fixes issue #12 (Charlie Savage).
320
+
321
+ * Remove references to passing blocks to validation functions. The blocks are no
322
+ longer called since the bindings use libxml's structured error handling. See
323
+ issue #6 (Charlie Savage).
324
+
325
+ * Fix up comment in Document and Node. See issue #8 (Charlie Savage).
326
+
327
+ * Update website text (Charlie Savage).
328
+
329
+ == 2.0.0 / 2011-04-16 Charlie Savage
330
+
331
+ * Ruby 1.9.2 support. The biggest addition is encoding support.
332
+ Strings returned by the libxml bindings are now set to the encoding
333
+ of the underlying xml document (Charlie Savage).
334
+
335
+ * Rubinius compatability. Removed unnecessary use of RHASH_TBL (Aman Gupta)
336
+
337
+ * Added .gemspec file (Dudley Flanders).
338
+
339
+ * Updated Windows checks to take into account mingw32 (Yaohan Chen).
340
+
341
+ * Fix memory leak in Reader#Expand (Szymon Nowak).
342
+
343
+ * Fix memory leaks in Reader#read_string, Reader#read_inner_xml
344
+ and Reader#read_outer_xml (Sean Geoghegan).
345
+
346
+ * Node#space_preserve= was backwards (Dudley Flanders)
347
+
348
+ * Fixed typo in readme, added rdoc extension (Loren Sands-Ramshaw).
349
+
350
+ * Switched to Rake Compiler (Charlie Savage).
351
+
352
+ * Use xmlMalloc() memory for ctxt->sax structure. Sometimes the ctxt->sax pointer
353
+ may not be zeroed in rxml_sax_parser_parse(), for example when exception is raised
354
+ in one of callbacks. This lets xmlFreeParserCtxt() clean this up (Alexey I. Froloff).
355
+
356
+ * Added a rake task to publish the website to github. Moved the jekyll website to
357
+ web directory (Anurag Priyam).
358
+
359
+ * Modernize project metadata and layout (7rans)
360
+
361
+
362
+ == 1.1.3 / 2009-03-18 Charlie Savage
363
+
364
+ * Improve performance 10 to 20% by turning on libxml2's dictionary
365
+ feature that allows parsers to reuse previously parsed strings.
366
+
367
+ * Fix XML::Node#remove! to work correctly with libxml's dictionary feature.
368
+
369
+ * Correctly set up parser context options.
370
+
371
+ * Simplify DOM modification code (Node#next=, Node#prev=, Node#sibling=) and
372
+ update documentation.
373
+
374
+ * Deprecated Node#add_child and Node#child=, use Node#<< instead
375
+
376
+ * Fix documentation for Node#<<
377
+
378
+ * Added Document#import to enable moving nodes from one document
379
+ to another document.
380
+
381
+
382
+ == 1.1.2 / 2009-03-12 Charlie Savage
383
+
384
+ * Added XML::Node#inner_xml helper method.
385
+
386
+ * Fix segmentation that could occur when calling the mark function on a
387
+ previously freed node.
388
+
389
+ == 1.1.1 / 2009-03-10 Charlie Savage
390
+
391
+ * Fix - Only include extra html parser context methods for versions of libxml
392
+ older than 2.6.27.
393
+
394
+ == 1.1.0 / 2009-03-09 Charlie Savage
395
+
396
+ * Fix bug caused by the mark function being called on partially initialized
397
+ attributes.
398
+
399
+ * Revert back to libxml2's internal memory manager.
400
+
401
+ == 1.0.0 / 2009-03-05 Charlie Savage
402
+
403
+ * OS X (Charlie Savage). Update bindings to support the default installed
404
+ version of libxml2 (2.6.16) on OS X 10.5 and the latest version available
405
+ via MacPorts.
406
+
407
+ == 0.9.9 / 2009-03-05 Charlie Savage
408
+
409
+ * Ruby 1.9.1 support (Charlie Savage). libxml-ruby now compiles and runs on either
410
+ 1.8.6 and 1.9.1. With 1.8.6 all tests should pass while on 1.9.1 all but
411
+ for encoding tests pass. The port to Ruby 1.9.1 revealed two memory
412
+ allocation bugs (one with dtds, one with nodes) which are now fixed.
413
+
414
+ * Better OS X support (Joe Khoobyar). The default version of libxml2
415
+ on OS X 10.5 is fairly old, resulting in this link error:
416
+
417
+ NSLinkModule() error
418
+ dyld: Symbol not found: _htmlNewParserCtxt
419
+
420
+ This can be fixed by using MacPorts to get a newer version of libxml2.
421
+ To make use of MacPorts, the build script has been updated to use xml2-config.
422
+ This can be fine-tuned using the new --with-xml2-config / --without-xml2-config
423
+ options to extconf.rb (default is --without-xml2-config to match existing behavior).
424
+
425
+ * Greatly reduced memory usage (Joe Khoobyar).
426
+ See http://rubyforge.org/pipermail/libxml-devel/2009-February/001375.html.
427
+
428
+ * Add Document#xhtml? and document#node_type methods (Joe Khoobyar)
429
+
430
+ * Add XPath::Object#last (Joe Khoobyar)
431
+
432
+ * Provide finer control over CDATA nodes on a parser by parser basis (Joe Khoobyar).
433
+
434
+ * Bug fix - Namespaces were incorrectly merged with attributes in the new sax2
435
+ handler (Charlie Savage).
436
+
437
+ * Bug fix - Support iterating over nodes and attributes even with blocks
438
+ that call remove! (Charlie Savage)
439
+
440
+ * Bug fix - If reader.node is NULL, return nil instead of crashing (Charlie Savage)
441
+
442
+ * Bug fix - Dtd's owned by documents were freed twice in some circumstances (Joe Khoobyar).
443
+
444
+ * Bug fix - Fix output escaping on attributes nodes (Joe Khoobyar).
445
+
446
+ * Bug fix - Make sure IO objects are not garbage collected when used
447
+ as parser sources (Charlie Savage).
448
+
449
+ == 0.9.8 / 2009-1-24 Charlie Savage
450
+
451
+ * Refactored XML::Parser, XML::HTMLParser, XML::SaxParser and
452
+ XML::Reader to have consistent APIs. All the parsers
453
+ now take a context object in their constructors, allowing fine
454
+ grained control over the parsers for advanced use cases. These
455
+ API changes are backwards compatible except
456
+ for XML::Reader, which now takes an optional hash table as a
457
+ second parameter in its various constructors versus an optional
458
+ boolean value.
459
+
460
+ * Updated all APIs to use the encoding constants defined
461
+ in XML::Encoding versus string values. This API change
462
+ is not backwards compatible.
463
+
464
+ * Added support for attribute declarations in DTD's via the new
465
+ XML::AttrDecl class (Len Lattanzi)
466
+
467
+ * Support libxml's content escaping capabilities for text nodes by
468
+ wrapping libxml's "xmlStringText" and "xmlStringTextNoenc"
469
+ (Joe Khoobyar).
470
+
471
+ * Updated XML::Reader#read API to return true if a node was read,
472
+ false if node was not read and raises an exception on an error.
473
+ Previously #read returned 1 if a node was read, 0 if a node was
474
+ not read and -1 for an error. This change is not backwards
475
+ compatible, but provides a more natural interface for Ruby by
476
+ allowing code like this:
477
+
478
+ while reader.read
479
+ # do stuff
480
+ end
481
+
482
+ * Changed XML::Error exception objects to return copies of nodes that
483
+ cause parse errors instead of the original node. This prevents
484
+ segmentation faults when the error is reraised.
485
+
486
+ * Added XML::Reader#node method.
487
+
488
+ * Fixed compile errors on OS X which uses an older version of libxml.
489
+
490
+ * Fixed memory leak when performing XPath searches.
491
+
492
+ * Fixed rdocs.
493
+
494
+ * Don't override libxml's default settings for entity substitution and
495
+ loading external DTDs. This may break some code - you may need to
496
+ add in a call to XML.default_substitute_entities = true or
497
+ XML.default_load_external_dtd = true.
498
+
499
+
500
+ == 0.9.7 / 2008-12-08 Charlie Savage
501
+
502
+ * Added SAX2 support. SAX handlers now define two new callbacks,
503
+ on_start_element_ns and on_end_element_ns methods. These
504
+ new callbacks support namespaces, making them superior to the older
505
+ callbacks on_start_element and on_end_element methods. The old callbacks
506
+ are still supported, but may be deprecated in the future depending
507
+ on community feedback.
508
+
509
+ * Added SAX support for libxml's structured error handling.
510
+ That menas sax handlers now define a new callback, on_error,
511
+ which takes one parameter, an instance of XML::Error. The older
512
+ on_parser_error, on_parser_warning and on_parser_fatal_error
513
+ callbacks are no longer suported so you must port your code.
514
+ Note that the older callbacks took one string parameter, instead of
515
+ an XML::Error object.
516
+
517
+ * Experimental work-around for libxml error handling bug - see
518
+ http://mail.gnome.org/archives/xml/2008-December/msg00014.html
519
+ for more information.
520
+
521
+ * Fix compilation bugs on Solaris.
522
+
523
+ * Fix Rdoc compilation bug.
524
+
525
+
526
+ == 0.9.6 / 2008-12-08 Charlie Savage
527
+
528
+ * Refactored namespace handling. The existing, and inconsistent,
529
+ namespace methods defined on XML::Node have been deprecated.
530
+ They have been replaced by a the new XML::Namespaces class.
531
+ Use this class to inspect a node's namespace, its default
532
+ namespace, its namespace definitions and which namespaces
533
+ are in scope. It can be accessed via the the
534
+ XML::Node#namespaces method.
535
+
536
+ * Rationalized XML::Document#save, XML::Document#to_s and
537
+ XML::Node#to_s to take an optional hash table of parameters
538
+ that control how output is generated. Supported parameters
539
+ include setting indentation on or off, the indentation level
540
+ and the output encoding. This is an API change and may break
541
+ existing calls to XML::Document#save. However, the previous
542
+ API was broken - setting the encoding resulted in an error so
543
+ its unlikely anyone is using it.
544
+
545
+ * Rationalized XML::Document#debug, XML::Node#debug, XML::XPath::XPathObject#Debug.
546
+
547
+ * Deprecated a number of duplicate dump* and debug_* methods in
548
+ XML::Document and XML::Node.
549
+
550
+ * Additional Ruby 1.9.1 compatability fixes.
551
+
552
+ * Cleaned up header file guards.
553
+
554
+ == 0.9.5 / 2008-11-29 Charlie Savage
555
+
556
+ * Ruby 1.9.1 preview release compatability (Felipe Contreras)
557
+
558
+ * Update Node#remove! to return the removed node and to set
559
+ its document to nil. This allows the node to be either
560
+ moved to another document, another part of the same document
561
+ or to be freed on the next garbage collection once its
562
+ references have gone out of scope.
563
+
564
+ * Fix bug where XPathExpression#compile mistakenly overwrote
565
+ RegExp#compile.
566
+
567
+ * Update Node to use standard ruby allocators and initializers.
568
+
569
+ * Update HTML parser to be more forgiving of invalid documents.
570
+
571
+ * Update include paths for Darwin Ports on OS X.
572
+
573
+ * Updated C code base to use BSD/Allman style
574
+
575
+
576
+ == 0.9.4 / 2008-11-24 Charlie Savage
577
+
578
+ * Update HTML parser so that it can read files, strings and io
579
+ streams.
580
+
581
+ * Update HTML parser to support user specified encodings.
582
+
583
+ * Additional C code cleanup.
584
+
585
+ == 0.9.3 / 2008-11-22 Charlie Savage
586
+
587
+ * Fixed segmentation fault caused by documents being freed
588
+ before xpath results that referenced the document (take 2).
589
+
590
+ * Allowed sax parser to use io stream
591
+
592
+ * Combined encoding and input classes
593
+
594
+ * Cleaned up C code - removed remaining legacy structures,
595
+ added static to most methods, changed C namespace from ruby_xml
596
+ to rxml
597
+
598
+ == 0.9.2 / 2008-11-19 Charlie Savage
599
+
600
+ * Add support for compiled XPath expressions (donated by Pavel Valodzka)
601
+
602
+ * Fixes for compiling on OS X 10.5.4 and 10.5.5
603
+
604
+ == 0.9.1 / 2008-11-18 Charlie Savage
605
+
606
+ * Expose LibXML's encoding support via a new Encoding object.
607
+
608
+ * Revamp error handling to be much easier to use. Errors are now
609
+ wrapped by the new XML::Error class and are thrown as exceptions
610
+ when it is appropriate.
611
+
612
+ * Fixed segmentation fault caused by documents being freed
613
+ before xpath results that referenced the document.
614
+
615
+ * Add Node#register_default_namespace to simplify default namespace handling.
616
+
617
+ * Significantly improve documentation
618
+
619
+ * A number of bug fixes and patches.
620
+
621
+ == 0.9.0 / 2008-11-18 Charlie Savage
622
+
623
+ * Version 0.9.0 was removed due to packaging errors.
624
+
625
+
626
+ == 0.8.3 / 2008-07-21 Charlie Savage
627
+
628
+ * Missed several files in last release
629
+
630
+ == 0.8.2 / 2008-07-21 Charlie Savage
631
+
632
+ * To use LibXML you can either require 'xml' or require 'libxml'.
633
+ The differences is that require 'xml' mixes the LibXML module into
634
+ the global namespace, thereby allowing you to write code such
635
+ as document = XML::Document.new. Note that this is different
636
+ from 0.8.0 and 0.8.1 and may require updating your code.
637
+
638
+ * Support RelaxNG validation (thanks to Morus Walter)
639
+
640
+ * Support passing IO objects to XmlReaders (thanks to Tom Hughes)
641
+
642
+ * Fix segmentation fault caused by adding an attribute to a CDATA node
643
+
644
+ * Moved node checking functions from C to Ruby
645
+
646
+ * Improved Windows support - libxml-ruby should now work out of the box.
647
+
648
+ * Improved Windows support - turned on libxml's zlib and iconv support.
649
+
650
+
651
+ == 0.8.1 / 2008-07-09 Charlie Savage
652
+
653
+ * Reimplmented Node#each_attr for backwards compatability
654
+
655
+ * Moved node type test to Ruby.
656
+
657
+
658
+ == 0.8.0 / 2008-07-09 Charlie Savage
659
+
660
+ * Fixed bug in returning attributes from XPath results
661
+
662
+ * Fixed DOM traversal methods
663
+
664
+ * Changed Node#children to return an array of nodes
665
+
666
+ * Fixed bug in returning attributes from XPath results
667
+
668
+ * Refactored XPath support, providing more user hooks in the XPath::Context class
669
+
670
+ * Added Node#properties for backwards compatibility
671
+
672
+ * Updated setup.rb
673
+
674
+ * Added more tests
675
+
676
+ * Updated rdocs and README file
677
+
678
+ * Moved libxml into LibXML namespace
679
+
680
+
681
+ == 0.7.0 / 2008-07-09 Charlie Savage
682
+
683
+ * Added new attributes class to provide a more natural way of working with attributes
684
+
685
+ * Fixed XML::Attr to better support namespaces
686
+
687
+ * Added documentation on how to use namespaces with XPath
688
+
689
+ * Removed allocation of extraneous structures used to wrap nodes, namespaces and attributes
690
+
691
+ * Cleaned up tests and added new test suite
692
+
693
+ * Updated rdocs and README file
694
+
695
+ * Cleaned out most of the bug list
696
+
697
+
698
+ == 0.6.0 / 2008-07-01 Charlie Savage
699
+
700
+ * Fixed memory allocation errors in Windows. On Windows, it is essential that the same library that allocates memory must free it. Thus ALLOC calls must be matched to ruby_xfree calls, which they were not. In addition, in one case Ruby was allocating memory to be freed by libxml. On Windows, that's a segmentation fault. On Linux it might fly, but still seems like a bad idea.
701
+
702
+ * Fixed segmentation fault in xml reader expand (same xml tree freed twice)
703
+
704
+ * Applied a number of patches from Tom Bagby, including fixes for xpath segmentation faults and fixes for various memory leaks
705
+
706
+ * Cleaned up a number of compiler warnings
707
+
708
+ * Renamed libxml_so.so to libxml_ruby.so (same for xslt). That wasn't actually my original intention, but um, it kind of sort of happened. It should not be noticeable from an end-user perspective.
709
+
710
+ * Added rake files for building with MingW
711
+
712
+ * Added rake files for packing gems. Note that I did this outside the existing rake tasks because I didn't see how they were actually building the gems.
713
+
714
+ * Cleaned up the tests and added a few more based on bug reports from the Tracker and mailing list.
715
+
716
+ * Cleaned out the patch queue and went through about 1/2 the bug list
717
+
718
+
719
+ === 2007-11-16 "Dan Janowski" <danj at 3skel.com>
720
+
721
+ * Merged Dan's MEM2 branch to trunk.
722
+
723
+ == 0.5.3 /
724
+
725
+ === 2007-11-16 "Dan Janowski" <danj at 3skel.com>
726
+
727
+ * Merged Dan's MEM2 branch to trunk.
728
+
729
+
730
+ == 0.5.2 / 2007-10-10
731
+
732
+ === 2007-10-10 "Dan Janowski" <danj at 3skel.com>
733
+
734
+ * (Dan, fill in the major points of the changes you made up to here -thanks)
735
+
736
+ === 2007-01-14 "Laurent Sansonetti" <lrz at chopine.be>
737
+
738
+ * Added some preliminary RDoc comments for XML::Reader.
739
+
740
+ === 2006-12-05 "Laurent Sansonetti" <lrz at chopine.be>
741
+
742
+ * Added XML::Reader, a set of bindings to the xmlTextReader API.
743
+
744
+
745
+ == 0.3.8.4 / 2006-12-02
746
+
747
+ === 2006-04-15 "Ross Bamform" <rosco at roscopeco.co.uk>
748
+
749
+ * Implemented SAX parser callback handling.
750
+
751
+ === 2006-04-12 "Ross Bamford" <rosco at roscopeco.co.uk>
752
+
753
+ * Integrated and tested community patches.
754
+ * Defined XML::Node (hash) equality in terms of XML representation.
755
+
756
+ === 2006-04-12 "Tim Yamin" <plasmaroo at gentoo.org>
757
+
758
+ * Fixed XML::Node#content inoperable bug (plasmaroo) [patch]
759
+ * Fixed memory leak in same
760
+
761
+ === 2006-04-12 "Mark Van Holstyn" <mvette13 at gmail.com>
762
+
763
+ * Added XML::Node::Set#first (mvette13) [patch]
764
+ * Added XML::Node::Set#empty?
765
+ * Fixed XML::Node::Set#to_a
766
+ * Added XML::Node#find_first
767
+ * Added XML::Node#remove!
768
+
769
+ === 2006-03-27 "Ross Bamford" <rosco at roscopeco.co.uk>
770
+
771
+ * Integrated contributed XML::Parser.register_error_handler patch (rosco)
772
+
773
+ === 2006-02-27 "Ross Bamford" <rosco at roscopeco.co.uk>
774
+
775
+ * Fixed all multiple symbol definitions for -fno-common.
776
+ * Removed OSX -fno-common workaround.
777
+
778
+
779
+ == 0.3.6 / 2006-02-23
780
+
781
+ === 2006-02-21 "Ross Bamford" <rosco at roscopeco.co.uk>
782
+
783
+ * Patched extconf.rb with OSX -fno-common workaround
784
+ * Added gem and packaging support to Rakefile
785
+ * Moved version update to Rakefile
786
+ * Removed legacy project utility scripts
787
+
788
+ === 2005-02-19 "Ross Bamford" <rosco at roscopeco.co.uk>
789
+
790
+ * Fixed doublefree bug in ruby_xml_attr.
791
+ * Fixed small leak in parser
792
+
793
+ === 2005-12-18 "Ross Bamford" <rosco at roscopeco.co.uk>
794
+
795
+ * Updated for GCC 4.0 (community patches)
796
+ * Fixed default validation bug
797
+ * Refactored project, removed outdated files, cleaned up tests.
798
+ * Added RDoc documentation across .c files.
799
+ * Fixed up a few strings.
800
+
801
+ === 2004-04-04 "Mangler Jurgen" <et@wkv.at>
802
+
803
+ * ruby_xml_node.cz: fixed ruby_xml_node_property_set. The ill-behaviour
804
+ was, that there was added a second attribute of the same
805
+ name, when you were setting the value of an already existing
806
+ attribute.
807
+
808
+ === 2004-03-17 "Lukas Svoboda" <luks@fi.muni.cz>
809
+
810
+ * ruby_xml_node.c: ruby_xml_node_to_s now returns XML subtree dump.
811
+
812
+ === 2004-02-27 "Martin Povolny" <martin@solnet.cz>
813
+
814
+ * ruby_xml_node.c: added XML::Node.copy, this makes possible building
815
+ of xml documents from nodes taken from other xml documents
816
+ without making ruby SIGSEGV (see tests/copy_bug.rb).
817
+
818
+ === 2004-02-26 "Martin Povolny" <martin@solnet.cz>
819
+
820
+ * ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
821
+ more work on validation, now you can actually validate
822
+ document using dtd or xml schema, also solved warning and
823
+ error propagation (see tests/{dtd|schema}-test.rb).
824
+
825
+ === 2003-12-30 "Martin Povolny" <martin@solnet.cz>
826
+
827
+ * ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
828
+ prelimitary support for dtd and schema validation
829
+
830
+ === 2003-09-15 "Martin Povolny" <martin@solnet.cz>
831
+
832
+ * ruby_xml_input_cbg.c, libxml.c: added class InputCallbacks to make
833
+ possible registering custom input callbacks
834
+ handlers (xmlRegisterInputCallbacks) written in ruby
835
+
836
+ === 2003-08-01 "Martin Povolny" <martin@solnet.cz>
837
+
838
+ * ruby_xml_document.c: corrected argument handling in ruby_xml_document_find
839
+ * ruby_xml_node.c: corrected argument handling in ruby_xml_node_find
840
+
841
+
842
+