nokogiri 1.0.0 → 1.6.8.1

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 (309) hide show
  1. checksums.yaml +7 -0
  2. data/.autotest +26 -0
  3. data/.cross_rubies +9 -0
  4. data/.editorconfig +17 -0
  5. data/.gemtest +0 -0
  6. data/.travis.yml +51 -0
  7. data/CHANGELOG.rdoc +1160 -0
  8. data/CONTRIBUTING.md +42 -0
  9. data/C_CODING_STYLE.rdoc +33 -0
  10. data/Gemfile +22 -0
  11. data/LICENSE.txt +31 -0
  12. data/Manifest.txt +284 -40
  13. data/README.md +166 -0
  14. data/ROADMAP.md +111 -0
  15. data/Rakefile +310 -199
  16. data/STANDARD_RESPONSES.md +47 -0
  17. data/Y_U_NO_GEMSPEC.md +155 -0
  18. data/appveyor.yml +22 -0
  19. data/bin/nokogiri +118 -0
  20. data/build_all +45 -0
  21. data/dependencies.yml +29 -0
  22. data/ext/nokogiri/depend +358 -0
  23. data/ext/nokogiri/extconf.rb +664 -34
  24. data/ext/nokogiri/html_document.c +120 -33
  25. data/ext/nokogiri/html_document.h +1 -1
  26. data/ext/nokogiri/html_element_description.c +279 -0
  27. data/ext/nokogiri/html_element_description.h +10 -0
  28. data/ext/nokogiri/html_entity_lookup.c +32 -0
  29. data/ext/nokogiri/html_entity_lookup.h +8 -0
  30. data/ext/nokogiri/html_sax_parser_context.c +116 -0
  31. data/ext/nokogiri/html_sax_parser_context.h +11 -0
  32. data/ext/nokogiri/html_sax_push_parser.c +87 -0
  33. data/ext/nokogiri/html_sax_push_parser.h +9 -0
  34. data/ext/nokogiri/nokogiri.c +145 -0
  35. data/ext/nokogiri/nokogiri.h +131 -0
  36. data/ext/nokogiri/xml_attr.c +94 -0
  37. data/ext/nokogiri/xml_attr.h +9 -0
  38. data/ext/nokogiri/xml_attribute_decl.c +70 -0
  39. data/ext/nokogiri/xml_attribute_decl.h +9 -0
  40. data/ext/nokogiri/xml_cdata.c +23 -19
  41. data/ext/nokogiri/xml_cdata.h +1 -1
  42. data/ext/nokogiri/xml_comment.c +69 -0
  43. data/ext/nokogiri/xml_comment.h +9 -0
  44. data/ext/nokogiri/xml_document.c +501 -54
  45. data/ext/nokogiri/xml_document.h +14 -1
  46. data/ext/nokogiri/xml_document_fragment.c +48 -0
  47. data/ext/nokogiri/xml_document_fragment.h +10 -0
  48. data/ext/nokogiri/xml_dtd.c +109 -24
  49. data/ext/nokogiri/xml_dtd.h +3 -1
  50. data/ext/nokogiri/xml_element_content.c +123 -0
  51. data/ext/nokogiri/xml_element_content.h +10 -0
  52. data/ext/nokogiri/xml_element_decl.c +69 -0
  53. data/ext/nokogiri/xml_element_decl.h +9 -0
  54. data/ext/nokogiri/xml_encoding_handler.c +79 -0
  55. data/ext/nokogiri/xml_encoding_handler.h +8 -0
  56. data/ext/nokogiri/xml_entity_decl.c +110 -0
  57. data/ext/nokogiri/xml_entity_decl.h +10 -0
  58. data/ext/nokogiri/xml_entity_reference.c +52 -0
  59. data/ext/nokogiri/xml_entity_reference.h +9 -0
  60. data/ext/nokogiri/xml_io.c +60 -0
  61. data/ext/nokogiri/xml_io.h +11 -0
  62. data/ext/nokogiri/xml_libxml2_hacks.c +112 -0
  63. data/ext/nokogiri/xml_libxml2_hacks.h +12 -0
  64. data/ext/nokogiri/xml_namespace.c +117 -0
  65. data/ext/nokogiri/xml_namespace.h +13 -0
  66. data/ext/nokogiri/xml_node.c +1285 -315
  67. data/ext/nokogiri/xml_node.h +4 -6
  68. data/ext/nokogiri/xml_node_set.c +415 -54
  69. data/ext/nokogiri/xml_node_set.h +6 -2
  70. data/ext/nokogiri/xml_processing_instruction.c +56 -0
  71. data/ext/nokogiri/xml_processing_instruction.h +9 -0
  72. data/ext/nokogiri/xml_reader.c +316 -77
  73. data/ext/nokogiri/xml_reader.h +1 -1
  74. data/ext/nokogiri/xml_relax_ng.c +161 -0
  75. data/ext/nokogiri/xml_relax_ng.h +9 -0
  76. data/ext/nokogiri/xml_sax_parser.c +215 -80
  77. data/ext/nokogiri/xml_sax_parser.h +30 -1
  78. data/ext/nokogiri/xml_sax_parser_context.c +262 -0
  79. data/ext/nokogiri/xml_sax_parser_context.h +10 -0
  80. data/ext/nokogiri/xml_sax_push_parser.c +115 -0
  81. data/ext/nokogiri/xml_sax_push_parser.h +9 -0
  82. data/ext/nokogiri/xml_schema.c +205 -0
  83. data/ext/nokogiri/xml_schema.h +9 -0
  84. data/ext/nokogiri/xml_syntax_error.c +45 -175
  85. data/ext/nokogiri/xml_syntax_error.h +4 -2
  86. data/ext/nokogiri/xml_text.c +37 -14
  87. data/ext/nokogiri/xml_text.h +1 -1
  88. data/ext/nokogiri/xml_xpath_context.c +230 -13
  89. data/ext/nokogiri/xml_xpath_context.h +2 -1
  90. data/ext/nokogiri/xslt_stylesheet.c +196 -34
  91. data/ext/nokogiri/xslt_stylesheet.h +6 -1
  92. data/lib/nokogiri/css/node.rb +18 -61
  93. data/lib/nokogiri/css/parser.rb +725 -17
  94. data/lib/nokogiri/css/parser.y +126 -63
  95. data/lib/nokogiri/css/parser_extras.rb +91 -0
  96. data/lib/nokogiri/css/syntax_error.rb +7 -0
  97. data/lib/nokogiri/css/tokenizer.rb +148 -5
  98. data/lib/nokogiri/css/tokenizer.rex +31 -39
  99. data/lib/nokogiri/css/xpath_visitor.rb +109 -51
  100. data/lib/nokogiri/css.rb +24 -3
  101. data/lib/nokogiri/decorators/slop.rb +42 -0
  102. data/lib/nokogiri/html/builder.rb +27 -1
  103. data/lib/nokogiri/html/document.rb +329 -3
  104. data/lib/nokogiri/html/document_fragment.rb +39 -0
  105. data/lib/nokogiri/html/element_description.rb +23 -0
  106. data/lib/nokogiri/html/element_description_defaults.rb +671 -0
  107. data/lib/nokogiri/html/entity_lookup.rb +13 -0
  108. data/lib/nokogiri/html/sax/parser.rb +35 -4
  109. data/lib/nokogiri/html/sax/parser_context.rb +16 -0
  110. data/lib/nokogiri/html/sax/push_parser.rb +36 -0
  111. data/lib/nokogiri/html.rb +18 -76
  112. data/lib/nokogiri/syntax_error.rb +4 -0
  113. data/lib/nokogiri/version.rb +106 -1
  114. data/lib/nokogiri/xml/attr.rb +14 -0
  115. data/lib/nokogiri/xml/attribute_decl.rb +18 -0
  116. data/lib/nokogiri/xml/builder.rb +395 -31
  117. data/lib/nokogiri/xml/cdata.rb +4 -2
  118. data/lib/nokogiri/xml/character_data.rb +7 -0
  119. data/lib/nokogiri/xml/document.rb +267 -12
  120. data/lib/nokogiri/xml/document_fragment.rb +149 -0
  121. data/lib/nokogiri/xml/dtd.rb +27 -1
  122. data/lib/nokogiri/xml/element_content.rb +36 -0
  123. data/lib/nokogiri/xml/element_decl.rb +13 -0
  124. data/lib/nokogiri/xml/entity_decl.rb +19 -0
  125. data/lib/nokogiri/xml/namespace.rb +13 -0
  126. data/lib/nokogiri/xml/node/save_options.rb +61 -0
  127. data/lib/nokogiri/xml/node.rb +748 -109
  128. data/lib/nokogiri/xml/node_set.rb +200 -72
  129. data/lib/nokogiri/xml/parse_options.rb +120 -0
  130. data/lib/nokogiri/xml/pp/character_data.rb +18 -0
  131. data/lib/nokogiri/xml/pp/node.rb +56 -0
  132. data/lib/nokogiri/xml/pp.rb +2 -0
  133. data/lib/nokogiri/xml/processing_instruction.rb +8 -0
  134. data/lib/nokogiri/xml/reader.rb +102 -4
  135. data/lib/nokogiri/xml/relax_ng.rb +32 -0
  136. data/lib/nokogiri/xml/sax/document.rb +114 -2
  137. data/lib/nokogiri/xml/sax/parser.rb +97 -7
  138. data/lib/nokogiri/xml/sax/parser_context.rb +16 -0
  139. data/lib/nokogiri/xml/sax/push_parser.rb +60 -0
  140. data/lib/nokogiri/xml/sax.rb +2 -7
  141. data/lib/nokogiri/xml/schema.rb +63 -0
  142. data/lib/nokogiri/xml/searchable.rb +221 -0
  143. data/lib/nokogiri/xml/syntax_error.rb +27 -1
  144. data/lib/nokogiri/xml/text.rb +4 -1
  145. data/lib/nokogiri/xml/xpath/syntax_error.rb +11 -0
  146. data/lib/nokogiri/xml/xpath.rb +4 -0
  147. data/lib/nokogiri/xml/xpath_context.rb +3 -1
  148. data/lib/nokogiri/xml.rb +45 -38
  149. data/lib/nokogiri/xslt/stylesheet.rb +19 -0
  150. data/lib/nokogiri/xslt.rb +47 -2
  151. data/lib/nokogiri.rb +117 -24
  152. data/lib/xsd/xmlparser/nokogiri.rb +102 -0
  153. data/patches/sort-patches-by-date +25 -0
  154. data/ports/archives/libxml2-2.9.4.tar.gz +0 -0
  155. data/ports/archives/libxslt-1.1.29.tar.gz +0 -0
  156. data/suppressions/README.txt +1 -0
  157. data/suppressions/nokogiri_ree-1.8.7.358.supp +61 -0
  158. data/suppressions/nokogiri_ruby-1.8.7.370.supp +0 -0
  159. data/suppressions/nokogiri_ruby-1.9.2.320.supp +28 -0
  160. data/suppressions/nokogiri_ruby-1.9.3.327.supp +28 -0
  161. data/tasks/test.rb +100 -0
  162. data/test/css/test_nthiness.rb +73 -6
  163. data/test/css/test_parser.rb +184 -39
  164. data/test/css/test_tokenizer.rb +72 -19
  165. data/test/css/test_xpath_visitor.rb +44 -2
  166. data/test/decorators/test_slop.rb +20 -0
  167. data/test/files/2ch.html +108 -0
  168. data/test/files/GH_1042.html +18 -0
  169. data/test/files/address_book.rlx +12 -0
  170. data/test/files/address_book.xml +10 -0
  171. data/test/files/atom.xml +344 -0
  172. data/test/files/bar/bar.xsd +4 -0
  173. data/test/files/bogus.xml +0 -0
  174. data/test/files/dont_hurt_em_why.xml +422 -0
  175. data/test/files/encoding.html +82 -0
  176. data/test/files/encoding.xhtml +84 -0
  177. data/test/files/exslt.xml +8 -0
  178. data/test/files/exslt.xslt +35 -0
  179. data/test/files/foo/foo.xsd +4 -0
  180. data/test/files/metacharset.html +10 -0
  181. data/test/files/namespace_pressure_test.xml +1684 -0
  182. data/test/files/noencoding.html +47 -0
  183. data/test/files/po.xml +32 -0
  184. data/test/files/po.xsd +66 -0
  185. data/test/files/saml/saml20assertion_schema.xsd +283 -0
  186. data/test/files/saml/saml20protocol_schema.xsd +302 -0
  187. data/test/files/saml/xenc_schema.xsd +146 -0
  188. data/test/files/saml/xmldsig_schema.xsd +318 -0
  189. data/test/files/shift_jis.html +10 -0
  190. data/test/files/shift_jis.xml +5 -0
  191. data/test/files/shift_jis_no_charset.html +9 -0
  192. data/test/files/slow-xpath.xml +25509 -0
  193. data/test/files/snuggles.xml +3 -0
  194. data/test/files/staff.dtd +10 -0
  195. data/test/files/test_document_url/bar.xml +2 -0
  196. data/test/files/test_document_url/document.dtd +4 -0
  197. data/test/files/test_document_url/document.xml +6 -0
  198. data/test/files/tlm.html +2 -1
  199. data/test/files/to_be_xincluded.xml +2 -0
  200. data/test/files/valid_bar.xml +2 -0
  201. data/test/files/xinclude.xml +4 -0
  202. data/test/helper.rb +124 -13
  203. data/test/html/sax/test_parser.rb +118 -4
  204. data/test/html/sax/test_parser_context.rb +46 -0
  205. data/test/html/sax/test_push_parser.rb +87 -0
  206. data/test/html/test_builder.rb +94 -8
  207. data/test/html/test_document.rb +626 -11
  208. data/test/html/test_document_encoding.rb +145 -0
  209. data/test/html/test_document_fragment.rb +301 -0
  210. data/test/html/test_element_description.rb +105 -0
  211. data/test/html/test_named_characters.rb +14 -0
  212. data/test/html/test_node.rb +212 -0
  213. data/test/html/test_node_encoding.rb +85 -0
  214. data/test/namespaces/test_additional_namespaces_in_builder_doc.rb +14 -0
  215. data/test/namespaces/test_namespaces_aliased_default.rb +24 -0
  216. data/test/namespaces/test_namespaces_in_builder_doc.rb +75 -0
  217. data/test/namespaces/test_namespaces_in_cloned_doc.rb +31 -0
  218. data/test/namespaces/test_namespaces_in_created_doc.rb +75 -0
  219. data/test/namespaces/test_namespaces_in_parsed_doc.rb +80 -0
  220. data/test/namespaces/test_namespaces_preservation.rb +31 -0
  221. data/test/test_convert_xpath.rb +2 -47
  222. data/test/test_css_cache.rb +45 -0
  223. data/test/test_encoding_handler.rb +48 -0
  224. data/test/test_memory_leak.rb +156 -0
  225. data/test/test_nokogiri.rb +103 -1
  226. data/test/test_soap4r_sax.rb +52 -0
  227. data/test/test_xslt_transforms.rb +293 -8
  228. data/test/xml/node/test_save_options.rb +28 -0
  229. data/test/xml/node/test_subclass.rb +44 -0
  230. data/test/xml/sax/test_parser.rb +309 -8
  231. data/test/xml/sax/test_parser_context.rb +115 -0
  232. data/test/xml/sax/test_push_parser.rb +157 -0
  233. data/test/xml/test_attr.rb +67 -0
  234. data/test/xml/test_attribute_decl.rb +86 -0
  235. data/test/xml/test_builder.rb +327 -2
  236. data/test/xml/test_c14n.rb +180 -0
  237. data/test/xml/test_cdata.rb +32 -2
  238. data/test/xml/test_comment.rb +40 -0
  239. data/test/xml/test_document.rb +846 -35
  240. data/test/xml/test_document_encoding.rb +31 -0
  241. data/test/xml/test_document_fragment.rb +271 -0
  242. data/test/xml/test_dtd.rb +153 -9
  243. data/test/xml/test_dtd_encoding.rb +31 -0
  244. data/test/xml/test_element_content.rb +56 -0
  245. data/test/xml/test_element_decl.rb +73 -0
  246. data/test/xml/test_entity_decl.rb +122 -0
  247. data/test/xml/test_entity_reference.rb +251 -0
  248. data/test/xml/test_namespace.rb +96 -0
  249. data/test/xml/test_node.rb +1126 -105
  250. data/test/xml/test_node_attributes.rb +115 -0
  251. data/test/xml/test_node_encoding.rb +69 -0
  252. data/test/xml/test_node_inheritance.rb +32 -0
  253. data/test/xml/test_node_reparenting.rb +549 -0
  254. data/test/xml/test_node_set.rb +668 -9
  255. data/test/xml/test_parse_options.rb +64 -0
  256. data/test/xml/test_processing_instruction.rb +30 -0
  257. data/test/xml/test_reader.rb +589 -0
  258. data/test/xml/test_reader_encoding.rb +134 -0
  259. data/test/xml/test_relax_ng.rb +60 -0
  260. data/test/xml/test_schema.rb +142 -0
  261. data/test/xml/test_syntax_error.rb +30 -0
  262. data/test/xml/test_text.rb +49 -2
  263. data/test/xml/test_unparented_node.rb +440 -0
  264. data/test/xml/test_xinclude.rb +83 -0
  265. data/test/xml/test_xpath.rb +445 -0
  266. data/test/xslt/test_custom_functions.rb +133 -0
  267. data/test/xslt/test_exception_handling.rb +37 -0
  268. data/test_all +107 -0
  269. metadata +459 -115
  270. data/History.txt +0 -6
  271. data/README.ja.txt +0 -86
  272. data/README.txt +0 -87
  273. data/ext/nokogiri/html_sax_parser.c +0 -32
  274. data/ext/nokogiri/html_sax_parser.h +0 -11
  275. data/ext/nokogiri/native.c +0 -40
  276. data/ext/nokogiri/native.h +0 -51
  277. data/ext/nokogiri/xml_xpath.c +0 -46
  278. data/ext/nokogiri/xml_xpath.h +0 -11
  279. data/lib/nokogiri/css/generated_parser.rb +0 -653
  280. data/lib/nokogiri/css/generated_tokenizer.rb +0 -159
  281. data/lib/nokogiri/decorators/hpricot/node.rb +0 -58
  282. data/lib/nokogiri/decorators/hpricot/node_set.rb +0 -14
  283. data/lib/nokogiri/decorators/hpricot/xpath_visitor.rb +0 -17
  284. data/lib/nokogiri/decorators/hpricot.rb +0 -3
  285. data/lib/nokogiri/decorators.rb +0 -1
  286. data/lib/nokogiri/hpricot.rb +0 -47
  287. data/lib/nokogiri/xml/after_handler.rb +0 -18
  288. data/lib/nokogiri/xml/before_handler.rb +0 -32
  289. data/lib/nokogiri/xml/element.rb +0 -6
  290. data/lib/nokogiri/xml/entity_declaration.rb +0 -9
  291. data/nokogiri.gemspec +0 -34
  292. data/test/hpricot/files/basic.xhtml +0 -17
  293. data/test/hpricot/files/boingboing.html +0 -2266
  294. data/test/hpricot/files/cy0.html +0 -3653
  295. data/test/hpricot/files/immob.html +0 -400
  296. data/test/hpricot/files/pace_application.html +0 -1320
  297. data/test/hpricot/files/tenderlove.html +0 -16
  298. data/test/hpricot/files/uswebgen.html +0 -220
  299. data/test/hpricot/files/utf8.html +0 -1054
  300. data/test/hpricot/files/week9.html +0 -1723
  301. data/test/hpricot/files/why.xml +0 -19
  302. data/test/hpricot/load_files.rb +0 -7
  303. data/test/hpricot/test_alter.rb +0 -67
  304. data/test/hpricot/test_builder.rb +0 -27
  305. data/test/hpricot/test_parser.rb +0 -423
  306. data/test/hpricot/test_paths.rb +0 -15
  307. data/test/hpricot/test_preserved.rb +0 -78
  308. data/test/hpricot/test_xml.rb +0 -30
  309. data/test/test_reader.rb +0 -222
