nokogiri 1.2.3-x86-mswin32-60 → 1.4.5-x86-mswin32-60

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of nokogiri might be problematic. Click here for more details.

Files changed (319) hide show
  1. data/.autotest +18 -7
  2. data/.gemtest +0 -0
  3. data/CHANGELOG.ja.rdoc +297 -3
  4. data/CHANGELOG.rdoc +289 -0
  5. data/Manifest.txt +148 -37
  6. data/README.ja.rdoc +20 -20
  7. data/README.rdoc +53 -22
  8. data/Rakefile +127 -211
  9. data/bin/nokogiri +54 -0
  10. data/ext/nokogiri/depend +358 -0
  11. data/ext/nokogiri/extconf.rb +89 -54
  12. data/ext/nokogiri/html_document.c +34 -27
  13. data/ext/nokogiri/html_document.h +1 -1
  14. data/ext/nokogiri/html_element_description.c +276 -0
  15. data/ext/nokogiri/html_element_description.h +10 -0
  16. data/ext/nokogiri/html_entity_lookup.c +7 -5
  17. data/ext/nokogiri/html_entity_lookup.h +1 -1
  18. data/ext/nokogiri/html_sax_parser_context.c +94 -0
  19. data/ext/nokogiri/html_sax_parser_context.h +11 -0
  20. data/ext/nokogiri/{native.c → nokogiri.c} +31 -7
  21. data/ext/nokogiri/{native.h → nokogiri.h} +68 -41
  22. data/ext/nokogiri/xml_attr.c +20 -9
  23. data/ext/nokogiri/xml_attr.h +1 -1
  24. data/ext/nokogiri/xml_attribute_decl.c +70 -0
  25. data/ext/nokogiri/xml_attribute_decl.h +9 -0
  26. data/ext/nokogiri/xml_cdata.c +21 -9
  27. data/ext/nokogiri/xml_cdata.h +1 -1
  28. data/ext/nokogiri/xml_comment.c +18 -6
  29. data/ext/nokogiri/xml_comment.h +1 -1
  30. data/ext/nokogiri/xml_document.c +247 -68
  31. data/ext/nokogiri/xml_document.h +5 -3
  32. data/ext/nokogiri/xml_document_fragment.c +15 -7
  33. data/ext/nokogiri/xml_document_fragment.h +1 -1
  34. data/ext/nokogiri/xml_dtd.c +110 -10
  35. data/ext/nokogiri/xml_dtd.h +3 -1
  36. data/ext/nokogiri/xml_element_content.c +123 -0
  37. data/ext/nokogiri/xml_element_content.h +10 -0
  38. data/ext/nokogiri/xml_element_decl.c +69 -0
  39. data/ext/nokogiri/xml_element_decl.h +9 -0
  40. data/ext/nokogiri/xml_encoding_handler.c +79 -0
  41. data/ext/nokogiri/xml_encoding_handler.h +8 -0
  42. data/ext/nokogiri/xml_entity_decl.c +110 -0
  43. data/ext/nokogiri/xml_entity_decl.h +10 -0
  44. data/ext/nokogiri/xml_entity_reference.c +16 -5
  45. data/ext/nokogiri/xml_entity_reference.h +1 -1
  46. data/ext/nokogiri/xml_io.c +40 -8
  47. data/ext/nokogiri/xml_io.h +2 -1
  48. data/ext/nokogiri/xml_libxml2_hacks.c +112 -0
  49. data/ext/nokogiri/xml_libxml2_hacks.h +12 -0
  50. data/ext/nokogiri/xml_namespace.c +84 -0
  51. data/ext/nokogiri/xml_namespace.h +13 -0
  52. data/ext/nokogiri/xml_node.c +782 -225
  53. data/ext/nokogiri/xml_node.h +2 -4
  54. data/ext/nokogiri/xml_node_set.c +253 -34
  55. data/ext/nokogiri/xml_node_set.h +2 -2
  56. data/ext/nokogiri/xml_processing_instruction.c +17 -5
  57. data/ext/nokogiri/xml_processing_instruction.h +1 -1
  58. data/ext/nokogiri/xml_reader.c +277 -85
  59. data/ext/nokogiri/xml_reader.h +1 -1
  60. data/ext/nokogiri/xml_relax_ng.c +168 -0
  61. data/ext/nokogiri/xml_relax_ng.h +9 -0
  62. data/ext/nokogiri/xml_sax_parser.c +183 -111
  63. data/ext/nokogiri/xml_sax_parser.h +30 -1
  64. data/ext/nokogiri/xml_sax_parser_context.c +199 -0
  65. data/ext/nokogiri/xml_sax_parser_context.h +10 -0
  66. data/ext/nokogiri/xml_sax_push_parser.c +42 -12
  67. data/ext/nokogiri/xml_sax_push_parser.h +1 -1
  68. data/ext/nokogiri/xml_schema.c +205 -0
  69. data/ext/nokogiri/xml_schema.h +9 -0
  70. data/ext/nokogiri/xml_syntax_error.c +28 -173
  71. data/ext/nokogiri/xml_syntax_error.h +2 -1
  72. data/ext/nokogiri/xml_text.c +16 -6
  73. data/ext/nokogiri/xml_text.h +1 -1
  74. data/ext/nokogiri/xml_xpath_context.c +104 -47
  75. data/ext/nokogiri/xml_xpath_context.h +1 -1
  76. data/ext/nokogiri/xslt_stylesheet.c +161 -19
  77. data/ext/nokogiri/xslt_stylesheet.h +1 -1
  78. data/lib/nokogiri.rb +47 -8
  79. data/lib/nokogiri/1.8/nokogiri.so +0 -0
  80. data/lib/nokogiri/1.9/nokogiri.so +0 -0
  81. data/lib/nokogiri/css.rb +6 -3
  82. data/lib/nokogiri/css/node.rb +14 -12
  83. data/lib/nokogiri/css/parser.rb +665 -62
  84. data/lib/nokogiri/css/parser.y +20 -10
  85. data/lib/nokogiri/css/parser_extras.rb +91 -0
  86. data/lib/nokogiri/css/tokenizer.rb +148 -5
  87. data/lib/nokogiri/css/tokenizer.rex +10 -9
  88. data/lib/nokogiri/css/xpath_visitor.rb +47 -44
  89. data/lib/nokogiri/decorators/slop.rb +8 -4
  90. data/lib/nokogiri/ffi/encoding_handler.rb +42 -0
  91. data/lib/nokogiri/ffi/html/document.rb +28 -0
  92. data/lib/nokogiri/ffi/html/element_description.rb +81 -0
  93. data/lib/nokogiri/ffi/html/entity_lookup.rb +16 -0
  94. data/lib/nokogiri/ffi/html/sax/parser_context.rb +38 -0
  95. data/lib/nokogiri/ffi/io_callbacks.rb +42 -0
  96. data/lib/nokogiri/ffi/libxml.rb +420 -0
  97. data/lib/nokogiri/ffi/structs/common_node.rb +38 -0
  98. data/lib/nokogiri/ffi/structs/html_elem_desc.rb +24 -0
  99. data/lib/nokogiri/ffi/structs/html_entity_desc.rb +13 -0
  100. data/lib/nokogiri/ffi/structs/xml_alloc.rb +16 -0
  101. data/lib/nokogiri/ffi/structs/xml_attr.rb +20 -0
  102. data/lib/nokogiri/ffi/structs/xml_attribute.rb +27 -0
  103. data/lib/nokogiri/ffi/structs/xml_buffer.rb +16 -0
  104. data/lib/nokogiri/ffi/structs/xml_char_encoding_handler.rb +11 -0
  105. data/lib/nokogiri/ffi/structs/xml_document.rb +117 -0
  106. data/lib/nokogiri/ffi/structs/xml_dtd.rb +28 -0
  107. data/lib/nokogiri/ffi/structs/xml_element.rb +26 -0
  108. data/lib/nokogiri/ffi/structs/xml_element_content.rb +17 -0
  109. data/lib/nokogiri/ffi/structs/xml_entity.rb +32 -0
  110. data/lib/nokogiri/ffi/structs/xml_enumeration.rb +12 -0
  111. data/lib/nokogiri/ffi/structs/xml_node.rb +28 -0
  112. data/lib/nokogiri/ffi/structs/xml_node_set.rb +53 -0
  113. data/lib/nokogiri/ffi/structs/xml_notation.rb +11 -0
  114. data/lib/nokogiri/ffi/structs/xml_ns.rb +15 -0
  115. data/lib/nokogiri/ffi/structs/xml_parser_context.rb +20 -0
  116. data/lib/nokogiri/ffi/structs/xml_parser_input.rb +19 -0
  117. data/lib/nokogiri/ffi/structs/xml_relax_ng.rb +14 -0
  118. data/lib/nokogiri/ffi/structs/xml_sax_handler.rb +51 -0
  119. data/lib/nokogiri/ffi/structs/xml_sax_push_parser_context.rb +124 -0
  120. data/lib/nokogiri/ffi/structs/xml_schema.rb +13 -0
  121. data/lib/nokogiri/ffi/structs/xml_syntax_error.rb +31 -0
  122. data/lib/nokogiri/ffi/structs/xml_text_reader.rb +12 -0
  123. data/lib/nokogiri/ffi/structs/xml_xpath_context.rb +38 -0
  124. data/lib/nokogiri/ffi/structs/xml_xpath_object.rb +35 -0
  125. data/lib/nokogiri/ffi/structs/xml_xpath_parser_context.rb +20 -0
  126. data/lib/nokogiri/ffi/structs/xslt_stylesheet.rb +13 -0
  127. data/lib/nokogiri/ffi/weak_bucket.rb +40 -0
  128. data/lib/nokogiri/ffi/xml/attr.rb +41 -0
  129. data/lib/nokogiri/ffi/xml/attribute_decl.rb +27 -0
  130. data/lib/nokogiri/ffi/xml/cdata.rb +19 -0
  131. data/lib/nokogiri/ffi/xml/comment.rb +18 -0
  132. data/lib/nokogiri/ffi/xml/document.rb +174 -0
  133. data/lib/nokogiri/ffi/xml/document_fragment.rb +21 -0
  134. data/lib/nokogiri/ffi/xml/dtd.rb +67 -0
  135. data/lib/nokogiri/ffi/xml/element_content.rb +43 -0
  136. data/lib/nokogiri/ffi/xml/element_decl.rb +19 -0
  137. data/lib/nokogiri/ffi/xml/entity_decl.rb +36 -0
  138. data/lib/nokogiri/ffi/xml/entity_reference.rb +19 -0
  139. data/lib/nokogiri/ffi/xml/namespace.rb +44 -0
  140. data/lib/nokogiri/ffi/xml/node.rb +559 -0
  141. data/lib/nokogiri/ffi/xml/node_set.rb +150 -0
  142. data/lib/nokogiri/ffi/xml/processing_instruction.rb +20 -0
  143. data/lib/nokogiri/ffi/xml/reader.rb +236 -0
  144. data/lib/nokogiri/ffi/xml/relax_ng.rb +85 -0
  145. data/lib/nokogiri/ffi/xml/sax/parser.rb +143 -0
  146. data/lib/nokogiri/ffi/xml/sax/parser_context.rb +79 -0
  147. data/lib/nokogiri/ffi/xml/sax/push_parser.rb +51 -0
  148. data/lib/nokogiri/ffi/xml/schema.rb +109 -0
  149. data/lib/nokogiri/ffi/xml/syntax_error.rb +98 -0
  150. data/lib/nokogiri/ffi/xml/text.rb +18 -0
  151. data/lib/nokogiri/ffi/xml/xpath.rb +9 -0
  152. data/lib/nokogiri/ffi/xml/xpath_context.rb +153 -0
  153. data/lib/nokogiri/ffi/xslt/stylesheet.rb +77 -0
  154. data/lib/nokogiri/html.rb +13 -47
  155. data/lib/nokogiri/html/builder.rb +27 -1
  156. data/lib/nokogiri/html/document.rb +201 -7
  157. data/lib/nokogiri/html/document_fragment.rb +41 -0
  158. data/lib/nokogiri/html/element_description.rb +23 -0
  159. data/lib/nokogiri/html/entity_lookup.rb +2 -0
  160. data/lib/nokogiri/html/sax/parser.rb +34 -3
  161. data/lib/nokogiri/html/sax/parser_context.rb +16 -0
  162. data/lib/nokogiri/nokogiri.rb +1 -0
  163. data/lib/nokogiri/version.rb +40 -1
  164. data/lib/nokogiri/version_warning.rb +14 -0
  165. data/lib/nokogiri/xml.rb +32 -53
  166. data/lib/nokogiri/xml/attr.rb +5 -0
  167. data/lib/nokogiri/xml/attribute_decl.rb +18 -0
  168. data/lib/nokogiri/xml/builder.rb +349 -29
  169. data/lib/nokogiri/xml/cdata.rb +3 -1
  170. data/lib/nokogiri/xml/character_data.rb +7 -0
  171. data/lib/nokogiri/xml/document.rb +166 -14
  172. data/lib/nokogiri/xml/document_fragment.rb +76 -1
  173. data/lib/nokogiri/xml/dtd.rb +16 -3
  174. data/lib/nokogiri/xml/element_content.rb +36 -0
  175. data/lib/nokogiri/xml/element_decl.rb +13 -0
  176. data/lib/nokogiri/xml/entity_decl.rb +19 -0
  177. data/lib/nokogiri/xml/namespace.rb +13 -0
  178. data/lib/nokogiri/xml/node.rb +561 -166
  179. data/lib/nokogiri/xml/node/save_options.rb +22 -2
  180. data/lib/nokogiri/xml/node_set.rb +202 -40
  181. data/lib/nokogiri/xml/parse_options.rb +93 -0
  182. data/lib/nokogiri/xml/pp.rb +2 -0
  183. data/lib/nokogiri/xml/pp/character_data.rb +18 -0
  184. data/lib/nokogiri/xml/pp/node.rb +56 -0
  185. data/lib/nokogiri/xml/processing_instruction.rb +2 -0
  186. data/lib/nokogiri/xml/reader.rb +93 -8
  187. data/lib/nokogiri/xml/relax_ng.rb +32 -0
  188. data/lib/nokogiri/xml/sax.rb +1 -7
  189. data/lib/nokogiri/xml/sax/document.rb +107 -2
  190. data/lib/nokogiri/xml/sax/parser.rb +57 -7
  191. data/lib/nokogiri/xml/sax/parser_context.rb +16 -0
  192. data/lib/nokogiri/xml/sax/push_parser.rb +13 -1
  193. data/lib/nokogiri/xml/schema.rb +63 -0
  194. data/lib/nokogiri/xml/syntax_error.rb +25 -1
  195. data/lib/nokogiri/xml/text.rb +4 -1
  196. data/lib/nokogiri/xml/xpath.rb +1 -1
  197. data/lib/nokogiri/xml/xpath/syntax_error.rb +3 -0
  198. data/lib/nokogiri/xml/xpath_context.rb +2 -0
  199. data/lib/nokogiri/xslt.rb +26 -2
  200. data/lib/nokogiri/xslt/stylesheet.rb +19 -0
  201. data/lib/xsd/xmlparser/nokogiri.rb +45 -9
  202. data/tasks/cross_compile.rb +173 -0
  203. data/tasks/test.rb +25 -69
  204. data/test/css/test_nthiness.rb +3 -4
  205. data/test/css/test_parser.rb +75 -20
  206. data/test/css/test_tokenizer.rb +23 -1
  207. data/test/css/test_xpath_visitor.rb +10 -1
  208. data/test/decorators/test_slop.rb +16 -0
  209. data/test/ffi/test_document.rb +35 -0
  210. data/test/files/2ch.html +108 -0
  211. data/test/files/address_book.rlx +12 -0
  212. data/test/files/address_book.xml +10 -0
  213. data/test/files/bar/bar.xsd +4 -0
  214. data/test/files/encoding.html +82 -0
  215. data/test/files/encoding.xhtml +84 -0
  216. data/test/files/foo/foo.xsd +4 -0
  217. data/test/files/po.xml +32 -0
  218. data/test/files/po.xsd +66 -0
  219. data/test/files/shift_jis.html +10 -0
  220. data/test/files/shift_jis.xml +5 -0
  221. data/test/files/snuggles.xml +3 -0
  222. data/test/files/staff.dtd +10 -0
  223. data/test/files/valid_bar.xml +2 -0
  224. data/test/helper.rb +101 -23
  225. data/test/html/sax/test_parser.rb +81 -2
  226. data/test/html/sax/test_parser_context.rb +48 -0
  227. data/test/html/test_builder.rb +39 -8
  228. data/test/html/test_document.rb +186 -23
  229. data/test/html/test_document_encoding.rb +78 -1
  230. data/test/html/test_document_fragment.rb +253 -0
  231. data/test/html/test_element_description.rb +98 -0
  232. data/test/html/test_named_characters.rb +1 -1
  233. data/test/html/test_node.rb +124 -36
  234. data/test/html/test_node_encoding.rb +27 -0
  235. data/test/test_convert_xpath.rb +1 -52
  236. data/test/test_css_cache.rb +2 -13
  237. data/test/test_encoding_handler.rb +46 -0
  238. data/test/test_memory_leak.rb +88 -19
  239. data/test/test_nokogiri.rb +38 -5
  240. data/test/test_reader.rb +188 -6
  241. data/test/test_soap4r_sax.rb +52 -0
  242. data/test/test_xslt_transforms.rb +183 -83
  243. data/test/xml/node/test_save_options.rb +1 -1
  244. data/test/xml/node/test_subclass.rb +44 -0
  245. data/test/xml/sax/test_parser.rb +175 -4
  246. data/test/xml/sax/test_parser_context.rb +113 -0
  247. data/test/xml/sax/test_push_parser.rb +90 -2
  248. data/test/xml/test_attr.rb +35 -1
  249. data/test/xml/test_attribute_decl.rb +82 -0
  250. data/test/xml/test_builder.rb +186 -1
  251. data/test/xml/test_cdata.rb +32 -1
  252. data/test/xml/test_comment.rb +13 -1
  253. data/test/xml/test_document.rb +415 -43
  254. data/test/xml/test_document_encoding.rb +1 -1
  255. data/test/xml/test_document_fragment.rb +173 -5
  256. data/test/xml/test_dtd.rb +61 -6
  257. data/test/xml/test_dtd_encoding.rb +3 -1
  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 +5 -1
  262. data/test/xml/test_namespace.rb +68 -0
  263. data/test/xml/test_node.rb +546 -201
  264. data/test/xml/test_node_attributes.rb +34 -0
  265. data/test/xml/test_node_encoding.rb +33 -3
  266. data/test/xml/test_node_reparenting.rb +321 -0
  267. data/test/xml/test_node_set.rb +538 -2
  268. data/test/xml/test_parse_options.rb +52 -0
  269. data/test/xml/test_processing_instruction.rb +6 -1
  270. data/test/xml/test_reader_encoding.rb +1 -1
  271. data/test/xml/test_relax_ng.rb +60 -0
  272. data/test/xml/test_schema.rb +94 -0
  273. data/test/xml/test_syntax_error.rb +12 -0
  274. data/test/xml/test_text.rb +35 -1
  275. data/test/xml/test_unparented_node.rb +5 -5
  276. data/test/xml/test_xpath.rb +142 -11
  277. data/test/xslt/test_custom_functions.rb +94 -0
  278. metadata +328 -92
  279. data/ext/nokogiri/html_sax_parser.c +0 -57
  280. data/ext/nokogiri/html_sax_parser.h +0 -11
  281. data/ext/nokogiri/iconv.dll +0 -0
  282. data/ext/nokogiri/libexslt.dll +0 -0
  283. data/ext/nokogiri/libxml2.dll +0 -0
  284. data/ext/nokogiri/libxslt.dll +0 -0
  285. data/ext/nokogiri/native.so +0 -0
  286. data/ext/nokogiri/xml_xpath.c +0 -53
  287. data/ext/nokogiri/xml_xpath.h +0 -11
  288. data/ext/nokogiri/zlib1.dll +0 -0
  289. data/lib/action-nokogiri.rb +0 -30
  290. data/lib/nokogiri/css/generated_parser.rb +0 -713
  291. data/lib/nokogiri/css/generated_tokenizer.rb +0 -144
  292. data/lib/nokogiri/decorators.rb +0 -2
  293. data/lib/nokogiri/decorators/hpricot.rb +0 -3
  294. data/lib/nokogiri/decorators/hpricot/node.rb +0 -56
  295. data/lib/nokogiri/decorators/hpricot/node_set.rb +0 -54
  296. data/lib/nokogiri/decorators/hpricot/xpath_visitor.rb +0 -28
  297. data/lib/nokogiri/hpricot.rb +0 -51
  298. data/lib/nokogiri/xml/comment.rb +0 -6
  299. data/lib/nokogiri/xml/element.rb +0 -6
  300. data/lib/nokogiri/xml/entity_declaration.rb +0 -9
  301. data/lib/nokogiri/xml/fragment_handler.rb +0 -34
  302. data/test/hpricot/files/basic.xhtml +0 -17
  303. data/test/hpricot/files/boingboing.html +0 -2266
  304. data/test/hpricot/files/cy0.html +0 -3653
  305. data/test/hpricot/files/immob.html +0 -400
  306. data/test/hpricot/files/pace_application.html +0 -1320
  307. data/test/hpricot/files/tenderlove.html +0 -16
  308. data/test/hpricot/files/uswebgen.html +0 -220
  309. data/test/hpricot/files/utf8.html +0 -1054
  310. data/test/hpricot/files/week9.html +0 -1723
  311. data/test/hpricot/files/why.xml +0 -19
  312. data/test/hpricot/load_files.rb +0 -11
  313. data/test/hpricot/test_alter.rb +0 -68
  314. data/test/hpricot/test_builder.rb +0 -20
  315. data/test/hpricot/test_parser.rb +0 -426
  316. data/test/hpricot/test_paths.rb +0 -15
  317. data/test/hpricot/test_preserved.rb +0 -77
  318. data/test/hpricot/test_xml.rb +0 -30
  319. data/test/test_gc.rb +0 -15
