daslabs 0.4.0

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 (536) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/CODE_OF_CONDUCT.md +74 -0
  4. data/Gemfile +6 -0
  5. data/Gemfile.lock +24 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +40 -0
  8. data/Rakefile +2 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/daslabs-0.3.0.gem +0 -0
  12. data/daslabs.gemspec +44 -0
  13. data/lib/daslabs.rb +10 -0
  14. data/lib/daslabs/baseband.rb +29 -0
  15. data/lib/daslabs/version.rb +3 -0
  16. data/vendor/cache/mini_portile2-2.3.0.gem +0 -0
  17. data/vendor/cache/nokogiri-1.8.2.gem +0 -0
  18. data/vendor/cache/rake-10.5.0.gem +0 -0
  19. data/vendor/cache/ruby/2.5.0/bin/nokogiri +27 -0
  20. data/vendor/cache/ruby/2.5.0/bin/rake +27 -0
  21. data/vendor/cache/ruby/2.5.0/cache/mini_portile2-2.3.0.gem +0 -0
  22. data/vendor/cache/ruby/2.5.0/cache/nokogiri-1.8.2.gem +0 -0
  23. data/vendor/cache/ruby/2.5.0/cache/rake-10.5.0.gem +0 -0
  24. data/vendor/cache/ruby/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/nokogiri-1.8.2/gem.build_complete +0 -0
  25. data/vendor/cache/ruby/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/nokogiri-1.8.2/gem_make.out +181 -0
  26. data/vendor/cache/ruby/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/nokogiri-1.8.2/mkmf.log +542 -0
  27. data/vendor/cache/ruby/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/nokogiri-1.8.2/nokogiri/nokogiri.bundle +0 -0
  28. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/.concourse.yml +83 -0
  29. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/.gitignore +7 -0
  30. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/.travis.yml +15 -0
  31. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/CHANGELOG.md +202 -0
  32. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/Gemfile +4 -0
  33. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/LICENSE.txt +20 -0
  34. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/README.md +245 -0
  35. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/Rakefile +29 -0
  36. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/appveyor.yml +25 -0
  37. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/concourse/mini_portile.yml +160 -0
  38. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/concourse/tasks/rake-test/task.ps1 +13 -0
  39. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/concourse/tasks/rake-test/task.sh +13 -0
  40. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/lib/mini_portile2.rb +3 -0
  41. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb +551 -0
  42. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile_cmake.rb +40 -0
  43. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/lib/mini_portile2/version.rb +3 -0
  44. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/mini_portile2.gemspec +42 -0
  45. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/assets/git/config +4 -0
  46. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/assets/gpg-fixtures/data +1 -0
  47. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/assets/gpg-fixtures/data.asc +9 -0
  48. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/assets/gpg-fixtures/data.invalid.asc +9 -0
  49. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/assets/patch 1.diff +7 -0
  50. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/assets/test mini portile-1.0.0/configure +11 -0
  51. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/assets/test-cmake-1.0/CMakeLists.txt +7 -0
  52. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/assets/test-cmake-1.0/hello.c +4 -0
  53. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/assets/test-download-archive.tar.gz +1 -0
  54. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/helper.rb +60 -0
  55. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/test_cmake.rb +64 -0
  56. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/test_cook.rb +115 -0
  57. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/test_digest.rb +215 -0
  58. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/test_download.rb +71 -0
  59. data/vendor/cache/ruby/2.5.0/gems/mini_portile2-2.3.0/test/test_proxy.rb +121 -0
  60. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/.autotest +22 -0
  61. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/.cross_rubies +8 -0
  62. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/.editorconfig +17 -0
  63. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/.gemtest +0 -0
  64. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/.travis.yml +63 -0
  65. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/CHANGELOG.md +1306 -0
  66. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/CONTRIBUTING.md +42 -0
  67. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/C_CODING_STYLE.rdoc +33 -0
  68. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/Gemfile +23 -0
  69. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/Gemfile-libxml-ruby +3 -0
  70. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/LICENSE-DEPENDENCIES.md +1612 -0
  71. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/LICENSE.md +31 -0
  72. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/Manifest.txt +365 -0
  73. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/README.md +173 -0
  74. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ROADMAP.md +111 -0
  75. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/Rakefile +354 -0
  76. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/STANDARD_RESPONSES.md +47 -0
  77. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/Y_U_NO_GEMSPEC.md +155 -0
  78. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/appveyor.yml +29 -0
  79. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/bin/nokogiri +118 -0
  80. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/build_all +44 -0
  81. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/dependencies.yml +69 -0
  82. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/.sitearchdir.-.nokogiri.time +0 -0
  83. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/Makefile +626 -0
  84. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/depend +358 -0
  85. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/extconf.rb +678 -0
  86. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_document.c +170 -0
  87. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_document.h +10 -0
  88. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_document.o +0 -0
  89. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_element_description.c +279 -0
  90. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_element_description.h +10 -0
  91. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_element_description.o +0 -0
  92. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_entity_lookup.c +32 -0
  93. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_entity_lookup.h +8 -0
  94. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_entity_lookup.o +0 -0
  95. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_sax_parser_context.c +116 -0
  96. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_sax_parser_context.h +11 -0
  97. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_sax_parser_context.o +0 -0
  98. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_sax_push_parser.c +87 -0
  99. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_sax_push_parser.h +9 -0
  100. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/html_sax_push_parser.o +0 -0
  101. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/nokogiri.bundle +0 -0
  102. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/nokogiri.c +141 -0
  103. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/nokogiri.h +121 -0
  104. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/nokogiri.o +0 -0
  105. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_attr.c +98 -0
  106. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_attr.h +9 -0
  107. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_attr.o +0 -0
  108. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_attribute_decl.c +70 -0
  109. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_attribute_decl.h +9 -0
  110. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_attribute_decl.o +0 -0
  111. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_cdata.c +60 -0
  112. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_cdata.h +9 -0
  113. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_cdata.o +0 -0
  114. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_comment.c +69 -0
  115. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_comment.h +9 -0
  116. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_comment.o +0 -0
  117. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_document.c +606 -0
  118. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_document.h +23 -0
  119. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_document.o +0 -0
  120. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_document_fragment.c +48 -0
  121. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_document_fragment.h +10 -0
  122. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_document_fragment.o +0 -0
  123. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_dtd.c +202 -0
  124. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_dtd.h +10 -0
  125. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_dtd.o +0 -0
  126. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_element_content.c +123 -0
  127. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_element_content.h +10 -0
  128. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_element_content.o +0 -0
  129. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_element_decl.c +69 -0
  130. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_element_decl.h +9 -0
  131. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_element_decl.o +0 -0
  132. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_encoding_handler.c +79 -0
  133. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_encoding_handler.h +8 -0
  134. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_encoding_handler.o +0 -0
  135. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_entity_decl.c +110 -0
  136. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_entity_decl.h +10 -0
  137. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_entity_decl.o +0 -0
  138. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_entity_reference.c +52 -0
  139. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_entity_reference.h +9 -0
  140. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_entity_reference.o +0 -0
  141. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_io.c +60 -0
  142. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_io.h +11 -0
  143. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_io.o +0 -0
  144. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_libxml2_hacks.c +112 -0
  145. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_libxml2_hacks.h +12 -0
  146. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_libxml2_hacks.o +0 -0
  147. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_namespace.c +117 -0
  148. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_namespace.h +13 -0
  149. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_namespace.o +0 -0
  150. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_node.c +1682 -0
  151. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_node.h +13 -0
  152. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_node.o +0 -0
  153. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_node_set.c +485 -0
  154. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_node_set.h +13 -0
  155. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_node_set.o +0 -0
  156. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_processing_instruction.c +56 -0
  157. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_processing_instruction.h +9 -0
  158. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_processing_instruction.o +0 -0
  159. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_reader.c +668 -0
  160. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_reader.h +10 -0
  161. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_reader.o +0 -0
  162. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_relax_ng.c +161 -0
  163. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_relax_ng.h +9 -0
  164. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_relax_ng.o +0 -0
  165. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_sax_parser.c +310 -0
  166. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_sax_parser.h +39 -0
  167. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_sax_parser.o +0 -0
  168. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_sax_parser_context.c +262 -0
  169. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_sax_parser_context.h +10 -0
  170. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_sax_parser_context.o +0 -0
  171. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_sax_push_parser.c +159 -0
  172. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_sax_push_parser.h +9 -0
  173. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_sax_push_parser.o +0 -0
  174. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_schema.c +205 -0
  175. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_schema.h +9 -0
  176. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_schema.o +0 -0
  177. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_syntax_error.c +64 -0
  178. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_syntax_error.h +13 -0
  179. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_syntax_error.o +0 -0
  180. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_text.c +52 -0
  181. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_text.h +9 -0
  182. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_text.o +0 -0
  183. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_xpath_context.c +298 -0
  184. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_xpath_context.h +10 -0
  185. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xml_xpath_context.o +0 -0
  186. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xslt_stylesheet.c +270 -0
  187. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xslt_stylesheet.h +14 -0
  188. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/ext/nokogiri/xslt_stylesheet.o +0 -0
  189. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri.rb +144 -0
  190. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css.rb +27 -0
  191. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/node.rb +52 -0
  192. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/parser.rb +732 -0
  193. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/parser.y +261 -0
  194. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/parser_extras.rb +91 -0
  195. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/syntax_error.rb +7 -0
  196. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/tokenizer.rb +152 -0
  197. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/tokenizer.rex +55 -0
  198. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/xpath_visitor.rb +223 -0
  199. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/decorators/slop.rb +42 -0
  200. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html.rb +37 -0
  201. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/builder.rb +35 -0
  202. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/document.rb +335 -0
  203. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/document_fragment.rb +39 -0
  204. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/element_description.rb +23 -0
  205. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/element_description_defaults.rb +671 -0
  206. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/entity_lookup.rb +13 -0
  207. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/sax/parser.rb +62 -0
  208. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/sax/parser_context.rb +16 -0
  209. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/sax/push_parser.rb +36 -0
  210. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/nokogiri.bundle +0 -0
  211. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/syntax_error.rb +4 -0
  212. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/version.rb +109 -0
  213. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml.rb +75 -0
  214. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/attr.rb +14 -0
  215. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/attribute_decl.rb +18 -0
  216. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/builder.rb +443 -0
  217. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/cdata.rb +11 -0
  218. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/character_data.rb +7 -0
  219. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/document.rb +285 -0
  220. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/document_fragment.rb +149 -0
  221. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/dtd.rb +32 -0
  222. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/element_content.rb +36 -0
  223. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/element_decl.rb +13 -0
  224. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/entity_decl.rb +19 -0
  225. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/entity_reference.rb +18 -0
  226. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/namespace.rb +13 -0
  227. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/node.rb +832 -0
  228. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/node/save_options.rb +61 -0
  229. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/node_set.rb +327 -0
  230. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/notation.rb +6 -0
  231. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/parse_options.rb +120 -0
  232. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/pp.rb +2 -0
  233. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/pp/character_data.rb +18 -0
  234. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/pp/node.rb +56 -0
  235. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/processing_instruction.rb +8 -0
  236. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/reader.rb +112 -0
  237. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/relax_ng.rb +32 -0
  238. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/sax.rb +4 -0
  239. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/sax/document.rb +171 -0
  240. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/sax/parser.rb +122 -0
  241. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/sax/parser_context.rb +16 -0
  242. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/sax/push_parser.rb +60 -0
  243. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/schema.rb +63 -0
  244. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/searchable.rb +230 -0
  245. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/syntax_error.rb +70 -0
  246. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/text.rb +9 -0
  247. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/xpath.rb +10 -0
  248. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/xpath/syntax_error.rb +11 -0
  249. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/xpath_context.rb +16 -0
  250. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xslt.rb +56 -0
  251. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xslt/stylesheet.rb +25 -0
  252. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/lib/xsd/xmlparser/nokogiri.rb +102 -0
  253. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/patches/sort-patches-by-date +25 -0
  254. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/suppressions/README.txt +1 -0
  255. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/suppressions/nokogiri_ruby-2.supp +10 -0
  256. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/tasks/test.rb +100 -0
  257. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/css/test_nthiness.rb +226 -0
  258. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/css/test_parser.rb +369 -0
  259. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/css/test_tokenizer.rb +215 -0
  260. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/css/test_xpath_visitor.rb +96 -0
  261. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/decorators/test_slop.rb +23 -0
  262. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/2ch.html +108 -0
  263. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/GH_1042.html +18 -0
  264. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/address_book.rlx +12 -0
  265. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/address_book.xml +10 -0
  266. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/atom.xml +344 -0
  267. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/bar/bar.xsd +4 -0
  268. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/bogus.xml +0 -0
  269. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/dont_hurt_em_why.xml +422 -0
  270. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/encoding.html +82 -0
  271. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/encoding.xhtml +84 -0
  272. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/exslt.xml +8 -0
  273. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/exslt.xslt +35 -0
  274. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/foo/foo.xsd +4 -0
  275. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/metacharset.html +10 -0
  276. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/namespace_pressure_test.xml +1684 -0
  277. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/noencoding.html +47 -0
  278. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/po.xml +32 -0
  279. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/po.xsd +66 -0
  280. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/saml/saml20assertion_schema.xsd +283 -0
  281. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/saml/saml20protocol_schema.xsd +302 -0
  282. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/saml/xenc_schema.xsd +146 -0
  283. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/saml/xmldsig_schema.xsd +318 -0
  284. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/shift_jis.html +10 -0
  285. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/shift_jis.xml +5 -0
  286. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/shift_jis_no_charset.html +9 -0
  287. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/slow-xpath.xml +25509 -0
  288. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/snuggles.xml +3 -0
  289. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/staff.dtd +10 -0
  290. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/staff.xml +59 -0
  291. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/staff.xslt +32 -0
  292. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/test_document_url/bar.xml +2 -0
  293. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/test_document_url/document.dtd +4 -0
  294. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/test_document_url/document.xml +6 -0
  295. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/tlm.html +851 -0
  296. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/to_be_xincluded.xml +2 -0
  297. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/valid_bar.xml +2 -0
  298. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/files/xinclude.xml +4 -0
  299. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/helper.rb +271 -0
  300. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/html/sax/test_parser.rb +168 -0
  301. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/html/sax/test_parser_context.rb +46 -0
  302. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/html/sax/test_parser_text.rb +163 -0
  303. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/html/sax/test_push_parser.rb +87 -0
  304. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/html/test_builder.rb +164 -0
  305. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/html/test_document.rb +712 -0
  306. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/html/test_document_encoding.rb +143 -0
  307. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/html/test_document_fragment.rb +304 -0
  308. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/html/test_element_description.rb +105 -0
  309. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/html/test_named_characters.rb +14 -0
  310. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/html/test_node.rb +212 -0
  311. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/html/test_node_encoding.rb +91 -0
  312. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/namespaces/test_additional_namespaces_in_builder_doc.rb +14 -0
  313. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/namespaces/test_namespaces_aliased_default.rb +24 -0
  314. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/namespaces/test_namespaces_in_builder_doc.rb +75 -0
  315. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/namespaces/test_namespaces_in_cloned_doc.rb +31 -0
  316. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/namespaces/test_namespaces_in_created_doc.rb +75 -0
  317. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/namespaces/test_namespaces_in_parsed_doc.rb +80 -0
  318. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/namespaces/test_namespaces_preservation.rb +31 -0
  319. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/test_convert_xpath.rb +135 -0
  320. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/test_css_cache.rb +45 -0
  321. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/test_encoding_handler.rb +48 -0
  322. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/test_memory_leak.rb +156 -0
  323. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/test_nokogiri.rb +138 -0
  324. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/test_soap4r_sax.rb +52 -0
  325. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/test_xslt_transforms.rb +314 -0
  326. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/node/test_save_options.rb +28 -0
  327. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/node/test_subclass.rb +44 -0
  328. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/sax/test_parser.rb +394 -0
  329. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/sax/test_parser_context.rb +115 -0
  330. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/sax/test_parser_text.rb +202 -0
  331. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/sax/test_push_parser.rb +205 -0
  332. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_attr.rb +74 -0
  333. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_attribute_decl.rb +86 -0
  334. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_builder.rb +341 -0
  335. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_c14n.rb +180 -0
  336. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_cdata.rb +54 -0
  337. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_comment.rb +40 -0
  338. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_document.rb +982 -0
  339. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_document_encoding.rb +31 -0
  340. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_document_fragment.rb +298 -0
  341. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_dtd.rb +187 -0
  342. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_dtd_encoding.rb +31 -0
  343. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_element_content.rb +56 -0
  344. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_element_decl.rb +73 -0
  345. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_entity_decl.rb +122 -0
  346. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_entity_reference.rb +262 -0
  347. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_namespace.rb +96 -0
  348. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_node.rb +1242 -0
  349. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_node_attributes.rb +115 -0
  350. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_node_encoding.rb +75 -0
  351. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_node_inheritance.rb +32 -0
  352. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_node_reparenting.rb +563 -0
  353. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_node_set.rb +782 -0
  354. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_parse_options.rb +64 -0
  355. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_processing_instruction.rb +30 -0
  356. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_reader.rb +608 -0
  357. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_reader_encoding.rb +134 -0
  358. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_relax_ng.rb +60 -0
  359. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_schema.rb +142 -0
  360. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_syntax_error.rb +36 -0
  361. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_text.rb +60 -0
  362. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_unparented_node.rb +483 -0
  363. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_xinclude.rb +83 -0
  364. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xml/test_xpath.rb +462 -0
  365. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xslt/test_custom_functions.rb +133 -0
  366. data/vendor/cache/ruby/2.5.0/gems/nokogiri-1.8.2/test/xslt/test_exception_handling.rb +37 -0
  367. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/.autotest +7 -0
  368. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/.rubocop.yml +27 -0
  369. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/.togglerc +7 -0
  370. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
  371. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/History.rdoc +659 -0
  372. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/MIT-LICENSE +21 -0
  373. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/Manifest.txt +166 -0
  374. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/README.rdoc +139 -0
  375. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/Rakefile +81 -0
  376. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/bin/rake +33 -0
  377. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
  378. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
  379. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
  380. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/example/a.c +6 -0
  381. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/example/b.c +6 -0
  382. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/example/main.c +11 -0
  383. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
  384. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/jamis.rb +591 -0
  385. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
  386. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/rake.1 +141 -0
  387. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
  388. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/rational.rdoc +151 -0
  389. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
  390. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
  391. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
  392. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
  393. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
  394. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
  395. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
  396. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
  397. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
  398. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
  399. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
  400. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
  401. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
  402. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
  403. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
  404. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
  405. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
  406. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
  407. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
  408. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
  409. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
  410. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
  411. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
  412. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
  413. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
  414. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
  415. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
  416. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
  417. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
  418. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
  419. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake.rb +79 -0
  420. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
  421. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/application.rb +790 -0
  422. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
  423. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
  424. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
  425. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
  426. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
  427. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
  428. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
  429. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  430. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
  431. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
  432. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
  433. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
  434. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
  435. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
  436. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
  437. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
  438. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
  439. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
  440. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
  441. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
  442. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
  443. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
  444. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
  445. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
  446. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
  447. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
  448. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
  449. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
  450. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
  451. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
  452. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
  453. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
  454. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
  455. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
  456. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
  457. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
  458. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
  459. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
  460. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
  461. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
  462. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
  463. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
  464. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
  465. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
  466. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
  467. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/task.rb +383 -0
  468. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
  469. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
  470. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
  471. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
  472. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
  473. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
  474. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
  475. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
  476. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/version.rb +7 -0
  477. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
  478. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/rakelib/publish.rake +20 -0
  479. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
  480. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/file_creation.rb +34 -0
  481. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/helper.rb +129 -0
  482. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
  483. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
  484. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
  485. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake.rb +40 -0
  486. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
  487. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
  488. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
  489. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
  490. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
  491. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
  492. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
  493. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
  494. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
  495. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
  496. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
  497. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
  498. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
  499. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
  500. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
  501. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
  502. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
  503. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
  504. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
  505. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
  506. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
  507. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
  508. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
  509. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
  510. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
  511. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
  512. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
  513. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
  514. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
  515. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
  516. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
  517. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
  518. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
  519. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
  520. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
  521. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
  522. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
  523. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
  524. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
  525. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
  526. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
  527. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
  528. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
  529. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
  530. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
  531. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
  532. data/vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
  533. data/vendor/cache/ruby/2.5.0/specifications/mini_portile2-2.3.0.gemspec +48 -0
  534. data/vendor/cache/ruby/2.5.0/specifications/nokogiri-1.8.2.gemspec +78 -0
  535. data/vendor/cache/ruby/2.5.0/specifications/rake-10.5.0.gemspec +43 -0
  536. metadata +635 -0
