nokogiri 1.8.5 → 1.13.6

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 (356) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -21
  3. data/LICENSE-DEPENDENCIES.md +1159 -868
  4. data/LICENSE.md +5 -28
  5. data/README.md +196 -90
  6. data/bin/nokogiri +63 -50
  7. data/dependencies.yml +13 -59
  8. data/ext/nokogiri/depend +38 -358
  9. data/ext/nokogiri/extconf.rb +750 -420
  10. data/ext/nokogiri/gumbo.c +584 -0
  11. data/ext/nokogiri/html4_document.c +166 -0
  12. data/ext/nokogiri/html4_element_description.c +294 -0
  13. data/ext/nokogiri/html4_entity_lookup.c +37 -0
  14. data/ext/nokogiri/html4_sax_parser_context.c +119 -0
  15. data/ext/nokogiri/html4_sax_push_parser.c +95 -0
  16. data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
  17. data/ext/nokogiri/nokogiri.c +228 -91
  18. data/ext/nokogiri/nokogiri.h +191 -89
  19. data/ext/nokogiri/test_global_handlers.c +40 -0
  20. data/ext/nokogiri/xml_attr.c +41 -36
  21. data/ext/nokogiri/xml_attribute_decl.c +18 -18
  22. data/ext/nokogiri/xml_cdata.c +13 -18
  23. data/ext/nokogiri/xml_comment.c +19 -26
  24. data/ext/nokogiri/xml_document.c +291 -216
  25. data/ext/nokogiri/xml_document_fragment.c +12 -16
  26. data/ext/nokogiri/xml_dtd.c +56 -50
  27. data/ext/nokogiri/xml_element_content.c +31 -26
  28. data/ext/nokogiri/xml_element_decl.c +22 -22
  29. data/ext/nokogiri/xml_encoding_handler.c +43 -18
  30. data/ext/nokogiri/xml_entity_decl.c +32 -30
  31. data/ext/nokogiri/xml_entity_reference.c +16 -18
  32. data/ext/nokogiri/xml_namespace.c +61 -52
  33. data/ext/nokogiri/xml_node.c +1044 -616
  34. data/ext/nokogiri/xml_node_set.c +174 -162
  35. data/ext/nokogiri/xml_processing_instruction.c +17 -19
  36. data/ext/nokogiri/xml_reader.c +226 -175
  37. data/ext/nokogiri/xml_relax_ng.c +52 -28
  38. data/ext/nokogiri/xml_sax_parser.c +112 -112
  39. data/ext/nokogiri/xml_sax_parser_context.c +112 -86
  40. data/ext/nokogiri/xml_sax_push_parser.c +36 -27
  41. data/ext/nokogiri/xml_schema.c +112 -33
  42. data/ext/nokogiri/xml_syntax_error.c +42 -21
  43. data/ext/nokogiri/xml_text.c +13 -17
  44. data/ext/nokogiri/xml_xpath_context.c +223 -115
  45. data/ext/nokogiri/xslt_stylesheet.c +265 -173
  46. data/gumbo-parser/CHANGES.md +63 -0
  47. data/gumbo-parser/Makefile +101 -0
  48. data/gumbo-parser/THANKS +27 -0
  49. data/gumbo-parser/src/Makefile +34 -0
  50. data/gumbo-parser/src/README.md +41 -0
  51. data/gumbo-parser/src/ascii.c +75 -0
  52. data/gumbo-parser/src/ascii.h +115 -0
  53. data/gumbo-parser/src/attribute.c +42 -0
  54. data/gumbo-parser/src/attribute.h +17 -0
  55. data/gumbo-parser/src/char_ref.c +22225 -0
  56. data/gumbo-parser/src/char_ref.h +29 -0
  57. data/gumbo-parser/src/char_ref.rl +2154 -0
  58. data/gumbo-parser/src/error.c +626 -0
  59. data/gumbo-parser/src/error.h +148 -0
  60. data/gumbo-parser/src/foreign_attrs.c +104 -0
  61. data/gumbo-parser/src/foreign_attrs.gperf +27 -0
  62. data/gumbo-parser/src/gumbo.h +943 -0
  63. data/gumbo-parser/src/insertion_mode.h +33 -0
  64. data/gumbo-parser/src/macros.h +91 -0
  65. data/gumbo-parser/src/parser.c +4875 -0
  66. data/gumbo-parser/src/parser.h +41 -0
  67. data/gumbo-parser/src/replacement.h +33 -0
  68. data/gumbo-parser/src/string_buffer.c +103 -0
  69. data/gumbo-parser/src/string_buffer.h +68 -0
  70. data/gumbo-parser/src/string_piece.c +48 -0
  71. data/gumbo-parser/src/svg_attrs.c +174 -0
  72. data/gumbo-parser/src/svg_attrs.gperf +77 -0
  73. data/gumbo-parser/src/svg_tags.c +137 -0
  74. data/gumbo-parser/src/svg_tags.gperf +55 -0
  75. data/gumbo-parser/src/tag.c +222 -0
  76. data/gumbo-parser/src/tag_lookup.c +382 -0
  77. data/gumbo-parser/src/tag_lookup.gperf +169 -0
  78. data/gumbo-parser/src/tag_lookup.h +13 -0
  79. data/gumbo-parser/src/token_buffer.c +79 -0
  80. data/gumbo-parser/src/token_buffer.h +71 -0
  81. data/gumbo-parser/src/token_type.h +17 -0
  82. data/gumbo-parser/src/tokenizer.c +3463 -0
  83. data/gumbo-parser/src/tokenizer.h +112 -0
  84. data/gumbo-parser/src/tokenizer_states.h +339 -0
  85. data/gumbo-parser/src/utf8.c +245 -0
  86. data/gumbo-parser/src/utf8.h +164 -0
  87. data/gumbo-parser/src/util.c +68 -0
  88. data/gumbo-parser/src/util.h +30 -0
  89. data/gumbo-parser/src/vector.c +111 -0
  90. data/gumbo-parser/src/vector.h +45 -0
  91. data/lib/nokogiri/class_resolver.rb +67 -0
  92. data/lib/nokogiri/css/node.rb +10 -8
  93. data/lib/nokogiri/css/parser.rb +397 -377
  94. data/lib/nokogiri/css/parser.y +250 -245
  95. data/lib/nokogiri/css/parser_extras.rb +54 -49
  96. data/lib/nokogiri/css/syntax_error.rb +3 -1
  97. data/lib/nokogiri/css/tokenizer.rb +107 -104
  98. data/lib/nokogiri/css/tokenizer.rex +3 -2
  99. data/lib/nokogiri/css/xpath_visitor.rb +218 -91
  100. data/lib/nokogiri/css.rb +50 -17
  101. data/lib/nokogiri/decorators/slop.rb +9 -7
  102. data/lib/nokogiri/extension.rb +31 -0
  103. data/lib/nokogiri/gumbo.rb +15 -0
  104. data/lib/nokogiri/html.rb +38 -27
  105. data/lib/nokogiri/{html → html4}/builder.rb +4 -2
  106. data/lib/nokogiri/{html → html4}/document.rb +103 -105
  107. data/lib/nokogiri/html4/document_fragment.rb +54 -0
  108. data/lib/nokogiri/{html → html4}/element_description.rb +3 -1
  109. data/lib/nokogiri/html4/element_description_defaults.rb +578 -0
  110. data/lib/nokogiri/{html → html4}/entity_lookup.rb +4 -2
  111. data/lib/nokogiri/{html → html4}/sax/parser.rb +17 -16
  112. data/lib/nokogiri/html4/sax/parser_context.rb +20 -0
  113. data/lib/nokogiri/{html → html4}/sax/push_parser.rb +12 -11
  114. data/lib/nokogiri/html4.rb +46 -0
  115. data/lib/nokogiri/html5/document.rb +91 -0
  116. data/lib/nokogiri/html5/document_fragment.rb +83 -0
  117. data/lib/nokogiri/html5/node.rb +100 -0
  118. data/lib/nokogiri/html5.rb +478 -0
  119. data/lib/nokogiri/jruby/dependencies.rb +21 -0
  120. data/lib/nokogiri/syntax_error.rb +2 -0
  121. data/lib/nokogiri/version/constant.rb +6 -0
  122. data/lib/nokogiri/version/info.rb +222 -0
  123. data/lib/nokogiri/version.rb +3 -108
  124. data/lib/nokogiri/xml/attr.rb +6 -3
  125. data/lib/nokogiri/xml/attribute_decl.rb +3 -1
  126. data/lib/nokogiri/xml/builder.rb +97 -53
  127. data/lib/nokogiri/xml/cdata.rb +3 -1
  128. data/lib/nokogiri/xml/character_data.rb +2 -0
  129. data/lib/nokogiri/xml/document.rb +224 -86
  130. data/lib/nokogiri/xml/document_fragment.rb +57 -44
  131. data/lib/nokogiri/xml/dtd.rb +4 -2
  132. data/lib/nokogiri/xml/element_content.rb +2 -0
  133. data/lib/nokogiri/xml/element_decl.rb +3 -1
  134. data/lib/nokogiri/xml/entity_decl.rb +4 -2
  135. data/lib/nokogiri/xml/entity_reference.rb +2 -0
  136. data/lib/nokogiri/xml/namespace.rb +3 -0
  137. data/lib/nokogiri/xml/node/save_options.rb +10 -5
  138. data/lib/nokogiri/xml/node.rb +895 -377
  139. data/lib/nokogiri/xml/node_set.rb +92 -65
  140. data/lib/nokogiri/xml/notation.rb +13 -0
  141. data/lib/nokogiri/xml/parse_options.rb +22 -8
  142. data/lib/nokogiri/xml/pp/character_data.rb +9 -6
  143. data/lib/nokogiri/xml/pp/node.rb +25 -26
  144. data/lib/nokogiri/xml/pp.rb +4 -2
  145. data/lib/nokogiri/xml/processing_instruction.rb +3 -1
  146. data/lib/nokogiri/xml/reader.rb +23 -28
  147. data/lib/nokogiri/xml/relax_ng.rb +8 -2
  148. data/lib/nokogiri/xml/sax/document.rb +45 -49
  149. data/lib/nokogiri/xml/sax/parser.rb +38 -34
  150. data/lib/nokogiri/xml/sax/parser_context.rb +8 -3
  151. data/lib/nokogiri/xml/sax/push_parser.rb +6 -5
  152. data/lib/nokogiri/xml/sax.rb +6 -4
  153. data/lib/nokogiri/xml/schema.rb +19 -9
  154. data/lib/nokogiri/xml/searchable.rb +112 -72
  155. data/lib/nokogiri/xml/syntax_error.rb +6 -4
  156. data/lib/nokogiri/xml/text.rb +2 -0
  157. data/lib/nokogiri/xml/xpath/syntax_error.rb +4 -2
  158. data/lib/nokogiri/xml/xpath.rb +15 -4
  159. data/lib/nokogiri/xml/xpath_context.rb +3 -3
  160. data/lib/nokogiri/xml.rb +38 -37
  161. data/lib/nokogiri/xslt/stylesheet.rb +3 -1
  162. data/lib/nokogiri/xslt.rb +29 -20
  163. data/lib/nokogiri.rb +49 -65
  164. data/lib/xsd/xmlparser/nokogiri.rb +26 -24
  165. data/patches/libxml2/0001-Remove-script-macro-support.patch +40 -0
  166. data/patches/libxml2/0002-Update-entities-to-remove-handling-of-ssi.patch +44 -0
  167. data/patches/libxml2/0003-libxml2.la-is-in-top_builddir.patch +25 -0
  168. data/patches/libxml2/0004-use-glibc-strlen.patch +53 -0
  169. data/patches/libxml2/0005-avoid-isnan-isinf.patch +81 -0
  170. data/patches/libxml2/0006-update-automake-files-for-arm64.patch +3040 -0
  171. data/patches/libxml2/0008-htmlParseComment-handle-abruptly-closed-comments.patch +61 -0
  172. data/patches/libxml2/0009-allow-wildcard-namespaces.patch +77 -0
  173. data/patches/libxslt/0001-update-automake-files-for-arm64.patch +3037 -0
  174. data/ports/archives/libxml2-2.9.14.tar.xz +0 -0
  175. data/ports/archives/libxslt-1.1.35.tar.xz +0 -0
  176. metadata +220 -266
  177. data/.autotest +0 -22
  178. data/.cross_rubies +0 -8
  179. data/.editorconfig +0 -17
  180. data/.gemtest +0 -0
  181. data/.travis.yml +0 -63
  182. data/CHANGELOG.md +0 -1368
  183. data/CONTRIBUTING.md +0 -42
  184. data/C_CODING_STYLE.rdoc +0 -33
  185. data/Gemfile-libxml-ruby +0 -3
  186. data/Manifest.txt +0 -370
  187. data/ROADMAP.md +0 -111
  188. data/Rakefile +0 -348
  189. data/SECURITY.md +0 -19
  190. data/STANDARD_RESPONSES.md +0 -47
  191. data/Y_U_NO_GEMSPEC.md +0 -155
  192. data/appveyor.yml +0 -29
  193. data/build_all +0 -44
  194. data/ext/nokogiri/html_document.c +0 -170
  195. data/ext/nokogiri/html_document.h +0 -10
  196. data/ext/nokogiri/html_element_description.c +0 -279
  197. data/ext/nokogiri/html_element_description.h +0 -10
  198. data/ext/nokogiri/html_entity_lookup.c +0 -32
  199. data/ext/nokogiri/html_entity_lookup.h +0 -8
  200. data/ext/nokogiri/html_sax_parser_context.c +0 -116
  201. data/ext/nokogiri/html_sax_parser_context.h +0 -11
  202. data/ext/nokogiri/html_sax_push_parser.c +0 -87
  203. data/ext/nokogiri/html_sax_push_parser.h +0 -9
  204. data/ext/nokogiri/xml_attr.h +0 -9
  205. data/ext/nokogiri/xml_attribute_decl.h +0 -9
  206. data/ext/nokogiri/xml_cdata.h +0 -9
  207. data/ext/nokogiri/xml_comment.h +0 -9
  208. data/ext/nokogiri/xml_document.h +0 -23
  209. data/ext/nokogiri/xml_document_fragment.h +0 -10
  210. data/ext/nokogiri/xml_dtd.h +0 -10
  211. data/ext/nokogiri/xml_element_content.h +0 -10
  212. data/ext/nokogiri/xml_element_decl.h +0 -9
  213. data/ext/nokogiri/xml_encoding_handler.h +0 -8
  214. data/ext/nokogiri/xml_entity_decl.h +0 -10
  215. data/ext/nokogiri/xml_entity_reference.h +0 -9
  216. data/ext/nokogiri/xml_io.c +0 -61
  217. data/ext/nokogiri/xml_io.h +0 -11
  218. data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
  219. data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
  220. data/ext/nokogiri/xml_namespace.h +0 -15
  221. data/ext/nokogiri/xml_node.h +0 -13
  222. data/ext/nokogiri/xml_node_set.h +0 -12
  223. data/ext/nokogiri/xml_processing_instruction.h +0 -9
  224. data/ext/nokogiri/xml_reader.h +0 -10
  225. data/ext/nokogiri/xml_relax_ng.h +0 -9
  226. data/ext/nokogiri/xml_sax_parser.h +0 -39
  227. data/ext/nokogiri/xml_sax_parser_context.h +0 -10
  228. data/ext/nokogiri/xml_sax_push_parser.h +0 -9
  229. data/ext/nokogiri/xml_schema.h +0 -9
  230. data/ext/nokogiri/xml_syntax_error.h +0 -13
  231. data/ext/nokogiri/xml_text.h +0 -9
  232. data/ext/nokogiri/xml_xpath_context.h +0 -10
  233. data/ext/nokogiri/xslt_stylesheet.h +0 -14
  234. data/lib/nokogiri/html/document_fragment.rb +0 -49
  235. data/lib/nokogiri/html/element_description_defaults.rb +0 -671
  236. data/lib/nokogiri/html/sax/parser_context.rb +0 -16
  237. data/patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch +0 -78
  238. data/patches/libxml2/0002-Fix-nullptr-deref-with-XPath-logic-ops.patch +0 -54
  239. data/patches/libxml2/0003-Fix-infinite-loop-in-LZMA-decompression.patch +0 -50
  240. data/patches/sort-patches-by-date +0 -25
  241. data/ports/archives/libxml2-2.9.8.tar.gz +0 -0
  242. data/ports/archives/libxslt-1.1.32.tar.gz +0 -0
  243. data/suppressions/README.txt +0 -1
  244. data/suppressions/nokogiri_ruby-2.supp +0 -10
  245. data/tasks/test.rb +0 -100
  246. data/test/css/test_nthiness.rb +0 -226
  247. data/test/css/test_parser.rb +0 -386
  248. data/test/css/test_tokenizer.rb +0 -215
  249. data/test/css/test_xpath_visitor.rb +0 -96
  250. data/test/decorators/test_slop.rb +0 -23
  251. data/test/files/2ch.html +0 -108
  252. data/test/files/GH_1042.html +0 -18
  253. data/test/files/address_book.rlx +0 -12
  254. data/test/files/address_book.xml +0 -10
  255. data/test/files/atom.xml +0 -344
  256. data/test/files/bar/bar.xsd +0 -4
  257. data/test/files/bogus.xml +0 -0
  258. data/test/files/dont_hurt_em_why.xml +0 -422
  259. data/test/files/encoding.html +0 -82
  260. data/test/files/encoding.xhtml +0 -84
  261. data/test/files/exslt.xml +0 -8
  262. data/test/files/exslt.xslt +0 -35
  263. data/test/files/foo/foo.xsd +0 -4
  264. data/test/files/metacharset.html +0 -10
  265. data/test/files/namespace_pressure_test.xml +0 -1684
  266. data/test/files/noencoding.html +0 -47
  267. data/test/files/po.xml +0 -32
  268. data/test/files/po.xsd +0 -66
  269. data/test/files/saml/saml20assertion_schema.xsd +0 -283
  270. data/test/files/saml/saml20protocol_schema.xsd +0 -302
  271. data/test/files/saml/xenc_schema.xsd +0 -146
  272. data/test/files/saml/xmldsig_schema.xsd +0 -318
  273. data/test/files/shift_jis.html +0 -10
  274. data/test/files/shift_jis.xml +0 -5
  275. data/test/files/shift_jis_no_charset.html +0 -9
  276. data/test/files/slow-xpath.xml +0 -25509
  277. data/test/files/snuggles.xml +0 -3
  278. data/test/files/staff.dtd +0 -10
  279. data/test/files/staff.xml +0 -59
  280. data/test/files/staff.xslt +0 -32
  281. data/test/files/test_document_url/bar.xml +0 -2
  282. data/test/files/test_document_url/document.dtd +0 -4
  283. data/test/files/test_document_url/document.xml +0 -6
  284. data/test/files/tlm.html +0 -851
  285. data/test/files/to_be_xincluded.xml +0 -2
  286. data/test/files/valid_bar.xml +0 -2
  287. data/test/files/xinclude.xml +0 -4
  288. data/test/helper.rb +0 -271
  289. data/test/html/sax/test_parser.rb +0 -168
  290. data/test/html/sax/test_parser_context.rb +0 -46
  291. data/test/html/sax/test_parser_text.rb +0 -163
  292. data/test/html/sax/test_push_parser.rb +0 -87
  293. data/test/html/test_attributes.rb +0 -85
  294. data/test/html/test_builder.rb +0 -164
  295. data/test/html/test_document.rb +0 -712
  296. data/test/html/test_document_encoding.rb +0 -143
  297. data/test/html/test_document_fragment.rb +0 -310
  298. data/test/html/test_element_description.rb +0 -105
  299. data/test/html/test_named_characters.rb +0 -14
  300. data/test/html/test_node.rb +0 -212
  301. data/test/html/test_node_encoding.rb +0 -91
  302. data/test/namespaces/test_additional_namespaces_in_builder_doc.rb +0 -14
  303. data/test/namespaces/test_namespaces_aliased_default.rb +0 -24
  304. data/test/namespaces/test_namespaces_in_builder_doc.rb +0 -75
  305. data/test/namespaces/test_namespaces_in_cloned_doc.rb +0 -31
  306. data/test/namespaces/test_namespaces_in_created_doc.rb +0 -75
  307. data/test/namespaces/test_namespaces_in_parsed_doc.rb +0 -80
  308. data/test/namespaces/test_namespaces_preservation.rb +0 -31
  309. data/test/test_convert_xpath.rb +0 -135
  310. data/test/test_css_cache.rb +0 -47
  311. data/test/test_encoding_handler.rb +0 -48
  312. data/test/test_memory_leak.rb +0 -156
  313. data/test/test_nokogiri.rb +0 -138
  314. data/test/test_soap4r_sax.rb +0 -52
  315. data/test/test_xslt_transforms.rb +0 -314
  316. data/test/xml/node/test_save_options.rb +0 -28
  317. data/test/xml/node/test_subclass.rb +0 -44
  318. data/test/xml/sax/test_parser.rb +0 -402
  319. data/test/xml/sax/test_parser_context.rb +0 -115
  320. data/test/xml/sax/test_parser_text.rb +0 -202
  321. data/test/xml/sax/test_push_parser.rb +0 -265
  322. data/test/xml/test_attr.rb +0 -74
  323. data/test/xml/test_attribute_decl.rb +0 -86
  324. data/test/xml/test_builder.rb +0 -341
  325. data/test/xml/test_c14n.rb +0 -180
  326. data/test/xml/test_cdata.rb +0 -54
  327. data/test/xml/test_comment.rb +0 -40
  328. data/test/xml/test_document.rb +0 -982
  329. data/test/xml/test_document_encoding.rb +0 -31
  330. data/test/xml/test_document_fragment.rb +0 -298
  331. data/test/xml/test_dtd.rb +0 -187
  332. data/test/xml/test_dtd_encoding.rb +0 -31
  333. data/test/xml/test_element_content.rb +0 -56
  334. data/test/xml/test_element_decl.rb +0 -73
  335. data/test/xml/test_entity_decl.rb +0 -122
  336. data/test/xml/test_entity_reference.rb +0 -262
  337. data/test/xml/test_namespace.rb +0 -96
  338. data/test/xml/test_node.rb +0 -1325
  339. data/test/xml/test_node_attributes.rb +0 -115
  340. data/test/xml/test_node_encoding.rb +0 -75
  341. data/test/xml/test_node_inheritance.rb +0 -32
  342. data/test/xml/test_node_reparenting.rb +0 -592
  343. data/test/xml/test_node_set.rb +0 -809
  344. data/test/xml/test_parse_options.rb +0 -64
  345. data/test/xml/test_processing_instruction.rb +0 -30
  346. data/test/xml/test_reader.rb +0 -620
  347. data/test/xml/test_reader_encoding.rb +0 -134
  348. data/test/xml/test_relax_ng.rb +0 -60
  349. data/test/xml/test_schema.rb +0 -142
  350. data/test/xml/test_syntax_error.rb +0 -36
  351. data/test/xml/test_text.rb +0 -60
  352. data/test/xml/test_unparented_node.rb +0 -483
  353. data/test/xml/test_xinclude.rb +0 -83
  354. data/test/xml/test_xpath.rb +0 -470
  355. data/test/xslt/test_custom_functions.rb +0 -133
  356. data/test/xslt/test_exception_handling.rb +0 -37