data/.autotest CHANGED
@@ -1,15 +1,26 @@
1
1
  # -*- ruby -*-
2
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
+
3
13
  Autotest.add_hook :run_command do |at|
14
+ at.unit_diff = 'cat'
4
15
  if ENV['ONENINE']
5
- system "rake1.9 build"
16
+ system "rake1.9 compile"
6
17
  else
7
- system "rake build"
18
+ system "rake compile"
8
19
  end
9
20
  end
10
21
 
11
- class Autotest
12
- def ruby
13
- 'ruby1.9'
14
- end
15
- end if ENV['ONENINE']
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
data/.gemtest ADDED
File without changes
data/CHANGELOG.ja.rdoc CHANGED
@@ -1,3 +1,297 @@
1
+ === 1.4.5 / 未リリース
2
+
3
+ * 新機能
4
+
5
+ * Nokogiri::HTML::Document#title アクセサメソッドでHTML文書のタイトルを読み書きできる
6
+
7
+ * バグの修正
8
+
9
+ * Node#serialize とその仲間達はSaveOptionオブジェクトを受け入れる
10
+ * Nokogiri::CSS::Parser has-a Nokogiri::CSS::Tokenizer
11
+ * [JRUBY+FFIのみ] 「弱い参照」はスレッドセーフになった. #355
12
+ * HTML::SAX::Parserから呼ばれるstart_element()コールバックのattributes引数はHTML::XML::Parserによるエミュレートコールバックと同じく連想配列になった. rel. #356
13
+ * HTML::SAX::Parserのparse*()メソッドはXML::SAX::Parser同様に渡されたブロックをコールバックするようになった.
14
+ * HTMLパーサーのエンコーディング判定をlibxml2の仕様を超えて拡張・改善した. (XML宣言のencodingを認識、非ASCII文字出現後のmetaタグも文字化けを生じずに反映)
15
+ * Document#remove_namespaces! は名前空間付きの属性に対応した. #396
16
+
17
+ === 1.4.4 2010年11月15日
18
+
19
+ * 新機能
20
+
21
+ * XML::Node#children=ノード内のhtml reparented node(s)を返す事によって親の変更ができる。
22
+ * XSLT はfunction extensionsをサポート。#336
23
+ * XPath はパラメーター置換を結合する. #329
24
+ * XML::Reader node typeを一定化させる. #369
25
+ * SAX Parser context は行とコラムの両方の情報を提供する
26
+
27
+ * バグの修正
28
+
29
+ * XML::DTD#attributes は属性が存在しない際、nilの代わりに空のハッシュを返す
30
+ * XML::DTD#{keys,each} は文字通りに機能するようになった #324
31
+ * {XML,HTML}::DocumentFragment.{new,parse} 行送りと末尾の空白を除去しなくなった #319
32
+ * XML::Node#{add_child,add_previous_sibling,add_next_sibling,replace} は文字列を見送る際にNodeSetを返す
33
+ * 不確定タグはフレグメント内で要、不要に関係なく解析される #315
34
+ * XML::Node#{replace,add_previous_sibling,add_next_sibling} libxmlのtext node merging に関わるedge caseを修正する #308
35
+ * xpath handler argument が整列している最中に起こるGCでのsegfaultを修正 #345
36
+ * Slop decoratorが既に確定された定義と共に正常に機能させるための便宜上の処置 #330
37
+ * 子ノードが複製される際に起こるメモリ漏れの修正 #353
38
+ * an+b記号の無使用時に発生するoff-by-oneバグとnth-last-{child,of-type} CSSセレクターの修正 #354
39
+ * 非名前空間属性がSAX::Document#start_elementへパスできるように修正 #356
40
+ * libxml2 in-contextの解析バグの処置  #362
41
+ * フレグメント内のノードの中にあるNodeSet#wrapの修正 #331
42
+
43
+ === 1.4.3 2010年7月28日
44
+
45
+ * 新しい機能
46
+
47
+ * XML::Reader#empty_element? - 子の無いエレメントにtrueを返す  #262
48
+ * Node#remove_namespaces! - 1.4.2では 名前空間のみを取り除いていたが、
49
+ 1.4.3 では名前空間及び、名前空間宣言も取り除く #294
50
+
51
+ * バグの修正
52
+
53
+ * XML::NodeSet#{include?,delete,push} はXML::Namespaceを受入れる
54
+ * XML::Document#parse - 1.4.3より文書内の文脈を解析する機能を追加
55
+ * XML::DocumentFragment#inner_html= 文脈解析を共に実行する #298, #281
56
+ * lib/nokogiri/css/parser.y はCSSと疑似選別の両方を機能
57
+ * 演算によって近隣に存在する併合型ノードへの遊離問題の有無に関わらず、一切の
58
+ 弊害なしにテキストノードの繰り返しが実行可能  #283
59
+ * xmlFirstElementChild et al.による libxml2バージョンでの不適合性を修正 #303
60
+ * XML::Attr#add_namespace (!)文字通りの機能実現!  #252
61
+ * HTML::DocumentFragment が文字列に存在するエンコードを使用 #305
62
+
63
+ === 1.4.2 2010年5月22日
64
+
65
+ * 新機能
66
+
67
+ * XML::Node#parse 定義されたコンテキストノードでXML 又はHTMLのフレグメント
68
+ を解析する
69
+ * XML::Node#namespacesが子ノードとその祖先ノード内で定義された全ての名前空間
70
+ を返すようになった(以前は祖先ノードの名前空間は返されなかった)
71
+ * XML::Node内にEnumerableを追加
72
+ * Nokogiri::XML::Schema#validate 与えられたファイル名が引き渡された時、
73
+ Nokogiri::XML::Schema#validateはxmlSchemaValidateFileを使用する
74
+ (時間短縮化とメモリーの能率化の理由を基にファイル名での引き渡しメソッドを
75
+ 採用) GH #219
76
+ * XML::Document#create_entnty は新規のEntityDecl のオブジェクトを生成する
77
+ GH #174
78
+ * JRuby FFI implementationでは、従来まで使用されたObjectSpace._id2refの代わり
79
+ にCharles Nutterのrocking Weakling gemを使用に変更
80
+ * Nokogiri::XML::Node#first_element_child は一番最初のELEMENT子ノードを返す
81
+ * Nokogiri::XML::Node#last_element_child は最後のELEMENT子ノードを返す
82
+ * Nokogiri::XML::Node#elements は全てのELEMENT子ノードを返す
83
+
84
+ * バグの修正
85
+
86
+ * ドキュメント内にデコレータがある場合、XML::NodeSet は常にデコレータされる GH #198
87
+ * XML::NodeSet#slice がノードセットよりも長いoffset+lengthを問題なく処理する
88
+ GH #200
89
+ * XML::Node#content=はノードとその直前に記述されている内容を支障なく切り離す
90
+ GH #203
91
+ * XML::Node#namespace= はnilを一つのパラメーターと扱って取得する
92
+ * XML::Node#xpath はNodeSetのオブジェクト以外のオブジェクトを返す GH #208
93
+ * XSLT::StyleSheet#transformはパラメーターのハッシュを受け入れる GH #223
94
+ * CSSのnot()の疑似セレクタの修正  GH #205
95
+ * XML::Builder はノードらが切り離されても破壊しない(vihaiの協力に感謝)
96
+ GH #228
97
+ * SAX parser経由でエンコードを強制することが出来る  Eugene Pimenovに感謝!
98
+ GH #204
99
+ * XML::DocumentFragment はML::Node#parse を使用して子を限定する
100
+ * XML Reader内のメモリリーク修正  sdorさん、ありがとう! GH#244
101
+
102
+ * ノート
103
+
104
+ * 今日4月18日現在、Windows gems は libxml 2.7.7 とlibxslt
105
+ 1.1.26にDLLsを標準装備しています。このリリース以前にも既にDLLsはlibxml
106
+ 2.7.3 と libxslt 1.1.24に標準装備済み。
107
+
108
+ === 1.4.1 2009年12月10日
109
+
110
+ * 新しい機能
111
+ * Nokogiri::LIBXML_ICONV_ENABLED を追加
112
+ * Node#attr は Node#[] のエイリアス定義に変更
113
+ * XML::Node#next_element を追加
114
+ * 直接の子ノードを検索するための Node#> を追加
115
+ * XML::NodeSet#reverse を追加
116
+ * 以下のfragment supportを追加
117
+   Node#add_child
118
+   Node#add_next_sibling
119
+ Node#add_previous_sibling
120
+   Node#replace
121
+ * XML::Node#previous_element を追加
122
+ * nokogiriがRubinius でサポートされるようになった
123
+ * CSS selector の :has() が使用可能になった
124
+ * XML::NodeSet#filter() を追加
125
+ * XML::Node.next= は add_next_sibling の alias へ変更
126
+ * XML::Node.previous= は add_previous_sibling の alias へ変更
127
+
128
+ * バグの修正
129
+ * XMLのフラグメントに名前空間が存在する場合のみ、DocumentFragmentを作る際に、
130
+ 例外が投げられなくなった
131
+ * DocumentFragment内で子ノードが存在する場合、
132
+ Node#matches?が機能するようになった GH #158
133
+ * Documentは add_namespace()を限定すべきではないので削除GH #169
134
+ * XPath クエリは名前空間の宣言を変換するがsegvではない。
135
+ * Node#replace は他のドキュメントのノードが使えるようになった
136
+ * XML::Document#collect_namespaces を追加
137
+ * SOAP4R のアダプター内のバグ修正
138
+ * XML::Node#next_element 内のバグ修正
139
+ * WindowsでのJRuby の LOAD_PATH を修正 GH #160
140
+ * XSLT#apply_toは "output method"の値を使用する(richardlehaneに感謝)
141
+ * 新しい文字列の先頭にくるテキストノードを含んだフレグメントが 正確に
142
+ 解析出来るようになった GH #178
143
+
144
+ === 1.4.0 2009年10月30日
145
+
146
+ * 今日はノコギリの満一歳のお誕生日です
147
+
148
+ * 新しい機能
149
+ * Node#at_xpath はXPath式に適合するNodeSetの一番最初の要素を返す
150
+ * Node#at_css はCSSセレクターに適合するNodeSetの一番最初の要素を返す
151
+ * NodeSet#| はNodeSet同士を合成する GH #119 (Serabe ありがとう!)
152
+ * NodeSet#inspect の出力をより美しくした
153
+ * Node#inspect の出力をよりrubyらしくした
154
+ * XML::DTD#external_id を追加
155
+ * XML::DTD#system_id を追加
156
+ * XML::ElementContent はDTD要素のコンテンツを有効化する
157
+ * Nokogiri::XML::Builder内での名前空間宣言用のサポートを改良
158
+ * XML::Node#external_subsetを追加
159
+ * XML::Node#create_external_subsetを追加
160
+ * XML::Node#create_internal_subsetを追加
161
+ * XML Builderは生成されていないstringsを付加出来る様になった
162
+ (GH #141, patch from dudleyf)
163
+ * XML::SAX::ParserContext を追加
164
+ * XML::Document#remove_namespaces! は名前空間を使いこなせない人たち用の措置
165
+
166
+ * バグの修正
167
+
168
+ * HTMLドキュメントが メタエンコーディングのタグを宣言しない時、
169
+ nilを返すようになった GH #115
170
+ * ENV['PATH'] を調節する為に、RbConfig::CONFIG['host_os']を使用できるように
171
+ なった GH #113
172
+ * NodeSet#searchが更に効率的になった GH #119 (Serabe!に感謝します)
173
+ * NodeSet#xpathがcustom xpath機能を取り扱える様になった
174
+ * XML::Reader が現時点のノード用に属性を取得する際に、
175
+ SEGVを修正するようになった
176
+ * Node#inner_html がNode#to_html と同じ独立変数を受け入れるようになった
177
+ GH #117
178
+ * DocumentFragment#css は子ノードへ委任するようになった GH #123
179
+ * NodeSet#[]がNodeSet#lengthより大きいスライスでも機能するようになった
180
+ GH #131
181
+ * 新たな親ノードの名前空間を維持出来るようになった GH #134
182
+ * XML::Document をNodeSetに追加する際のSEGVが修正された
183
+ * XML::SyntaxError が複製可能になった
184
+
185
+ * 廃棄予定
186
+
187
+ * Hpricot用の互換性レイヤーを削除
188
+
189
+ === 1.3.3 / 2009年7月26日
190
+
191
+ * 新しい機能
192
+
193
+ * NodeSet#children 全ての子ノードを返すようになった
194
+
195
+ * バグの修正
196
+
197
+ * libxml-ruby のグローバ ルエラー ハンドラー に優先するようになった
198
+ * ParseOption#strict を修正
199
+ * 空文字列を Node#inner_html= に与えた時に生じたSEGVを修正 GH #88
200
+ * Ruby 1.9 では文字列のエンコーディングをUTF-8になるようにした
201
+ * ドキュメントの根ノードから違うドキュメントの根ノードに移動した時に生じた
202
+ SEGVを修正 GH #91
203
+ * ノードをインスタンス化する時のO(n)のペナルティーを修正 GH #101
204
+ * XMLのドキュメントをHTMLのドキュメントとして出力出来るようになった
205
+
206
+ * 廃棄予定
207
+
208
+ * Hpricotの互換性レイヤーがNokogiriの1.4.0で除去される予定
209
+
210
+ === 1.3.2 / 2009年6月22日
211
+
212
+ * 新しい機能
213
+
214
+ * Nokogiri::XML::DTD#validate はドキュメントを検証できるようになった
215
+
216
+ * バグの修正
217
+
218
+ * Nokogiri::XML::NodeSet#search はトップレベルのノードを検索するようになった
219
+ GH #73
220
+ * Nokogiri::XML::Documentからメソッドに関係する名前空間を取り除いた
221
+ * 2回同じ名前空間が追加されたときSEGVする問題を修正した
222
+ * Snow Leopard で Nokogiri が動くようになった GH #79
223
+ * メーリングリストはGoogle Groupsの以下のURLに移動した
224
+ http://groups.google.com/group/nokogiri-talk
225
+ * HTML フラグメントはコメントとCDATAを正確に扱うようになった
226
+ * Nokogiri::XML::Document#cloneはdupのaliasになった
227
+
228
+ * 廃棄予定
229
+
230
+ * Nokogiri::XML::SAX::Document#start_element_nsは廃棄予定なので
231
+ Nokogiri::XML::SAX::Document#start_element_namespaceを代わりに使用して下さい
232
+ * Nokogiri::XML::SAX::Document#end_element_nsは廃棄予定なので
233
+ Nokogiri::XML::SAX::Document#end_element_namespaceを代わりに使用して下さい
234
+
235
+ === 1.3.1 / 2009年6月7日
236
+
237
+ * バグの修正
238
+
239
+ * extconf.rb は任意のRelaxNGとSchemaの機能を探すようになった
240
+ * ドキュメントのノードキャッシュに名前空間のノードが入るようになった
241
+
242
+ === 1.3.0 / 2009年5月30日
243
+
244
+ * 新しい機能
245
+
246
+ * Builderがブロックの引数の数に応じてスコープが定まるようになった
247
+ * Builderがアンダースコアで終わるメソッドをtagzと同様にサポートするようになった
248
+ * Nokogiri::XML::Node#<=> がドキュメントの位置によりノードを比較するように
249
+ なった
250
+ * Nokogiri::XML::Node#matches?が与えられたセレクタ内でノードがあればtrue
251
+ を返すようになった
252
+ * Nokogiri::XML::Node#ancestors がNokogiri::XML::NodeSetオブジェクトを返すようになった
253
+ * Nokogiri::XML::Node#ancestorsがオプションのセレクタに対応する親をマッチする
254
+ ようになった
255
+ * Nokogiri::HTML::Document#meta_encoding がメタデータのエンコードを返すように
256
+ なった
257
+ * Nokogiri::HTML::Document#meta_encoding= でメタデータのエンコードを
258
+ 設定できるようになった
259
+ * Nokogiri::XML::Document#encoding= でドキュメントのエンコードを
260
+ 設定できるようになった
261
+ * Nokogiri::XML::Schema でドキュメントがXSDのスキーマに沿って記述されているか
262
+ を検証できるようになった
263
+ * Nokogiri::XML::RelaxNG でドキュメントがRelaxNGのスキーマに沿って
264
+ 記述されているかを検証できるようになった
265
+ * Nokogiri::HTML::ElementDescription はHTML要素の説明フェッチ動作するよう
266
+ になった
267
+ * Nokogiri::XML::Node#descriptionは ノードの説明をフェッチ動作するよう
268
+ になった
269
+ * Nokogiri::XML::Node#accept は Visitor パターンを実行するようになった
270
+ * 簡単にドキュメントを解析するコマンド bin/nokogiri を追加
271
+ (Yataka HARAさんに感謝感激)
272
+ * Nokogiri::XML::NodeSetが更にArrayとEnumerableの演算を
273
+ サポートするようになった:
274
+ index, delete, slice, - (差分), + (連結), & (共通部分),
275
+ push, pop, shift, ==
276
+ * Nokogiri.XML, Nokogiri.HTML はNokogiri::XML::ParseOptions objectと一緒に
277
+ 呼び出されるブロックを受け入れるようになった
278
+ * Nokogiri::XML::Node#namespace は Nokogiri::XML::Namespaceを返すようになった
279
+ * Nokogiri::XML::Node#namespaceはノードの名前空間を設定するようになった
280
+ * FFI 経由で JRuby 1.3.0 をサポートするようになった
281
+
282
+ * バグの修正
283
+
284
+ * nilがCDATAsonstructorに渡される際の問題を修正
285
+ * Fragment メソッドが正規表現を抜け出させるようになった
286
+ (Joelさんに感謝感激) (LH #73)
287
+ * Builder スコープのLH #61, LH #74, LH #70に関しての様々な問題を修正
288
+ * 名前空間を付け加える時、名前空間が LH#78より除去されてしまう問題を修正
289
+ * 連結しないノードが発生し、再育成してしまう問題を修正(GH#22)
290
+ * XSLT が解析中にエラーを発見し損なう問題を修正(GH#32)
291
+ * CSS selectors内での条件属性のバグ問題を修正(GH#36)
292
+ * Node#before/after/inner_html=で値なしのHTML属性が受け入れられなかった問題を
293
+ 修正 (GH#35)
294
+
1
295
  === 1.2.3 / 2009年3月22日
2
296
 
3
297
  * バグの修正
@@ -15,13 +309,13 @@
15
309
 
16
310
  * Nokogiri は soap4r と一緒に使う事が可能。(XSD::XMLParser::Nokogiri 参照)
17
311
  * Nokogiri::XML::Node#inner_html= はノードの中のHTMLをセット出来る
18
- * Nokogiriのビルダーのインタフェースの改良
312
+ * NokogiriのBuilderのインタフェースの改良
19
313
  * Nokogiri::XML::Node#swap は、現在のノードに新しいhtmlを交換する事が出来る
20
314
 
21
315
 
22
316
  * バグの修正
23
317
 
24
- * ビルダーAPIのタグのネスティングを修正 (LH #41)
318
+ * BuilderAPIのタグのネスティングを修正 (LH #41)
25
319
  * Nokogiri::HTML.fragment はテキストだけのノードを適切に扱う事が出来る(LH #43)
26
320
  * Nokogiri::XML::Node#before はテキストノードのはじめに挿入する事が出来る (LH #44)
27
321
  * Nokogiri::XML::Node#after はテキストノードの文末に挿入する事が出来る
@@ -146,7 +440,7 @@
146
440
 
147
441
  * 弱参照からドキュメント参照へのメモリー管理の変換
148
442
  * メモリリークに接続
149
- * ビルダーブロックが取り囲んでいるコンテキストから
443
+ * Builderブロックが取り囲んでいるコンテキストから
150
444
  メソッドの呼び出しをする事が出来る
151
445
 
152
446
  === 1.0.3
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,292 @@
1
+ === 1.4.5 / 2011-06-15
2
+
3
+ * New Features
4
+
5
+ * Nokogiri::HTML::Document#title accessor gets and sets the document title.
6
+ * extracted sets of Node::SaveOptions into Node::SaveOptions::DEFAULT_{X,H,XH}TML (refactor)
7
+ * Raise an exception if a string is passed to Nokogiri::XML::Schema#validate. #406
8
+
9
+ * Bugfixes
10
+
11
+ * Node#serialize-and-friends now accepts a SaveOption object as the, erm, save object.
12
+ * Nokogiri::CSS::Parser has-a Nokogiri::CSS::Tokenizer
13
+ * [JRUBY+FFI only] Weak references are now threadsafe. #355
14
+ * Make direct start_element() callback (currently used for
15
+ HTML::SAX::Parser) pass attributes in assoc array, just as
16
+ emulated start_element() callback does. rel. #356
17
+ * HTML::SAX::Parser should call back a block given to parse*() if any, just as XML::SAX::Parser does.
18
+ * Add further encoding detection to HTML parser that libxml2 does not do.
19
+ * Document#remove_namespaces! now handles attributes with namespaces. #396
20
+ * XSLT::Stylesheet#transform no longer segfaults when handed a non-XML::Document. #452
21
+ * XML::Reader no longer segfaults when under GC pressure. #439
22
+
23
+ === 1.4.4 / 2010-11-15
24
+
25
+ * New Features
26
+
27
+ * XML::Node#children= sets the node's inner html (much like #inner_html=), but returns the reparent node(s).
28
+ * XSLT supports function extensions. #336
29
+ * XPath bind parameter substitution. #329
30
+ * XML::Reader node type constants. #369
31
+ * SAX Parser context provides line and column information
32
+
33
+ * Bugfixes
34
+
35
+ * XML::DTD#attributes returns an empty hash instead of nil when there are no attributes.
36
+ * XML::DTD#{keys,each} now work as expected. #324
37
+ * {XML,HTML}::DocumentFragment.{new,parse} no longer strip leading and trailing whitespace. #319
38
+ * XML::Node#{add_child,add_previous_sibling,add_next_sibling,replace} return a NodeSet when passed a string.
39
+ * Unclosed tags parsed more robustly in fragments. #315
40
+ * XML::Node#{replace,add_previous_sibling,add_next_sibling} edge cases fixed related to libxml's text node merging. #308
41
+ * Fixed a segfault when GC occurs during xpath handler argument marshalling. #345
42
+ * Added hack to Slop decorator to work with previously defined methods. #330
43
+ * Fix a memory leak when duplicating child nodes. #353
44
+ * Fixed off-by-one bug with nth-last-{child,of-type} CSS selectors when NOT using an+b notation. #354
45
+ * Fixed passing of non-namespace attributes to SAX::Document#start_element. #356
46
+ * Workaround for libxml2 in-context parsing bug. #362
47
+ * Fixed NodeSet#wrap on nodes within a fragment. #331
48
+
49
+ === 1.4.3 / 2010/07/28
50
+
51
+ * New Features
52
+
53
+ * XML::Reader#empty_element? returns true for empty elements. #262
54
+ * Node#remove_namespaces! now removes namespace *declarations* as well. #294
55
+ * NodeSet#at_xpath, NodeSet#at_css and NodeSet#> do what the corresponding
56
+ methods of Node do.
57
+
58
+ * Bugfixes
59
+
60
+ * XML::NodeSet#{include?,delete,push} accept an XML::Namespace
61
+ * XML::Document#parse added for parsing in the context of a document
62
+ * XML::DocumentFragment#inner_html= works with contextual parsing! #298, #281
63
+ * lib/nokogiri/css/parser.y Combined CSS functions + pseudo selectors fixed
64
+ * Reparenting text nodes is safe, even when the operation frees adjacent merged nodes. #283
65
+ * Fixed libxml2 versionitis issue with xmlFirstElementChild et al. #303
66
+ * XML::Attr#add_namespace now works as expected. #252
67
+ * HTML::DocumentFragment uses the string's encoding. #305
68
+ * Fix the CSS3 selector translation rule for the general sibling combinator
69
+ (a.k.a. preceding selector) that incorrectly converted "E + F G" to
70
+ "//F//G[preceding-sibling::E]".
71
+
72
+ === 1.4.2 / 2010/05/22
73
+
74
+ * New Features
75
+
76
+ * XML::Node#parse will parse XML or HTML fragments with respect to the
77
+ context node.
78
+ * XML::Node#namespaces returns all namespaces defined in the node and all
79
+ ancestor nodes
80
+ (previously did not return ancestors' namespace definitions).
81
+ * Added Enumerable to XML::Node
82
+ * Nokogiri::XML::Schema#validate now uses xmlSchemaValidateFile if a
83
+ filename is passed, which is faster and more memory-efficient. GH #219
84
+ * XML::Document#create_entity will create new EntityDecl objects. GH #174
85
+ * JRuby FFI implementation no longer uses ObjectSpace._id2ref,
86
+ instead using Charles Nutter's rocking Weakling gem.
87
+ * Nokogiri::XML::Node#first_element_child fetch the first child node that is
88
+ an ELEMENT node.
89
+ * Nokogiri::XML::Node#last_element_child fetch the last child node that is
90
+ an ELEMENT node.
91
+ * Nokogiri::XML::Node#elements fetch all children nodes that are ELEMENT
92
+ nodes.
93
+ * Nokogiri::XML::Node#add_child, #add_previous_sibling, #before,
94
+ #add_next_sibling, #after, #inner_html, #swap and #replace all now
95
+ accept a Node, DocumentFragment, NodeSet, or a string containing
96
+ markup.
97
+ * Node#fragment? indicates whether a node is a DocumentFragment.
98
+
99
+ * Bugfixes
100
+
101
+ * XML::NodeSet is now always decorated (if the document has decorators).
102
+ GH #198
103
+ * XML::NodeSet#slice gracefully handles offset+length larger than the set
104
+ length. GH #200
105
+ * XML::Node#content= safely unlinks previous content. GH #203
106
+ * XML::Node#namespace= takes nil as a parameter
107
+ * XML::Node#xpath returns things other than NodeSet objects. GH #208
108
+ * XSLT::StyleSheet#transform accepts hashes for parameters. GH #223
109
+ * Psuedo selectors inside not() work. GH #205
110
+ * XML::Builder doesn't break when nodes are unlinked.
111
+ Thanks to vihai! GH #228
112
+ * Encoding can be forced on the SAX parser. Thanks Eugene Pimenov! GH #204
113
+ * XML::DocumentFragment uses XML::Node#parse to determine children.
114
+ * Fixed a memory leak in xml reader. Thanks sdor! GH #244
115
+ * Node#replace returns the new child node as claimed in the
116
+ RDoc. Previously returned +self+.
117
+
118
+ * Notes
119
+
120
+ * The Windows gems now bundle DLLs for libxml 2.7.6 and libxslt
121
+ 1.1.26. Prior to this release, libxml 2.7.3 and libxslt 1.1.24
122
+ were bundled.
123
+
124
+ === 1.4.1 / 2009/12/10
125
+
126
+ * New Features
127
+
128
+ * Added Nokogiri::LIBXML_ICONV_ENABLED
129
+ * Alias Node#[] to Node#attr
130
+ * XML::Node#next_element added
131
+ * XML::Node#> added for searching a nodes immediate children
132
+ * XML::NodeSet#reverse added
133
+ * Added fragment support to Node#add_child, Node#add_next_sibling,
134
+ Node#add_previous_sibling, and Node#replace.
135
+ * XML::Node#previous_element implemented
136
+ * Rubinius support
137
+ * Ths CSS selector engine now supports :has()
138
+ * XML::NodeSet#filter() was added
139
+ * XML::Node.next= and .previous= are aliases for add_next_sibling and add_previous_sibling. GH #183
140
+
141
+ * Bugfixes
142
+
143
+ * XML fragments with namespaces do not raise an exception (regression in 1.4.0)
144
+ * Node#matches? works in nodes contained by a DocumentFragment. GH #158
145
+ * Document should not define add_namespace() method. GH #169
146
+ * XPath queries returning namespace declarations do not segfault.
147
+ * Node#replace works with nodes from different documents. GH #162
148
+ * Adding XML::Document#collect_namespaces
149
+ * Fixed bugs in the SOAP4R adapter
150
+ * Fixed bug in XML::Node#next_element for certain edge cases
151
+ * Fixed load path issue with JRuby under Windows. GH #160.
152
+ * XSLT#apply_to will honor the "output method". Thanks richardlehane!
153
+ * Fragments containing leading text nodes with newlines now parse properly. GH #178.
154
+
155
+ === 1.4.0 / 2009/10/30
156
+
157
+ * Happy Birthday!
158
+
159
+ * New Features
160
+
161
+ * Node#at_xpath returns the first element of the NodeSet matching the XPath
162
+ expression.
163
+ * Node#at_css returns the first element of the NodeSet matching the CSS
164
+ selector.
165
+ * NodeSet#| for unions GH #119 (Thanks Serabe!)
166
+ * NodeSet#inspect makes prettier output
167
+ * Node#inspect implemented for more rubyish document inspecting
168
+ * Added XML::DTD#external_id
169
+ * Added XML::DTD#system_id
170
+ * Added XML::ElementContent for DTD Element content validity
171
+ * Better namespace declaration support in Nokogiri::XML::Builder
172
+ * Added XML::Node#external_subset
173
+ * Added XML::Node#create_external_subset
174
+ * Added XML::Node#create_internal_subset
175
+ * XML Builder can append raw strings (GH #141, patch from dudleyf)
176
+ * XML::SAX::ParserContext added
177
+ * XML::Document#remove_namespaces! for the namespace-impaired
178
+
179
+ * Bugfixes
180
+
181
+ * returns nil when HTML documents do not declare a meta encoding tag. GH #115
182
+ * Uses RbConfig::CONFIG['host_os'] to adjust ENV['PATH'] GH #113
183
+ * NodeSet#search is more efficient GH #119 (Thanks Serabe!)
184
+ * NodeSet#xpath handles custom xpath functions
185
+ * Fixing a SEGV when XML::Reader gets attributes for current node
186
+ * Node#inner_html takes the same arguments as Node#to_html GH #117
187
+ * DocumentFragment#css delegates to it's child nodes GH #123
188
+ * NodeSet#[] works with slices larger than NodeSet#length GH #131
189
+ * Reparented nodes maintain their namespace. GH #134
190
+ * Fixed SEGV when adding an XML::Document to NodeSet
191
+ * XML::SyntaxError can be duplicated. GH #148
192
+
193
+ * Deprecations
194
+
195
+ * Hpricot compatibility layer removed
196
+
197
+ === 1.3.3 / 2009/07/26
198
+
199
+ * New Features
200
+
201
+ * NodeSet#children returns all children of all nodes
202
+
203
+ * Bugfixes
204
+
205
+ * Override libxml-ruby's global error handler
206
+ * ParseOption#strict fixed
207
+ * Fixed a segfault when sending an empty string to Node#inner_html= GH #88
208
+ * String encoding is now set to UTF-8 in Ruby 1.9
209
+ * Fixed a segfault when moving root nodes between documents. GH #91
210
+ * Fixed an O(n) penalty on node creation. GH #101
211
+ * Allowing XML documents to be output as HTML documents
212
+
213
+ * Deprecations
214
+
215
+ * Hpricot compatibility layer will be removed in 1.4.0
216
+
217
+ === 1.3.2 / 2009-06-22
218
+
219
+ * New Features
220
+
221
+ * Nokogiri::XML::DTD#validate will validate your document
222
+
223
+ * Bugfixes
224
+
225
+ * Nokogiri::XML::NodeSet#search will search top level nodes. GH #73
226
+ * Removed namespace related methods from Nokogiri::XML::Document
227
+ * Fixed a segfault when a namespace was added twice
228
+ * Made nokogiri work with Snow Leopard GH #79
229
+ * Mailing list has moved to: http://groups.google.com/group/nokogiri-talk
230
+ * HTML fragments now correctly handle comments and CDATA blocks. GH #78
231
+ * Nokogiri::XML::Document#clone is now an alias of dup
232
+
233
+ * Deprecations
234
+
235
+ * Nokogiri::XML::SAX::Document#start_element_ns is deprecated, please switch
236
+ to Nokogiri::XML::SAX::Document#start_element_namespace
237
+ * Nokogiri::XML::SAX::Document#end_element_ns is deprecated, please switch
238
+ to Nokogiri::XML::SAX::Document#end_element_namespace
239
+
240
+ === 1.3.1 / 2009-06-07
241
+
242
+ * Bugfixes
243
+
244
+ * extconf.rb checks for optional RelaxNG and Schema functions
245
+ * Namespace nodes are added to the Document node cache
246
+
247
+ === 1.3.0 / 2009-05-30
248
+
249
+ * New Features
250
+
251
+ * Builder changes scope based on block arity
252
+ * Builder supports methods ending in underscore similar to tagz
253
+ * Nokogiri::XML::Node#<=> compares nodes based on Document position
254
+ * Nokogiri::XML::Node#matches? returns true if Node can be found with
255
+ given selector.
256
+ * Nokogiri::XML::Node#ancestors now returns an Nokogiri::XML::NodeSet
257
+ * Nokogiri::XML::Node#ancestors will match parents against optional selector
258
+ * Nokogiri::HTML::Document#meta_encoding for getting the meta encoding
259
+ * Nokogiri::HTML::Document#meta_encoding= for setting the meta encoding
260
+ * Nokogiri::XML::Document#encoding= to set the document encoding
261
+ * Nokogiri::XML::Schema for validating documents against XSD schema
262
+ * Nokogiri::XML::RelaxNG for validating documents against RelaxNG schema
263
+ * Nokogiri::HTML::ElementDescription for fetching HTML element descriptions
264
+ * Nokogiri::XML::Node#description to fetch the node description
265
+ * Nokogiri::XML::Node#accept implements Visitor pattern
266
+ * bin/nokogiri for easily examining documents (Thanks Yutaka HARA!)
267
+ * Nokogiri::XML::NodeSet now supports more Array and Enumerable operators:
268
+ index, delete, slice, - (difference), + (concatenation), & (intersection),
269
+ push, pop, shift, ==
270
+ * Nokogiri.XML, Nokogiri.HTML take blocks that receive
271
+ Nokogiri::XML::ParseOptions objects
272
+ * Nokogiri::XML::Node#namespace returns a Nokogiri::XML::Namespace
273
+ * Nokogiri::XML::Node#namespace= for setting a node's namespace
274
+ * Nokogiri::XML::DocumentFragment and Nokogiri::HTML::DocumentFragment
275
+ have a sensible API and a more robust implementation.
276
+ * JRuby 1.3.0 support via FFI.
277
+
278
+ * Bugfixes
279
+
280
+ * Fixed a problem with nil passed to CDATA constructor
281
+ * Fragment method deals with regular expression characters
282
+ (Thanks Joel!) LH #73
283
+ * Fixing builder scope issues LH #61, LH #74, LH #70
284
+ * Fixed a problem when adding a child could remove the child namespace LH#78
285
+ * Fixed bug with unlinking a node then reparenting it. (GH#22)
286
+ * Fixed failure to catch errors during XSLT parsing (GH#32)
287
+ * Fixed a bug with attribute conditions in CSS selectors (GH#36)
288
+ * Fixed intolerance of HTML attributes without values in Node#before/after/inner_html=. (GH#35)
289
+
1
290
  === 1.2.3 / 2009-03-22
2
291
 
3
292
  * Bugfixes