@@ -1,159 +0,0 @@
1
- #
2
- # DO NOT MODIFY!!!!
3
- # This file is automatically generated by rex 1.0.1
4
- # from lexical definition file "lib/nokogiri/css/tokenizer.rex".
5
- #
6
-
7
- module Nokogiri
8
- module CSS
9
- class GeneratedTokenizer
10
- require 'strscan'
11
-
12
- class ScanError < StandardError ; end
13
-
14
- attr_reader :lineno
15
- attr_reader :filename
16
-
17
- def scan_setup ; end
18
-
19
- def action &block
20
- yield
21
- end
22
-
23
- def scan_str( str )
24
- scan_evaluate str
25
- do_parse
26
- end
27
-
28
- def load_file( filename )
29
- @filename = filename
30
- open(filename, "r") do |f|
31
- scan_evaluate f.read
32
- end
33
- end
34
-
35
- def scan_file( filename )
36
- load_file filename
37
- do_parse
38
- end
39
-
40
- def next_token
41
- @rex_tokens.shift
42
- end
43
-
44
- def scan_evaluate( str )
45
- scan_setup
46
- @rex_tokens = []
47
- @lineno = 1
48
- ss = StringScanner.new(str)
49
- state = nil
50
- until ss.eos?
51
- text = ss.peek(1)
52
- @lineno += 1 if text == "\n"
53
- case state
54
- when nil
55
- case
56
- when (text = ss.scan(/~=/i))
57
- @rex_tokens.push action { [:INCLUDES, text] }
58
-
59
- when (text = ss.scan(/\|=/i))
60
- @rex_tokens.push action { [:DASHMATCH, text] }
61
-
62
- when (text = ss.scan(/\^=/i))
63
- @rex_tokens.push action { [:PREFIXMATCH, text] }
64
-
65
- when (text = ss.scan(/\$=/i))
66
- @rex_tokens.push action { [:SUFFIXMATCH, text] }
67
-
68
- when (text = ss.scan(/\*=/i))
69
- @rex_tokens.push action { [:SUBSTRINGMATCH, text] }
70
-
71
- when (text = ss.scan(/!=/i))
72
- @rex_tokens.push action { [:NOT_EQUAL, text] }
73
-
74
- when (text = ss.scan(/[-]?([_a-z]|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])([_a-z0-9-]|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])*\(\s*/i))
75
- @rex_tokens.push action { [:FUNCTION, text] }
76
-
77
- when (text = ss.scan(/@[-]?([_a-z]|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])([_a-z0-9-]|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])*/i))
78
- @rex_tokens.push action { [:IDENT, text] }
79
-
80
- when (text = ss.scan(/[-]?([_a-z]|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])([_a-z0-9-]|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])*/i))
81
- @rex_tokens.push action { [:IDENT, text] }
82
-
83
- when (text = ss.scan(/-?([0-9]+|[0-9]*\.[0-9]+)/i))
84
- @rex_tokens.push action { [:NUMBER, text] }
85
-
86
- when (text = ss.scan(/\#([_a-z0-9-]|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])+/i))
87
- @rex_tokens.push action { [:HASH, text] }
88
-
89
- when (text = ss.scan(/[\s\r\n\f]*\+/i))
90
- @rex_tokens.push action { [:PLUS, text] }
91
-
92
- when (text = ss.scan(/[\s\r\n\f]*>/i))
93
- @rex_tokens.push action { [:GREATER, text] }
94
-
95
- when (text = ss.scan(/[\s\r\n\f]*,/i))
96
- @rex_tokens.push action { [:COMMA, text] }
97
-
98
- when (text = ss.scan(/[\s\r\n\f]*~/i))
99
- @rex_tokens.push action { [:TILDE, text] }
100
-
101
- when (text = ss.scan(/\:not\(/i))
102
- @rex_tokens.push action { [:NOT, text] }
103
-
104
- when (text = ss.scan(/@[-]?([_a-z]|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])([_a-z0-9-]|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])*/i))
105
- @rex_tokens.push action { [:ATKEYWORD, text] }
106
-
107
- when (text = ss.scan(/-?([0-9]+|[0-9]*\.[0-9]+)%/i))
108
- @rex_tokens.push action { [:PERCENTAGE, text] }
109
-
110
- when (text = ss.scan(/-?([0-9]+|[0-9]*\.[0-9]+)[-]?([_a-z]|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])([_a-z0-9-]|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])*/i))
111
- @rex_tokens.push action { [:DIMENSION, text] }
112
-
113
- when (text = ss.scan(/<!--/i))
114
- @rex_tokens.push action { [:CDO, text] }
115
-
116
- when (text = ss.scan(/-->/i))
117
- @rex_tokens.push action { [:CDC, text] }
118
-
119
- when (text = ss.scan(/[\s\r\n\f]*\/\//i))
120
- @rex_tokens.push action { [:DOUBLESLASH, text] }
121
-
122
- when (text = ss.scan(/[\s\r\n\f]*\//i))
123
- @rex_tokens.push action { [:SLASH, text] }
124
-
125
- when (text = ss.scan(/U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})?/i))
126
- @rex_tokens.push action {[:UNICODE_RANGE, text] }
127
-
128
- when (text = ss.scan(/\/\*(.|[\r\n])*?\*\//i))
129
- ;
130
-
131
- when (text = ss.scan(/[\s\t\r\n\f]+/i))
132
- @rex_tokens.push action { [:S, text] }
133
-
134
- when (text = ss.scan(/[\.*:\[\]=\)]/i))
135
- @rex_tokens.push action { [text, text] }
136
-
137
- when (text = ss.scan(/"([^\n\r\f"]|\\n|\r\n|\r|\f|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])*"|'([^\n\r\f']|\\n|\r\n|\r|\f|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])*'/i))
138
- @rex_tokens.push action { [:STRING, text] }
139
-
140
- when (text = ss.scan(/\"([^\n\r\f\"]|\\n|\r\n|\r|\f|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])*|([^\n\r\f\']|\\n|\r\n|\r|\f|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[\s\n\r\t\f])?|\\[^\n\r\f0-9a-f])*/i))
141
- @rex_tokens.push action { [:INVALID, text] }
142
-
143
- when (text = ss.scan(/./i))
144
- @rex_tokens.push action { [text, text] }
145
-
146
- else
147
- text = ss.string[ss.pos .. -1]
148
- raise ScanError, "can not match: '" + text + "'"
149
- end # if
150
-
151
- else
152
- raise ScanError, "undefined state: '" + state.to_s + "'"
153
- end # case state
154
- end # until ss
155
- end # def scan_evaluate
156
-
157
- end # class
158
- end
159
- end
@@ -1,58 +0,0 @@
1
- module Nokogiri
2
- module Decorators
3
- module Hpricot
4
- module Node
5
- def search *paths
6
- ns = paths.last.is_a?(Hash) ? paths.pop : {}
7
- converted = paths.map { |path|
8
- convert_to_xpath(path)
9
- }.flatten.uniq
10
-
11
- namespaces = document.xml? ? document.namespaces.merge(ns) : ns
12
- super(*converted + [namespaces])
13
- end
14
- def /(path); search(path) end
15
-
16
- def xpath *args
17
- return super if args.length > 0
18
- path
19
- end
20
-
21
- def raw_attributes; self end
22
-
23
- def get_element_by_id element_id
24
- search("//*[@id='#{element_id}']").first
25
- end
26
-
27
- def get_elements_by_tag_name tag
28
- search("//#{tag}")
29
- end
30
-
31
- def convert_to_xpath(rule)
32
- rule = rule.to_s
33
- case rule
34
- when %r{^//}
35
- [".#{rule}"]
36
- when %r{^/}
37
- [rule]
38
- when %r{^.//}
39
- [rule]
40
- else
41
- ctx = CSS::Parser.parse(rule)
42
- visitor = CSS::XPathVisitor.new
43
- visitor.extend(Hpricot::XPathVisitor)
44
- ctx.map { |ast| './/' + visitor.accept(ast.preprocess!) }
45
- end
46
- end
47
-
48
- def target
49
- name
50
- end
51
-
52
- def to_original_html
53
- to_html
54
- end
55
- end
56
- end
57
- end
58
- end
@@ -1,14 +0,0 @@
1
- module Nokogiri
2
- module Decorators
3
- module Hpricot
4
- module NodeSet
5
- def filter rule
6
- ctx = CSS::Parser.parse(rule.to_s)
7
- visitor = CSS::XPathVisitor.new
8
- visitor.extend(Hpricot::XPathVisitor)
9
- search('.//self::' + visitor.accept(ctx.first))
10
- end
11
- end
12
- end
13
- end
14
- end
@@ -1,17 +0,0 @@
1
- module Nokogiri
2
- module Decorators
3
- module Hpricot
4
- ####
5
- # This mixin does custom adjustments to deal with _whyML
6
- module XPathVisitor
7
- def visit_attribute_condition node
8
- unless (node.value.first.type == :FUNCTION) or (node.value.first.value.first =~ /^@/)
9
- node.value.first.value[0] = "child::" +
10
- node.value.first.value[0]
11
- end
12
- super(node).gsub(/child::text\(\)/, 'normalize-space(child::text())')
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,3 +0,0 @@
1
- require 'nokogiri/decorators/hpricot/node'
2
- require 'nokogiri/decorators/hpricot/node_set'
3
- require 'nokogiri/decorators/hpricot/xpath_visitor'
@@ -1 +0,0 @@
1
- require 'nokogiri/decorators/hpricot'
@@ -1,47 +0,0 @@
1
- require 'nokogiri'
2
-
3
- module Nokogiri
4
- module Hpricot
5
- STag = String
6
- Elem = XML::Node
7
- NamedCharacters = Nokogiri::HTML::NamedCharacters
8
- class << self
9
- def parse(*args)
10
- doc = Nokogiri.parse(*args)
11
- add_decorators(doc)
12
- end
13
-
14
- def XML(string)
15
- doc = Nokogiri::XML.parse(string)
16
- add_decorators(doc)
17
- end
18
-
19
- def make string
20
- ns = XML::NodeSet.new
21
- ns << XML::Text.new(string)
22
- ns
23
- end
24
-
25
- def add_decorators(doc)
26
- doc.decorators['node'] << Decorators::Hpricot::Node
27
- doc.decorators['element'] << Decorators::Hpricot::Node
28
- doc.decorators['document'] << Decorators::Hpricot::Node
29
- doc.decorators['nodeset'] << Decorators::Hpricot::NodeSet
30
- doc.decorate!
31
- doc
32
- end
33
- end
34
- end
35
-
36
- class << self
37
- def Hpricot(*args, &block)
38
- if block_given?
39
- builder = Nokogiri::HTML::Builder.new(&block)
40
- Nokogiri::Hpricot.add_decorators(builder.doc)
41
- else
42
- doc = Nokogiri::HTML.parse(*args)
43
- Nokogiri::Hpricot.add_decorators(doc)
44
- end
45
- end
46
- end
47
- end
@@ -1,18 +0,0 @@
1
- module Nokogiri
2
- module XML
3
- class AfterHandler < BeforeHandler
4
- attr_accessor :after_nodes
5
-
6
- def initialize node, original_html
7
- super
8
- @after_nodes = []
9
- end
10
-
11
- def end_element name
12
- return unless @original_html =~ /<#{name}/i
13
- @after_nodes << @stack.last if @stack.length == 1
14
- @stack.pop
15
- end
16
- end
17
- end
18
- end
@@ -1,32 +0,0 @@
1
- module Nokogiri
2
- module XML
3
- class BeforeHandler < Nokogiri::XML::SAX::Document # :nodoc:
4
- def initialize node, original_html
5
- @original_html = original_html
6
- @node = node
7
- @stack = []
8
- end
9
-
10
- def start_element name, attrs = []
11
- return unless @original_html =~ /<#{name}/i
12
- node = Node.new(name)
13
- Hash[*attrs].each do |k,v|
14
- node[k] = v
15
- end
16
- node.parent = @stack.last if @stack.length != 0
17
- @stack << node
18
- end
19
-
20
- def characters string
21
- node = @stack.last
22
- node.content += string
23
- end
24
-
25
- def end_element name
26
- return unless @original_html =~ /<#{name}/i
27
- @node.add_previous_sibling @stack.last if @stack.length == 1
28
- @stack.pop
29
- end
30
- end
31
- end
32
- end
@@ -1,6 +0,0 @@
1
- module Nokogiri
2
- module XML
3
- class Element < Node
4
- end
5
- end
6
- end
@@ -1,9 +0,0 @@
1
- module Nokogiri
2
- module XML
3
- class EntityDeclaration < Node
4
- def attributes
5
- nil
6
- end
7
- end
8
- end
9
- end
data/nokogiri.gemspec DELETED
@@ -1,34 +0,0 @@
1
- Gem::Specification.new do |s|
2
- s.name = %q{nokogiri}
3
- s.version = "0.0.0"
4
- s.platform = %q{x86-mswin32-60}
5
-
6
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
7
- s.authors = ["Aaron Patterson"]
8
- s.date = %q{2008-10-29}
9
- s.description = %q{Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser.}
10
- s.email = ["aaronp@rubyforge.org"]
11
- s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.ja.txt", "README.txt"]
12
- s.files = ["History.txt", "Manifest.txt", "README.ja.txt", "README.txt", "Rakefile", "ext/nokogiri/extconf.rb", "ext/nokogiri/html_document.c", "ext/nokogiri/html_document.h", "ext/nokogiri/html_sax_parser.c", "ext/nokogiri/html_sax_parser.h", "ext/nokogiri/native.c", "ext/nokogiri/native.h", "ext/nokogiri/xml_cdata.c", "ext/nokogiri/xml_cdata.h", "ext/nokogiri/xml_document.c", "ext/nokogiri/xml_document.h", "ext/nokogiri/xml_dtd.c", "ext/nokogiri/xml_dtd.h", "ext/nokogiri/xml_node.c", "ext/nokogiri/xml_node.h", "ext/nokogiri/xml_node_set.c", "ext/nokogiri/xml_node_set.h", "ext/nokogiri/xml_reader.c", "ext/nokogiri/xml_reader.h", "ext/nokogiri/xml_sax_parser.c", "ext/nokogiri/xml_sax_parser.h", "ext/nokogiri/xml_syntax_error.c", "ext/nokogiri/xml_syntax_error.h", "ext/nokogiri/xml_text.c", "ext/nokogiri/xml_text.h", "ext/nokogiri/xml_xpath.c", "ext/nokogiri/xml_xpath.h", "ext/nokogiri/xml_xpath_context.c", "ext/nokogiri/xml_xpath_context.h", "ext/nokogiri/xslt_stylesheet.c", "ext/nokogiri/xslt_stylesheet.h", "lib/nokogiri.rb", "lib/nokogiri/css.rb", "lib/nokogiri/css/generated_parser.rb", "lib/nokogiri/css/generated_tokenizer.rb", "lib/nokogiri/css/node.rb", "lib/nokogiri/css/parser.rb", "lib/nokogiri/css/parser.y", "lib/nokogiri/css/tokenizer.rb", "lib/nokogiri/css/tokenizer.rex", "lib/nokogiri/css/xpath_visitor.rb", "lib/nokogiri/decorators.rb", "lib/nokogiri/decorators/hpricot.rb", "lib/nokogiri/decorators/hpricot/node.rb", "lib/nokogiri/decorators/hpricot/node_set.rb", "lib/nokogiri/decorators/hpricot/xpath_visitor.rb", "lib/nokogiri/hpricot.rb", "lib/nokogiri/html.rb", "lib/nokogiri/html/builder.rb", "lib/nokogiri/html/document.rb", "lib/nokogiri/html/sax/parser.rb", "lib/nokogiri/version.rb", "lib/nokogiri/xml.rb", "lib/nokogiri/xml/after_handler.rb", "lib/nokogiri/xml/before_handler.rb", "lib/nokogiri/xml/builder.rb", "lib/nokogiri/xml/cdata.rb", "lib/nokogiri/xml/document.rb", "lib/nokogiri/xml/dtd.rb", "lib/nokogiri/xml/node.rb", "lib/nokogiri/xml/node_set.rb", "lib/nokogiri/xml/notation.rb", "lib/nokogiri/xml/reader.rb", "lib/nokogiri/xml/sax.rb", "lib/nokogiri/xml/sax/document.rb", "lib/nokogiri/xml/sax/parser.rb", "lib/nokogiri/xml/syntax_error.rb", "lib/nokogiri/xml/text.rb", "lib/nokogiri/xml/xpath.rb", "lib/nokogiri/xml/xpath_context.rb", "lib/nokogiri/xslt.rb", "lib/nokogiri/xslt/stylesheet.rb", "nokogiri.gemspec", "test/css/test_nthiness.rb", "test/css/test_parser.rb", "test/css/test_tokenizer.rb", "test/css/test_xpath_visitor.rb", "test/files/staff.xml", "test/files/staff.xslt", "test/files/tlm.html", "test/helper.rb", "test/hpricot/files/basic.xhtml", "test/hpricot/files/boingboing.html", "test/hpricot/files/cy0.html", "test/hpricot/files/immob.html", "test/hpricot/files/pace_application.html", "test/hpricot/files/tenderlove.html", "test/hpricot/files/uswebgen.html", "test/hpricot/files/utf8.html", "test/hpricot/files/week9.html", "test/hpricot/files/why.xml", "test/hpricot/load_files.rb", "test/hpricot/test_alter.rb", "test/hpricot/test_builder.rb", "test/hpricot/test_parser.rb", "test/hpricot/test_paths.rb", "test/hpricot/test_preserved.rb", "test/hpricot/test_xml.rb", "test/html/sax/test_parser.rb", "test/html/test_builder.rb", "test/html/test_document.rb", "test/test_convert_xpath.rb", "test/test_nokogiri.rb", "test/test_reader.rb", "test/test_xslt_transforms.rb", "test/xml/sax/test_parser.rb", "test/xml/test_builder.rb", "test/xml/test_cdata.rb", "test/xml/test_document.rb", "test/xml/test_dtd.rb", "test/xml/test_node.rb", "test/xml/test_node_set.rb", "test/xml/test_text.rb", "ext/nokogiri/iconv.dll", "ext/nokogiri/libexslt.dll", "ext/nokogiri/libxml2.dll", "ext/nokogiri/libxslt.dll", "ext/nokogiri/zlib1.dll", "ext/nokogiri/native.so"]
13
- s.has_rdoc = true
14
- s.homepage = %q{http://github.com/tenderlove/nokogiri/tree/master}
15
- s.rdoc_options = ["--main", "README.txt"]
16
- s.require_paths = ["lib", "ext"]
17
- s.rubyforge_project = %q{nokogiri}
18
- s.rubygems_version = %q{1.2.0}
19
- s.summary = %q{Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser.}
20
- s.test_files = ["test/css/test_nthiness.rb", "test/css/test_parser.rb", "test/css/test_tokenizer.rb", "test/css/test_xpath_visitor.rb", "test/hpricot/test_alter.rb", "test/hpricot/test_builder.rb", "test/hpricot/test_parser.rb", "test/hpricot/test_paths.rb", "test/hpricot/test_preserved.rb", "test/hpricot/test_xml.rb", "test/html/sax/test_parser.rb", "test/html/test_builder.rb", "test/html/test_document.rb", "test/test_convert_xpath.rb", "test/test_nokogiri.rb", "test/test_reader.rb", "test/test_xslt_transforms.rb", "test/xml/sax/test_parser.rb", "test/xml/test_builder.rb", "test/xml/test_cdata.rb", "test/xml/test_document.rb", "test/xml/test_dtd.rb", "test/xml/test_node.rb", "test/xml/test_node_set.rb", "test/xml/test_text.rb"]
21
-
22
- if s.respond_to? :specification_version then
23
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
- s.specification_version = 2
25
-
26
- if current_version >= 3 then
27
- s.add_development_dependency(%q<hoe>, [">= 1.7.0"])
28
- else
29
- s.add_dependency(%q<hoe>, [">= 1.7.0"])
30
- end
31
- else
32
- s.add_dependency(%q<hoe>, [">= 1.7.0"])
33
- end
34
- end
@@ -1,17 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <title>Sample XHTML</title>
6
- <link rel='stylesheet' href='test1.css' />
7
- <link rel='stylesheet' href='test2.css' />
8
- <link rel='stylesheet' href='test3.css' />
9
- </head>
10
- <body id='body1'>
11
- <p>Sample XHTML for <a id="link1" href="http://code.whytheluckystiff.net/mouseHole/">MouseHole 2</a>.</p>
12
- <p class='ohmy'>Please filter <a id="link2" href="http://hobix.com/">me</a>!</p>
13
- <p>The third paragraph</p>
14
- <p class="last final"><b>THE FINAL PARAGRAPH</b></p>
15
- </body>
16
- </html>
17
-