nokogiri-backupify 1.5.0.beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. data/.autotest +26 -0
  2. data/CHANGELOG.ja.rdoc +509 -0
  3. data/CHANGELOG.rdoc +490 -0
  4. data/Manifest.txt +274 -0
  5. data/README.ja.rdoc +106 -0
  6. data/README.rdoc +150 -0
  7. data/Rakefile +217 -0
  8. data/bin/nokogiri +54 -0
  9. data/deps.rip +5 -0
  10. data/ext/java/nokogiri/EncodingHandler.java +124 -0
  11. data/ext/java/nokogiri/HtmlDocument.java +146 -0
  12. data/ext/java/nokogiri/HtmlElementDescription.java +145 -0
  13. data/ext/java/nokogiri/HtmlEntityLookup.java +79 -0
  14. data/ext/java/nokogiri/HtmlSaxParserContext.java +256 -0
  15. data/ext/java/nokogiri/NokogiriService.java +466 -0
  16. data/ext/java/nokogiri/XmlAttr.java +183 -0
  17. data/ext/java/nokogiri/XmlAttributeDecl.java +130 -0
  18. data/ext/java/nokogiri/XmlCdata.java +89 -0
  19. data/ext/java/nokogiri/XmlComment.java +84 -0
  20. data/ext/java/nokogiri/XmlDocument.java +514 -0
  21. data/ext/java/nokogiri/XmlDocumentFragment.java +216 -0
  22. data/ext/java/nokogiri/XmlDtd.java +464 -0
  23. data/ext/java/nokogiri/XmlElement.java +221 -0
  24. data/ext/java/nokogiri/XmlElementContent.java +382 -0
  25. data/ext/java/nokogiri/XmlElementDecl.java +147 -0
  26. data/ext/java/nokogiri/XmlEntityDecl.java +161 -0
  27. data/ext/java/nokogiri/XmlEntityReference.java +75 -0
  28. data/ext/java/nokogiri/XmlNamespace.java +127 -0
  29. data/ext/java/nokogiri/XmlNode.java +1392 -0
  30. data/ext/java/nokogiri/XmlNodeSet.java +284 -0
  31. data/ext/java/nokogiri/XmlProcessingInstruction.java +103 -0
  32. data/ext/java/nokogiri/XmlReader.java +409 -0
  33. data/ext/java/nokogiri/XmlRelaxng.java +199 -0
  34. data/ext/java/nokogiri/XmlSaxParserContext.java +353 -0
  35. data/ext/java/nokogiri/XmlSaxPushParser.java +182 -0
  36. data/ext/java/nokogiri/XmlSchema.java +175 -0
  37. data/ext/java/nokogiri/XmlSyntaxError.java +114 -0
  38. data/ext/java/nokogiri/XmlText.java +135 -0
  39. data/ext/java/nokogiri/XmlXpathContext.java +175 -0
  40. data/ext/java/nokogiri/XsltStylesheet.java +181 -0
  41. data/ext/java/nokogiri/internals/HtmlDomParserContext.java +205 -0
  42. data/ext/java/nokogiri/internals/NokogiriDocumentCache.java +73 -0
  43. data/ext/java/nokogiri/internals/NokogiriErrorHandler.java +80 -0
  44. data/ext/java/nokogiri/internals/NokogiriHandler.java +326 -0
  45. data/ext/java/nokogiri/internals/NokogiriHelpers.java +583 -0
  46. data/ext/java/nokogiri/internals/NokogiriNamespaceCache.java +170 -0
  47. data/ext/java/nokogiri/internals/NokogiriNamespaceContext.java +118 -0
  48. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +73 -0
  49. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java +121 -0
  50. data/ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java +78 -0
  51. data/ext/java/nokogiri/internals/NokogiriXPathFunction.java +120 -0
  52. data/ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java +56 -0
  53. data/ext/java/nokogiri/internals/ParserContext.java +278 -0
  54. data/ext/java/nokogiri/internals/PushInputStream.java +411 -0
  55. data/ext/java/nokogiri/internals/ReaderNode.java +473 -0
  56. data/ext/java/nokogiri/internals/SaveContext.java +282 -0
  57. data/ext/java/nokogiri/internals/SchemaErrorHandler.java +68 -0
  58. data/ext/java/nokogiri/internals/XmlDeclHandler.java +42 -0
  59. data/ext/java/nokogiri/internals/XmlDomParser.java +77 -0
  60. data/ext/java/nokogiri/internals/XmlDomParserContext.java +233 -0
  61. data/ext/java/nokogiri/internals/XmlSaxParser.java +65 -0
  62. data/ext/java/nokogiri/internals/XsltExtensionFunction.java +72 -0
  63. data/ext/nokogiri/depend +358 -0
  64. data/ext/nokogiri/extconf.rb +124 -0
  65. data/ext/nokogiri/html_document.c +154 -0
  66. data/ext/nokogiri/html_document.h +10 -0
  67. data/ext/nokogiri/html_element_description.c +276 -0
  68. data/ext/nokogiri/html_element_description.h +10 -0
  69. data/ext/nokogiri/html_entity_lookup.c +32 -0
  70. data/ext/nokogiri/html_entity_lookup.h +8 -0
  71. data/ext/nokogiri/html_sax_parser_context.c +94 -0
  72. data/ext/nokogiri/html_sax_parser_context.h +11 -0
  73. data/ext/nokogiri/nokogiri.c +92 -0
  74. data/ext/nokogiri/nokogiri.h +160 -0
  75. data/ext/nokogiri/xml_attr.c +94 -0
  76. data/ext/nokogiri/xml_attr.h +9 -0
  77. data/ext/nokogiri/xml_attribute_decl.c +70 -0
  78. data/ext/nokogiri/xml_attribute_decl.h +9 -0
  79. data/ext/nokogiri/xml_cdata.c +56 -0
  80. data/ext/nokogiri/xml_cdata.h +9 -0
  81. data/ext/nokogiri/xml_comment.c +54 -0
  82. data/ext/nokogiri/xml_comment.h +9 -0
  83. data/ext/nokogiri/xml_document.c +478 -0
  84. data/ext/nokogiri/xml_document.h +23 -0
  85. data/ext/nokogiri/xml_document_fragment.c +48 -0
  86. data/ext/nokogiri/xml_document_fragment.h +10 -0
  87. data/ext/nokogiri/xml_dtd.c +202 -0
  88. data/ext/nokogiri/xml_dtd.h +10 -0
  89. data/ext/nokogiri/xml_element_content.c +123 -0
  90. data/ext/nokogiri/xml_element_content.h +10 -0
  91. data/ext/nokogiri/xml_element_decl.c +69 -0
  92. data/ext/nokogiri/xml_element_decl.h +9 -0
  93. data/ext/nokogiri/xml_encoding_handler.c +79 -0
  94. data/ext/nokogiri/xml_encoding_handler.h +8 -0
  95. data/ext/nokogiri/xml_entity_decl.c +110 -0
  96. data/ext/nokogiri/xml_entity_decl.h +10 -0
  97. data/ext/nokogiri/xml_entity_reference.c +52 -0
  98. data/ext/nokogiri/xml_entity_reference.h +9 -0
  99. data/ext/nokogiri/xml_io.c +31 -0
  100. data/ext/nokogiri/xml_io.h +11 -0
  101. data/ext/nokogiri/xml_libxml2_hacks.c +112 -0
  102. data/ext/nokogiri/xml_libxml2_hacks.h +12 -0
  103. data/ext/nokogiri/xml_namespace.c +84 -0
  104. data/ext/nokogiri/xml_namespace.h +13 -0
  105. data/ext/nokogiri/xml_node.c +1384 -0
  106. data/ext/nokogiri/xml_node.h +13 -0
  107. data/ext/nokogiri/xml_node_set.c +418 -0
  108. data/ext/nokogiri/xml_node_set.h +9 -0
  109. data/ext/nokogiri/xml_processing_instruction.c +56 -0
  110. data/ext/nokogiri/xml_processing_instruction.h +9 -0
  111. data/ext/nokogiri/xml_reader.c +684 -0
  112. data/ext/nokogiri/xml_reader.h +10 -0
  113. data/ext/nokogiri/xml_relax_ng.c +161 -0
  114. data/ext/nokogiri/xml_relax_ng.h +9 -0
  115. data/ext/nokogiri/xml_sax_parser.c +288 -0
  116. data/ext/nokogiri/xml_sax_parser.h +39 -0
  117. data/ext/nokogiri/xml_sax_parser_context.c +199 -0
  118. data/ext/nokogiri/xml_sax_parser_context.h +10 -0
  119. data/ext/nokogiri/xml_sax_push_parser.c +115 -0
  120. data/ext/nokogiri/xml_sax_push_parser.h +9 -0
  121. data/ext/nokogiri/xml_schema.c +205 -0
  122. data/ext/nokogiri/xml_schema.h +9 -0
  123. data/ext/nokogiri/xml_syntax_error.c +58 -0
  124. data/ext/nokogiri/xml_syntax_error.h +13 -0
  125. data/ext/nokogiri/xml_text.c +50 -0
  126. data/ext/nokogiri/xml_text.h +9 -0
  127. data/ext/nokogiri/xml_xpath_context.c +309 -0
  128. data/ext/nokogiri/xml_xpath_context.h +9 -0
  129. data/ext/nokogiri/xslt_stylesheet.c +258 -0
  130. data/ext/nokogiri/xslt_stylesheet.h +9 -0
  131. data/lib/isorelax.jar +0 -0
  132. data/lib/jing.jar +0 -0
  133. data/lib/nekodtd.jar +0 -0
  134. data/lib/nekohtml.jar +0 -0
  135. data/lib/nokogiri.rb +143 -0
  136. data/lib/nokogiri/css.rb +23 -0
  137. data/lib/nokogiri/css/node.rb +99 -0
  138. data/lib/nokogiri/css/parser.rb +677 -0
  139. data/lib/nokogiri/css/parser.y +237 -0
  140. data/lib/nokogiri/css/parser_extras.rb +91 -0
  141. data/lib/nokogiri/css/syntax_error.rb +7 -0
  142. data/lib/nokogiri/css/tokenizer.rb +152 -0
  143. data/lib/nokogiri/css/tokenizer.rex +55 -0
  144. data/lib/nokogiri/css/xpath_visitor.rb +171 -0
  145. data/lib/nokogiri/decorators/slop.rb +35 -0
  146. data/lib/nokogiri/html.rb +36 -0
  147. data/lib/nokogiri/html/builder.rb +35 -0
  148. data/lib/nokogiri/html/document.rb +221 -0
  149. data/lib/nokogiri/html/document_fragment.rb +41 -0
  150. data/lib/nokogiri/html/element_description.rb +23 -0
  151. data/lib/nokogiri/html/element_description_defaults.rb +671 -0
  152. data/lib/nokogiri/html/entity_lookup.rb +13 -0
  153. data/lib/nokogiri/html/sax/parser.rb +52 -0
  154. data/lib/nokogiri/html/sax/parser_context.rb +16 -0
  155. data/lib/nokogiri/syntax_error.rb +4 -0
  156. data/lib/nokogiri/version.rb +35 -0
  157. data/lib/nokogiri/xml.rb +67 -0
  158. data/lib/nokogiri/xml/attr.rb +14 -0
  159. data/lib/nokogiri/xml/attribute_decl.rb +18 -0
  160. data/lib/nokogiri/xml/builder.rb +418 -0
  161. data/lib/nokogiri/xml/cdata.rb +11 -0
  162. data/lib/nokogiri/xml/character_data.rb +7 -0
  163. data/lib/nokogiri/xml/document.rb +218 -0
  164. data/lib/nokogiri/xml/document_fragment.rb +84 -0
  165. data/lib/nokogiri/xml/dtd.rb +22 -0
  166. data/lib/nokogiri/xml/element_content.rb +36 -0
  167. data/lib/nokogiri/xml/element_decl.rb +13 -0
  168. data/lib/nokogiri/xml/entity_decl.rb +19 -0
  169. data/lib/nokogiri/xml/namespace.rb +13 -0
  170. data/lib/nokogiri/xml/node.rb +907 -0
  171. data/lib/nokogiri/xml/node/save_options.rb +45 -0
  172. data/lib/nokogiri/xml/node_set.rb +350 -0
  173. data/lib/nokogiri/xml/notation.rb +6 -0
  174. data/lib/nokogiri/xml/parse_options.rb +85 -0
  175. data/lib/nokogiri/xml/pp.rb +2 -0
  176. data/lib/nokogiri/xml/pp/character_data.rb +18 -0
  177. data/lib/nokogiri/xml/pp/node.rb +56 -0
  178. data/lib/nokogiri/xml/processing_instruction.rb +8 -0
  179. data/lib/nokogiri/xml/reader.rb +112 -0
  180. data/lib/nokogiri/xml/relax_ng.rb +32 -0
  181. data/lib/nokogiri/xml/sax.rb +4 -0
  182. data/lib/nokogiri/xml/sax/document.rb +164 -0
  183. data/lib/nokogiri/xml/sax/parser.rb +115 -0
  184. data/lib/nokogiri/xml/sax/parser_context.rb +16 -0
  185. data/lib/nokogiri/xml/sax/push_parser.rb +60 -0
  186. data/lib/nokogiri/xml/schema.rb +57 -0
  187. data/lib/nokogiri/xml/syntax_error.rb +47 -0
  188. data/lib/nokogiri/xml/text.rb +9 -0
  189. data/lib/nokogiri/xml/xpath.rb +10 -0
  190. data/lib/nokogiri/xml/xpath/syntax_error.rb +11 -0
  191. data/lib/nokogiri/xml/xpath_context.rb +16 -0
  192. data/lib/nokogiri/xslt.rb +52 -0
  193. data/lib/nokogiri/xslt/stylesheet.rb +25 -0
  194. data/lib/xercesImpl.jar +0 -0
  195. data/lib/xsd/xmlparser/nokogiri.rb +90 -0
  196. data/tasks/cross_compile.rb +177 -0
  197. data/tasks/test.rb +94 -0
  198. data/test/css/test_nthiness.rb +159 -0
  199. data/test/css/test_parser.rb +303 -0
  200. data/test/css/test_tokenizer.rb +198 -0
  201. data/test/css/test_xpath_visitor.rb +85 -0
  202. data/test/decorators/test_slop.rb +16 -0
  203. data/test/files/2ch.html +108 -0
  204. data/test/files/address_book.rlx +12 -0
  205. data/test/files/address_book.xml +10 -0
  206. data/test/files/bar/bar.xsd +4 -0
  207. data/test/files/dont_hurt_em_why.xml +422 -0
  208. data/test/files/exslt.xml +8 -0
  209. data/test/files/exslt.xslt +35 -0
  210. data/test/files/foo/foo.xsd +4 -0
  211. data/test/files/po.xml +32 -0
  212. data/test/files/po.xsd +66 -0
  213. data/test/files/shift_jis.html +10 -0
  214. data/test/files/shift_jis.xml +5 -0
  215. data/test/files/snuggles.xml +3 -0
  216. data/test/files/staff.dtd +10 -0
  217. data/test/files/staff.xml +59 -0
  218. data/test/files/staff.xslt +32 -0
  219. data/test/files/tlm.html +850 -0
  220. data/test/files/valid_bar.xml +2 -0
  221. data/test/helper.rb +171 -0
  222. data/test/html/sax/test_parser.rb +136 -0
  223. data/test/html/sax/test_parser_context.rb +48 -0
  224. data/test/html/test_builder.rb +164 -0
  225. data/test/html/test_document.rb +457 -0
  226. data/test/html/test_document_encoding.rb +123 -0
  227. data/test/html/test_document_fragment.rb +255 -0
  228. data/test/html/test_element_description.rb +100 -0
  229. data/test/html/test_named_characters.rb +14 -0
  230. data/test/html/test_node.rb +190 -0
  231. data/test/html/test_node_encoding.rb +27 -0
  232. data/test/test_convert_xpath.rb +135 -0
  233. data/test/test_css_cache.rb +45 -0
  234. data/test/test_encoding_handler.rb +46 -0
  235. data/test/test_memory_leak.rb +52 -0
  236. data/test/test_nokogiri.rb +132 -0
  237. data/test/test_reader.rb +403 -0
  238. data/test/test_soap4r_sax.rb +52 -0
  239. data/test/test_xslt_transforms.rb +189 -0
  240. data/test/xml/node/test_save_options.rb +20 -0
  241. data/test/xml/node/test_subclass.rb +44 -0
  242. data/test/xml/sax/test_parser.rb +338 -0
  243. data/test/xml/sax/test_parser_context.rb +113 -0
  244. data/test/xml/sax/test_push_parser.rb +156 -0
  245. data/test/xml/test_attr.rb +65 -0
  246. data/test/xml/test_attribute_decl.rb +86 -0
  247. data/test/xml/test_builder.rb +210 -0
  248. data/test/xml/test_cdata.rb +50 -0
  249. data/test/xml/test_comment.rb +29 -0
  250. data/test/xml/test_document.rb +675 -0
  251. data/test/xml/test_document_encoding.rb +26 -0
  252. data/test/xml/test_document_fragment.rb +192 -0
  253. data/test/xml/test_dtd.rb +107 -0
  254. data/test/xml/test_dtd_encoding.rb +33 -0
  255. data/test/xml/test_element_content.rb +56 -0
  256. data/test/xml/test_element_decl.rb +73 -0
  257. data/test/xml/test_entity_decl.rb +122 -0
  258. data/test/xml/test_entity_reference.rb +21 -0
  259. data/test/xml/test_namespace.rb +70 -0
  260. data/test/xml/test_node.rb +899 -0
  261. data/test/xml/test_node_attributes.rb +34 -0
  262. data/test/xml/test_node_encoding.rb +107 -0
  263. data/test/xml/test_node_reparenting.rb +321 -0
  264. data/test/xml/test_node_set.rb +708 -0
  265. data/test/xml/test_parse_options.rb +52 -0
  266. data/test/xml/test_processing_instruction.rb +30 -0
  267. data/test/xml/test_reader_encoding.rb +126 -0
  268. data/test/xml/test_relax_ng.rb +60 -0
  269. data/test/xml/test_schema.rb +89 -0
  270. data/test/xml/test_syntax_error.rb +12 -0
  271. data/test/xml/test_text.rb +47 -0
  272. data/test/xml/test_unparented_node.rb +381 -0
  273. data/test/xml/test_xpath.rb +237 -0
  274. data/test/xslt/test_custom_functions.rb +94 -0
  275. metadata +525 -0
