glebm-nokogiri 1.4.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (277) hide show
  1. data/.autotest +26 -0
  2. data/CHANGELOG.ja.rdoc +411 -0
  3. data/CHANGELOG.rdoc +397 -0
  4. data/Manifest.txt +276 -0
  5. data/README.ja.rdoc +106 -0
  6. data/README.rdoc +132 -0
  7. data/Rakefile +183 -0
  8. data/bin/nokogiri +49 -0
  9. data/deps.rip +5 -0
  10. data/ext/nokogiri/extconf.rb +97 -0
  11. data/ext/nokogiri/html_document.c +154 -0
  12. data/ext/nokogiri/html_document.h +10 -0
  13. data/ext/nokogiri/html_element_description.c +276 -0
  14. data/ext/nokogiri/html_element_description.h +10 -0
  15. data/ext/nokogiri/html_entity_lookup.c +32 -0
  16. data/ext/nokogiri/html_entity_lookup.h +8 -0
  17. data/ext/nokogiri/html_sax_parser_context.c +94 -0
  18. data/ext/nokogiri/html_sax_parser_context.h +11 -0
  19. data/ext/nokogiri/nokogiri.c +95 -0
  20. data/ext/nokogiri/nokogiri.h +153 -0
  21. data/ext/nokogiri/xml_attr.c +94 -0
  22. data/ext/nokogiri/xml_attr.h +9 -0
  23. data/ext/nokogiri/xml_attribute_decl.c +70 -0
  24. data/ext/nokogiri/xml_attribute_decl.h +9 -0
  25. data/ext/nokogiri/xml_cdata.c +56 -0
  26. data/ext/nokogiri/xml_cdata.h +9 -0
  27. data/ext/nokogiri/xml_comment.c +54 -0
  28. data/ext/nokogiri/xml_comment.h +9 -0
  29. data/ext/nokogiri/xml_document.c +464 -0
  30. data/ext/nokogiri/xml_document.h +23 -0
  31. data/ext/nokogiri/xml_document_fragment.c +48 -0
  32. data/ext/nokogiri/xml_document_fragment.h +10 -0
  33. data/ext/nokogiri/xml_dtd.c +202 -0
  34. data/ext/nokogiri/xml_dtd.h +10 -0
  35. data/ext/nokogiri/xml_element_content.c +123 -0
  36. data/ext/nokogiri/xml_element_content.h +10 -0
  37. data/ext/nokogiri/xml_element_decl.c +69 -0
  38. data/ext/nokogiri/xml_element_decl.h +9 -0
  39. data/ext/nokogiri/xml_encoding_handler.c +79 -0
  40. data/ext/nokogiri/xml_encoding_handler.h +8 -0
  41. data/ext/nokogiri/xml_entity_decl.c +110 -0
  42. data/ext/nokogiri/xml_entity_decl.h +10 -0
  43. data/ext/nokogiri/xml_entity_reference.c +52 -0
  44. data/ext/nokogiri/xml_entity_reference.h +9 -0
  45. data/ext/nokogiri/xml_io.c +31 -0
  46. data/ext/nokogiri/xml_io.h +11 -0
  47. data/ext/nokogiri/xml_namespace.c +84 -0
  48. data/ext/nokogiri/xml_namespace.h +13 -0
  49. data/ext/nokogiri/xml_node.c +1347 -0
  50. data/ext/nokogiri/xml_node.h +13 -0
  51. data/ext/nokogiri/xml_node_set.c +418 -0
  52. data/ext/nokogiri/xml_node_set.h +9 -0
  53. data/ext/nokogiri/xml_processing_instruction.c +56 -0
  54. data/ext/nokogiri/xml_processing_instruction.h +9 -0
  55. data/ext/nokogiri/xml_reader.c +665 -0
  56. data/ext/nokogiri/xml_reader.h +10 -0
  57. data/ext/nokogiri/xml_relax_ng.c +168 -0
  58. data/ext/nokogiri/xml_relax_ng.h +9 -0
  59. data/ext/nokogiri/xml_sax_parser.c +286 -0
  60. data/ext/nokogiri/xml_sax_parser.h +39 -0
  61. data/ext/nokogiri/xml_sax_parser_context.c +159 -0
  62. data/ext/nokogiri/xml_sax_parser_context.h +10 -0
  63. data/ext/nokogiri/xml_sax_push_parser.c +115 -0
  64. data/ext/nokogiri/xml_sax_push_parser.h +9 -0
  65. data/ext/nokogiri/xml_schema.c +205 -0
  66. data/ext/nokogiri/xml_schema.h +9 -0
  67. data/ext/nokogiri/xml_syntax_error.c +58 -0
  68. data/ext/nokogiri/xml_syntax_error.h +13 -0
  69. data/ext/nokogiri/xml_text.c +50 -0
  70. data/ext/nokogiri/xml_text.h +9 -0
  71. data/ext/nokogiri/xml_xpath_context.c +276 -0
  72. data/ext/nokogiri/xml_xpath_context.h +9 -0
  73. data/ext/nokogiri/xslt_stylesheet.c +142 -0
  74. data/ext/nokogiri/xslt_stylesheet.h +9 -0
  75. data/lib/nokogiri.rb +133 -0
  76. data/lib/nokogiri/css.rb +25 -0
  77. data/lib/nokogiri/css/generated_parser.rb +669 -0
  78. data/lib/nokogiri/css/generated_tokenizer.rb +145 -0
  79. data/lib/nokogiri/css/node.rb +99 -0
  80. data/lib/nokogiri/css/parser.rb +82 -0
  81. data/lib/nokogiri/css/parser.y +232 -0
  82. data/lib/nokogiri/css/syntax_error.rb +7 -0
  83. data/lib/nokogiri/css/tokenizer.rb +7 -0
  84. data/lib/nokogiri/css/tokenizer.rex +55 -0
  85. data/lib/nokogiri/css/xpath_visitor.rb +169 -0
  86. data/lib/nokogiri/decorators/slop.rb +33 -0
  87. data/lib/nokogiri/ffi/encoding_handler.rb +42 -0
  88. data/lib/nokogiri/ffi/html/document.rb +28 -0
  89. data/lib/nokogiri/ffi/html/element_description.rb +81 -0
  90. data/lib/nokogiri/ffi/html/entity_lookup.rb +16 -0
  91. data/lib/nokogiri/ffi/html/sax/parser_context.rb +38 -0
  92. data/lib/nokogiri/ffi/io_callbacks.rb +42 -0
  93. data/lib/nokogiri/ffi/libxml.rb +386 -0
  94. data/lib/nokogiri/ffi/structs/common_node.rb +38 -0
  95. data/lib/nokogiri/ffi/structs/html_elem_desc.rb +24 -0
  96. data/lib/nokogiri/ffi/structs/html_entity_desc.rb +13 -0
  97. data/lib/nokogiri/ffi/structs/xml_alloc.rb +16 -0
  98. data/lib/nokogiri/ffi/structs/xml_attr.rb +19 -0
  99. data/lib/nokogiri/ffi/structs/xml_attribute.rb +27 -0
  100. data/lib/nokogiri/ffi/structs/xml_buffer.rb +16 -0
  101. data/lib/nokogiri/ffi/structs/xml_char_encoding_handler.rb +11 -0
  102. data/lib/nokogiri/ffi/structs/xml_document.rb +117 -0
  103. data/lib/nokogiri/ffi/structs/xml_dtd.rb +28 -0
  104. data/lib/nokogiri/ffi/structs/xml_element.rb +26 -0
  105. data/lib/nokogiri/ffi/structs/xml_element_content.rb +17 -0
  106. data/lib/nokogiri/ffi/structs/xml_entity.rb +32 -0
  107. data/lib/nokogiri/ffi/structs/xml_enumeration.rb +12 -0
  108. data/lib/nokogiri/ffi/structs/xml_node.rb +28 -0
  109. data/lib/nokogiri/ffi/structs/xml_node_set.rb +53 -0
  110. data/lib/nokogiri/ffi/structs/xml_notation.rb +11 -0
  111. data/lib/nokogiri/ffi/structs/xml_ns.rb +15 -0
  112. data/lib/nokogiri/ffi/structs/xml_parser_context.rb +19 -0
  113. data/lib/nokogiri/ffi/structs/xml_relax_ng.rb +14 -0
  114. data/lib/nokogiri/ffi/structs/xml_sax_handler.rb +51 -0
  115. data/lib/nokogiri/ffi/structs/xml_sax_push_parser_context.rb +124 -0
  116. data/lib/nokogiri/ffi/structs/xml_schema.rb +13 -0
  117. data/lib/nokogiri/ffi/structs/xml_syntax_error.rb +31 -0
  118. data/lib/nokogiri/ffi/structs/xml_text_reader.rb +12 -0
  119. data/lib/nokogiri/ffi/structs/xml_xpath_context.rb +38 -0
  120. data/lib/nokogiri/ffi/structs/xml_xpath_object.rb +35 -0
  121. data/lib/nokogiri/ffi/structs/xml_xpath_parser_context.rb +20 -0
  122. data/lib/nokogiri/ffi/structs/xslt_stylesheet.rb +13 -0
  123. data/lib/nokogiri/ffi/weak_bucket.rb +40 -0
  124. data/lib/nokogiri/ffi/xml/attr.rb +41 -0
  125. data/lib/nokogiri/ffi/xml/attribute_decl.rb +27 -0
  126. data/lib/nokogiri/ffi/xml/cdata.rb +19 -0
  127. data/lib/nokogiri/ffi/xml/comment.rb +18 -0
  128. data/lib/nokogiri/ffi/xml/document.rb +162 -0
  129. data/lib/nokogiri/ffi/xml/document_fragment.rb +21 -0
  130. data/lib/nokogiri/ffi/xml/dtd.rb +67 -0
  131. data/lib/nokogiri/ffi/xml/element_content.rb +43 -0
  132. data/lib/nokogiri/ffi/xml/element_decl.rb +19 -0
  133. data/lib/nokogiri/ffi/xml/entity_decl.rb +36 -0
  134. data/lib/nokogiri/ffi/xml/entity_reference.rb +19 -0
  135. data/lib/nokogiri/ffi/xml/namespace.rb +44 -0
  136. data/lib/nokogiri/ffi/xml/node.rb +556 -0
  137. data/lib/nokogiri/ffi/xml/node_set.rb +149 -0
  138. data/lib/nokogiri/ffi/xml/processing_instruction.rb +20 -0
  139. data/lib/nokogiri/ffi/xml/reader.rb +232 -0
  140. data/lib/nokogiri/ffi/xml/relax_ng.rb +85 -0
  141. data/lib/nokogiri/ffi/xml/sax/parser.rb +135 -0
  142. data/lib/nokogiri/ffi/xml/sax/parser_context.rb +67 -0
  143. data/lib/nokogiri/ffi/xml/sax/push_parser.rb +51 -0
  144. data/lib/nokogiri/ffi/xml/schema.rb +109 -0
  145. data/lib/nokogiri/ffi/xml/syntax_error.rb +98 -0
  146. data/lib/nokogiri/ffi/xml/text.rb +18 -0
  147. data/lib/nokogiri/ffi/xml/xpath.rb +9 -0
  148. data/lib/nokogiri/ffi/xml/xpath_context.rb +148 -0
  149. data/lib/nokogiri/ffi/xslt/stylesheet.rb +53 -0
  150. data/lib/nokogiri/html.rb +35 -0
  151. data/lib/nokogiri/html/builder.rb +35 -0
  152. data/lib/nokogiri/html/document.rb +90 -0
  153. data/lib/nokogiri/html/document_fragment.rb +36 -0
  154. data/lib/nokogiri/html/element_description.rb +23 -0
  155. data/lib/nokogiri/html/entity_lookup.rb +13 -0
  156. data/lib/nokogiri/html/sax/parser.rb +48 -0
  157. data/lib/nokogiri/html/sax/parser_context.rb +16 -0
  158. data/lib/nokogiri/syntax_error.rb +4 -0
  159. data/lib/nokogiri/version.rb +37 -0
  160. data/lib/nokogiri/version_warning.rb +14 -0
  161. data/lib/nokogiri/xml.rb +67 -0
  162. data/lib/nokogiri/xml/attr.rb +14 -0
  163. data/lib/nokogiri/xml/attribute_decl.rb +18 -0
  164. data/lib/nokogiri/xml/builder.rb +418 -0
  165. data/lib/nokogiri/xml/cdata.rb +11 -0
  166. data/lib/nokogiri/xml/character_data.rb +7 -0
  167. data/lib/nokogiri/xml/document.rb +194 -0
  168. data/lib/nokogiri/xml/document_fragment.rb +77 -0
  169. data/lib/nokogiri/xml/dtd.rb +11 -0
  170. data/lib/nokogiri/xml/element_content.rb +36 -0
  171. data/lib/nokogiri/xml/element_decl.rb +13 -0
  172. data/lib/nokogiri/xml/entity_decl.rb +19 -0
  173. data/lib/nokogiri/xml/namespace.rb +13 -0
  174. data/lib/nokogiri/xml/node.rb +793 -0
  175. data/lib/nokogiri/xml/node/save_options.rb +42 -0
  176. data/lib/nokogiri/xml/node_set.rb +325 -0
  177. data/lib/nokogiri/xml/notation.rb +6 -0
  178. data/lib/nokogiri/xml/parse_options.rb +85 -0
  179. data/lib/nokogiri/xml/pp.rb +2 -0
  180. data/lib/nokogiri/xml/pp/character_data.rb +18 -0
  181. data/lib/nokogiri/xml/pp/node.rb +56 -0
  182. data/lib/nokogiri/xml/processing_instruction.rb +8 -0
  183. data/lib/nokogiri/xml/reader.rb +74 -0
  184. data/lib/nokogiri/xml/relax_ng.rb +32 -0
  185. data/lib/nokogiri/xml/sax.rb +4 -0
  186. data/lib/nokogiri/xml/sax/document.rb +160 -0
  187. data/lib/nokogiri/xml/sax/parser.rb +115 -0
  188. data/lib/nokogiri/xml/sax/parser_context.rb +16 -0
  189. data/lib/nokogiri/xml/sax/push_parser.rb +60 -0
  190. data/lib/nokogiri/xml/schema.rb +57 -0
  191. data/lib/nokogiri/xml/syntax_error.rb +47 -0
  192. data/lib/nokogiri/xml/text.rb +9 -0
  193. data/lib/nokogiri/xml/xpath.rb +10 -0
  194. data/lib/nokogiri/xml/xpath/syntax_error.rb +11 -0
  195. data/lib/nokogiri/xml/xpath_context.rb +16 -0
  196. data/lib/nokogiri/xslt.rb +48 -0
  197. data/lib/nokogiri/xslt/stylesheet.rb +25 -0
  198. data/lib/xsd/xmlparser/nokogiri.rb +90 -0
  199. data/tasks/cross_compile.rb +158 -0
  200. data/tasks/test.rb +94 -0
  201. data/test/css/test_nthiness.rb +159 -0
  202. data/test/css/test_parser.rb +282 -0
  203. data/test/css/test_tokenizer.rb +190 -0
  204. data/test/css/test_xpath_visitor.rb +85 -0
  205. data/test/ffi/test_document.rb +35 -0
  206. data/test/files/2ch.html +108 -0
  207. data/test/files/address_book.rlx +12 -0
  208. data/test/files/address_book.xml +10 -0
  209. data/test/files/bar/bar.xsd +4 -0
  210. data/test/files/dont_hurt_em_why.xml +422 -0
  211. data/test/files/exslt.xml +8 -0
  212. data/test/files/exslt.xslt +35 -0
  213. data/test/files/foo/foo.xsd +4 -0
  214. data/test/files/po.xml +32 -0
  215. data/test/files/po.xsd +66 -0
  216. data/test/files/shift_jis.html +10 -0
  217. data/test/files/shift_jis.xml +5 -0
  218. data/test/files/snuggles.xml +3 -0
  219. data/test/files/staff.dtd +10 -0
  220. data/test/files/staff.xml +59 -0
  221. data/test/files/staff.xslt +32 -0
  222. data/test/files/tlm.html +850 -0
  223. data/test/files/valid_bar.xml +2 -0
  224. data/test/helper.rb +169 -0
  225. data/test/html/sax/test_parser.rb +74 -0
  226. data/test/html/sax/test_parser_context.rb +48 -0
  227. data/test/html/test_builder.rb +164 -0
  228. data/test/html/test_document.rb +398 -0
  229. data/test/html/test_document_encoding.rb +77 -0
  230. data/test/html/test_document_fragment.rb +182 -0
  231. data/test/html/test_element_description.rb +98 -0
  232. data/test/html/test_named_characters.rb +14 -0
  233. data/test/html/test_node.rb +181 -0
  234. data/test/html/test_node_encoding.rb +27 -0
  235. data/test/test_convert_xpath.rb +135 -0
  236. data/test/test_css_cache.rb +45 -0
  237. data/test/test_encoding_handler.rb +46 -0
  238. data/test/test_memory_leak.rb +87 -0
  239. data/test/test_nokogiri.rb +138 -0
  240. data/test/test_reader.rb +386 -0
  241. data/test/test_soap4r_sax.rb +52 -0
  242. data/test/test_xslt_transforms.rb +188 -0
  243. data/test/xml/node/test_save_options.rb +20 -0
  244. data/test/xml/node/test_subclass.rb +44 -0
  245. data/test/xml/sax/test_parser.rb +307 -0
  246. data/test/xml/sax/test_parser_context.rb +63 -0
  247. data/test/xml/sax/test_push_parser.rb +139 -0
  248. data/test/xml/test_attr.rb +38 -0
  249. data/test/xml/test_attribute_decl.rb +82 -0
  250. data/test/xml/test_builder.rb +210 -0
  251. data/test/xml/test_cdata.rb +50 -0
  252. data/test/xml/test_comment.rb +29 -0
  253. data/test/xml/test_document.rb +668 -0
  254. data/test/xml/test_document_encoding.rb +26 -0
  255. data/test/xml/test_document_fragment.rb +180 -0
  256. data/test/xml/test_dtd.rb +82 -0
  257. data/test/xml/test_dtd_encoding.rb +33 -0
  258. data/test/xml/test_element_content.rb +56 -0
  259. data/test/xml/test_element_decl.rb +73 -0
  260. data/test/xml/test_entity_decl.rb +120 -0
  261. data/test/xml/test_entity_reference.rb +21 -0
  262. data/test/xml/test_namespace.rb +68 -0
  263. data/test/xml/test_node.rb +865 -0
  264. data/test/xml/test_node_attributes.rb +34 -0
  265. data/test/xml/test_node_encoding.rb +107 -0
  266. data/test/xml/test_node_reparenting.rb +293 -0
  267. data/test/xml/test_node_set.rb +649 -0
  268. data/test/xml/test_parse_options.rb +52 -0
  269. data/test/xml/test_processing_instruction.rb +30 -0
  270. data/test/xml/test_reader_encoding.rb +126 -0
  271. data/test/xml/test_relax_ng.rb +60 -0
  272. data/test/xml/test_schema.rb +89 -0
  273. data/test/xml/test_syntax_error.rb +12 -0
  274. data/test/xml/test_text.rb +38 -0
  275. data/test/xml/test_unparented_node.rb +381 -0
  276. data/test/xml/test_xpath.rb +138 -0
  277. metadata +533 -0
