libxml-ruby 2.9.0-x64-mingw32

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