@@ -1,4 +1,6 @@
1
- #include <xml_document_fragment.h>
1
+ #include <nokogiri.h>
2
+
3
+ VALUE cNokogiriXmlDocumentFragment;
2
4
 
3
5
  /*
4
6
  * call-seq:
@@ -6,7 +8,8 @@
6
8
  *
7
9
  * Create a new DocumentFragment element on the +document+
8
10
  */
9
- static VALUE new(int argc, VALUE *argv, VALUE klass)
11
+ static VALUE
12
+ new (int argc, VALUE *argv, VALUE klass)
10
13
  {
11
14
  xmlDocPtr xml_doc;
12
15
  xmlNodePtr node;
@@ -20,29 +23,22 @@ static VALUE new(int argc, VALUE *argv, VALUE klass)
20
23
 
21
24
  node = xmlNewDocFragment(xml_doc->doc);
22
25
 
23
- nokogiri_root_node(node);
26
+ noko_xml_document_pin_node(node);
24
27
 
25
- rb_node = Nokogiri_wrap_xml_node(klass, node);
28
+ rb_node = noko_xml_node_wrap(klass, node);
26
29
  rb_obj_call_init(rb_node, argc, argv);
27
30
 
28
- if(rb_block_given_p()) rb_yield(rb_node);
29
-
30
31
  return rb_node;
31
32
  }
32
33
 
33
- VALUE cNokogiriXmlDocumentFragment;
34
- void init_xml_document_fragment()
34
+ void
35
+ noko_init_xml_document_fragment()
35
36
  {
36
- VALUE nokogiri = rb_define_module("Nokogiri");
37
- VALUE xml = rb_define_module_under(nokogiri, "XML");
38
- VALUE node = rb_define_class_under(xml, "Node", rb_cObject);
39
-
37
+ assert(cNokogiriXmlNode);
40
38
  /*
41
39
  * DocumentFragment represents a DocumentFragment node in an xml document.
42
40
  */
43
- VALUE klass = rb_define_class_under(xml, "DocumentFragment", node);
44
-
45
- cNokogiriXmlDocumentFragment = klass;
41
+ cNokogiriXmlDocumentFragment = rb_define_class_under(mNokogiriXml, "DocumentFragment", cNokogiriXmlNode);
46
42
 
47
- rb_define_singleton_method(klass, "new", new, -1);
43
+ rb_define_singleton_method(cNokogiriXmlDocumentFragment, "new", new, -1);
48
44
  }
@@ -1,30 +1,35 @@
1
- #include <xml_dtd.h>
1
+ #include <nokogiri.h>
2
2
 
3
- static void notation_copier(void *payload, void *data, const xmlChar *name)
3
+ VALUE cNokogiriXmlDtd;
4
+
5
+ static void
6
+ notation_copier(void *c_notation_ptr, void *rb_hash_ptr, const xmlChar *name)
4
7
  {
5
- VALUE hash = (VALUE)data;
6
- VALUE klass = rb_const_get(mNokogiriXml, rb_intern("Notation"));
8
+ VALUE rb_hash = (VALUE)rb_hash_ptr;
9
+ xmlNotationPtr c_notation = (xmlNotationPtr)c_notation_ptr;
10
+ VALUE rb_notation;
11
+ VALUE cNokogiriXmlNotation;
12
+ VALUE rb_constructor_args[3];
7
13
 
8
- xmlNotationPtr c_notation = (xmlNotationPtr)payload;
9
- VALUE notation;
10
- VALUE argv[3];
11
- argv[0] = (c_notation->name ? NOKOGIRI_STR_NEW2(c_notation->name) : Qnil);
12
- argv[1] = (c_notation->PublicID ? NOKOGIRI_STR_NEW2(c_notation->PublicID) : Qnil);
13
- argv[2] = (c_notation->SystemID ? NOKOGIRI_STR_NEW2(c_notation->SystemID) : Qnil);
14
+ rb_constructor_args[0] = (c_notation->name ? NOKOGIRI_STR_NEW2(c_notation->name) : Qnil);
15
+ rb_constructor_args[1] = (c_notation->PublicID ? NOKOGIRI_STR_NEW2(c_notation->PublicID) : Qnil);
16
+ rb_constructor_args[2] = (c_notation->SystemID ? NOKOGIRI_STR_NEW2(c_notation->SystemID) : Qnil);
14
17
 
15
- notation = rb_class_new_instance(3, argv, klass);
18
+ cNokogiriXmlNotation = rb_const_get_at(mNokogiriXml, rb_intern("Notation"));
19
+ rb_notation = rb_class_new_instance(3, rb_constructor_args, cNokogiriXmlNotation);
16
20
 
17
- rb_hash_aset(hash, NOKOGIRI_STR_NEW2(name),notation);
21
+ rb_hash_aset(rb_hash, NOKOGIRI_STR_NEW2(name), rb_notation);
18
22
  }
