nokogiri 1.4.3.1-java → 1.5.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. data/.gemtest +0 -0
  2. data/CHANGELOG.ja.rdoc +113 -0
  3. data/CHANGELOG.rdoc +113 -1
  4. data/Manifest.txt +72 -68
  5. data/README.ja.rdoc +4 -4
  6. data/README.rdoc +31 -7
  7. data/Rakefile +110 -132
  8. data/bin/nokogiri +7 -3
  9. data/ext/java/nokogiri/EncodingHandler.java +124 -0
  10. data/ext/java/nokogiri/HtmlDocument.java +119 -0
  11. data/ext/java/nokogiri/HtmlElementDescription.java +145 -0
  12. data/ext/java/nokogiri/HtmlEntityLookup.java +79 -0
  13. data/ext/java/nokogiri/HtmlSaxParserContext.java +259 -0
  14. data/ext/java/nokogiri/NokogiriService.java +590 -0
  15. data/ext/java/nokogiri/XmlAttr.java +180 -0
  16. data/ext/java/nokogiri/XmlAttributeDecl.java +130 -0
  17. data/ext/java/nokogiri/XmlCdata.java +84 -0
  18. data/ext/java/nokogiri/XmlComment.java +86 -0
  19. data/ext/java/nokogiri/XmlDocument.java +519 -0
  20. data/ext/java/nokogiri/XmlDocumentFragment.java +223 -0
  21. data/ext/java/nokogiri/XmlDtd.java +469 -0
  22. data/ext/java/nokogiri/XmlElement.java +195 -0
  23. data/ext/java/nokogiri/XmlElementContent.java +382 -0
  24. data/ext/java/nokogiri/XmlElementDecl.java +152 -0
  25. data/ext/java/nokogiri/XmlEntityDecl.java +162 -0
  26. data/ext/java/nokogiri/XmlEntityReference.java +97 -0
  27. data/ext/java/nokogiri/XmlNamespace.java +183 -0
  28. data/ext/java/nokogiri/XmlNode.java +1378 -0
  29. data/ext/java/nokogiri/XmlNodeSet.java +267 -0
  30. data/ext/java/nokogiri/XmlProcessingInstruction.java +99 -0
  31. data/ext/java/nokogiri/XmlReader.java +408 -0
  32. data/ext/java/nokogiri/XmlRelaxng.java +144 -0
  33. data/ext/java/nokogiri/XmlSaxParserContext.java +367 -0
  34. data/ext/java/nokogiri/XmlSaxPushParser.java +184 -0
  35. data/ext/java/nokogiri/XmlSchema.java +324 -0
  36. data/ext/java/nokogiri/XmlSyntaxError.java +119 -0
  37. data/ext/java/nokogiri/XmlText.java +119 -0
  38. data/ext/java/nokogiri/XmlXpathContext.java +199 -0
  39. data/ext/java/nokogiri/XsltStylesheet.java +197 -0
  40. data/ext/java/nokogiri/internals/HtmlDomParserContext.java +204 -0
  41. data/ext/java/nokogiri/internals/NokogiriDocumentCache.java +73 -0
  42. data/ext/java/nokogiri/internals/NokogiriErrorHandler.java +86 -0
  43. data/ext/java/nokogiri/internals/NokogiriHandler.java +327 -0
  44. data/ext/java/nokogiri/internals/NokogiriHelpers.java +639 -0
  45. data/ext/java/nokogiri/internals/NokogiriNamespaceCache.java +167 -0
  46. data/ext/java/nokogiri/internals/NokogiriNamespaceContext.java +130 -0
  47. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +74 -0
  48. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java +121 -0
  49. data/ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java +79 -0
  50. data/ext/java/nokogiri/internals/NokogiriXPathFunction.java +141 -0
  51. data/ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java +73 -0
  52. data/ext/java/nokogiri/internals/NokogiriXPathVariableResolver.java +67 -0
  53. data/ext/java/nokogiri/internals/NokogiriXsltErrorListener.java +86 -0
  54. data/ext/java/nokogiri/internals/ParserContext.java +276 -0
  55. data/ext/java/nokogiri/internals/PushInputStream.java +411 -0
  56. data/ext/java/nokogiri/internals/ReaderNode.java +531 -0
  57. data/ext/java/nokogiri/internals/SaveContextVisitor.java +567 -0
  58. data/ext/java/nokogiri/internals/SchemaErrorHandler.java +76 -0
  59. data/ext/java/nokogiri/internals/XmlDeclHandler.java +42 -0
  60. data/ext/java/nokogiri/internals/XmlDomParser.java +76 -0
  61. data/ext/java/nokogiri/internals/XmlDomParserContext.java +244 -0
  62. data/ext/java/nokogiri/internals/XmlSaxParser.java +65 -0
  63. data/ext/java/nokogiri/internals/XsltExtensionFunction.java +72 -0
  64. data/ext/nokogiri/depend +358 -32
  65. data/ext/nokogiri/extconf.rb +10 -6
  66. data/ext/nokogiri/nokogiri.c +23 -3
  67. data/ext/nokogiri/nokogiri.h +7 -2
  68. data/ext/nokogiri/xml_document.c +9 -0
  69. data/ext/nokogiri/xml_dtd.c +2 -2
  70. data/ext/nokogiri/xml_io.c +32 -7
  71. data/ext/nokogiri/xml_node.c +45 -25
  72. data/ext/nokogiri/xml_node_set.c +1 -1
  73. data/ext/nokogiri/xml_relax_ng.c +0 -7
  74. data/ext/nokogiri/xml_sax_parser.c +14 -7
  75. data/ext/nokogiri/xml_sax_parser_context.c +40 -0
  76. data/ext/nokogiri/xml_xpath_context.c +33 -2
  77. data/ext/nokogiri/xslt_stylesheet.c +128 -6
  78. data/lib/isorelax.jar +0 -0
  79. data/lib/jing.jar +0 -0
  80. data/lib/nekodtd.jar +0 -0
  81. data/lib/nekohtml.jar +0 -0
  82. data/lib/nokogiri/css/parser.rb +665 -70
  83. data/lib/nokogiri/css/parser.y +3 -1
  84. data/lib/nokogiri/css/parser_extras.rb +91 -0
  85. data/lib/nokogiri/css/tokenizer.rb +148 -3
  86. data/lib/nokogiri/css/tokenizer.rex +1 -1
  87. data/lib/nokogiri/css/xpath_visitor.rb +15 -7
  88. data/lib/nokogiri/css.rb +5 -3
  89. data/lib/nokogiri/decorators/slop.rb +5 -3
  90. data/lib/nokogiri/html/document.rb +142 -19
  91. data/lib/nokogiri/html/document_fragment.rb +19 -17
  92. data/lib/nokogiri/html/element_description_defaults.rb +671 -0
  93. data/lib/nokogiri/html/sax/parser.rb +6 -2
  94. data/lib/nokogiri/html.rb +1 -0
  95. data/lib/nokogiri/nokogiri.jar +0 -0
  96. data/lib/nokogiri/version.rb +76 -26
  97. data/lib/nokogiri/xml/attribute_decl.rb +1 -1
  98. data/lib/nokogiri/xml/builder.rb +7 -0
  99. data/lib/nokogiri/xml/document.rb +43 -2
  100. data/lib/nokogiri/xml/document_fragment.rb +16 -2
  101. data/lib/nokogiri/xml/dtd.rb +12 -1
  102. data/lib/nokogiri/xml/element_decl.rb +1 -1
  103. data/lib/nokogiri/xml/entity_decl.rb +1 -1
  104. data/lib/nokogiri/xml/node/save_options.rb +20 -1
  105. data/lib/nokogiri/xml/node.rb +198 -78
  106. data/lib/nokogiri/xml/node_set.rb +10 -3
  107. data/lib/nokogiri/xml/parse_options.rb +8 -0
  108. data/lib/nokogiri/xml/reader.rb +42 -6
  109. data/lib/nokogiri/xml/sax/document.rb +4 -2
  110. data/lib/nokogiri/xml/schema.rb +7 -1
  111. data/lib/nokogiri/xslt/stylesheet.rb +1 -1
  112. data/lib/nokogiri/xslt.rb +9 -5
  113. data/lib/nokogiri.rb +19 -25
  114. data/lib/xercesImpl.jar +0 -0
  115. data/nokogiri_help_responses.md +40 -0
  116. data/tasks/cross_compile.rb +130 -136
  117. data/tasks/nokogiri.org.rb +18 -0
  118. data/tasks/test.rb +2 -2
  119. data/test/css/test_parser.rb +29 -18
  120. data/test/css/test_tokenizer.rb +8 -0
  121. data/test/decorators/test_slop.rb +16 -0
  122. data/test/files/encoding.html +82 -0
  123. data/test/files/encoding.xhtml +84 -0
  124. data/test/files/metacharset.html +10 -0
  125. data/test/files/noencoding.html +47 -0
  126. data/test/helper.rb +5 -1
  127. data/test/html/sax/test_parser.rb +65 -3
  128. data/test/html/test_document.rb +75 -1
  129. data/test/html/test_document_encoding.rb +61 -0
  130. data/test/html/test_document_fragment.rb +50 -5
  131. data/test/html/test_element_description.rb +4 -2
  132. data/test/html/test_node.rb +9 -0
  133. data/test/test_memory_leak.rb +20 -35
  134. data/test/test_nokogiri.rb +14 -20
  135. data/test/test_reader.rb +23 -6
  136. data/test/test_xslt_transforms.rb +6 -2
  137. data/test/xml/node/test_save_options.rb +10 -2
  138. data/test/xml/sax/test_parser.rb +39 -8
  139. data/test/xml/sax/test_parser_context.rb +50 -0
  140. data/test/xml/sax/test_push_parser.rb +18 -1
  141. data/test/xml/test_attribute_decl.rb +7 -3
  142. data/test/xml/test_builder.rb +17 -0
  143. data/test/xml/test_document.rb +34 -5
  144. data/test/xml/test_document_fragment.rb +14 -2
  145. data/test/xml/test_dtd.rb +28 -3
  146. data/test/xml/test_element_content.rb +1 -1
  147. data/test/xml/test_element_decl.rb +1 -1
  148. data/test/xml/test_entity_decl.rb +12 -10
  149. data/test/xml/test_namespace.rb +7 -5
  150. data/test/xml/test_node.rb +65 -13
  151. data/test/xml/test_node_reparenting.rb +72 -31
  152. data/test/xml/test_node_set.rb +57 -0
  153. data/test/xml/test_schema.rb +5 -0
  154. data/test/xml/test_xpath.rb +32 -0
  155. data/test/xslt/test_custom_functions.rb +94 -0
  156. data/test/xslt/test_exception_handling.rb +37 -0
  157. metadata +512 -517
  158. data/deps.rip +0 -5
  159. data/ext/nokogiri/libcharset-1.dll +0 -0
  160. data/ext/nokogiri/libexslt.dll +0 -0
  161. data/ext/nokogiri/libiconv-2.dll +0 -0
  162. data/ext/nokogiri/libxml2.dll +0 -0
  163. data/ext/nokogiri/libxslt.dll +0 -0
  164. data/ext/nokogiri/zlib1.dll +0 -0
  165. data/lib/nokogiri/css/generated_parser.rb +0 -676
  166. data/lib/nokogiri/css/generated_tokenizer.rb +0 -146
  167. data/lib/nokogiri/ffi/encoding_handler.rb +0 -42
  168. data/lib/nokogiri/ffi/html/document.rb +0 -28
  169. data/lib/nokogiri/ffi/html/element_description.rb +0 -81
  170. data/lib/nokogiri/ffi/html/entity_lookup.rb +0 -16
  171. data/lib/nokogiri/ffi/html/sax/parser_context.rb +0 -38
  172. data/lib/nokogiri/ffi/io_callbacks.rb +0 -42
  173. data/lib/nokogiri/ffi/libxml.rb +0 -411
  174. data/lib/nokogiri/ffi/structs/common_node.rb +0 -38
  175. data/lib/nokogiri/ffi/structs/html_elem_desc.rb +0 -24
  176. data/lib/nokogiri/ffi/structs/html_entity_desc.rb +0 -13
  177. data/lib/nokogiri/ffi/structs/xml_alloc.rb +0 -16
  178. data/lib/nokogiri/ffi/structs/xml_attr.rb +0 -19
  179. data/lib/nokogiri/ffi/structs/xml_attribute.rb +0 -27
  180. data/lib/nokogiri/ffi/structs/xml_buffer.rb +0 -16
  181. data/lib/nokogiri/ffi/structs/xml_char_encoding_handler.rb +0 -11
  182. data/lib/nokogiri/ffi/structs/xml_document.rb +0 -117
  183. data/lib/nokogiri/ffi/structs/xml_dtd.rb +0 -28
  184. data/lib/nokogiri/ffi/structs/xml_element.rb +0 -26
  185. data/lib/nokogiri/ffi/structs/xml_element_content.rb +0 -17
  186. data/lib/nokogiri/ffi/structs/xml_entity.rb +0 -32
  187. data/lib/nokogiri/ffi/structs/xml_enumeration.rb +0 -12
  188. data/lib/nokogiri/ffi/structs/xml_node.rb +0 -28
  189. data/lib/nokogiri/ffi/structs/xml_node_set.rb +0 -53
  190. data/lib/nokogiri/ffi/structs/xml_notation.rb +0 -11
  191. data/lib/nokogiri/ffi/structs/xml_ns.rb +0 -15
  192. data/lib/nokogiri/ffi/structs/xml_parser_context.rb +0 -19
  193. data/lib/nokogiri/ffi/structs/xml_relax_ng.rb +0 -14
  194. data/lib/nokogiri/ffi/structs/xml_sax_handler.rb +0 -51
  195. data/lib/nokogiri/ffi/structs/xml_sax_push_parser_context.rb +0 -124
  196. data/lib/nokogiri/ffi/structs/xml_schema.rb +0 -13
  197. data/lib/nokogiri/ffi/structs/xml_syntax_error.rb +0 -31
  198. data/lib/nokogiri/ffi/structs/xml_text_reader.rb +0 -12
  199. data/lib/nokogiri/ffi/structs/xml_xpath_context.rb +0 -38
  200. data/lib/nokogiri/ffi/structs/xml_xpath_object.rb +0 -35
  201. data/lib/nokogiri/ffi/structs/xml_xpath_parser_context.rb +0 -20
  202. data/lib/nokogiri/ffi/structs/xslt_stylesheet.rb +0 -13
  203. data/lib/nokogiri/ffi/weak_bucket.rb +0 -40
  204. data/lib/nokogiri/ffi/xml/attr.rb +0 -41
  205. data/lib/nokogiri/ffi/xml/attribute_decl.rb +0 -27
  206. data/lib/nokogiri/ffi/xml/cdata.rb +0 -19
  207. data/lib/nokogiri/ffi/xml/comment.rb +0 -18
  208. data/lib/nokogiri/ffi/xml/document.rb +0 -166
  209. data/lib/nokogiri/ffi/xml/document_fragment.rb +0 -21
  210. data/lib/nokogiri/ffi/xml/dtd.rb +0 -67
  211. data/lib/nokogiri/ffi/xml/element_content.rb +0 -43
  212. data/lib/nokogiri/ffi/xml/element_decl.rb +0 -19
  213. data/lib/nokogiri/ffi/xml/entity_decl.rb +0 -36
  214. data/lib/nokogiri/ffi/xml/entity_reference.rb +0 -19
  215. data/lib/nokogiri/ffi/xml/namespace.rb +0 -44
  216. data/lib/nokogiri/ffi/xml/node.rb +0 -554
  217. data/lib/nokogiri/ffi/xml/node_set.rb +0 -149
  218. data/lib/nokogiri/ffi/xml/processing_instruction.rb +0 -20
  219. data/lib/nokogiri/ffi/xml/reader.rb +0 -236
  220. data/lib/nokogiri/ffi/xml/relax_ng.rb +0 -85
  221. data/lib/nokogiri/ffi/xml/sax/parser.rb +0 -135
  222. data/lib/nokogiri/ffi/xml/sax/parser_context.rb +0 -67
  223. data/lib/nokogiri/ffi/xml/sax/push_parser.rb +0 -51
  224. data/lib/nokogiri/ffi/xml/schema.rb +0 -109
  225. data/lib/nokogiri/ffi/xml/syntax_error.rb +0 -98
  226. data/lib/nokogiri/ffi/xml/text.rb +0 -18
  227. data/lib/nokogiri/ffi/xml/xpath.rb +0 -9
  228. data/lib/nokogiri/ffi/xml/xpath_context.rb +0 -148
  229. data/lib/nokogiri/ffi/xslt/stylesheet.rb +0 -53
  230. data/lib/nokogiri/version_warning.rb +0 -14
  231. data/test/ffi/test_document.rb +0 -35