@@ -0,0 +1,26 @@
1
+ # -*- ruby -*-
2
+
3
+ begin
4
+ require 'autotest/fsevent'
5
+ rescue LoadError
6
+ end
7
+
8
+ Autotest.add_hook :initialize do |at|
9
+ at.add_exception /bundle$/
10
+ at.add_exception /\.git/
11
+ end
12
+
13
+ Autotest.add_hook :run_command do |at|
14
+ at.unit_diff = 'cat'
15
+ if ENV['ONENINE']
16
+ system "rake1.9 compile"
17
+ else
18
+ system "rake compile"
19
+ end
20
+ end
21
+
22
+ Autotest.add_hook :ran_command do |at|
23
+ File.open('/tmp/autotest.txt', 'wb') { |f|
24
+ f.write(at.results.join)
25
+ }
26
+ end
@@ -0,0 +1,411 @@
1
+ === 1.4.2 2010年5月22日
2
+
3
+ * 新しい機能
4
+
5
+ * XML::Node#parse 定義されたコンテキストノードで、XML 又はHTMLのフレグメント
6
+ を解析する
7
+ * XML::Node#namespacesが子ノードとその祖先ノード内で定義された全ての名前空間
8
+ を返すようになった(以前は祖先ノードの名前空間は返されなかった)
9
+ * XML::Node内にEnumerableを追加
10
+ * Nokogiri::XML::Schema#validate 与えられたファイル名が引き渡された時、
11
+ Nokogiri::XML::Schema#validateはxmlSchemaValidateFileを使用する
12
+ (時間短縮化とメモリーの能率化の理由を基にファイル名での引き渡しメソッドを
13
+ 採用) GH #219
14
+ * XML::Document#create_entnty は新規のEntityDecl のオブジェクトを生成する
15
+ GH #174
16
+ * JRuby FFI implementationでは、従来まで使用されたObjectSpace._id2refの代わり
17
+ にCharles Nutterのrocking Weakling gemを使用に変更
18
+ * Nokogiri::XML::Node#first_element_child は一番最初のELEMENT子ノードを返す
19
+ * Nokogiri::XML::Node#last_element_child は最後のELEMENT子ノードを返す
20
+ * Nokogiri::XML::Node#elements は全てのELEMENT子ノードを返す
21
+
22
+ * バグの修正
23
+
24
+ * ドキュメント内にデコレータがある場合、XML::NodeSet は常にデコレータされる GH #198
25
+ * XML::NodeSet#slice がノードセットよりも長いoffset+lengthを問題なく処理する
26
+ GH #200
27
+ * XML::Node#content=はノードとその直前に記述されている内容を支障なく切り離す
28
+ GH #203
29
+ * XML::Node#namespace= はnilを一つのパラメーターと扱って取得する
30
+ * XML::Node#xpath はNodeSetのオブジェクト以外のオブジェクトを返す GH #208
31
+ * XSLT::StyleSheet#transformはパラメーターのハッシュを受け入れる GH #223
32
+ * CSSのnot()の疑似セレクタの修正  GH #205
33
+ * XML::Builder はノード達が切り離されても破壊しない(vihaiの協力に感謝)
34
+ GH #228
35
+ * SAX parser経由でエンコードを強制することが出来る  Eugene Pimenovに感謝!
36
+ GH #204
37
+ * XML::DocumentFragment はML::Node#parse を使用して子供を限定する
38
+ * XML Reader内のメモリリークを修正  sdorさん、ありがとう! GH#244
39
+
40
+ * ノート
41
+
42
+ * 今日4月18日現在、Windows gems は libxml 2.7.6 とlibxslt
43
+ 1.1.26にDLLsを正規装備しています。このリリース以前にも既にDLLsはlibxml
44
+ 2.7.3 と libxslt 1.1.24に正規装備されています。
45
+
46
+ === 1.4.1 2009年12月10日
47
+
48
+ * 新しい機能
49
+ * Nokogiri::LIBXML_ICONV_ENABLED を追加
50
+ * Node#attr は Node#[] のエイリアス定義に変更
51
+ * XML::Node#next_element を追加
52
+ * 直接の子ノードを検索するための Node#> を追加
53
+ * XML::NodeSet#reverse を追加
54
+ * 以下のfragment supportを追加
55
+   Node#add_child
56
+   Node#add_next_sibling
57
+ Node#add_previous_sibling
58
+   Node#replace
59
+ * XML::Node#previous_element を追加
60
+ * nokogiriがRubinius でサポートされるようになった
61
+ * CSS selector の :has() が使用可能になった
62
+ * XML::NodeSet#filter() を追加
63
+ * XML::Node.next= は add_next_sibling の alias へ変更
64
+ * XML::Node.previous= は add_previous_sibling の alias へ変更
65
+
66
+ * バグの修正
67
+ * XMLのフラグメントに名前空間が存在する場合のみ、DocumentFragmentを作る際に、
68
+ 例外が投げられなくなった
69
+ * DocumentFragment内で子ノードが存在する場合、
70
+ Node#matches?が機能するようになった GH #158
71
+ * Documentは add_namespace()を限定すべきではないので削除GH #169
72
+ * XPath クエリは名前空間の宣言を変換するがsegvではない。
73
+ * Node#replace は他のドキュメントのノードが使えるようになった
74
+ * XML::Document#collect_namespaces を追加
75
+ * SOAP4R のアダプター内のバグ修正
76
+ * XML::Node#next_element 内のバグ修正
77
+ * WindowsでのJRuby の LOAD_PATH を修正 GH #160
78
+ * XSLT#apply_toは "output method"の値を使用する(richardlehaneに感謝)
79
+ * 新しい文字列の先頭にくるテキストノードを含んだフレグメントが 正確に
80
+ 解析出来るようになった GH #178
81
+
82
+ === 1.4.0 2009年10月30日
83
+
84
+ * 今日はノコギリの満一歳のお誕生日です
85
+
86
+ * 新しい機能
87
+ * Node#at_xpath はXPath式に適合するNodeSetの一番最初の要素を返す
88
+ * Node#at_css はCSSセレクターに適合するNodeSetの一番最初の要素を返す
89
+ * NodeSet#| はNodeSet同士を合成する GH #119 (Serabe ありがとう!)
90
+ * NodeSet#inspect の出力をより美しくした
91
+ * Node#inspect の出力をよりrubyらしくした
92
+ * XML::DTD#external_id を追加
93
+ * XML::DTD#system_id を追加
94
+ * XML::ElementContent はDTD要素のコンテンツを有効化する
95
+ * Nokogiri::XML::Builder内での名前空間宣言用のサポートを改良
96
+ * XML::Node#external_subsetを追加
97
+ * XML::Node#create_external_subsetを追加
98
+ * XML::Node#create_internal_subsetを追加
99
+ * XML Builderは生成されていないstringsを付加出来る様になった
100
+ (GH #141, patch from dudleyf)
101
+ * XML::SAX::ParserContext を追加
102
+ * XML::Document#remove_namespaces! は名前空間を使いこなせない人たち用の措置
103
+
104
+ * バグの修正
105
+
106
+ * HTMLドキュメントが メタエンコーディングのタグを宣言しない時、
107
+ nilを返すようになった GH #115
108
+ * ENV['PATH'] を調節する為に、RbConfig::CONFIG['host_os']を使用できるように
109
+ なった GH #113
110
+ * NodeSet#searchが更に効率的になった GH #119 (Serabe!に感謝します)
111
+ * NodeSet#xpathがcustom xpath機能を取り扱える様になった
112
+ * XML::Reader が現時点のノード用に属性を取得する際に、
113
+ SEGVを修正するようになった
114
+ * Node#inner_html がNode#to_html と同じ独立変数を受け入れるようになった
115
+ GH #117
116
+ * DocumentFragment#css は子ノードへ委任するようになった GH #123
117
+ * NodeSet#[]がNodeSet#lengthより大きいスライスでも機能するようになった
118
+ GH #131
119
+ * 新たな親ノードの名前空間を維持出来るようになった GH #134
120
+ * XML::Document をNodeSetに追加する際のSEGVが修正された
121
+ * XML::SyntaxError が複製可能になった
122
+
123
+ * 廃棄予定
124
+
125
+ * Hpricot用の互換性レイヤーを削除
126
+
127
+ === 1.3.3 / 2009年7月26日
128
+
129
+ * 新しい機能
130
+
131
+ * NodeSet#children 全ての子ノードを返すようになった
132
+
133
+ * バグの修正
134
+
135
+ * libxml-ruby のグローバ ルエラー ハンドラー に優先するようになった
136
+ * ParseOption#strict を修正
137
+ * 空文字列を Node#inner_html= に与えた時に生じたSEGVを修正 GH #88
138
+ * Ruby 1.9 では文字列のエンコーディングをUTF-8になるようにした
139
+ * ドキュメントの根ノードから違うドキュメントの根ノードに移動した時に生じた
140
+ SEGVを修正 GH #91
141
+ * ノードをインスタンス化する時のO(n)のペナルティーを修正 GH #101
142
+ * XMLのドキュメントをHTMLのドキュメントとして出力出来るようになった
143
+
144
+ * 廃棄予定
145
+
146
+ * Hpricotの互換性レイヤーがNokogiriの1.4.0で除去される予定
147
+
148
+ === 1.3.2 / 2009年6月22日
149
+
150
+ * 新しい機能
151
+
152
+ * Nokogiri::XML::DTD#validate はドキュメントを検証できるようになった
153
+
154
+ * バグの修正
155
+
156
+ * Nokogiri::XML::NodeSet#search はトップレベルのノードを検索するようになった
157
+ GH #73
158
+ * Nokogiri::XML::Documentからメソッドに関係する名前空間を取り除いた
159
+ * 2回同じ名前空間が追加されたときSEGVする問題を修正した
160
+ * Snow Leopard で Nokogiri が動くようになった GH #79
161
+ * メーリングリストはGoogle Groupsの以下のURLに移動した
162
+ http://groups.google.com/group/nokogiri-talk
163
+ * HTML フラグメントはコメントとCDATAを正確に扱うようになった
164
+ * Nokogiri::XML::Document#cloneはdupのaliasになった
165
+
166
+ * 廃棄予定
167
+
168
+ * Nokogiri::XML::SAX::Document#start_element_nsは廃棄予定なので
169
+ Nokogiri::XML::SAX::Document#start_element_namespaceを代わりに使用して下さい
170
+ * Nokogiri::XML::SAX::Document#end_element_nsは廃棄予定なので
171
+ Nokogiri::XML::SAX::Document#end_element_namespaceを代わりに使用して下さい
172
+
173
+ === 1.3.1 / 2009年6月7日
174
+
175
+ * バグの修正
176
+
177
+ * extconf.rb は任意のRelaxNGとSchemaの機能を探すようになった
178
+ * ドキュメントのノードキャッシュに名前空間のノードが入るようになった
179
+
180
+ === 1.3.0 / 2009年5月30日
181
+
182
+ * 新しい機能
183
+
184
+ * Builderがブロックの引数の数に応じてスコープが定まるようになった
185
+ * Builderがアンダースコアで終わるメソッドをtagzと同様にサポートするようになった
186
+ * Nokogiri::XML::Node#<=> がドキュメントの位置によりノードを比較するように
187
+ なった
188
+ * Nokogiri::XML::Node#matches?が与えられたセレクタ内でノードがあればtrue
189
+ を返すようになった
190
+ * Nokogiri::XML::Node#ancestors がNokogiri::XML::NodeSetオブジェクトを返すようになった
191
+ * Nokogiri::XML::Node#ancestorsがオプションのセレクタに対応する親をマッチする
192
+ ようになった
193
+ * Nokogiri::HTML::Document#meta_encoding がメタデータのエンコードを返すように
194
+ なった
195
+ * Nokogiri::HTML::Document#meta_encoding= でメタデータのエンコードを
196
+ 設定できるようになった
197
+ * Nokogiri::XML::Document#encoding= でドキュメントのエンコードを
198
+ 設定できるようになった
199
+ * Nokogiri::XML::Schema でドキュメントがXSDのスキーマに沿って記述されているか
200
+ を検証できるようになった
201
+ * Nokogiri::XML::RelaxNG でドキュメントがRelaxNGのスキーマに沿って
202
+ 記述されているかを検証できるようになった
203
+ * Nokogiri::HTML::ElementDescription はHTML要素の説明フェッチ動作するよう
204
+ になった
205
+ * Nokogiri::XML::Node#descriptionは ノードの説明をフェッチ動作するよう
206
+ になった
207
+ * Nokogiri::XML::Node#accept は Visitor パターンを実行するようになった
208
+ * 簡単にドキュメントを解析するコマンド bin/nokogiri を追加
209
+ (Yataka HARAさんに感謝感激)
210
+ * Nokogiri::XML::NodeSetが更にArrayとEnumerableの演算を
211
+ サポートするようになった:
212
+ index, delete, slice, - (差分), + (連結), & (共通部分),
213
+ push, pop, shift, ==
214
+ * Nokogiri.XML, Nokogiri.HTML はNokogiri::XML::ParseOptions objectと一緒に
215
+ 呼び出されるブロックを受け入れるようになった
216
+ * Nokogiri::XML::Node#namespace は Nokogiri::XML::Namespaceを返すようになった
217
+ * Nokogiri::XML::Node#namespaceはノードの名前空間を設定するようになった
218
+ * FFI 経由で JRuby 1.3.0 をサポートするようになった
219
+
220
+ * バグの修正
221
+
222
+ * nilがCDATAsonstructorに渡される際の問題を修正
223
+ * Fragment メソッドが正規表現を抜け出させるようになった
224
+ (Joelさんに感謝感激) (LH #73)
225
+ * Builder スコープのLH #61, LH #74, LH #70に関しての様々な問題を修正
226
+ * 名前空間を付け加える時、名前空間が LH#78より除去されてしまう問題を修正
227
+ * 連結しないノードが発生し、再育成してしまう問題を修正(GH#22)
228
+ * XSLT が解析中にエラーを発見し損なう問題を修正(GH#32)
229
+ * CSS selectors内での条件属性のバグ問題を修正(GH#36)
230
+ * Node#before/after/inner_html=で値なしのHTML属性が受け入れられなかった問題を
231
+ 修正 (GH#35)
232
+
233
+ === 1.2.3 / 2009年3月22日
234
+
235
+ * バグの修正
236
+
237
+ * Node#new 内にて、バグを修正する
238
+ * DocumentFragmentの作成時、名前空間に割り当てる LH #66
239
+ * Nokogiri::XML::NodeSet#dup は機能するようになった GH #10
240
+ * Nokogiri::HTMLは文字列がブランクの時、空のドキュメントで返す GH#11
241
+ * 子ノードを付加する事で、重複した名前空間の宣言を取り除く LH#67
242
+ * ビルダ方法はハッシュを第二引数とする
243
+
244
+ === 1.2.2 / 2009年3月14日
245
+
246
+ * 新しい機能
247
+
248
+ * Nokogiri は soap4r と一緒に使う事が可能。(XSD::XMLParser::Nokogiri 参照)
249
+ * Nokogiri::XML::Node#inner_html= はノードの中のHTMLをセット出来る
250
+ * NokogiriのBuilderのインタフェースの改良
251
+ * Nokogiri::XML::Node#swap は、現在のノードに新しいhtmlを交換する事が出来る
252
+
253
+
254
+ * バグの修正
255
+
256
+ * BuilderAPIのタグのネスティングを修正 (LH #41)
257
+ * Nokogiri::HTML.fragment はテキストだけのノードを適切に扱う事が出来る(LH #43)
258
+ * Nokogiri::XML::Node#before はテキストノードのはじめに挿入する事が出来る (LH #44)
259
+ * Nokogiri::XML::Node#after はテキストノードの文末に挿入する事が出来る
260
+ * Nokogiri::XML::Node#search 名前空間が自動的に登録されるようになった(LH#42)
261
+ * Nokogiri::XML::NodeSet#search 名前空間が自動的に登録されるようになった
262
+ * Nokogiri::HTML::NamedCharacters はlibxml2に委任
263
+ * Nokogiri::XML::Node#[] はSymbolを使う (LH #48)
264
+ * vasprintf にwindowsを修正 (Geffroy Couprie ありがとう!)
265
+ * Nokogiri::XML::Node#[]= はentityを符号化しない (LH #55)
266
+ * 名前空間はreparentedのノードに模写する (LH #56)
267
+ * StringのエンコードはRuby 1.9での初期設定を使用する
268
+ * Document#dup は新しいドキュメントに同じタイプを作る (LH #59)
269
+ * Document#parent は存在しない (LH #64)
270
+
271
+
272
+ === 1.2.1 / 2009年2月23日
273
+
274
+ * 修正
275
+
276
+ * CSS のセレクターのスペースを修正
277
+ * Ruby 1.9 のStringのエンコードを修正 (角谷さんに感謝!)
278
+
279
+ === 1.2.0 / 2009年2月22日
280
+
281
+ * 新しい機能
282
+ * CSSサーチが CSS3 名前空間クエリをサポートするようになった
283
+ * ルート要素での名前空間が自動的に登録されるようになった
284
+ * CSS クエリが初期設定の名前空間を使うようになった
285
+ * Nokogiri::XML::Document#encoding で文書にエンコードを使用、受け取る
286
+ * Nokogiri::XML::Document#url で文書のURLを受け取る
287
+ * Nokogiri::XML::Node#each はname属性、値を一組にし反復適用する
288
+ * Nokogiri::XML::Node#keys はすべてのname属性を受け取る
289
+ * Nokogiri::XML::Node#line は行番号をノード用に受け取る (Dirkjan Bussinkさんに感謝感激)
290
+ * Nokogiri::XML::Node#serialize は任意されたencodingパラメーターを受け入れる
291
+ * Nokogiri::XML::Node#to_html, to_xml, と to_xhtml は任意されたencodingパラメーターを受け入れる
292
+ * Nokogiri::XML::Node#to_str
293
+ * Nokogiri::XML::Node#to_xhtml でXHTML文書を生成する
294
+ * Nokogiri::XML::Node#values が全ての属性値を受け入れる
295
+ * Nokogiri::XML::Node#write_to は任意されたencodingで要素をIOオブジェクトへ書く
296
+ * Nokogiri::XML::ProcessingInstrunction.new
297
+ * Nokogiri::XML::SAX::PushParser は全てのプッシュパースに必要な解析をする
298
+
299
+ * バグの修正
300
+
301
+ * Nokogiri::XML::Document#dup を修正
302
+ * ヘッダ検知を修正. 謝々るびきちさん!
303
+ * 無効なCSS内にて解析機能を動かなくさせる原因を修正
304
+
305
+ * 廃棄予定
306
+
307
+ * Nokogiri::XML::Node.new_from_str は1.3.0にて廃棄予定
308
+
309
+ * APIの変更
310
+
311
+ * Nokogiri::HTML.fragment は XML::DocumentFragment (LH #32)で返す
312
+
313
+ === 1.1.1
314
+
315
+ * 新しい機能
316
+ * XML::Node#elem? を追加
317
+ * XML::Node#attribute_nodes を追加
318
+ * XML::Attr を追加
319
+ * XML::Node#delete を追加
320
+ * XML::NodeSet#inner_html を追加
321
+
322
+ * バグの修正
323
+
324
+ * HTML のノードを \r のエンティティを含まない
325
+ * CSS::SelectorHandler と XML::XPathHandler を除去
326
+ * XML::Node#attributes が Attr node を value値に返す
327
+ * XML::NodeSet が to_xml へ実行
328
+
329
+ === 1.1.0
330
+
331
+ * 新しい機能
332
+
333
+ * カスタム XPath 機能はある。( Nokogiri::XML::Node#xpath 参照 )
334
+ * カスタム CSS 擬似クラスと機能はある。( Nokogiri::XML::Node#css 参照 )
335
+ * Nokogiri::XML::Node#<< が作成中に子ノードを自動追加
336
+
337
+ * バグの修正
338
+
339
+ * mutex が CSS のキャッシュのアクセスをロックする
340
+ * GCC 3.3.5 のビルドに関する問題を修正
341
+ * XML::Node#to_xml が引数indentationを取る
342
+ * XML::Node#dup が引数任意のdepthを取る
343
+ * XML::Node#add_previous_sibling が新しい兄弟ノードで返す
344
+
345
+ === 1.0.7
346
+
347
+ * バグの修正
348
+
349
+ * Dike 使用時中のメモリーリークの修正
350
+ * SAX パーサーが現在 IO Stream 同時解析
351
+ * コメント nodes が独自のクラスを継承する
352
+ * Nokogiri() は Nokogiri.parse() へデリゲートする
353
+ * ENV['PATH'] に付加せれる代わりに先頭へデータ挿入される
354
+ * 複雑な CSS 内のバグを修正完了 :not selector ではありません
355
+
356
+ === 1.0.6
357
+
358
+ * 5つの修正
359
+
360
+ * XPath のパーサーが SyntaxError を生じさせ解析停止させる
361
+ * CSS のパーサーが SyntaxError を生じさせ解析停止させる
362
+ * filter() と not() hpricot の互換性を追加
363
+ * CSS が Node#search 経由で検索し、常時対応する事が出来るようになった
364
+ * CSS より XPath 変換がキャッシュに入れられるようになった
365
+
366
+ === 1.0.5
367
+
368
+ * バグフィックス
369
+
370
+ * メーリンクリストを作成
371
+ * バグファイルを作成
372
+ * Windows 内で ENV['PATH'] が存在しない場合でも、存在出来るように設定完了
373
+ * Document 内の NodeSet#[] の結果をキャッシュする
374
+
375
+ === 1.0.4
376
+
377
+ * バグフィックス
378
+
379
+ * 弱参照からドキュメント参照へのメモリー管理の変換
380
+ * メモリリークに接続
381
+ * Builderブロックが取り囲んでいるコンテキストから
382
+ メソッドの呼び出しをする事が出来る
383
+
384
+ === 1.0.3
385
+
386
+ * 5つのバグ修正
387
+
388
+ * NodeSet が to_ary へ実行
389
+ * XML::Document#parent を除去
390
+ * GCバグ修正済み (Mike は最高!)
391
+ * 1.8.5互換性の為の RARRAY_LEN 除去
392
+ * inner_html 修正済み (Yahuda に感謝)
393
+
394
+ === 1.0.2
395
+
396
+ * 1つのバグ修正
397
+
398
+ * extconf.rb は frex や racc を調べないはず
399
+
400
+ === 1.0.1
401
+
402
+ * 1つのバグ修正
403
+
404
+ * extconf.rb が libdir や prefix を検索しない事を確認済み
405
+ それによって、ports libxml/ruby が正しくリンクする (lucsky に感謝!)
406
+
407
+ === 1.0.0 / 2008-07-13
408
+
409
+ * 1つの偉大な増進
410
+
411
+ * ご誕生である
@@ -0,0 +1,397 @@
1
+ === 1.4.2 / 2010/05/22
2
+
3
+ * New Features
4
+
5
+ * XML::Node#parse will parse XML or HTML fragments with respect to the
6
+ context node.
7
+ * XML::Node#namespaces returns all namespaces defined in the node and all
8
+ ancestor nodes
9
+ (previously did not return ancestors' namespace definitions).
10
+ * Added Enumerable to XML::Node
11
+ * Nokogiri::XML::Schema#validate now uses xmlSchemaValidateFile if a
12
+ filename is passed, which is faster and more memory-efficient. GH #219
13
+ * XML::Document#create_entity will create new EntityDecl objects. GH #174
14
+ * JRuby FFI implementation no longer uses ObjectSpace._id2ref,
15
+ instead using Charles Nutter's rocking Weakling gem.
16
+ * Nokogiri::XML::Node#first_element_child fetch the first child node that is
17
+ an ELEMENT node.
18
+ * Nokogiri::XML::Node#last_element_child fetch the last child node that is
19
+ an ELEMENT node.
20
+ * Nokogiri::XML::Node#elements fetch all children nodes that are ELEMENT
21
+ nodes.
22
+ * Nokogiri::XML::Node#add_child, #add_previous_sibling, #before,
23
+ #add_next_sibling, #after, #inner_html, #swap and #replace all now
24
+ accept a Node, DocumentFragment, NodeSet, or a string containing
25
+ markup.
26
+ * Node#fragment? indicates whether a node is a DocumentFragment.
27
+
28
+ * Bugfixes
29
+
30
+ * XML::NodeSet is now always decorated (if the document has decorators).
31
+ GH #198
32
+ * XML::NodeSet#slice gracefully handles offset+length larger than the set
33
+ length. GH #200
34
+ * XML::Node#content= safely unlinks previous content. GH #203
35
+ * XML::Node#namespace= takes nil as a parameter
36
+ * XML::Node#xpath returns things other than NodeSet objects. GH #208
37
+ * XSLT::StyleSheet#transform accepts hashes for parameters. GH #223
38
+ * Psuedo selectors inside not() work. GH #205
39
+ * XML::Builder doesn't break when nodes are unlinked.
40
+ Thanks to vihai! GH #228
41
+ * Encoding can be forced on the SAX parser. Thanks Eugene Pimenov! GH #204
42
+ * XML::DocumentFragment uses XML::Node#parse to determine children.
43
+ * Fixed a memory leak in xml reader. Thanks sdor! GH #244
44
+ * Node#replace returns the new child node as claimed in the
45
+ RDoc. Previously returned +self+.
46
+
47
+ * Notes
48
+
49
+ * The Windows gems now bundle DLLs for libxml 2.7.6 and libxslt
50
+ 1.1.26. Prior to this release, libxml 2.7.3 and libxslt 1.1.24
51
+ were bundled.
52
+
53
+ === 1.4.1 / 2009/12/10
54
+
55
+ * New Features
56
+
57
+ * Added Nokogiri::LIBXML_ICONV_ENABLED
58
+ * Alias Node#[] to Node#attr
59
+ * XML::Node#next_element added
60
+ * XML::Node#> added for searching a nodes immediate children
61
+ * XML::NodeSet#reverse added
62
+ * Added fragment support to Node#add_child, Node#add_next_sibling,
63
+ Node#add_previous_sibling, and Node#replace.
64
+ * XML::Node#previous_element implemented
65
+ * Rubinius support
66
+ * Ths CSS selector engine now supports :has()
67
+ * XML::NodeSet#filter() was added
68
+ * XML::Node.next= and .previous= are aliases for add_next_sibling and add_previous_sibling. GH #183
69
+
70
+ * Bugfixes
71
+
72
+ * XML fragments with namespaces do not raise an exception (regression in 1.4.0)
73
+ * Node#matches? works in nodes contained by a DocumentFragment. GH #158
74
+ * Document should not define add_namespace() method. GH #169
75
+ * XPath queries returning namespace declarations do not segfault.
76
+ * Node#replace works with nodes from different documents. GH #162
77
+ * Adding XML::Document#collect_namespaces
78
+ * Fixed bugs in the SOAP4R adapter
79
+ * Fixed bug in XML::Node#next_element for certain edge cases
80
+ * Fixed load path issue with JRuby under Windows. GH #160.
81
+ * XSLT#apply_to will honor the "output method". Thanks richardlehane!
82
+ * Fragments containing leading text nodes with newlines now parse properly. GH #178.
83
+
84
+ === 1.4.0 / 2009/10/30
85
+
86
+ * Happy Birthday!
87
+
88
+ * New Features
89
+
90
+ * Node#at_xpath returns the first element of the NodeSet matching the XPath
91
+ expression.
92
+ * Node#at_css returns the first element of the NodeSet matching the CSS
93
+ selector.
94
+ * NodeSet#| for unions GH #119 (Thanks Serabe!)
95
+ * NodeSet#inspect makes prettier output
96
+ * Node#inspect implemented for more rubyish document inspecting
97
+ * Added XML::DTD#external_id
98
+ * Added XML::DTD#system_id
99
+ * Added XML::ElementContent for DTD Element content validity
100
+ * Better namespace declaration support in Nokogiri::XML::Builder
101
+ * Added XML::Node#external_subset
102
+ * Added XML::Node#create_external_subset
103
+ * Added XML::Node#create_internal_subset
104
+ * XML Builder can append raw strings (GH #141, patch from dudleyf)
105
+ * XML::SAX::ParserContext added
106
+ * XML::Document#remove_namespaces! for the namespace-impaired
107
+
108
+ * Bugfixes
109
+
110
+ * returns nil when HTML documents do not declare a meta encoding tag. GH #115
111
+ * Uses RbConfig::CONFIG['host_os'] to adjust ENV['PATH'] GH #113
112
+ * NodeSet#search is more efficient GH #119 (Thanks Serabe!)
113
+ * NodeSet#xpath handles custom xpath functions
114
+ * Fixing a SEGV when XML::Reader gets attributes for current node
115
+ * Node#inner_html takes the same arguments as Node#to_html GH #117
116
+ * DocumentFragment#css delegates to it's child nodes GH #123
117
+ * NodeSet#[] works with slices larger than NodeSet#length GH #131
118
+ * Reparented nodes maintain their namespace. GH #134
119
+ * Fixed SEGV when adding an XML::Document to NodeSet
120
+ * XML::SyntaxError can be duplicated. GH #148
121
+
122
+ * Deprecations
123
+
124
+ * Hpricot compatibility layer removed
125
+
126
+ === 1.3.3 / 2009/07/26
127
+
128
+ * New Features
129
+
130
+ * NodeSet#children returns all children of all nodes
131
+
132
+ * Bugfixes
133
+
134
+ * Override libxml-ruby's global error handler
135
+ * ParseOption#strict fixed
136
+ * Fixed a segfault when sending an empty string to Node#inner_html= GH #88
137
+ * String encoding is now set to UTF-8 in Ruby 1.9
138
+ * Fixed a segfault when moving root nodes between documents. GH #91
139
+ * Fixed an O(n) penalty on node creation. GH #101
140
+ * Allowing XML documents to be output as HTML documents
141
+
142
+ * Deprecations
143
+
144
+ * Hpricot compatibility layer will be removed in 1.4.0
145
+
146
+ === 1.3.2 / 2009-06-22
147
+
148
+ * New Features
149
+
150
+ * Nokogiri::XML::DTD#validate will validate your document
151
+
152
+ * Bugfixes
153
+
154
+ * Nokogiri::XML::NodeSet#search will search top level nodes. GH #73
155
+ * Removed namespace related methods from Nokogiri::XML::Document
156
+ * Fixed a segfault when a namespace was added twice
157
+ * Made nokogiri work with Snow Leopard GH #79
158
+ * Mailing list has moved to: http://groups.google.com/group/nokogiri-talk
159
+ * HTML fragments now correctly handle comments and CDATA blocks. GH #78
160
+ * Nokogiri::XML::Document#clone is now an alias of dup
161
+
162
+ * Deprecations
163
+
164
+ * Nokogiri::XML::SAX::Document#start_element_ns is deprecated, please switch
165
+ to Nokogiri::XML::SAX::Document#start_element_namespace
166
+ * Nokogiri::XML::SAX::Document#end_element_ns is deprecated, please switch
167
+ to Nokogiri::XML::SAX::Document#end_element_namespace
168
+
169
+ === 1.3.1 / 2009-06-07
170
+
171
+ * Bugfixes
172
+
173
+ * extconf.rb checks for optional RelaxNG and Schema functions
174
+ * Namespace nodes are added to the Document node cache
175
+
176
+ === 1.3.0 / 2009-05-30
177
+
178
+ * New Features
179
+
180
+ * Builder changes scope based on block arity
181
+ * Builder supports methods ending in underscore similar to tagz
182
+ * Nokogiri::XML::Node#<=> compares nodes based on Document position
183
+ * Nokogiri::XML::Node#matches? returns true if Node can be found with
184
+ given selector.
185
+ * Nokogiri::XML::Node#ancestors now returns an Nokogiri::XML::NodeSet
186
+ * Nokogiri::XML::Node#ancestors will match parents against optional selector
187
+ * Nokogiri::HTML::Document#meta_encoding for getting the meta encoding
188
+ * Nokogiri::HTML::Document#meta_encoding= for setting the meta encoding
189
+ * Nokogiri::XML::Document#encoding= to set the document encoding
190
+ * Nokogiri::XML::Schema for validating documents against XSD schema
191
+ * Nokogiri::XML::RelaxNG for validating documents against RelaxNG schema
192
+ * Nokogiri::HTML::ElementDescription for fetching HTML element descriptions
193
+ * Nokogiri::XML::Node#description to fetch the node description
194
+ * Nokogiri::XML::Node#accept implements Visitor pattern
195
+ * bin/nokogiri for easily examining documents (Thanks Yutaka HARA!)
196
+ * Nokogiri::XML::NodeSet now supports more Array and Enumerable operators:
197
+ index, delete, slice, - (difference), + (concatenation), & (intersection),
198
+ push, pop, shift, ==
199
+ * Nokogiri.XML, Nokogiri.HTML take blocks that receive
200
+ Nokogiri::XML::ParseOptions objects
201
+ * Nokogiri::XML::Node#namespace returns a Nokogiri::XML::Namespace
202
+ * Nokogiri::XML::Node#namespace= for setting a node's namespace
203
+ * Nokogiri::XML::DocumentFragment and Nokogiri::HTML::DocumentFragment
204
+ have a sensible API and a more robust implementation.
205
+ * JRuby 1.3.0 support via FFI.
206
+
207
+ * Bugfixes
208
+
209
+ * Fixed a problem with nil passed to CDATA constructor
210
+ * Fragment method deals with regular expression characters
211
+ (Thanks Joel!) LH #73
212
+ * Fixing builder scope issues LH #61, LH #74, LH #70
213
+ * Fixed a problem when adding a child could remove the child namespace LH#78
214
+ * Fixed bug with unlinking a node then reparenting it. (GH#22)
215
+ * Fixed failure to catch errors during XSLT parsing (GH#32)
216
+ * Fixed a bug with attribute conditions in CSS selectors (GH#36)
217
+ * Fixed intolerance of HTML attributes without values in Node#before/after/inner_html=. (GH#35)
218
+
219
+ === 1.2.3 / 2009-03-22
220
+
221
+ * Bugfixes
222
+
223
+ * Fixing bug where a node is passed in to Node#new
224
+ * Namespace should be assigned on DocumentFragment creation. LH #66
225
+ * Nokogiri::XML::NodeSet#dup works GH #10
226
+ * Nokogiri::HTML returns an empty Document when given a blank string GH#11
227
+ * Adding a child will remove duplicate namespace declarations LH #67
228
+ * Builder methods take a hash as a second argument
229
+
230
+ === 1.2.2 / 2009-03-14
231
+
232
+ * New features
233
+
234
+ * Nokogiri may be used with soap4r. See XSD::XMLParser::Nokogiri
235
+ * Nokogiri::XML::Node#inner_html= to set the inner html for a node
236
+ * Nokogiri builder interface improvements
237
+ * Nokogiri::XML::Node#swap swaps html for current node (LH #50)
238
+
239
+ * Bugfixes
240
+
241
+ * Fixed a tag nesting problem in the Builder API (LH #41)
242
+ * Nokogiri::HTML.fragment will properly handle text only nodes (LH #43)
243
+ * Nokogiri::XML::Node#before will prepend text nodes (LH #44)
244
+ * Nokogiri::XML::Node#after will append text nodes
245
+ * Nokogiri::XML::Node#search automatically registers root namepsaces (LH #42)
246
+ * Nokogiri::XML::NodeSet#search automatically registers namespaces
247
+ * Nokogiri::HTML::NamedCharacters delegates to libxml2
248
+ * Nokogiri::XML::Node#[] can take a symbol (LH #48)
249
+ * vasprintf for windows updated. Thanks Geoffroy Couprie!
250
+ * Nokogiri::XML::Node#[]= should not encode entities (LH #55)
251
+ * Namespaces should be copied to reparented nodes (LH #56)
252
+ * Nokogiri uses encoding set on the string for default in Ruby 1.9
253
+ * Document#dup should create a new document of the same type (LH #59)
254
+ * Document should not have a parent method (LH #64)
255
+
256
+ === 1.2.1 / 2009-02-23
257
+
258
+ * Bugfixes
259
+
260
+ * Fixed a CSS selector space bug
261
+ * Fixed Ruby 1.9 String Encoding (Thanks 角谷さん!)
262
+
263
+ === 1.2.0 / 2009-02-22
264
+
265
+ * New features
266
+
267
+ * CSS search now supports CSS3 namespace queries
268
+ * Namespaces on the root node are automatically registered
269
+ * CSS queries use the default namespace
270
+ * Nokogiri::XML::Document#encoding get encoding used for this document
271
+ * Nokogiri::XML::Document#url get the document url
272
+ * Nokogiri::XML::Node#add_namespace add a namespace to the node LH#38
273
+ * Nokogiri::XML::Node#each iterate over attribute name, value pairs
274
+ * Nokogiri::XML::Node#keys get all attribute names
275
+ * Nokogiri::XML::Node#line get the line number for a node (Thanks Dirkjan Bussink!)
276
+ * Nokogiri::XML::Node#serialize now takes an optional encoding parameter
277
+ * Nokogiri::XML::Node#to_html, to_xml, and to_xhtml take an optional encoding
278
+ * Nokogiri::XML::Node#to_str
279
+ * Nokogiri::XML::Node#to_xhtml to produce XHTML documents
280
+ * Nokogiri::XML::Node#values get all attribute values
281
+ * Nokogiri::XML::Node#write_to writes the node to an IO object with optional encoding
282
+ * Nokogiri::XML::ProcessingInstrunction.new
283
+ * Nokogiri::XML::SAX::PushParser for all your push parsing needs.
284
+
285
+ * Bugfixes
286
+
287
+ * Fixed Nokogiri::XML::Document#dup
288
+ * Fixed header detection. Thanks rubikitch!
289
+ * Fixed a problem where invalid CSS would cause the parser to hang
290
+
291
+ * Deprecations
292
+
293
+ * Nokogiri::XML::Node.new_from_str will be deprecated in 1.3.0
294
+
295
+ * API Changes
296
+
297
+ * Nokogiri::HTML.fragment now returns an XML::DocumentFragment (LH #32)
298
+
299
+ === 1.1.1
300
+
301
+ * New features
302
+
303
+ * Added XML::Node#elem?
304
+ * Added XML::Node#attribute_nodes
305
+ * Added XML::Attr
306
+ * XML::Node#delete added.
307
+ * XML::NodeSet#inner_html added.
308
+
309
+ * Bugfixes
310
+
311
+ * Not including an HTML entity for \r for HTML nodes.
312
+ * Removed CSS::SelectorHandler and XML::XPathHandler
313
+ * XML::Node#attributes returns an Attr node for the value.
314
+ * XML::NodeSet implements to_xml
315
+
316
+ === 1.1.0
317
+
318
+ * New Features
319
+
320
+ * Custom XPath functions are now supported. See Nokogiri::XML::Node#xpath
321
+ * Custom CSS pseudo classes are now supported. See Nokogiri::XML::Node#css
322
+ * Nokogiri::XML::Node#<< will add a child to the current node
323
+
324
+ * Bugfixes
325
+
326
+ * Mutex lock on CSS cache access
327
+ * Fixed build problems with GCC 3.3.5
328
+ * XML::Node#to_xml now takes an indentation argument
329
+ * XML::Node#dup takes an optional depth argument
330
+ * XML::Node#add_previous_sibling returns new sibling node.
331
+
332
+ === 1.0.7
333
+
334
+ * Bugfixes
335
+
336
+ * Fixed memory leak when using Dike
337
+ * SAX parser now parses IO streams
338
+ * Comment nodes have their own class
339
+ * Nokogiri() should delegate to Nokogiri.parse()
340
+ * Prepending rather than appending to ENV['PATH'] on windows
341
+ * Fixed a bug in complex CSS negation selectors
342
+
343
+ === 1.0.6
344
+
345
+ * 5 Bugfixes
346
+
347
+ * XPath Parser raises a SyntaxError on parse failure
348
+ * CSS Parser raises a SyntaxError on parse failure
349
+ * filter() and not() hpricot compatibility added
350
+ * CSS searches via Node#search are now always relative
351
+ * CSS to XPath conversion is now cached
352
+
353
+ === 1.0.5
354
+
355
+ * Bugfixes
356
+
357
+ * Added mailing list and ticket tracking information to the README.txt
358
+ * Sets ENV['PATH'] on windows if it doesn't exist
359
+ * Caching results of NodeSet#[] on Document
360
+
361
+ === 1.0.4
362
+
363
+ * Bugfixes
364
+
365
+ * Changed memory mangement from weak refs to document refs
366
+ * Plugged some memory leaks
367
+ * Builder blocks can call methods from surrounding contexts
368
+
369
+ === 1.0.3
370
+
371
+ * 5 Bugfixes
372
+
373
+ * NodeSet now implements to_ary
374
+ * XML::Document should not implement parent
375
+ * More GC Bugs fixed. (Mike is AWESOME!)
376
+ * Removed RARRAY_LEN for 1.8.5 compatibility. Thanks Shane Hanna.
377
+ * inner_html fixed. (Thanks Yehuda!)
378
+
379
+ === 1.0.2
380
+
381
+ * 1 Bugfix
382
+
383
+ * extconf.rb should not check for frex and racc
384
+
385
+ === 1.0.1
386
+
387
+ * 1 Bugfix
388
+
389
+ * Made sure extconf.rb searched libdir and prefix so that ports libxml/ruby
390
+ will link properly. Thanks lucsky!
391
+
392
+ === 1.0.0 / 2008-07-13
393
+
394
+ * 1 major enhancement
395
+
396
+ * Birthday!
397
+