@@ -0,0 +1,55 @@
1
+ module Nokogiri
2
+ module CSS
3
+ class Tokenizer # :nodoc:
4
+
5
+ macro
6
+ nl \n|\r\n|\r|\f
7
+ w [\s]*
8
+ nonascii [^\0-\177]
9
+ num -?([0-9]+|[0-9]*\.[0-9]+)
10
+ unicode \\[0-9A-Fa-f]{1,6}(\r\n|[\s])?
11
+
12
+ escape {unicode}|\\[^\n\r\f0-9A-Fa-f]
13
+ nmchar [_A-Za-z0-9-]|{nonascii}|{escape}
14
+ nmstart [_A-Za-z]|{nonascii}|{escape}
15
+ ident [-@]?({nmstart})({nmchar})*
16
+ name ({nmchar})+
17
+ string1 "([^\n\r\f"]|{nl}|{nonascii}|{escape})*"
18
+ string2 '([^\n\r\f']|{nl}|{nonascii}|{escape})*'
19
+ string {string1}|{string2}
20
+
21
+ rule
22
+
23
+ # [:state] pattern [actions]
24
+
25
+ has\({w} { [:HAS, text] }
26
+ {ident}\({w} { [:FUNCTION, text] }
27
+ {ident} { [:IDENT, text] }
28
+ \#{name} { [:HASH, text] }
29
+ {w}~={w} { [:INCLUDES, text] }
30
+ {w}\|={w} { [:DASHMATCH, text] }
31
+ {w}\^={w} { [:PREFIXMATCH, text] }
32
+ {w}\$={w} { [:SUFFIXMATCH, text] }
33
+ {w}\*={w} { [:SUBSTRINGMATCH, text] }
34
+ {w}!={w} { [:NOT_EQUAL, text] }
35
+ {w}={w} { [:EQUAL, text] }
36
+ {w}\) { [:RPAREN, text] }
37
+ \[{w} { [:LSQUARE, text] }
38
+ {w}\] { [:RSQUARE, text] }
39
+ {w}\+{w} { [:PLUS, text] }
40
+ {w}>{w} { [:GREATER, text] }
41
+ {w},{w} { [:COMMA, text] }
42
+ {w}~{w} { [:TILDE, text] }
43
+ \:not\({w} { [:NOT, text] }
44
+ {num} { [:NUMBER, text] }
45
+ {w}\/\/{w} { [:DOUBLESLASH, text] }
46
+ {w}\/{w} { [:SLASH, text] }
47
+
48
+ U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? {[:UNICODE_RANGE, text] }
49
+
50
+ [\s]+ { [:S, text] }
51
+ {string} { [:STRING, text] }
52
+ . { [text, text] }
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,223 @@
1
+ module Nokogiri
2
+ module CSS
3
+ class XPathVisitor # :nodoc:
4
+ def visit_function node
5
+
6
+ msg = :"visit_function_#{node.value.first.gsub(/[(]/, '')}"
7
+ return self.send(msg, node) if self.respond_to?(msg)
8
+
9
+ case node.value.first
10
+ when /^text\(/
11
+ 'child::text()'
12
+ when /^self\(/
13
+ "self::#{node.value[1]}"
14
+ when /^eq\(/
15
+ "position() = #{node.value[1]}"
16
+ when /^(nth|nth-of-type)\(/
17
+ if node.value[1].is_a?(Nokogiri::CSS::Node) and node.value[1].type == :NTH
18
+ nth(node.value[1])
19
+ else
20
+ "position() = #{node.value[1]}"
21
+ end
22
+ when /^nth-child\(/
23
+ if node.value[1].is_a?(Nokogiri::CSS::Node) and node.value[1].type == :NTH
24
+ nth(node.value[1], :child => true)
25
+ else
26
+ "count(preceding-sibling::*) = #{node.value[1].to_i-1}"
27
+ end
28
+ when /^nth-last-of-type\(/
29
+ if node.value[1].is_a?(Nokogiri::CSS::Node) and node.value[1].type == :NTH
30
+ nth(node.value[1], :last => true)
31
+ else
32
+ index = node.value[1].to_i - 1
33
+ index == 0 ? "position() = last()" : "position() = last() - #{index}"
34
+ end
35
+ when /^nth-last-child\(/
36
+ if node.value[1].is_a?(Nokogiri::CSS::Node) and node.value[1].type == :NTH
37
+ nth(node.value[1], :last => true, :child => true)
38
+ else
39
+ "count(following-sibling::*) = #{node.value[1].to_i-1}"
40
+ end
41
+ when /^(first|first-of-type)\(/
42
+ "position() = 1"
43
+ when /^(last|last-of-type)\(/
44
+ "position() = last()"
45
+ when /^contains\(/
46
+ "contains(., #{node.value[1]})"
47
+ when /^gt\(/
48
+ "position() > #{node.value[1]}"
49
+ when /^only-child\(/
50
+ "last() = 1"
51
+ when /^comment\(/
52
+ "comment()"
53
+ when /^has\(/
54
+ node.value[1].accept(self)
55
+ else
56
+ args = ['.'] + node.value[1..-1]
57
+ "#{node.value.first}#{args.join(', ')})"
58
+ end
59
+ end
60
+
61
+ def visit_not node
62
+ child = node.value.first
63
+ if :ELEMENT_NAME == child.type
64
+ "not(self::#{child.accept(self)})"
65
+ else
66
+ "not(#{child.accept(self)})"
67
+ end
68
+ end
69
+
70
+ def visit_id node
71
+ node.value.first =~ /^#(.*)$/
72
+ "@id = '#{$1}'"
73
+ end
74
+
75
+ def visit_attribute_condition node
76
+ attribute = if (node.value.first.type == :FUNCTION) or (node.value.first.value.first =~ /::/)
77
+ ''
78
+ else
79
+ '@'
80
+ end
81
+ attribute += node.value.first.accept(self)
82
+
83
+ # Support non-standard css
84
+ attribute.gsub!(/^@@/, '@')
85
+
86
+ return attribute unless node.value.length == 3
87
+
88
+ value = node.value.last
89
+ value = "'#{value}'" if value !~ /^['"]/
90
+
91
+ case node.value[1]
92
+ when :equal
93
+ attribute + " = " + "#{value}"
94
+ when :not_equal
95
+ attribute + " != " + "#{value}"
96
+ when :substring_match
97
+ "contains(#{attribute}, #{value})"
98
+ when :prefix_match
99
+ "starts-with(#{attribute}, #{value})"
100
+ when :dash_match
101
+ "#{attribute} = #{value} or starts-with(#{attribute}, concat(#{value}, '-'))"
102
+ when :includes
103
+ "contains(concat(\" \", #{attribute}, \" \"),concat(\" \", #{value}, \" \"))"
104
+ when :suffix_match
105
+ "substring(#{attribute}, string-length(#{attribute}) - " +
106
+ "string-length(#{value}) + 1, string-length(#{value})) = #{value}"
107
+ else
108
+ attribute + " #{node.value[1]} " + "#{value}"
109
+ end
110
+ end
111
+
112
+ def visit_pseudo_class node
113
+ if node.value.first.is_a?(Nokogiri::CSS::Node) and node.value.first.type == :FUNCTION
114
+ node.value.first.accept(self)
115
+ else
116
+ msg = :"visit_pseudo_class_#{node.value.first.gsub(/[(]/, '')}"
117
+ return self.send(msg, node) if self.respond_to?(msg)
118
+
119
+ case node.value.first
120
+ when "first" then "position() = 1"
121
+ when "first-child" then "count(preceding-sibling::*) = 0"
122
+ when "last" then "position() = last()"
123
+ when "last-child" then "count(following-sibling::*) = 0"
124
+ when "first-of-type" then "position() = 1"
125
+ when "last-of-type" then "position() = last()"
126
+ when "only-child" then "count(preceding-sibling::*) = 0 and count(following-sibling::*) = 0"
127
+ when "only-of-type" then "last() = 1"
128
+ when "empty" then "not(node())"
129
+ when "parent" then "node()"
130
+ when "root" then "not(parent::*)"
131
+ else
132
+ node.value.first + "(.)"
133
+ end
134
+ end
135
+ end
136
+
137
+ def visit_class_condition node
138
+ "contains(concat(' ', normalize-space(@class), ' '), ' #{node.value.first} ')"
139
+ end
140
+
141
+ def visit_combinator node
142
+ if is_of_type_pseudo_class?(node.value.last)
143
+ "#{node.value.first.accept(self) if node.value.first}][#{node.value.last.accept(self)}"
144
+ else
145
+ "#{node.value.first.accept(self) if node.value.first} and #{node.value.last.accept(self)}"
146
+ end
147
+ end
148
+
149
+ {
150
+ 'direct_adjacent_selector' => "/following-sibling::*[1]/self::",
151
+ 'following_selector' => "/following-sibling::",
152
+ 'descendant_selector' => '//',
153
+ 'child_selector' => '/',
154
+ }.each do |k,v|
155
+ class_eval %{
156
+ def visit_#{k} node
157
+ "\#{node.value.first.accept(self) if node.value.first}#{v}\#{node.value.last.accept(self)}"
158
+ end
159
+ }
160
+ end
161
+
162
+ def visit_conditional_selector node
163
+ node.value.first.accept(self) + '[' +
164
+ node.value.last.accept(self) + ']'
165
+ end
166
+
167
+ def visit_element_name node
168
+ node.value.first
169
+ end
170
+
171
+ def accept node
172
+ node.accept(self)
173
+ end
174
+
175
+ private
176
+ def nth node, options={}
177
+ raise ArgumentError, "expected an+b node to contain 4 tokens, but is #{node.value.inspect}" unless node.value.size == 4
178
+
179
+ a, b = read_a_and_positive_b node.value
180
+ position = if options[:child]
181
+ options[:last] ? "(count(following-sibling::*) + 1)" : "(count(preceding-sibling::*) + 1)"
182
+ else
183
+ options[:last] ? "(last()-position()+1)" : "position()"
184
+ end
185
+
186
+ if b.zero?
187
+ "(#{position} mod #{a}) = 0"
188
+ else
189
+ compare = a < 0 ? "<=" : ">="
190
+ if a.abs == 1
191
+ "#{position} #{compare} #{b}"
192
+ else
193
+ "(#{position} #{compare} #{b}) and (((#{position}-#{b}) mod #{a.abs}) = 0)"
194
+ end
195
+ end
196
+ end
197
+
198
+ def read_a_and_positive_b values
199
+ op = values[2]
200
+ if op == "+"
201
+ a = values[0].to_i
202
+ b = values[3].to_i
203
+ elsif op == "-"
204
+ a = values[0].to_i
205
+ b = a - (values[3].to_i % a)
206
+ else
207
+ raise ArgumentError, "expected an+b node to have either + or - as the operator, but is #{op.inspect}"
208
+ end
209
+ [a, b]
210
+ end
211
+
212
+ def is_of_type_pseudo_class? node
213
+ if node.type==:PSEUDO_CLASS
214
+ if node.value[0].is_a?(Nokogiri::CSS::Node) and node.value[0].type == :FUNCTION
215
+ node.value[0].value[0]
216
+ else
217
+ node.value[0]
218
+ end =~ /(nth|first|last|only)-of-type(\()?/
219
+ end
220
+ end
221
+ end
222
+ end
223
+ end
@@ -0,0 +1,42 @@
1
+ module Nokogiri
2
+ module Decorators
3
+ ###
4
+ # The Slop decorator implements method missing such that a methods may be
5
+ # used instead of XPath or CSS. See Nokogiri.Slop
6
+ module Slop
7
+ # The default XPath search context for Slop
8
+ XPATH_PREFIX = "./"
9
+
10
+ ###
11
+ # look for node with +name+. See Nokogiri.Slop
12
+ def method_missing name, *args, &block
13
+ if args.empty?
14
+ list = xpath("#{XPATH_PREFIX}#{name.to_s.sub(/^_/, '')}")
15
+ elsif args.first.is_a? Hash
16
+ hash = args.first
17
+ if hash[:css]
18
+ list = css("#{name}#{hash[:css]}")
19
+ elsif hash[:xpath]
20
+ conds = Array(hash[:xpath]).join(' and ')
21
+ list = xpath("#{XPATH_PREFIX}#{name}[#{conds}]")
22
+ end
23
+ else
24
+ CSS::Parser.without_cache do
25
+ list = xpath(
26
+ *CSS.xpath_for("#{name}#{args.first}", :prefix => XPATH_PREFIX)
27
+ )
28
+ end
29
+ end
30
+
31
+ super if list.empty?
32
+ list.length == 1 ? list.first : list
33
+ end
34
+
35
+ def respond_to_missing? name, include_private = false
36
+ list = xpath("#{XPATH_PREFIX}#{name.to_s.sub(/^_/, '')}")
37
+
38
+ !list.empty?
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,37 @@
1
+ require 'nokogiri/html/entity_lookup'
2
+ require 'nokogiri/html/document'
3
+ require 'nokogiri/html/document_fragment'
4
+ require 'nokogiri/html/sax/parser_context'
5
+ require 'nokogiri/html/sax/parser'
6
+ require 'nokogiri/html/sax/push_parser'
7
+ require 'nokogiri/html/element_description'
8
+ require 'nokogiri/html/element_description_defaults'
9
+
10
+ module Nokogiri
11
+ class << self
12
+ ###
13
+ # Parse HTML. Convenience method for Nokogiri::HTML::Document.parse
14
+ def HTML thing, url = nil, encoding = nil, options = XML::ParseOptions::DEFAULT_HTML, &block
15
+ Nokogiri::HTML::Document.parse(thing, url, encoding, options, &block)
16
+ end
17
+ end
18
+
19
+ module HTML
20
+ class << self
21
+ ###
22
+ # Parse HTML. Convenience method for Nokogiri::HTML::Document.parse
23
+ def parse thing, url = nil, encoding = nil, options = XML::ParseOptions::DEFAULT_HTML, &block
24
+ Document.parse(thing, url, encoding, options, &block)
25
+ end
26
+
27
+ ####
28
+ # Parse a fragment from +string+ in to a NodeSet.
29
+ def fragment string, encoding = nil
30
+ HTML::DocumentFragment.parse string, encoding
31
+ end
32
+ end
33
+
34
+ # Instance of Nokogiri::HTML::EntityLookup
35
+ NamedCharacters = EntityLookup.new
36
+ end
37
+ end
@@ -0,0 +1,35 @@
1
+ module Nokogiri
2
+ module HTML
3
+ ###
4
+ # Nokogiri HTML builder is used for building HTML documents. It is very
5
+ # similar to the Nokogiri::XML::Builder. In fact, you should go read the
6
+ # documentation for Nokogiri::XML::Builder before reading this
7
+ # documentation.
8
+ #
9
+ # == Synopsis:
10
+ #
11
+ # Create an HTML document with a body that has an onload attribute, and a
12
+ # span tag with a class of "bold" that has content of "Hello world".
13
+ #
14
+ # builder = Nokogiri::HTML::Builder.new do |doc|
15
+ # doc.html {
16
+ # doc.body(:onload => 'some_func();') {
17
+ # doc.span.bold {
18
+ # doc.text "Hello world"
19
+ # }
20
+ # }
21
+ # }
22
+ # end
23
+ # puts builder.to_html
24
+ #
25
+ # The HTML builder inherits from the XML builder, so make sure to read the
26
+ # Nokogiri::XML::Builder documentation.
27
+ class Builder < Nokogiri::XML::Builder
28
+ ###
29
+ # Convert the builder to HTML
30
+ def to_html
31
+ @doc.to_html
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,335 @@
1
+ module Nokogiri
2
+ module HTML
3
+ class Document < Nokogiri::XML::Document
4
+ ###
5
+ # Get the meta tag encoding for this document. If there is no meta tag,
6
+ # then nil is returned.
7
+ def meta_encoding
8
+ case
9
+ when meta = at('//meta[@charset]')
10
+ meta[:charset]
11
+ when meta = meta_content_type
12
+ meta['content'][/charset\s*=\s*([\w-]+)/i, 1]
13
+ end
14
+ end
15
+
16
+ ###
17
+ # Set the meta tag encoding for this document.
18
+ #
19
+ # If an meta encoding tag is already present, its content is
20
+ # replaced with the given text.
21
+ #
22
+ # Otherwise, this method tries to create one at an appropriate
23
+ # place supplying head and/or html elements as necessary, which
24
+ # is inside a head element if any, and before any text node or
25
+ # content element (typically <body>) if any.
26
+ #
27
+ # The result when trying to set an encoding that is different
28
+ # from the document encoding is undefined.
29
+ #
30
+ # Beware in CRuby, that libxml2 automatically inserts a meta tag
31
+ # into a head element.
32
+ def meta_encoding= encoding
33
+ case
34
+ when meta = meta_content_type
35
+ meta['content'] = 'text/html; charset=%s' % encoding
36
+ encoding
37
+ when meta = at('//meta[@charset]')
38
+ meta['charset'] = encoding
39
+ else
40
+ meta = XML::Node.new('meta', self)
41
+ if dtd = internal_subset and dtd.html5_dtd?
42
+ meta['charset'] = encoding
43
+ else
44
+ meta['http-equiv'] = 'Content-Type'
45
+ meta['content'] = 'text/html; charset=%s' % encoding
46
+ end
47
+
48
+ case
49
+ when head = at('//head')
50
+ head.prepend_child(meta)
51
+ else
52
+ set_metadata_element(meta)
53
+ end
54
+ encoding
55
+ end
56
+ end
57
+
58
+ def meta_content_type
59
+ xpath('//meta[@http-equiv and boolean(@content)]').find { |node|
60
+ node['http-equiv'] =~ /\AContent-Type\z/i
61
+ }
62
+ end
63
+ private :meta_content_type
64
+
65
+ ###
66
+ # Get the title string of this document. Return nil if there is
67
+ # no title tag.
68
+ def title
69
+ title = at('//title') and title.inner_text
70
+ end
71
+
72
+ ###
73
+ # Set the title string of this document.
74
+ #
75
+ # If a title element is already present, its content is replaced
76
+ # with the given text.
77
+ #
78
+ # Otherwise, this method tries to create one at an appropriate
79
+ # place supplying head and/or html elements as necessary, which
80
+ # is inside a head element if any, right after a meta
81
+ # encoding/charset tag if any, and before any text node or
82
+ # content element (typically <body>) if any.
83
+ def title=(text)
84
+ tnode = XML::Text.new(text, self)
85
+ if title = at('//title')
86
+ title.children = tnode
87
+ return text
88
+ end
89
+
90
+ title = XML::Node.new('title', self) << tnode
91
+ case
92
+ when head = at('//head')
93
+ head << title
94
+ when meta = at('//meta[@charset]') || meta_content_type
95
+ # better put after charset declaration
96
+ meta.add_next_sibling(title)
97
+ else
98
+ set_metadata_element(title)
99
+ end
100
+ text
101
+ end
102
+
103
+ def set_metadata_element(element)
104
+ case
105
+ when head = at('//head')
106
+ head << element
107
+ when html = at('//html')
108
+ head = html.prepend_child(XML::Node.new('head', self))
109
+ head.prepend_child(element)
110
+ when first = children.find { |node|
111
+ case node
112
+ when XML::Element, XML::Text
113
+ true
114
+ end
115
+ }
116
+ # We reach here only if the underlying document model
117
+ # allows <html>/<head> elements to be omitted and does not
118
+ # automatically supply them.
119
+ first.add_previous_sibling(element)
120
+ else
121
+ html = add_child(XML::Node.new('html', self))
122
+ head = html.add_child(XML::Node.new('head', self))
123
+ head.prepend_child(element)
124
+ end
125
+ end
126
+ private :set_metadata_element
127
+
128
+ ####
129
+ # Serialize Node using +options+. Save options can also be set using a
130
+ # block. See SaveOptions.
131
+ #
132
+ # These two statements are equivalent:
133
+ #
134
+ # node.serialize(:encoding => 'UTF-8', :save_with => FORMAT | AS_XML)
135
+ #
136
+ # or
137
+ #
138
+ # node.serialize(:encoding => 'UTF-8') do |config|
139
+ # config.format.as_xml
140
+ # end
141
+ #
142
+ def serialize options = {}
143
+ options[:save_with] ||= XML::Node::SaveOptions::DEFAULT_HTML
144
+ super
145
+ end
146
+
147
+ ####
148
+ # Create a Nokogiri::XML::DocumentFragment from +tags+
149
+ def fragment tags = nil
150
+ DocumentFragment.new(self, tags, self.root)
151
+ end
152
+
153
+ class << self
154
+ ###
155
+ # Parse HTML. +string_or_io+ may be a String, or any object that
156
+ # responds to _read_ and _close_ such as an IO, or StringIO.
157
+ # +url+ is resource where this document is located. +encoding+ is the
158
+ # encoding that should be used when processing the document. +options+
159
+ # is a number that sets options in the parser, such as
160
+ # Nokogiri::XML::ParseOptions::RECOVER. See the constants in
161
+ # Nokogiri::XML::ParseOptions.
162
+ def parse string_or_io, url = nil, encoding = nil, options = XML::ParseOptions::DEFAULT_HTML
163
+
164
+ options = Nokogiri::XML::ParseOptions.new(options) if Integer === options
165
+ # Give the options to the user
166
+ yield options if block_given?
167
+
168
+ if string_or_io.respond_to?(:encoding)
169
+ unless string_or_io.encoding.name == "ASCII-8BIT"
170
+ encoding ||= string_or_io.encoding.name
171
+ end
172
+ end
173
+
174
+ if string_or_io.respond_to?(:read)
175
+ url ||= string_or_io.respond_to?(:path) ? string_or_io.path : nil
176
+ unless encoding
177
+ # Libxml2's parser has poor support for encoding
178
+ # detection. First, it does not recognize the HTML5
179
+ # style meta charset declaration. Secondly, even if it
180
+ # successfully detects an encoding hint, it does not
181
+ # re-decode or re-parse the preceding part which may be
182
+ # garbled.
183
+ #
184
+ # EncodingReader aims to perform advanced encoding
185
+ # detection beyond what Libxml2 does, and to emulate
186
+ # rewinding of a stream and make Libxml2 redo parsing
187
+ # from the start when an encoding hint is found.
188
+ string_or_io = EncodingReader.new(string_or_io)
189
+ begin
190
+ return read_io(string_or_io, url, encoding, options.to_i)
191
+ rescue EncodingFound => e
192
+ encoding = e.found_encoding
193
+ end
194
+ end
195
+ return read_io(string_or_io, url, encoding, options.to_i)
196
+ end
197
+
198
+ # read_memory pukes on empty docs
199
+ if string_or_io.nil? or string_or_io.empty?
200
+ return encoding ? new.tap { |i| i.encoding = encoding } : new
201
+ end
202
+
203
+ encoding ||= EncodingReader.detect_encoding(string_or_io)
204
+
205
+ read_memory(string_or_io, url, encoding, options.to_i)
206
+ end
207
+ end
208
+
209
+ class EncodingFound < StandardError # :nodoc:
210
+ attr_reader :found_encoding
211
+
212
+ def initialize(encoding)
213
+ @found_encoding = encoding
214
+ super("encoding found: %s" % encoding)
215
+ end
216
+ end
217
+
218
+ class EncodingReader # :nodoc:
219
+ class SAXHandler < Nokogiri::XML::SAX::Document # :nodoc:
220
+ attr_reader :encoding
221
+
222
+ def initialize
223
+ @encoding = nil
224
+ super()
225
+ end
226
+
227
+ def start_element(name, attrs = [])
228
+ return unless name == 'meta'
229
+ attr = Hash[attrs]
230
+ charset = attr['charset'] and
231
+ @encoding = charset
232
+ http_equiv = attr['http-equiv'] and
233
+ http_equiv.match(/\AContent-Type\z/i) and
234
+ content = attr['content'] and
235
+ m = content.match(/;\s*charset\s*=\s*([\w-]+)/) and
236
+ @encoding = m[1]
237
+ end
238
+ end
239
+
240
+ class JumpSAXHandler < SAXHandler
241
+ def initialize(jumptag)
242
+ @jumptag = jumptag
243
+ super()
244
+ end
245
+
246
+ def start_element(name, attrs = [])
247
+ super
248
+ throw @jumptag, @encoding if @encoding
249
+ throw @jumptag, nil if name =~ /\A(?:div|h1|img|p|br)\z/
250
+ end
251
+ end
252
+
253
+ def self.detect_encoding(chunk)
254
+ if Nokogiri.jruby? && EncodingReader.is_jruby_without_fix?
255
+ return EncodingReader.detect_encoding_for_jruby_without_fix(chunk)
256
+ end
257
+ m = chunk.match(/\A(<\?xml[ \t\r\n]+[^>]*>)/) and
258
+ return Nokogiri.XML(m[1]).encoding
259
+
260
+ if Nokogiri.jruby?
261
+ m = chunk.match(/(<meta\s)(.*)(charset\s*=\s*([\w-]+))(.*)/i) and
262
+ return m[4]
263
+ catch(:encoding_found) {
264
+ Nokogiri::HTML::SAX::Parser.new(JumpSAXHandler.new(:encoding_found)).parse(chunk)
265
+ nil
266
+ }
267
+ else
268
+ handler = SAXHandler.new
269
+ parser = Nokogiri::HTML::SAX::PushParser.new(handler)
270
+ parser << chunk rescue Nokogiri::SyntaxError
271
+ handler.encoding
272
+ end
273
+ end
274
+
275
+ def self.is_jruby_without_fix?
276
+ JRUBY_VERSION.split('.').join.to_i < 165
277
+ end
278
+
279
+ def self.detect_encoding_for_jruby_without_fix(chunk)
280
+ m = chunk.match(/\A(<\?xml[ \t\r\n]+[^>]*>)/) and
281
+ return Nokogiri.XML(m[1]).encoding
282
+
283
+ m = chunk.match(/(<meta\s)(.*)(charset\s*=\s*([\w-]+))(.*)/i) and
284
+ return m[4]
285
+
286
+ catch(:encoding_found) {
287
+ Nokogiri::HTML::SAX::Parser.new(JumpSAXHandler.new(:encoding_found.to_s)).parse(chunk)
288
+ nil
289
+ }
290
+ rescue Nokogiri::SyntaxError, RuntimeError
291
+ # Ignore parser errors that nokogiri may raise
292
+ nil
293
+ end
294
+
295
+ def initialize(io)
296
+ @io = io
297
+ @firstchunk = nil
298
+ @encoding_found = nil
299
+ end
300
+
301
+ # This method is used by the C extension so that
302
+ # Nokogiri::HTML::Document#read_io() does not leak memory when
303
+ # EncodingFound is raised.
304
+ attr_reader :encoding_found
305
+
306
+ def read(len)
307
+ # no support for a call without len
308
+
309
+ if !@firstchunk
310
+ @firstchunk = @io.read(len) or return nil
311
+
312
+ # This implementation expects that the first call from
313
+ # htmlReadIO() is made with a length long enough (~1KB) to
314
+ # achieve advanced encoding detection.
315
+ if encoding = EncodingReader.detect_encoding(@firstchunk)
316
+ # The first chunk is stored for the next read in retry.
317
+ raise @encoding_found = EncodingFound.new(encoding)
318
+ end
319
+ end
320
+ @encoding_found = nil
321
+
322
+ ret = @firstchunk.slice!(0, len)
323
+ if (len -= ret.length) > 0
324
+ rest = @io.read(len) and ret << rest
325
+ end
326
+ if ret.empty?
327
+ nil
328
+ else
329
+ ret
330
+ end
331
+ end
332
+ end
333
+ end
334
+ end
335
+ end