19
23
 
20
- static void element_copier(void *_payload, void *data, const xmlChar *name)
24
+ static void
25
+ element_copier(void *c_node_ptr, void *rb_hash_ptr, const xmlChar *c_name)
21
26
  {
22
- VALUE hash = (VALUE)data;
23
- xmlNodePtr payload = (xmlNodePtr)_payload;
27
+ VALUE rb_hash = (VALUE)rb_hash_ptr;
28
+ xmlNodePtr c_node = (xmlNodePtr)c_node_ptr;
24
29
 
25
- VALUE element = Nokogiri_wrap_xml_node(Qnil, payload);
30
+ VALUE rb_node = noko_xml_node_wrap(Qnil, c_node);
26
31
 
27
- rb_hash_aset(hash, NOKOGIRI_STR_NEW2(name), element);
32
+ rb_hash_aset(rb_hash, NOKOGIRI_STR_NEW2(c_name), rb_node);
28
33
  }
29
34
 
30
35
  /*
@@ -33,14 +38,15 @@ static void element_copier(void *_payload, void *data, const xmlChar *name)
33
38
  *
34
39
  * Get a hash of the elements for this DTD.
35
40
  */
36
- static VALUE entities(VALUE self)
41
+ static VALUE
42
+ entities(VALUE self)
37
43
  {
38
44
  xmlDtdPtr dtd;
39
45
  VALUE hash;
40
46
 
41
47
  Data_Get_Struct(self, xmlDtd, dtd);
42
48
 
43
- if(!dtd->entities) return Qnil;
49
+ if (!dtd->entities) { return Qnil; }
44
50
 
45
51
  hash = rb_hash_new();
46
52
 
@@ -51,18 +57,19 @@ static VALUE entities(VALUE self)
51
57
 
52
58
  /*
53
59
  * call-seq:
54
- * notations
60
+ * notations() → Hash<name(String)⇒Notation>
55
61
  *
56
- * Get a hash of the notations for this DTD.
62
+ * [Returns] All the notations for this DTD in a Hash of Notation +name+ to Notation.
57
63
  */
58
- static VALUE notations(VALUE self)
64
+ static VALUE
65
+ notations(VALUE self)
59
66
  {
60
67
  xmlDtdPtr dtd;
61
68
  VALUE hash;
62
69
 
63
70
  Data_Get_Struct(self, xmlDtd, dtd);
64
71
 
65
- if(!dtd->notations) return Qnil;
72
+ if (!dtd->notations) { return Qnil; }
66
73
 
67
74
  hash = rb_hash_new();
68
75
 
@@ -77,7 +84,8 @@ static VALUE notations(VALUE self)
77
84
  *
78
85
  * Get a hash of the attributes for this DTD.
79
86
  */
80
- static VALUE attributes(VALUE self)
87
+ static VALUE
88
+ attributes(VALUE self)
81
89
  {
82
90
  xmlDtdPtr dtd;
83
91
  VALUE hash;
@@ -86,7 +94,7 @@ static VALUE attributes(VALUE self)
86
94
 
87
95
  hash = rb_hash_new();
88
96
 
89
- if(!dtd->attributes) return hash;
97
+ if (!dtd->attributes) { return hash; }
90
98
 
91
99
  xmlHashScan((xmlHashTablePtr)dtd->attributes, element_copier, (void *)hash);
92
100
 
@@ -99,14 +107,15 @@ static VALUE attributes(VALUE self)
99
107
  *
100
108
  * Get a hash of the elements for this DTD.
101
109
  */
102
- static VALUE elements(VALUE self)
110
+ static VALUE
111
+ elements(VALUE self)
103
112
  {
104
113
  xmlDtdPtr dtd;
105
114
  VALUE hash;
106
115
 
107
116
  Data_Get_Struct(self, xmlDtd, dtd);
108
117
 
109
- if(!dtd->elements) return Qnil;
118
+ if (!dtd->elements) { return Qnil; }
110
119
 
111
120
  hash = rb_hash_new();
112
121
 
@@ -121,7 +130,8 @@ static VALUE elements(VALUE self)
121
130
  *
122
131
  * Validate +document+ returning a list of errors
123
132
  */
124
- static VALUE validate(VALUE self, VALUE document)
133
+ static VALUE
134
+ validate(VALUE self, VALUE document)
125
135
  {
126
136
  xmlDocPtr doc;
127
137
  xmlDtdPtr dtd;
@@ -151,12 +161,13 @@ static VALUE validate(VALUE self, VALUE document)
151
161
  *
152
162
  * Get the System ID for this DTD
153
163
  */
154
- static VALUE system_id(VALUE self)
164
+ static VALUE
165
+ system_id(VALUE self)
155
166
  {
156
167
  xmlDtdPtr dtd;
157
168
  Data_Get_Struct(self, xmlDtd, dtd);
158
169
 
159
- if(!dtd->SystemID) return Qnil;
170
+ if (!dtd->SystemID) { return Qnil; }
160
171
 
161
172
  return NOKOGIRI_STR_NEW2(dtd->SystemID);
162
173
  }
@@ -167,36 +178,31 @@ static VALUE system_id(VALUE self)
167
178
  *
168
179
  * Get the External ID for this DTD
169
180
  */
170
- static VALUE external_id(VALUE self)
181
+ static VALUE
182
+ external_id(VALUE self)
171
183
  {
172
184
  xmlDtdPtr dtd;
173
185
  Data_Get_Struct(self, xmlDtd, dtd);
174
186
 
175
- if(!dtd->ExternalID) return Qnil;
187
+ if (!dtd->ExternalID) { return Qnil; }
176
188
 
177
189
  return NOKOGIRI_STR_NEW2(dtd->ExternalID);
178
190
  }
179
191
 
180
- VALUE cNokogiriXmlDtd;
181
-
182
- void init_xml_dtd()
192
+ void
193
+ noko_init_xml_dtd()
183
194
  {
184
- VALUE nokogiri = rb_define_module("Nokogiri");
185
- VALUE xml = rb_define_module_under(nokogiri, "XML");
186
- VALUE node = rb_define_class_under(xml, "Node", rb_cObject);
187
-
195
+ assert(cNokogiriXmlNode);
188
196
  /*
189
197
  * Nokogiri::XML::DTD wraps DTD nodes in an XML document
190
198
  */
191
- VALUE klass = rb_define_class_under(xml, "DTD", node);
192
-
193
- cNokogiriXmlDtd = klass;
194
-
195
- rb_define_method(klass, "notations", notations, 0);
196
- rb_define_method(klass, "elements", elements, 0);
197
- rb_define_method(klass, "entities", entities, 0);
198
- rb_define_method(klass, "validate", validate, 1);
199
- rb_define_method(klass, "attributes", attributes, 0);
200
- rb_define_method(klass, "system_id", system_id, 0);
201
- rb_define_method(klass, "external_id", external_id, 0);
199
+ cNokogiriXmlDtd = rb_define_class_under(mNokogiriXml, "DTD", cNokogiriXmlNode);
200
+
201
+ rb_define_method(cNokogiriXmlDtd, "notations", notations, 0);
202
+ rb_define_method(cNokogiriXmlDtd, "elements", elements, 0);
203
+ rb_define_method(cNokogiriXmlDtd, "entities", entities, 0);
204
+ rb_define_method(cNokogiriXmlDtd, "validate", validate, 1);
205
+ rb_define_method(cNokogiriXmlDtd, "attributes", attributes, 0);
206
+ rb_define_method(cNokogiriXmlDtd, "system_id", system_id, 0);
207
+ rb_define_method(cNokogiriXmlDtd, "external_id", external_id, 0);
202
208
  }
@@ -1,4 +1,4 @@
1
- #include <xml_element_content.h>
1
+ #include <nokogiri.h>
2
2
 
3
3
  VALUE cNokogiriXmlElementContent;
4
4
 
@@ -8,12 +8,13 @@ VALUE cNokogiriXmlElementContent;
8
8
  *
9
9
  * Get the require element +name+
10
10
  */
11
- static VALUE get_name(VALUE self)
11
+ static VALUE
12
+ get_name(VALUE self)
12
13
  {
13
14
  xmlElementContentPtr elem;
14
15
  Data_Get_Struct(self, xmlElementContent, elem);
15
16
 
16
- if(!elem->name) return Qnil;
17
+ if (!elem->name) { return Qnil; }
17
18
  return NOKOGIRI_STR_NEW2(elem->name);
18
19
  }
19
20
 
@@ -24,7 +25,8 @@ static VALUE get_name(VALUE self)
24
25
  * Get the element content +type+. Possible values are PCDATA, ELEMENT, SEQ,
25
26
  * or OR.
26
27
  */
27
- static VALUE get_type(VALUE self)
28
+ static VALUE
29
+ get_type(VALUE self)
28
30
  {
29
31
  xmlElementContentPtr elem;
30
32
  Data_Get_Struct(self, xmlElementContent, elem);
@@ -38,13 +40,14 @@ static VALUE get_type(VALUE self)
38
40
  *
39
41
  * Get the first child.
40
42
  */
41
- static VALUE get_c1(VALUE self)
43
+ static VALUE
44
+ get_c1(VALUE self)
42
45
  {
43
46
  xmlElementContentPtr elem;
44
47
  Data_Get_Struct(self, xmlElementContent, elem);
45
48
 
46
- if(!elem->c1) return Qnil;
47
- return Nokogiri_wrap_element_content(rb_iv_get(self, "@document"), elem->c1);
49
+ if (!elem->c1) { return Qnil; }
50
+ return noko_xml_element_content_wrap(rb_iv_get(self, "@document"), elem->c1);
48
51
  }
49
52
 
50
53
  /*
@@ -53,13 +56,14 @@ static VALUE get_c1(VALUE self)
53
56
  *
54
57
  * Get the first child.
55
58
  */
56
- static VALUE get_c2(VALUE self)
59
+ static VALUE
60
+ get_c2(VALUE self)
57
61
  {
58
62
  xmlElementContentPtr elem;
59
63
  Data_Get_Struct(self, xmlElementContent, elem);
60
64
 
61
- if(!elem->c2) return Qnil;
62
- return Nokogiri_wrap_element_content(rb_iv_get(self, "@document"), elem->c2);
65
+ if (!elem->c2) { return Qnil; }
66
+ return noko_xml_element_content_wrap(rb_iv_get(self, "@document"), elem->c2);
63
67
  }
64
68
 
65
69
  /*
@@ -69,7 +73,8 @@ static VALUE get_c2(VALUE self)
69
73
  * Get the element content +occur+ flag. Possible values are ONCE, OPT, MULT
70
74
  * or PLUS.
71
75
  */
72
- static VALUE get_occur(VALUE self)
76
+ static VALUE
77
+ get_occur(VALUE self)
73
78
  {
74
79
  xmlElementContentPtr elem;
75
80
  Data_Get_Struct(self, xmlElementContent, elem);
@@ -83,17 +88,19 @@ static VALUE get_occur(VALUE self)
83
88
  *
84
89
  * Get the element content namespace +prefix+.
85
90
  */
86
- static VALUE get_prefix(VALUE self)
91
+ static VALUE
92
+ get_prefix(VALUE self)
87
93
  {
88
94
  xmlElementContentPtr elem;
89
95
  Data_Get_Struct(self, xmlElementContent, elem);
90
96
 
91
- if(!elem->prefix) return Qnil;
97
+ if (!elem->prefix) { return Qnil; }
92
98
 
93
99
  return NOKOGIRI_STR_NEW2(elem->prefix);
94
100
  }
95
101
 
96
- VALUE Nokogiri_wrap_element_content(VALUE doc, xmlElementContentPtr element)
102
+ VALUE
103
+ noko_xml_element_content_wrap(VALUE doc, xmlElementContentPtr element)
97
104
  {
98
105
  VALUE elem = Data_Wrap_Struct(cNokogiriXmlElementContent, 0, 0, element);
99
106
 
@@ -104,20 +111,18 @@ VALUE Nokogiri_wrap_element_content(VALUE doc, xmlElementContentPtr element)
104
111
  return elem;
105
112
  }
106
113
 
107
- void init_xml_element_content()
114
+ void
115
+ noko_init_xml_element_content()
108
116
  {
109
- VALUE nokogiri = rb_define_module("Nokogiri");
110
- VALUE xml = rb_define_module_under(nokogiri, "XML");
117
+ cNokogiriXmlElementContent = rb_define_class_under(mNokogiriXml, "ElementContent", rb_cObject);
111
118
 
112
- VALUE klass = rb_define_class_under(xml, "ElementContent", rb_cObject);
119
+ rb_undef_alloc_func(cNokogiriXmlElementContent);
113
120
 
114
- cNokogiriXmlElementContent = klass;
121
+ rb_define_method(cNokogiriXmlElementContent, "name", get_name, 0);
122
+ rb_define_method(cNokogiriXmlElementContent, "type", get_type, 0);
123
+ rb_define_method(cNokogiriXmlElementContent, "occur", get_occur, 0);
124
+ rb_define_method(cNokogiriXmlElementContent, "prefix", get_prefix, 0);
115
125
 
116
- rb_define_method(klass, "name", get_name, 0);
117
- rb_define_method(klass, "type", get_type, 0);
118
- rb_define_method(klass, "occur", get_occur, 0);
119
- rb_define_method(klass, "prefix", get_prefix, 0);
120
-
121
- rb_define_private_method(klass, "c1", get_c1, 0);
122
- rb_define_private_method(klass, "c2", get_c2, 0);
126
+ rb_define_private_method(cNokogiriXmlElementContent, "c1", get_c1, 0);
127
+ rb_define_private_method(cNokogiriXmlElementContent, "c2", get_c2, 0);
123
128
  }
@@ -1,4 +1,6 @@
1
- #include <xml_element_decl.h>
1
+ #include <nokogiri.h>
2
+
3
+ VALUE cNokogiriXmlElementDecl;
2
4
 
3
5
  static ID id_document;
4
6
 
@@ -8,7 +10,8 @@ static ID id_document;
8
10
  *
9
11
  * The element_type
10
12
  */
11
- static VALUE element_type(VALUE self)
13
+ static VALUE
14
+ element_type(VALUE self)
12
15
  {
13
16
  xmlElementPtr node;
14
17
  Data_Get_Struct(self, xmlElement, node);
@@ -21,17 +24,18 @@ static VALUE element_type(VALUE self)
21
24
  *
22
25
  * The allowed content for this ElementDecl
23
26
  */
24
- static VALUE content(VALUE self)
27
+ static VALUE
28
+ content(VALUE self)
25
29
  {
26
30
  xmlElementPtr node;
27
31
  Data_Get_Struct(self, xmlElement, node);
28
32
 
29
- if(!node->content) return Qnil;
33
+ if (!node->content) { return Qnil; }
30
34
 
31
- return Nokogiri_wrap_element_content(
32
- rb_funcall(self, id_document, 0),
33
- node->content
34
- );
35
+ return noko_xml_element_content_wrap(
36
+ rb_funcall(self, id_document, 0),
37
+ node->content
38
+ );
35
39
  }
36
40
 
37
41
  /*
@@ -40,30 +44,26 @@ static VALUE content(VALUE self)
40
44
  *
41
45
  * The namespace prefix for this ElementDecl
42
46
  */
43
- static VALUE prefix(VALUE self)
47
+ static VALUE
48
+ prefix(VALUE self)
44
49
  {
45
50
  xmlElementPtr node;
46
51
  Data_Get_Struct(self, xmlElement, node);
47
52
 
48
- if(!node->prefix) return Qnil;
53
+ if (!node->prefix) { return Qnil; }
49
54
 
50
55
  return NOKOGIRI_STR_NEW2(node->prefix);
51
56
  }
52
57
 
53
- VALUE cNokogiriXmlElementDecl;
54
-
55
- void init_xml_element_decl()
58
+ void
59
+ noko_init_xml_element_decl()
56
60
  {
57
- VALUE nokogiri = rb_define_module("Nokogiri");
58
- VALUE xml = rb_define_module_under(nokogiri, "XML");
59
- VALUE node = rb_define_class_under(xml, "Node", rb_cObject);
60
- VALUE klass = rb_define_class_under(xml, "ElementDecl", node);
61
-
62
- cNokogiriXmlElementDecl = klass;
61
+ assert(cNokogiriXmlNode);
62
+ cNokogiriXmlElementDecl = rb_define_class_under(mNokogiriXml, "ElementDecl", cNokogiriXmlNode);
63
63
 
64
- rb_define_method(klass, "element_type", element_type, 0);
65
- rb_define_method(klass, "content", content, 0);
66
- rb_define_method(klass, "prefix", prefix, 0);
64
+ rb_define_method(cNokogiriXmlElementDecl, "element_type", element_type, 0);
65
+ rb_define_method(cNokogiriXmlElementDecl, "content", content, 0);
66
+ rb_define_method(cNokogiriXmlElementDecl, "prefix", prefix, 0);
67
67
 
68
68
  id_document = rb_intern("document");
69
69
  }
@@ -1,63 +1,84 @@
1
- #include <xml_encoding_handler.h>
1
+ #include <nokogiri.h>
2
+
3
+ VALUE cNokogiriEncodingHandler;
4
+
5
+
6
+ static void
7
+ _xml_encoding_handler_dealloc(xmlCharEncodingHandlerPtr c_handler)
8
+ {
9
+ /* make sure iconv handlers are cleaned up and freed */
10
+ xmlCharEncCloseFunc(c_handler);
11
+ }
12
+
2
13
 
3
14
  /*
4
15
  * call-seq: Nokogiri::EncodingHandler.[](name)
5
16
  *
6
17
  * Get the encoding handler for +name+
7
18
  */
8
- static VALUE get(VALUE klass, VALUE key)
19
+ static VALUE
20
+ rb_xml_encoding_handler_s_get(VALUE klass, VALUE key)
9
21
  {
10
22
  xmlCharEncodingHandlerPtr handler;
11
23
 
12
24
  handler = xmlFindCharEncodingHandler(StringValueCStr(key));
13
- if(handler)
14
- return Data_Wrap_Struct(klass, NULL, NULL, handler);
25
+ if (handler) {
26
+ return Data_Wrap_Struct(klass, NULL, _xml_encoding_handler_dealloc, handler);
27
+ }
15
28
 
16
29
  return Qnil;
17
30
  }
18
31
 
32
+
19
33
  /*
20
34
  * call-seq: Nokogiri::EncodingHandler.delete(name)
21
35
  *
22
36
  * Delete the encoding alias named +name+
23
37
  */
24
- static VALUE delete(VALUE klass, VALUE name)
38
+ static VALUE
39
+ rb_xml_encoding_handler_s_delete(VALUE klass, VALUE name)
25
40
  {
26
- if(xmlDelEncodingAlias(StringValueCStr(name))) return Qnil;
41
+ if (xmlDelEncodingAlias(StringValueCStr(name))) { return Qnil; }
27
42
 
28
43
  return Qtrue;
29
44
  }
30
45
 
46
+
31
47
  /*
32
48
  * call-seq: Nokogiri::EncodingHandler.alias(from, to)
33
49
  *
34
50
  * Alias encoding handler with name +from+ to name +to+
35
51
  */
36
- static VALUE alias(VALUE klass, VALUE from, VALUE to)
52
+ static VALUE
53
+ rb_xml_encoding_handler_s_alias(VALUE klass, VALUE from, VALUE to)
37
54
  {
38
55
  xmlAddEncodingAlias(StringValueCStr(from), StringValueCStr(to));
39
56
 
40
57
  return to;
41
58
  }
42
59
 
60
+
43
61
  /*
44
62
  * call-seq: Nokogiri::EncodingHandler.clear_aliases!
45
63
  *
46
64
  * Remove all encoding aliases.
47
65
  */
48
- static VALUE clear_aliases(VALUE klass)
66
+ static VALUE
67
+ rb_xml_encoding_handler_s_clear_aliases(VALUE klass)
49
68
  {
50
69
  xmlCleanupEncodingAliases();
51
70
 
52
71
  return klass;
53
72
  }
54
73
 
74
+
55
75
  /*
56
76
  * call-seq: name
57
77
  *
58
78
  * Get the name of this EncodingHandler
59
79
  */
60
- static VALUE name(VALUE self)
80
+ static VALUE
81
+ rb_xml_encoding_handler_name(VALUE self)
61
82
  {
62
83
  xmlCharEncodingHandlerPtr handler;
63
84
 
@@ -66,14 +87,18 @@ static VALUE name(VALUE self)
66
87
  return NOKOGIRI_STR_NEW2(handler->name);
67
88
  }
68
89
 
69
- void init_xml_encoding_handler()
90
+
91
+ void
92
+ noko_init_xml_encoding_handler()
70
93
  {
71
- VALUE nokogiri = rb_define_module("Nokogiri");
72
- VALUE klass = rb_define_class_under(nokogiri, "EncodingHandler", rb_cObject);
73
-
74
- rb_define_singleton_method(klass, "[]", get, 1);
75
- rb_define_singleton_method(klass, "delete", delete, 1);
76
- rb_define_singleton_method(klass, "alias", alias, 2);
77
- rb_define_singleton_method(klass, "clear_aliases!", clear_aliases, 0);
78
- rb_define_method(klass, "name", name, 0);
94
+ cNokogiriEncodingHandler = rb_define_class_under(mNokogiri, "EncodingHandler", rb_cObject);
95
+
96
+ rb_undef_alloc_func(cNokogiriEncodingHandler);
97
+
98
+ rb_define_singleton_method(cNokogiriEncodingHandler, "[]", rb_xml_encoding_handler_s_get, 1);
99
+ rb_define_singleton_method(cNokogiriEncodingHandler, "delete", rb_xml_encoding_handler_s_delete, 1);
100
+ rb_define_singleton_method(cNokogiriEncodingHandler, "alias", rb_xml_encoding_handler_s_alias, 2);
101
+ rb_define_singleton_method(cNokogiriEncodingHandler, "clear_aliases!", rb_xml_encoding_handler_s_clear_aliases, 0);
102
+
103
+ rb_define_method(cNokogiriEncodingHandler, "name", rb_xml_encoding_handler_name, 0);
79
104
  }