@@ -0,0 +1,490 @@
1
+ == 1.5.0 beta3 / 2010/12/02
2
+
3
+ * Notes
4
+
5
+ * JRuby performance tuning
6
+ * See changelog from 1.4.4
7
+
8
+ * Bugfixes
9
+
10
+ * Node#inner_text no longer returns nil. (JRuby) #264
11
+
12
+ == 1.5.0 beta2 / 2010/07/30
13
+
14
+ * Notes
15
+
16
+ * See changelog from 1.4.3
17
+
18
+ == 1.5.0 beta1 / 2010/05/22
19
+
20
+ * Notes
21
+
22
+ * JRuby support is provided by a new pure-java backend.
23
+
24
+ * Deprecations
25
+
26
+ * Ruby 1.8.6 is deprecated. Nokogiri will install, but official support is ended.
27
+ * LibXML 2.6.16 and earlier are deprecated. Nokogiri will refuse to install.
28
+ * FFI support is removed.
29
+
30
+ === 1.4.5 / unrelease
31
+
32
+ * New Features
33
+
34
+ * Nokogiri::HTML::Document#title accessor gets and sets the document title.
35
+
36
+ * Bugfixes
37
+
38
+ * Node#serialize-and-friends now accepts a SaveOption object as the, erm, save object.
39
+ * Nokogiri::CSS::Parser has-a Nokogiri::CSS::Tokenizer
40
+ * [JRUBY+FFI only] Weak references are now threadsafe. #355
41
+ * Make direct start_element() callback (currently used for HTML::SAX::Parser) pass attributes in assoc array, just as emulated start_element() callback does. rel. #356
42
+ * HTML::SAX::Parser should call back a block given to parse*() if any, just as XML::SAX::Parser does.
43
+ * Add further encoding detection to HTML parser that libxml2 does not do.
44
+
45
+ === 1.4.4 / 2010-11-15
46
+
47
+ * New Features
48
+
49
+ * XML::Node#children= sets the node's inner html (much like #inner_html=), but returns the reparent node(s).
50
+ * XSLT supports function extensions. #336
51
+ * XPath bind parameter substitution. #329
52
+ * XML::Reader node type constants. #369
53
+ * SAX Parser context provides line and column information
54
+
55
+ * Bugfixes
56
+
57
+ * XML::DTD#attributes returns an empty hash instead of nil when there are no attributes.
58
+ * XML::DTD#{keys,each} now work as expected. #324
59
+ * {XML,HTML}::DocumentFragment.{new,parse} no longer strip leading and trailing whitespace. #319
60
+ * XML::Node#{add_child,add_previous_sibling,add_next_sibling,replace} return a NodeSet when passed a string.
61
+ * Unclosed tags parsed more robustly in fragments. #315
62
+ * XML::Node#{replace,add_previous_sibling,add_next_sibling} edge cases fixed related to libxml's text node merging. #308
63
+ * Fixed a segfault when GC occurs during xpath handler argument marshalling. #345
64
+ * Added hack to Slop decorator to work with previously defined methods. #330
65
+ * Fix a memory leak when duplicating child nodes. #353
66
+ * Fixed off-by-one bug with nth-last-{child,of-type} CSS selectors when NOT using an+b notation. #354
67
+ * Fixed passing of non-namespace attributes to SAX::Document#start_element. #356
68
+ * Workaround for libxml2 in-context parsing bug. #362
69
+ * Fixed NodeSet#wrap on nodes within a fragment. #331
70
+
71
+ === 1.4.3 / 2010/07/28
72
+
73
+ * New Features
74
+
75
+ * XML::Reader#empty_element? returns true for empty elements. #262
76
+ * Node#remove_namespaces! now removes namespace *declarations* as well. #294
77
+ * NodeSet#at_xpath, NodeSet#at_css and NodeSet#> do what the corresponding
78
+ methods of Node do.
79
+
80
+ * Bugfixes
81
+
82
+ * XML::NodeSet#{include?,delete,push} accept an XML::Namespace
83
+ * XML::Document#parse added for parsing in the context of a document
84
+ * XML::DocumentFragment#inner_html= works with contextual parsing! #298, #281
85
+ * lib/nokogiri/css/parser.y Combined CSS functions + pseudo selectors fixed
86
+ * Reparenting text nodes is safe, even when the operation frees adjacent merged nodes. #283
87
+ * Fixed libxml2 versionitis issue with xmlFirstElementChild et al. #303
88
+ * XML::Attr#add_namespace now works as expected. #252
89
+ * HTML::DocumentFragment uses the string's encoding. #305
90
+ * Fix the CSS3 selector translation rule for the general sibling combinator
91
+ (a.k.a. preceding selector) that incorrectly converted "E ~ F G" to
92
+ "//F//G[preceding-sibling::E]".
93
+
94
+ === 1.4.2 / 2010/05/22
95
+
96
+ * New Features
97
+
98
+ * XML::Node#parse will parse XML or HTML fragments with respect to the
99
+ context node.
100
+ * XML::Node#namespaces returns all namespaces defined in the node and all
101
+ ancestor nodes
102
+ (previously did not return ancestors' namespace definitions).
103
+ * Added Enumerable to XML::Node
104
+ * Nokogiri::XML::Schema#validate now uses xmlSchemaValidateFile if a
105
+ filename is passed, which is faster and more memory-efficient. GH #219
106
+ * XML::Document#create_entity will create new EntityDecl objects. GH #174
107
+ * JRuby FFI implementation no longer uses ObjectSpace._id2ref,
108
+ instead using Charles Nutter's rocking Weakling gem.
109
+ * Nokogiri::XML::Node#first_element_child fetch the first child node that is
110
+ an ELEMENT node.
111
+ * Nokogiri::XML::Node#last_element_child fetch the last child node that is
112
+ an ELEMENT node.
113
+ * Nokogiri::XML::Node#elements fetch all children nodes that are ELEMENT
114
+ nodes.
115
+ * Nokogiri::XML::Node#add_child, #add_previous_sibling, #before,
116
+ #add_next_sibling, #after, #inner_html, #swap and #replace all now
117
+ accept a Node, DocumentFragment, NodeSet, or a string containing
118
+ markup.
119
+ * Node#fragment? indicates whether a node is a DocumentFragment.
120
+
121
+ * Bugfixes
122
+
123
+ * XML::NodeSet is now always decorated (if the document has decorators).
124
+ GH #198
125
+ * XML::NodeSet#slice gracefully handles offset+length larger than the set
126
+ length. GH #200
127
+ * XML::Node#content= safely unlinks previous content. GH #203
128
+ * XML::Node#namespace= takes nil as a parameter
129
+ * XML::Node#xpath returns things other than NodeSet objects. GH #208
130
+ * XSLT::StyleSheet#transform accepts hashes for parameters. GH #223
131
+ * Psuedo selectors inside not() work. GH #205
132
+ * XML::Builder doesn't break when nodes are unlinked.
133
+ Thanks to vihai! GH #228
134
+ * Encoding can be forced on the SAX parser. Thanks Eugene Pimenov! GH #204
135
+ * XML::DocumentFragment uses XML::Node#parse to determine children.
136
+ * Fixed a memory leak in xml reader. Thanks sdor! GH #244
137
+ * Node#replace returns the new child node as claimed in the
138
+ RDoc. Previously returned +self+.
139
+
140
+ * Notes
141
+
142
+ * The Windows gems now bundle DLLs for libxml 2.7.6 and libxslt
143
+ 1.1.26. Prior to this release, libxml 2.7.3 and libxslt 1.1.24
144
+ were bundled.
145
+
146
+ === 1.4.1 / 2009/12/10
147
+
148
+ * New Features
149
+
150
+ * Added Nokogiri::LIBXML_ICONV_ENABLED
151
+ * Alias Node#[] to Node#attr
152
+ * XML::Node#next_element added
153
+ * XML::Node#> added for searching a nodes immediate children
154
+ * XML::NodeSet#reverse added
155
+ * Added fragment support to Node#add_child, Node#add_next_sibling,
156
+ Node#add_previous_sibling, and Node#replace.
157
+ * XML::Node#previous_element implemented
158
+ * Rubinius support
159
+ * Ths CSS selector engine now supports :has()
160
+ * XML::NodeSet#filter() was added
161
+ * XML::Node.next= and .previous= are aliases for add_next_sibling and add_previous_sibling. GH #183
162
+
163
+ * Bugfixes
164
+
165
+ * XML fragments with namespaces do not raise an exception (regression in 1.4.0)
166
+ * Node#matches? works in nodes contained by a DocumentFragment. GH #158
167
+ * Document should not define add_namespace() method. GH #169
168
+ * XPath queries returning namespace declarations do not segfault.
169
+ * Node#replace works with nodes from different documents. GH #162
170
+ * Adding XML::Document#collect_namespaces
171
+ * Fixed bugs in the SOAP4R adapter
172
+ * Fixed bug in XML::Node#next_element for certain edge cases
173
+ * Fixed load path issue with JRuby under Windows. GH #160.
174
+ * XSLT#apply_to will honor the "output method". Thanks richardlehane!
175
+ * Fragments containing leading text nodes with newlines now parse properly. GH #178.
176
+
177
+ === 1.4.0 / 2009/10/30
178
+
179
+ * Happy Birthday!
180
+
181
+ * New Features
182
+
183
+ * Node#at_xpath returns the first element of the NodeSet matching the XPath
184
+ expression.
185
+ * Node#at_css returns the first element of the NodeSet matching the CSS
186
+ selector.
187
+ * NodeSet#| for unions GH #119 (Thanks Serabe!)
188
+ * NodeSet#inspect makes prettier output
189
+ * Node#inspect implemented for more rubyish document inspecting
190
+ * Added XML::DTD#external_id
191
+ * Added XML::DTD#system_id
192
+ * Added XML::ElementContent for DTD Element content validity
193
+ * Better namespace declaration support in Nokogiri::XML::Builder
194
+ * Added XML::Node#external_subset
195
+ * Added XML::Node#create_external_subset
196
+ * Added XML::Node#create_internal_subset
197
+ * XML Builder can append raw strings (GH #141, patch from dudleyf)
198
+ * XML::SAX::ParserContext added
199
+ * XML::Document#remove_namespaces! for the namespace-impaired
200
+
201
+ * Bugfixes
202
+
203
+ * returns nil when HTML documents do not declare a meta encoding tag. GH #115
204
+ * Uses RbConfig::CONFIG['host_os'] to adjust ENV['PATH'] GH #113
205
+ * NodeSet#search is more efficient GH #119 (Thanks Serabe!)
206
+ * NodeSet#xpath handles custom xpath functions
207
+ * Fixing a SEGV when XML::Reader gets attributes for current node
208
+ * Node#inner_html takes the same arguments as Node#to_html GH #117
209
+ * DocumentFragment#css delegates to it's child nodes GH #123
210
+ * NodeSet#[] works with slices larger than NodeSet#length GH #131
211
+ * Reparented nodes maintain their namespace. GH #134
212
+ * Fixed SEGV when adding an XML::Document to NodeSet
213
+ * XML::SyntaxError can be duplicated. GH #148
214
+
215
+ * Deprecations
216
+
217
+ * Hpricot compatibility layer removed
218
+
219
+ === 1.3.3 / 2009/07/26
220
+
221
+ * New Features
222
+
223
+ * NodeSet#children returns all children of all nodes
224
+
225
+ * Bugfixes
226
+
227
+ * Override libxml-ruby's global error handler
228
+ * ParseOption#strict fixed
229
+ * Fixed a segfault when sending an empty string to Node#inner_html= GH #88
230
+ * String encoding is now set to UTF-8 in Ruby 1.9
231
+ * Fixed a segfault when moving root nodes between documents. GH #91
232
+ * Fixed an O(n) penalty on node creation. GH #101
233
+ * Allowing XML documents to be output as HTML documents
234
+
235
+ * Deprecations
236
+
237
+ * Hpricot compatibility layer will be removed in 1.4.0
238
+
239
+ === 1.3.2 / 2009-06-22
240
+
241
+ * New Features
242
+
243
+ * Nokogiri::XML::DTD#validate will validate your document
244
+
245
+ * Bugfixes
246
+
247
+ * Nokogiri::XML::NodeSet#search will search top level nodes. GH #73
248
+ * Removed namespace related methods from Nokogiri::XML::Document
249
+ * Fixed a segfault when a namespace was added twice
250
+ * Made nokogiri work with Snow Leopard GH #79
251
+ * Mailing list has moved to: http://groups.google.com/group/nokogiri-talk
252
+ * HTML fragments now correctly handle comments and CDATA blocks. GH #78
253
+ * Nokogiri::XML::Document#clone is now an alias of dup
254
+
255
+ * Deprecations
256
+
257
+ * Nokogiri::XML::SAX::Document#start_element_ns is deprecated, please switch
258
+ to Nokogiri::XML::SAX::Document#start_element_namespace
259
+ * Nokogiri::XML::SAX::Document#end_element_ns is deprecated, please switch
260
+ to Nokogiri::XML::SAX::Document#end_element_namespace
261
+
262
+ === 1.3.1 / 2009-06-07
263
+
264
+ * Bugfixes
265
+
266
+ * extconf.rb checks for optional RelaxNG and Schema functions
267
+ * Namespace nodes are added to the Document node cache
268
+
269
+ === 1.3.0 / 2009-05-30
270
+
271
+ * New Features
272
+
273
+ * Builder changes scope based on block arity
274
+ * Builder supports methods ending in underscore similar to tagz
275
+ * Nokogiri::XML::Node#<=> compares nodes based on Document position
276
+ * Nokogiri::XML::Node#matches? returns true if Node can be found with
277
+ given selector.
278
+ * Nokogiri::XML::Node#ancestors now returns an Nokogiri::XML::NodeSet
279
+ * Nokogiri::XML::Node#ancestors will match parents against optional selector
280
+ * Nokogiri::HTML::Document#meta_encoding for getting the meta encoding
281
+ * Nokogiri::HTML::Document#meta_encoding= for setting the meta encoding
282
+ * Nokogiri::XML::Document#encoding= to set the document encoding
283
+ * Nokogiri::XML::Schema for validating documents against XSD schema
284
+ * Nokogiri::XML::RelaxNG for validating documents against RelaxNG schema
285
+ * Nokogiri::HTML::ElementDescription for fetching HTML element descriptions
286
+ * Nokogiri::XML::Node#description to fetch the node description
287
+ * Nokogiri::XML::Node#accept implements Visitor pattern
288
+ * bin/nokogiri for easily examining documents (Thanks Yutaka HARA!)
289
+ * Nokogiri::XML::NodeSet now supports more Array and Enumerable operators:
290
+ index, delete, slice, - (difference), + (concatenation), & (intersection),
291
+ push, pop, shift, ==
292
+ * Nokogiri.XML, Nokogiri.HTML take blocks that receive
293
+ Nokogiri::XML::ParseOptions objects
294
+ * Nokogiri::XML::Node#namespace returns a Nokogiri::XML::Namespace
295
+ * Nokogiri::XML::Node#namespace= for setting a node's namespace
296
+ * Nokogiri::XML::DocumentFragment and Nokogiri::HTML::DocumentFragment
297
+ have a sensible API and a more robust implementation.
298
+ * JRuby 1.3.0 support via FFI.
299
+
300
+ * Bugfixes
301
+
302
+ * Fixed a problem with nil passed to CDATA constructor
303
+ * Fragment method deals with regular expression characters
304
+ (Thanks Joel!) LH #73
305
+ * Fixing builder scope issues LH #61, LH #74, LH #70
306
+ * Fixed a problem when adding a child could remove the child namespace LH#78
307
+ * Fixed bug with unlinking a node then reparenting it. (GH#22)
308
+ * Fixed failure to catch errors during XSLT parsing (GH#32)
309
+ * Fixed a bug with attribute conditions in CSS selectors (GH#36)
310
+ * Fixed intolerance of HTML attributes without values in Node#before/after/inner_html=. (GH#35)
311
+
312
+ === 1.2.3 / 2009-03-22
313
+
314
+ * Bugfixes
315
+
316
+ * Fixing bug where a node is passed in to Node#new
317
+ * Namespace should be assigned on DocumentFragment creation. LH #66
318
+ * Nokogiri::XML::NodeSet#dup works GH #10
319
+ * Nokogiri::HTML returns an empty Document when given a blank string GH#11
320
+ * Adding a child will remove duplicate namespace declarations LH #67
321
+ * Builder methods take a hash as a second argument
322
+
323
+ === 1.2.2 / 2009-03-14
324
+
325
+ * New features
326
+
327
+ * Nokogiri may be used with soap4r. See XSD::XMLParser::Nokogiri
328
+ * Nokogiri::XML::Node#inner_html= to set the inner html for a node
329
+ * Nokogiri builder interface improvements
330
+ * Nokogiri::XML::Node#swap swaps html for current node (LH #50)
331
+
332
+ * Bugfixes
333
+
334
+ * Fixed a tag nesting problem in the Builder API (LH #41)
335
+ * Nokogiri::HTML.fragment will properly handle text only nodes (LH #43)
336
+ * Nokogiri::XML::Node#before will prepend text nodes (LH #44)
337
+ * Nokogiri::XML::Node#after will append text nodes
338
+ * Nokogiri::XML::Node#search automatically registers root namepsaces (LH #42)
339
+ * Nokogiri::XML::NodeSet#search automatically registers namespaces
340
+ * Nokogiri::HTML::NamedCharacters delegates to libxml2
341
+ * Nokogiri::XML::Node#[] can take a symbol (LH #48)
342
+ * vasprintf for windows updated. Thanks Geoffroy Couprie!
343
+ * Nokogiri::XML::Node#[]= should not encode entities (LH #55)
344
+ * Namespaces should be copied to reparented nodes (LH #56)
345
+ * Nokogiri uses encoding set on the string for default in Ruby 1.9
346
+ * Document#dup should create a new document of the same type (LH #59)
347
+ * Document should not have a parent method (LH #64)
348
+
349
+ === 1.2.1 / 2009-02-23
350
+
351
+ * Bugfixes
352
+
353
+ * Fixed a CSS selector space bug
354
+ * Fixed Ruby 1.9 String Encoding (Thanks 角谷さん!)
355
+
356
+ === 1.2.0 / 2009-02-22
357
+
358
+ * New features
359
+
360
+ * CSS search now supports CSS3 namespace queries
361
+ * Namespaces on the root node are automatically registered
362
+ * CSS queries use the default namespace
363
+ * Nokogiri::XML::Document#encoding get encoding used for this document
364
+ * Nokogiri::XML::Document#url get the document url
365
+ * Nokogiri::XML::Node#add_namespace add a namespace to the node LH#38
366
+ * Nokogiri::XML::Node#each iterate over attribute name, value pairs
367
+ * Nokogiri::XML::Node#keys get all attribute names
368
+ * Nokogiri::XML::Node#line get the line number for a node (Thanks Dirkjan Bussink!)
369
+ * Nokogiri::XML::Node#serialize now takes an optional encoding parameter
370
+ * Nokogiri::XML::Node#to_html, to_xml, and to_xhtml take an optional encoding
371
+ * Nokogiri::XML::Node#to_str
372
+ * Nokogiri::XML::Node#to_xhtml to produce XHTML documents
373
+ * Nokogiri::XML::Node#values get all attribute values
374
+ * Nokogiri::XML::Node#write_to writes the node to an IO object with optional encoding
375
+ * Nokogiri::XML::ProcessingInstrunction.new
376
+ * Nokogiri::XML::SAX::PushParser for all your push parsing needs.
377
+
378
+ * Bugfixes
379
+
380
+ * Fixed Nokogiri::XML::Document#dup
381
+ * Fixed header detection. Thanks rubikitch!
382
+ * Fixed a problem where invalid CSS would cause the parser to hang
383
+
384
+ * Deprecations
385
+
386
+ * Nokogiri::XML::Node.new_from_str will be deprecated in 1.3.0
387
+
388
+ * API Changes
389
+
390
+ * Nokogiri::HTML.fragment now returns an XML::DocumentFragment (LH #32)
391
+
392
+ === 1.1.1
393
+
394
+ * New features
395
+
396
+ * Added XML::Node#elem?
397
+ * Added XML::Node#attribute_nodes
398
+ * Added XML::Attr
399
+ * XML::Node#delete added.
400
+ * XML::NodeSet#inner_html added.
401
+
402
+ * Bugfixes
403
+
404
+ * Not including an HTML entity for \r for HTML nodes.
405
+ * Removed CSS::SelectorHandler and XML::XPathHandler
406
+ * XML::Node#attributes returns an Attr node for the value.
407
+ * XML::NodeSet implements to_xml
408
+
409
+ === 1.1.0
410
+
411
+ * New Features
412
+
413
+ * Custom XPath functions are now supported. See Nokogiri::XML::Node#xpath
414
+ * Custom CSS pseudo classes are now supported. See Nokogiri::XML::Node#css
415
+ * Nokogiri::XML::Node#<< will add a child to the current node
416
+
417
+ * Bugfixes
418
+
419
+ * Mutex lock on CSS cache access
420
+ * Fixed build problems with GCC 3.3.5
421
+ * XML::Node#to_xml now takes an indentation argument
422
+ * XML::Node#dup takes an optional depth argument
423
+ * XML::Node#add_previous_sibling returns new sibling node.
424
+
425
+ === 1.0.7
426
+
427
+ * Bugfixes
428
+
429
+ * Fixed memory leak when using Dike
430
+ * SAX parser now parses IO streams
431
+ * Comment nodes have their own class
432
+ * Nokogiri() should delegate to Nokogiri.parse()
433
+ * Prepending rather than appending to ENV['PATH'] on windows
434
+ * Fixed a bug in complex CSS negation selectors
435
+
436
+ === 1.0.6
437
+
438
+ * 5 Bugfixes
439
+
440
+ * XPath Parser raises a SyntaxError on parse failure
441
+ * CSS Parser raises a SyntaxError on parse failure
442
+ * filter() and not() hpricot compatibility added
443
+ * CSS searches via Node#search are now always relative
444
+ * CSS to XPath conversion is now cached
445
+
446
+ === 1.0.5
447
+
448
+ * Bugfixes
449
+
450
+ * Added mailing list and ticket tracking information to the README.txt
451
+ * Sets ENV['PATH'] on windows if it doesn't exist
452
+ * Caching results of NodeSet#[] on Document
453
+
454
+ === 1.0.4
455
+
456
+ * Bugfixes
457
+
458
+ * Changed memory mangement from weak refs to document refs
459
+ * Plugged some memory leaks
460
+ * Builder blocks can call methods from surrounding contexts
461
+
462
+ === 1.0.3
463
+
464
+ * 5 Bugfixes
465
+
466
+ * NodeSet now implements to_ary
467
+ * XML::Document should not implement parent
468
+ * More GC Bugs fixed. (Mike is AWESOME!)
469
+ * Removed RARRAY_LEN for 1.8.5 compatibility. Thanks Shane Hanna.
470
+ * inner_html fixed. (Thanks Yehuda!)
471
+
472
+ === 1.0.2
473
+
474
+ * 1 Bugfix
475
+
476
+ * extconf.rb should not check for frex and racc
477
+
478
+ === 1.0.1
479
+
480
+ * 1 Bugfix
481
+
482
+ * Made sure extconf.rb searched libdir and prefix so that ports libxml/ruby
483
+ will link properly. Thanks lucsky!
484
+
485
+ === 1.0.0 / 2008-07-13
486
+
487
+ * 1 major enhancement
488
+
489
+ * Birthday!
490
+