libxml-ruby 2.8.0 → 3.2.1

Sign up to get free protection for your applications and to get access to all the features.
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
+