@@ -1,146 +0,0 @@
1
- #--
2
- # DO NOT MODIFY!!!!
3
- # This file is automatically generated by rex 1.0.5.beta1
4
- # from lexical definition file "lib/nokogiri/css/tokenizer.rex".
5
- #++
6
-
7
- module Nokogiri
8
- module CSS
9
- class GeneratedTokenizer < GeneratedParser
10
- require 'strscan'
11
-
12
- class ScanError < StandardError ; end
13
-
14
- attr_reader :lineno
15
- attr_reader :filename
16
- attr_accessor :state
17
-
18
- def scan_setup(str)
19
- @ss = StringScanner.new(str)
20
- @lineno = 1
21
- @state = nil
22
- end
23
-
24
- def action(&block)
25
- yield
26
- end
27
-
28
- def scan_str(str)
29
- scan_setup(str)
30
- do_parse
31
- end
32
- alias :scan :scan_str
33
-
34
- def load_file( filename )
35
- @filename = filename
36
- open(filename, "r") do |f|
37
- scan_setup(f.read)
38
- end
39
- end
40
-
41
- def scan_file( filename )
42
- load_file(filename)
43
- do_parse
44
- end
45
-
46
-
47
- def next_token
48
- return if @ss.eos?
49
-
50
- text = @ss.peek(1)
51
- @lineno += 1 if text == "\n"
52
- token = case @state
53
- when nil
54
- case
55
- when (text = @ss.scan(/has\([\s]*/))
56
- action { [:HAS, text] }
57
-
58
- when (text = @ss.scan(/[-@]?([_A-Za-z]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])([_A-Za-z0-9-]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*\([\s]*/))
59
- action { [:FUNCTION, text] }
60
-
61
- when (text = @ss.scan(/[-@]?([_A-Za-z]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])([_A-Za-z0-9-]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*/))
62
- action { [:IDENT, text] }
63
-
64
- when (text = @ss.scan(/\#([_A-Za-z0-9-]|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])+/))
65
- action { [:HASH, text] }
66
-
67
- when (text = @ss.scan(/[\s]*~=[\s]*/))
68
- action { [:INCLUDES, text] }
69
-
70
- when (text = @ss.scan(/[\s]*\|=[\s]*/))
71
- action { [:DASHMATCH, text] }
72
-
73
- when (text = @ss.scan(/[\s]*\^=[\s]*/))
74
- action { [:PREFIXMATCH, text] }
75
-
76
- when (text = @ss.scan(/[\s]*\$=[\s]*/))
77
- action { [:SUFFIXMATCH, text] }
78
-
79
- when (text = @ss.scan(/[\s]*\*=[\s]*/))
80
- action { [:SUBSTRINGMATCH, text] }
81
-
82
- when (text = @ss.scan(/[\s]*!=[\s]*/))
83
- action { [:NOT_EQUAL, text] }
84
-
85
- when (text = @ss.scan(/[\s]*=[\s]*/))
86
- action { [:EQUAL, text] }
87
-
88
- when (text = @ss.scan(/[\s]*\)/))
89
- action { [:RPAREN, text] }
90
-
91
- when (text = @ss.scan(/[\s]*\[[\s]*/))
92
- action { [:LSQUARE, text] }
93
-
94
- when (text = @ss.scan(/[\s]*\]/))
95
- action { [:RSQUARE, text] }
96
-
97
- when (text = @ss.scan(/[\s]*\+[\s]*/))
98
- action { [:PLUS, text] }
99
-
100
- when (text = @ss.scan(/[\s]*>[\s]*/))
101
- action { [:GREATER, text] }
102
-
103
- when (text = @ss.scan(/[\s]*,[\s]*/))
104
- action { [:COMMA, text] }
105
-
106
- when (text = @ss.scan(/[\s]*~[\s]*/))
107
- action { [:TILDE, text] }
108
-
109
- when (text = @ss.scan(/\:not\([\s]*/))
110
- action { [:NOT, text] }
111
-
112
- when (text = @ss.scan(/-?([0-9]+|[0-9]*\.[0-9]+)/))
113
- action { [:NUMBER, text] }
114
-
115
- when (text = @ss.scan(/[\s]*\/\/[\s]*/))
116
- action { [:DOUBLESLASH, text] }
117
-
118
- when (text = @ss.scan(/[\s]*\/[\s]*/))
119
- action { [:SLASH, text] }
120
-
121
- when (text = @ss.scan(/U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})?/))
122
- action {[:UNICODE_RANGE, text] }
123
-
124
- when (text = @ss.scan(/[\s]+/))
125
- action { [:S, text] }
126
-
127
- when (text = @ss.scan(/"([^\n\r\f"]|\n|\r\n|\r|\f|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*"|'([^\n\r\f']|\n|\r\n|\r|\f|[^\0-\177]|\\[0-9A-Fa-f]{1,6}(\r\n|[\s])?|\\[^\n\r\f0-9A-Fa-f])*'/))
128
- action { [:STRING, text] }
129
-
130
- when (text = @ss.scan(/./))
131
- action { [text, text] }
132
-
133
- else
134
- text = @ss.string[@ss.pos .. -1]
135
- raise ScanError, "can not match: '" + text + "'"
136
- end # if
137
-
138
- else
139
- raise ScanError, "undefined state: '" + state.to_s + "'"
140
- end # case state
141
- token
142
- end # def next_token
143
-
144
- end # class
145
- end
146
- end
@@ -1,42 +0,0 @@
1
- module Nokogiri
2
- class EncodingHandler
3
- # :stopdoc:
4
- attr_accessor :cstruct
5
-
6
- class << self
7
- def [](key)
8
- handler = LibXML.xmlFindCharEncodingHandler(key)
9
- handler.null? ? nil : wrap(handler)
10
- end
11
-
12
- def delete(name)
13
- (LibXML.xmlDelEncodingAlias(name) != 0) ? nil : true
14
- end
15
-
16
- def alias(from, to)
17
- LibXML.xmlAddEncodingAlias(from, to)
18
- to
19
- end
20
-
21
- def clear_aliases!
22
- LibXML.xmlCleanupEncodingAliases
23
- self
24
- end
25
-
26
- private
27
-
28
- def wrap(ptr)
29
- cstruct = LibXML::XmlCharEncodingHandler.new(ptr)
30
- eh = Nokogiri::EncodingHandler.allocate
31
- eh.cstruct = cstruct
32
- eh
33
- end
34
-
35
- end
36
-
37
- def name
38
- cstruct[:name]
39
- end
40
- # :startdoc:
41
- end
42
- end
@@ -1,28 +0,0 @@
1
- module Nokogiri
2
- module HTML
3
- class Document < XML::Document
4
-
5
- attr_accessor :cstruct # :nodoc:
6
-
7
- def self.new(*args) # :nodoc:
8
- uri = args[0]
9
- external_id = args[1]
10
- doc = wrap(LibXML.htmlNewDoc(uri, external_id))
11
- doc.send :initialize, *args
12
- doc
13
- end
14
-
15
- def self.read_io(io, url, encoding, options) # :nodoc:
16
- wrap_with_error_handling do
17
- LibXML.htmlReadIO(IoCallbacks.reader(io), nil, nil, url, encoding, options)
18
- end
19
- end
20
-
21
- def self.read_memory(string, url, encoding, options) # :nodoc:
22
- wrap_with_error_handling do
23
- LibXML.htmlReadMemory(string, string.length, url, encoding, options)
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,81 +0,0 @@
1
- module Nokogiri
2
- module HTML
3
- class ElementDescription
4
-
5
- attr_accessor :cstruct # :nodoc:
6
-
7
- def required_attributes # :nodoc:
8
- get_string_array_from :attrs_req
9
- end
10
-
11
- def deprecated_attributes # :nodoc:
12
- get_string_array_from :attrs_depr
13
- end
14
-
15
- def optional_attributes # :nodoc:
16
- get_string_array_from :attrs_opt
17
- end
18
-
19
- def default_sub_element # :nodoc:
20
- cstruct[:defaultsubelt]
21
- end
22
-
23
- def sub_elements # :nodoc:
24
- get_string_array_from :subelts
25
- end
26
-
27
- def description # :nodoc:
28
- cstruct[:desc]
29
- end
30
-
31
- def inline? # :nodoc:
32
- cstruct[:isinline] != 0
33
- end
34
-
35
- def deprecated? # :nodoc:
36
- cstruct[:depr] != 0
37
- end
38
-
39
- def empty? # :nodoc:
40
- cstruct[:empty] != 0
41
- end
42
-
43
- def save_end_tag? # :nodoc:
44
- cstruct[:saveEndTag] != 0
45
- end
46
-
47
- def implied_end_tag? # :nodoc:
48
- cstruct[:endTag] != 0
49
- end
50
-
51
- def implied_start_tag? # :nodoc:
52
- cstruct[:startTag] != 0
53
- end
54
-
55
- def name # :nodoc:
56
- cstruct[:name]
57
- end
58
-
59
- def self.[](tag_name) # :nodoc:
60
- ptr = LibXML.htmlTagLookup(tag_name)
61
- return nil if ptr.null?
62
-
63
- desc = allocate
64
- desc.cstruct = LibXML::HtmlElemDesc.new(ptr)
65
- desc
66
- end
67
-
68
- private
69
-
70
- def get_string_array_from(sym) # :nodoc:
71
- ptr = cstruct[sym]
72
- unless ptr.null?
73
- ptr.get_array_of_string(0)
74
- else
75
- []
76
- end
77
- end
78
-
79
- end
80
- end
81
- end
@@ -1,16 +0,0 @@
1
- module Nokogiri
2
- module HTML
3
- class EntityLookup
4
-
5
- def get(key) # :nodoc:
6
- ptr = LibXML.htmlEntityLookup(key.to_s)
7
- return nil if ptr.null?
8
-
9
- cstruct = LibXML::HtmlEntityDesc.new(ptr)
10
- EntityDescription.new cstruct[:value], cstruct[:name], cstruct[:desc]
11
- end
12
-
13
- end
14
- end
15
- end
16
-
@@ -1,38 +0,0 @@
1
- # :stopdoc:
2
- module Nokogiri
3
- module HTML
4
- module SAX
5
- class ParserContext < Nokogiri::XML::SAX::ParserContext
6
- attr_accessor :cstruct
7
-
8
- def self.file filename, encoding
9
- ctx = LibXML.htmlCreateFileParserCtxt filename, encoding
10
- pc = allocate
11
- pc.cstruct = LibXML::XmlParserContext.new ctx
12
- pc
13
- end
14
-
15
- def self.memory data, encoding
16
- raise ArgumentError unless data
17
- raise "data cannot be empty" unless data.length > 0
18
-
19
- ctx = LibXML.htmlCreateMemoryParserCtxt data, data.length
20
- pc = allocate
21
- pc.cstruct = LibXML::XmlParserContext.new ctx
22
- if encoding
23
- enc = LibXML.xmlFindCharEncodingHandler(encoding)
24
- if !enc.null?
25
- LibXML.xmlSwitchToEncoding(ctx, enc)
26
- end
27
- end
28
- pc
29
- end
30
-
31
- def parse_with sax_handler, type = :html
32
- super
33
- end
34
- end
35
- end
36
- end
37
- end
38
- # :startdoc:
@@ -1,42 +0,0 @@
1
- # :stopdoc:
2
- module Nokogiri
3
- module IoCallbacks
4
-
5
- class << self
6
-
7
- def plain_old_reader(io)
8
- lambda do |ctx, buffer, len|
9
- string = io.read(len)
10
- return 0 if string.nil?
11
- buffer.put_bytes(0, string, 0, string.length)
12
- string.length
13
- end
14
- end
15
-
16
- if defined?(FFI::IO.native_read)
17
- def ffi_io_native_reader(io)
18
- if io.is_a?(StringIO)
19
- plain_old_reader(io)
20
- else
21
- lambda do |ctx, buffer, len|
22
- rcode = FFI::IO.native_read(io, buffer, len)
23
- (rcode < 0) ? 0 : rcode
24
- end
25
- end
26
- end
27
- alias :reader :ffi_io_native_reader
28
- else
29
- alias :reader :plain_old_reader
30
- end
31
-
32
- def writer(io)
33
- lambda do |context, buffer, len|
34
- io.write buffer
35
- len
36
- end
37
- end
38
- end
39
-
40
- end
41
- end
42
- # :startdoc: