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,115 @@
1
+ require "helper"
2
+
3
+ module Nokogiri
4
+ module XML
5
+ class TestNodeAttributes < Nokogiri::TestCase
6
+ def test_attribute_with_ns
7
+ doc = Nokogiri::XML <<-eoxml
8
+ <root xmlns:tlm='http://tenderlovemaking.com/'>
9
+ <node tlm:foo='bar' foo='baz' />
10
+ </root>
11
+ eoxml
12
+
13
+ node = doc.at('node')
14
+
15
+ assert_equal 'bar',
16
+ node.attribute_with_ns('foo', 'http://tenderlovemaking.com/').value
17
+ end
18
+
19
+ def test_prefixed_attributes
20
+ doc = Nokogiri::XML "<root xml:lang='en-GB' />"
21
+
22
+ node = doc.root
23
+
24
+ assert_equal 'en-GB', node['xml:lang']
25
+ assert_equal 'en-GB', node.attributes['lang'].value
26
+ assert_equal nil, node['lang']
27
+ end
28
+
29
+ def test_unknown_namespace_prefix_should_not_be_removed
30
+ doc = Nokogiri::XML ''
31
+ elem = doc.create_element 'foo', 'bar:attr' => 'something'
32
+ assert_equal elem.attribute_nodes.first.name, 'bar:attr'
33
+ end
34
+
35
+ def test_set_prefixed_attributes
36
+ doc = Nokogiri::XML %Q{<root xmlns:foo="x"/>}
37
+
38
+ node = doc.root
39
+
40
+ node['xml:lang'] = 'en-GB'
41
+ node['foo:bar'] = 'bazz'
42
+
43
+ assert_equal 'en-GB', node['xml:lang']
44
+ assert_equal 'en-GB', node.attributes['lang'].value
45
+ assert_equal nil, node['lang']
46
+ assert_equal 'http://www.w3.org/XML/1998/namespace', node.attributes['lang'].namespace.href
47
+
48
+ assert_equal 'bazz', node['foo:bar']
49
+ assert_equal 'bazz', node.attributes['bar'].value
50
+ assert_equal nil, node['bar']
51
+ assert_equal 'x', node.attributes['bar'].namespace.href
52
+ end
53
+
54
+ def test_append_child_namespace_definitions_prefixed_attributes
55
+ doc = Nokogiri::XML "<root/>"
56
+ node = doc.root
57
+
58
+ node['xml:lang'] = 'en-GB'
59
+
60
+ assert_equal [], node.namespace_definitions.map(&:prefix)
61
+
62
+ child_node = Nokogiri::XML::Node.new 'foo', doc
63
+ node << child_node
64
+
65
+ assert_equal [], node.namespace_definitions.map(&:prefix)
66
+ end
67
+
68
+ def test_append_child_element_with_prefixed_attributes
69
+ doc = Nokogiri::XML "<root/>"
70
+ node = doc.root
71
+
72
+ assert_equal [], node.namespace_definitions.map(&:prefix)
73
+
74
+
75
+ # assert_nothing_raised do
76
+ child_node = Nokogiri::XML::Node.new 'foo', doc
77
+ child_node['xml:lang'] = 'en-GB'
78
+
79
+ node << child_node
80
+ # end
81
+
82
+ assert_equal [], child_node.namespace_definitions.map(&:prefix)
83
+ end
84
+
85
+ def test_namespace_key?
86
+ doc = Nokogiri::XML <<-eoxml
87
+ <root xmlns:tlm='http://tenderlovemaking.com/'>
88
+ <node tlm:foo='bar' foo='baz' />
89
+ </root>
90
+ eoxml
91
+
92
+ node = doc.at('node')
93
+
94
+ assert node.namespaced_key?('foo', 'http://tenderlovemaking.com/')
95
+ assert node.namespaced_key?('foo', nil)
96
+ assert !node.namespaced_key?('foo', 'foo')
97
+ end
98
+
99
+ def test_set_attribute_frees_nodes # testing a segv
100
+ skip("JRuby doesn't do GC.") if Nokogiri.jruby?
101
+ document = Nokogiri::XML.parse("<foo></foo>")
102
+
103
+ node = document.root
104
+ node['visible'] = 'foo'
105
+ attribute = node.attribute('visible')
106
+ text = Nokogiri::XML::Text.new 'bar', document
107
+ attribute.add_child(text)
108
+
109
+ stress_memory_while do
110
+ node['visible'] = 'attr'
111
+ end
112
+ end
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,75 @@
1
+ # encoding: UTF-8
2
+ require "helper"
3
+
4
+ module Nokogiri
5
+ module XML
6
+ class TestNodeEncoding < Nokogiri::TestCase
7
+ def test_serialize_encoding_xml
8
+ @xml = Nokogiri::XML(File.open(SHIFT_JIS_XML))
9
+ assert_equal @xml.encoding.downcase,
10
+ @xml.serialize.encoding.name.downcase
11
+
12
+ @doc = Nokogiri::XML(@xml.serialize)
13
+ assert_equal @xml.serialize, @doc.serialize
14
+ end
15
+
16
+ def test_default_encoding
17
+ doc = Nokogiri::XML(VEHICLE_XML)
18
+ assert_nil doc.encoding
19
+ assert_equal 'UTF-8', doc.serialize.encoding.name
20
+ end
21
+
22
+ def test_encoding_GH_1113
23
+ utf8 = '<frag>shahid ὡ 𐄣 𢂁</frag>'
24
+ hex = '<frag>shahid &#x1f61; &#x10123; &#x22081;</frag>'
25
+ decimal = '<frag>shahid &#8033; &#65827; &#139393;</frag>'
26
+ expected = Nokogiri.jruby? ? hex : decimal
27
+
28
+ frag = Nokogiri::XML(utf8, nil, 'UTF-8', Nokogiri::XML::ParseOptions::STRICT)
29
+ assert_equal utf8, frag.to_xml.sub(/^<.xml[^>]*>\n/m, '').strip
30
+
31
+ frag = Nokogiri::XML(expected, nil, 'UTF-8', Nokogiri::XML::ParseOptions::STRICT)
32
+ assert_equal utf8, frag.to_xml.sub(/^<.xml[^>]*>\n/m, '').strip
33
+
34
+ frag = Nokogiri::XML(expected, nil, 'US-ASCII', Nokogiri::XML::ParseOptions::STRICT)
35
+ assert_equal expected, frag.to_xml.sub(/^<.xml[^>]*>\n/m, '').strip
36
+ end
37
+
38
+ VEHICLE_XML = <<-eoxml
39
+ <root>
40
+ <car xmlns:part="http://general-motors.com/">
41
+ <part:tire>Michelin Model XGV</part:tire>
42
+ </car>
43
+ <bicycle xmlns:part="http://schwinn.com/">
44
+ <part:tire>I'm a bicycle tire!</part:tire>
45
+ </bicycle>
46
+ </root>
47
+ eoxml
48
+
49
+ def test_namespace
50
+ doc = Nokogiri::XML(VEHICLE_XML.encode('Shift_JIS'), nil, 'Shift_JIS')
51
+ assert_equal 'Shift_JIS', doc.encoding
52
+ n = doc.xpath('//part:tire', { 'part' => 'http://schwinn.com/' }).first
53
+ assert n
54
+ assert_equal 'UTF-8', n.namespace.href.encoding.name
55
+ assert_equal 'UTF-8', n.namespace.prefix.encoding.name
56
+ end
57
+
58
+ def test_namespace_as_hash
59
+ doc = Nokogiri::XML(VEHICLE_XML.encode('Shift_JIS'), nil, 'Shift_JIS')
60
+ assert_equal 'Shift_JIS', doc.encoding
61
+ assert n = doc.xpath('//car').first
62
+
63
+ n.namespace_definitions.each do |nd|
64
+ assert_equal 'UTF-8', nd.href.encoding.name
65
+ assert_equal 'UTF-8', nd.prefix.encoding.name
66
+ end
67
+
68
+ n.namespaces.each do |k,v|
69
+ assert_equal 'UTF-8', k.encoding.name
70
+ assert_equal 'UTF-8', v.encoding.name
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,32 @@
1
+ # issue#560
2
+
3
+ require 'helper'
4
+
5
+ module Nokogiri
6
+ module XML
7
+ class TestNodeInheritance < Nokogiri::TestCase
8
+ MyNode = Class.new Nokogiri::XML::Node
9
+ def setup
10
+ super
11
+ @node = MyNode.new 'foo', Nokogiri::XML::Document.new
12
+ @node['foo'] = 'bar'
13
+ end
14
+
15
+ def test_node_name
16
+ assert @node.name == 'foo'
17
+ end
18
+
19
+ def test_node_writing_an_attribute_accessing_via_attributes
20
+ assert @node.attributes['foo']
21
+ end
22
+
23
+ def test_node_writing_an_attribute_accessing_via_key
24
+ assert @node.key? 'foo'
25
+ end
26
+
27
+ def test_node_writing_an_attribute_accessing_via_brackets
28
+ assert @node['foo'] == 'bar'
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,563 @@
1
+ require "helper"
2
+
3
+ module Nokogiri
4
+ module XML
5
+ class TestNodeReparenting < Nokogiri::TestCase
6
+
7
+ describe "standard node reparenting behavior" do
8
+ # describe "namespace handling during reparenting" do
9
+ # describe "given a Node" do
10
+ # describe "with a Namespace" do
11
+ # it "keeps the Namespace"
12
+ # end
13
+ # describe "given a parent Node with a default and a non-default Namespace" do
14
+ # describe "passed an Node without a namespace" do
15
+ # it "inserts an Node that inherits the default Namespace"
16
+ # end
17
+ # describe "passed a Node with a Namespace that matches the parent's non-default Namespace" do
18
+ # it "inserts a Node that inherits the matching parent Namespace"
19
+ # end
20
+ # end
21
+ # end
22
+ # describe "given a markup string" do
23
+ # describe "parsed relative to the document" do
24
+ # describe "with a Namespace" do
25
+ # it "keeps the Namespace"
26
+ # end
27
+ # describe "given a parent Node with a default and a non-default Namespace" do
28
+ # describe "passed an Node without a namespace" do
29
+ # it "inserts an Node that inherits the default Namespace"
30
+ # end
31
+ # describe "passed a Node with a Namespace that matches the parent's non-default Namespace" do
32
+ # it "inserts a Node that inherits the matching parent Namespace"
33
+ # end
34
+ # end
35
+ # end
36
+ # describe "parsed relative to a specific node" do
37
+ # describe "with a Namespace" do
38
+ # it "keeps the Namespace"
39
+ # end
40
+ # describe "given a parent Node with a default and a non-default Namespace" do
41
+ # describe "passed an Node without a namespace" do
42
+ # it "inserts an Node that inherits the default Namespace"
43
+ # end
44
+ # describe "passed a Node with a Namespace that matches the parent's non-default Namespace" do
45
+ # it "inserts a Node that inherits the matching parent Namespace"
46
+ # end
47
+ # end
48
+ # end
49
+ # end
50
+ # end
51
+
52
+
53
+ before do
54
+ @doc = Nokogiri::XML "<root><a1>First node</a1><a2>Second node</a2><a3>Third <bx />node</a3></root>"
55
+ @doc2 = @doc.dup
56
+ @fragment_string = "<b1>foo</b1><b2>bar</b2>"
57
+ @fragment = Nokogiri::XML::DocumentFragment.parse @fragment_string
58
+ @node_set = Nokogiri::XML("<root><b1>foo</b1><b2>bar</b2></root>").xpath("/root/node()")
59
+ end
60
+
61
+ {
62
+ :add_child => {:target => "/root/a1", :returns_self => false, :children_tags => %w[text b1 b2]},
63
+ :<< => {:target => "/root/a1", :returns_self => true, :children_tags => %w[text b1 b2]},
64
+
65
+ :replace => {:target => "/root/a1/node()", :returns_self => false, :children_tags => %w[b1 b2]},
66
+ :swap => {:target => "/root/a1/node()", :returns_self => true, :children_tags => %w[b1 b2]},
67
+
68
+ :children= => {:target => "/root/a1", :returns_self => false, :children_tags => %w[b1 b2]},
69
+ :inner_html= => {:target => "/root/a1", :returns_self => true, :children_tags => %w[b1 b2]},
70
+
71
+ :add_previous_sibling => {:target => "/root/a1/text()", :returns_self => false, :children_tags => %w[b1 b2 text]},
72
+ :previous= => {:target => "/root/a1/text()", :returns_self => false, :children_tags => %w[b1 b2 text]},
73
+ :before => {:target => "/root/a1/text()", :returns_self => true, :children_tags => %w[b1 b2 text]},
74
+
75
+ :add_next_sibling => {:target => "/root/a1/text()", :returns_self => false, :children_tags => %w[text b1 b2]},
76
+ :next= => {:target => "/root/a1/text()", :returns_self => false, :children_tags => %w[text b1 b2]},
77
+ :after => {:target => "/root/a1/text()", :returns_self => true, :children_tags => %w[text b1 b2]}
78
+ }.each do |method, params|
79
+ describe "##{method}" do
80
+ describe "passed a Node" do
81
+ [:current, :another].each do |which|
82
+ describe "passed a Node in the #{which} document" do
83
+ before do
84
+ @other_doc = which == :current ? @doc : @doc2
85
+ @other_node = @other_doc.at_xpath("/root/a2")
86
+ end
87
+
88
+ it "unlinks the Node from its previous position" do
89
+ @doc.at_xpath(params[:target]).send(method, @other_node)
90
+ @other_doc.at_xpath("/root/a2").must_be_nil
91
+ end
92
+
93
+ it "inserts the Node in the proper position" do
94
+ @doc.at_xpath(params[:target]).send(method, @other_node)
95
+ @doc.at_xpath("/root/a1/a2").wont_be_nil
96
+ end
97
+
98
+ it "returns the expected value" do
99
+ sendee = @doc.at_xpath(params[:target])
100
+ result = sendee.send(method, @other_node)
101
+ if params[:returns_self]
102
+ result.must_equal sendee
103
+ else
104
+ result.must_equal @other_node
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end
110
+ describe "passed a markup string" do
111
+ it "inserts the fragment roots in the proper position" do
112
+ @doc.at_xpath(params[:target]).send(method, @fragment_string)
113
+ @doc.xpath("/root/a1/node()").collect {|n| n.name}.must_equal params[:children_tags]
114
+ end
115
+
116
+ it "returns the expected value" do
117
+ sendee = @doc.at_xpath(params[:target])
118
+ result = sendee.send(method, @fragment_string)
119
+ if params[:returns_self]
120
+ result.must_equal sendee
121
+ else
122
+ result.must_be_kind_of Nokogiri::XML::NodeSet
123
+ result.to_html.must_equal @fragment_string
124
+ end
125
+ end
126
+ end
127
+ describe "passed a fragment" do
128
+ it "inserts the fragment roots in the proper position" do
129
+ @doc.at_xpath(params[:target]).send(method, @fragment)
130
+ @doc.xpath("/root/a1/node()").collect {|n| n.name}.must_equal params[:children_tags]
131
+ end
132
+ end
133
+ describe "passed a document" do
134
+ it "raises an exception" do
135
+ proc { @doc.at_xpath("/root/a1").send(method, @doc2) }.must_raise(ArgumentError)
136
+ end
137
+ end
138
+ describe "passed a non-Node" do
139
+ it "raises an exception" do
140
+ proc { @doc.at_xpath("/root/a1").send(method, 42) }.must_raise(ArgumentError)
141
+ end
142
+ end
143
+ describe "passed a NodeSet" do
144
+ it "inserts each member of the NodeSet in the proper order" do
145
+ @doc.at_xpath(params[:target]).send(method, @node_set)
146
+ @doc.xpath("/root/a1/node()").collect {|n| n.name}.must_equal params[:children_tags]
147
+ end
148
+ end
149
+ end
150
+ end
151
+
152
+ describe "text node merging" do
153
+ describe "#add_child" do
154
+ it "merges the Text node with adjacent Text nodes" do
155
+ @doc.at_xpath("/root/a1").add_child Nokogiri::XML::Text.new('hello', @doc)
156
+ @doc.at_xpath("/root/a1/text()").content.must_equal "First nodehello"
157
+ end
158
+ end
159
+
160
+ describe "#replace" do
161
+ it "merges the Text node with adjacent Text nodes" do
162
+ @doc.at_xpath("/root/a3/bx").replace Nokogiri::XML::Text.new('hello', @doc)
163
+ @doc.at_xpath("/root/a3/text()").content.must_equal "Third hellonode"
164
+ end
165
+ end
166
+ end
167
+ end
168
+
169
+ describe "ad hoc node reparenting behavior" do
170
+ describe "#<<" do
171
+ it "allows chaining" do
172
+ doc = Nokogiri::XML::Document.new
173
+ root = Nokogiri::XML::Element.new('root', doc)
174
+ doc.root = root
175
+
176
+ child1 = Nokogiri::XML::Element.new('child1', doc)
177
+ child2 = Nokogiri::XML::Element.new('child2', doc)
178
+
179
+ doc.root << child1 << child2
180
+
181
+ assert_equal [child1, child2], doc.root.children.to_a
182
+ end
183
+ end
184
+
185
+ describe "#add_child" do
186
+ describe "given a new node with a namespace" do
187
+ it "keeps the namespace" do
188
+ doc = Nokogiri::XML::Document.new
189
+ item = Nokogiri::XML::Element.new('item', doc)
190
+ doc.root = item
191
+
192
+ entry = Nokogiri::XML::Element.new('entry', doc)
193
+ entry.add_namespace('tlm', 'http://tenderlovemaking.com')
194
+ assert_equal 'http://tenderlovemaking.com', entry.namespaces['xmlns:tlm']
195
+ item.add_child(entry)
196
+ assert_equal 'http://tenderlovemaking.com', entry.namespaces['xmlns:tlm']
197
+ end
198
+ end
199
+
200
+ describe "given a parent node with a default namespace" do
201
+ before do
202
+ @doc = Nokogiri::XML(<<-eoxml)
203
+ <root xmlns="http://tenderlovemaking.com/">
204
+ <first>
205
+ </first>
206
+ </root>
207
+ eoxml
208
+ end
209
+
210
+ it "inserts a node that inherits the default namespace" do
211
+ assert node = @doc.at('//xmlns:first')
212
+ child = Nokogiri::XML::Node.new('second', @doc)
213
+ node.add_child(child)
214
+ assert @doc.at('//xmlns:second')
215
+ end
216
+ end
217
+
218
+ describe "given a parent node with a default and non-default namespace" do
219
+ before do
220
+ @doc = Nokogiri::XML(<<-eoxml)
221
+ <root xmlns="http://tenderlovemaking.com/" xmlns:foo="http://flavorjon.es/">
222
+ <first>
223
+ </first>
224
+ </root>
225
+ eoxml
226
+ assert @node = @doc.at('//xmlns:first')
227
+ @child = Nokogiri::XML::Node.new('second', @doc)
228
+ end
229
+
230
+ describe "and a child with a namespace matching the parent's default namespace" do
231
+ describe "and as the default prefix" do
232
+ before do
233
+ @ns = @child.add_namespace(nil, 'http://tenderlovemaking.com/')
234
+ @child.namespace = @ns
235
+ end
236
+
237
+ it "inserts a node that inherits the parent's default namespace" do
238
+ @node.add_child(@child)
239
+ assert reparented = @doc.at('//bar:second', "bar" => "http://tenderlovemaking.com/")
240
+ assert reparented.namespace_definitions.empty?
241
+ assert_equal @ns, reparented.namespace
242
+ assert_equal(
243
+ {
244
+ "xmlns" => "http://tenderlovemaking.com/",
245
+ "xmlns:foo" => "http://flavorjon.es/",
246
+ },
247
+ reparented.namespaces)
248
+ end
249
+ end
250
+
251
+ describe "but with a different prefix" do
252
+ before do
253
+ @ns = @child.add_namespace("baz", 'http://tenderlovemaking.com/')
254
+ @child.namespace = @ns
255
+ end
256
+
257
+ it "inserts a node that uses its own namespace" do
258
+ @node.add_child(@child)
259
+ assert reparented = @doc.at('//bar:second', "bar" => "http://tenderlovemaking.com/")
260
+ assert reparented.namespace_definitions.include?(@ns)
261
+ assert_equal @ns, reparented.namespace
262
+ assert_equal(
263
+ {
264
+ "xmlns" => "http://tenderlovemaking.com/",
265
+ "xmlns:foo" => "http://flavorjon.es/",
266
+ "xmlns:baz" => "http://tenderlovemaking.com/",
267
+ },
268
+ reparented.namespaces)
269
+ end
270
+ end
271
+ end
272
+
273
+ describe "and a child with a namespace matching the parent's non-default namespace" do
274
+ describe "set by #namespace=" do
275
+ before do
276
+ @ns = @doc.root.namespace_definitions.detect { |x| x.prefix == "foo" }
277
+ @child.namespace = @ns
278
+ end
279
+
280
+ it "inserts a node that inherits the matching parent namespace" do
281
+ @node.add_child(@child)
282
+ assert reparented = @doc.at('//bar:second', "bar" => "http://flavorjon.es/")
283
+ assert reparented.namespace_definitions.empty?
284
+ assert_equal @ns, reparented.namespace
285
+ assert_equal(
286
+ {
287
+ "xmlns" => "http://tenderlovemaking.com/",
288
+ "xmlns:foo" => "http://flavorjon.es/",
289
+ },
290
+ reparented.namespaces)
291
+ end
292
+ end
293
+
294
+ describe "with the same prefix" do
295
+ before do
296
+ @ns = @child.add_namespace("foo", 'http://flavorjon.es/')
297
+ @child.namespace = @ns
298
+ end
299
+
300
+ it "inserts a node that uses the parent's namespace" do
301
+ @node.add_child(@child)
302
+ assert reparented = @doc.at('//bar:second', "bar" => "http://flavorjon.es/")
303
+ assert reparented.namespace_definitions.empty?
304
+ assert_equal @ns, reparented.namespace
305
+ assert_equal(
306
+ {
307
+ "xmlns" => "http://tenderlovemaking.com/",
308
+ "xmlns:foo" => "http://flavorjon.es/",
309
+ },
310
+ reparented.namespaces)
311
+ end
312
+ end
313
+
314
+ describe "as the default prefix" do
315
+ before do
316
+ @ns = @child.add_namespace(nil, 'http://flavorjon.es/')
317
+ @child.namespace = @ns
318
+ end
319
+
320
+ it "inserts a node that keeps its namespace" do
321
+ @node.add_child(@child)
322
+ assert reparented = @doc.at('//bar:second', "bar" => "http://flavorjon.es/")
323
+ assert reparented.namespace_definitions.include?(@ns)
324
+ assert_equal @ns, reparented.namespace
325
+ assert_equal(
326
+ {
327
+ "xmlns" => "http://flavorjon.es/",
328
+ "xmlns:foo" => "http://flavorjon.es/",
329
+ },
330
+ reparented.namespaces)
331
+ end
332
+ end
333
+
334
+ describe "but with a different prefix" do
335
+ before do
336
+ @ns = @child.add_namespace('baz', 'http://flavorjon.es/')
337
+ @child.namespace = @ns
338
+ end
339
+
340
+ it "inserts a node that keeps its namespace" do
341
+ @node.add_child(@child)
342
+ assert reparented = @doc.at('//bar:second', "bar" => "http://flavorjon.es/")
343
+ assert reparented.namespace_definitions.include?(@ns)
344
+ assert_equal @ns, reparented.namespace
345
+ assert_equal(
346
+ {
347
+ "xmlns" =>"http://tenderlovemaking.com/",
348
+ "xmlns:foo" =>"http://flavorjon.es/",
349
+ "xmlns:baz" =>"http://flavorjon.es/",
350
+ },
351
+ reparented.namespaces)
352
+ end
353
+ end
354
+ end
355
+
356
+ describe "and a child node with a default namespace not matching the parent's default namespace and a namespace matching a parent namespace but with a different prefix" do
357
+ before do
358
+ @ns = @child.add_namespace(nil, 'http://example.org/')
359
+ @child.namespace = @ns
360
+ @ns2 = @child.add_namespace('baz', 'http://tenderlovemaking.com/')
361
+ end
362
+
363
+ it "inserts a node that keeps its namespace" do
364
+ @node.add_child(@child)
365
+ assert reparented = @doc.at('//bar:second', "bar" => "http://example.org/")
366
+ assert reparented.namespace_definitions.include?(@ns)
367
+ assert reparented.namespace_definitions.include?(@ns2)
368
+ assert_equal @ns, reparented.namespace
369
+ assert_equal(
370
+ {
371
+ "xmlns" => "http://example.org/",
372
+ "xmlns:foo" => "http://flavorjon.es/",
373
+ "xmlns:baz" => "http://tenderlovemaking.com/",
374
+ },
375
+ reparented.namespaces)
376
+ end
377
+ end
378
+ end
379
+ end
380
+
381
+ describe "#add_previous_sibling" do
382
+ it "should not merge text nodes during the operation" do
383
+ xml = Nokogiri::XML %Q(<root>text node</root>)
384
+ replacee = xml.root.children.first
385
+ replacee.add_previous_sibling "foo <p></p> bar"
386
+ assert_equal "foo <p></p> bartext node", xml.root.children.to_html
387
+ end
388
+
389
+ it 'should remove the child node after the operation' do
390
+ fragment = Nokogiri::HTML::DocumentFragment.parse("a<a>b</a>")
391
+ node = fragment.children.last
392
+ node.add_previous_sibling node.children
393
+ assert_empty node.children, "should have no childrens"
394
+ end
395
+
396
+ describe "with a text node before" do
397
+ it "should not defensively dup the 'before' text node" do
398
+ xml = Nokogiri::XML %Q(<root>before<p></p>after</root>)
399
+ pivot = xml.at_css("p")
400
+ before = xml.root.children.first
401
+ after = xml.root.children.last
402
+ pivot.add_previous_sibling("x")
403
+
404
+ assert_equal "after", after.content
405
+ assert !after.parent.nil?, "unrelated node should not be affected"
406
+
407
+ assert_equal "before", before.content
408
+ assert !before.parent.nil?, "no need to reparent"
409
+ end
410
+ end
411
+ end
412
+
413
+ describe "#add_next_sibling" do
414
+ it "should not merge text nodes during the operation" do
415
+ xml = Nokogiri::XML %Q(<root>text node</root>)
416
+ replacee = xml.root.children.first
417
+ replacee.add_next_sibling "foo <p></p> bar"
418
+ assert_equal "text nodefoo <p></p> bar", xml.root.children.to_html
419
+ end
420
+
421
+ it 'should append a text node before an existing non text node' do
422
+ xml = Nokogiri::XML %Q(<root><p>foo</p><p>bar</p></root>)
423
+ p = xml.at_css 'p'
424
+ p.add_next_sibling 'a'
425
+ assert_equal '<root><p>foo</p>a<p>bar</p></root>', xml.root.to_s
426
+ end
427
+
428
+ it 'should append a text node before an existing text node' do
429
+ xml = Nokogiri::XML %Q(<root><p>foo</p>after</root>)
430
+ p = xml.at_css 'p'
431
+ p.add_next_sibling 'x'
432
+ assert_equal '<root><p>foo</p>xafter</root>', xml.root.to_s
433
+ end
434
+
435
+ describe "with a text node after" do
436
+ it "should not defensively dup the 'after' text node" do
437
+ xml = Nokogiri::XML %Q(<root>before<p></p>after</root>)
438
+ pivot = xml.at_css("p")
439
+ before = xml.root.children.first
440
+ after = xml.root.children.last
441
+ pivot.add_next_sibling("x")
442
+
443
+ assert_equal "before", before.content
444
+ assert !before.parent.nil?, "unrelated node should not be affected"
445
+
446
+ assert_equal "after", after.content
447
+ assert !after.parent.nil?
448
+ end
449
+ end
450
+ end
451
+
452
+ describe "#replace" do
453
+ describe "a text node with a text node" do
454
+ it "should not merge text nodes during the operation" do
455
+ xml = Nokogiri::XML %Q(<root>text node</root>)
456
+ replacee = xml.root.children.first
457
+ replacee.replace "new text node"
458
+ assert_equal "new text node", xml.root.children.first.content
459
+ end
460
+ end
461
+
462
+ describe "when a document has a default namespace" do
463
+ before do
464
+ @fruits = Nokogiri::XML(<<-eoxml)
465
+ <fruit xmlns="http://fruits.org">
466
+ <apple />
467
+ </fruit>
468
+ eoxml
469
+ end
470
+
471
+ it "inserts a node with default namespaces" do
472
+ apple = @fruits.css('apple').first
473
+
474
+ orange = Nokogiri::XML::Node.new('orange', @fruits)
475
+ apple.replace(orange)
476
+
477
+ assert_equal orange, @fruits.css('orange').first
478
+ end
479
+ end
480
+ end
481
+
482
+ describe "unlinking a node and then reparenting it" do
483
+ it "not blow up" do
484
+ # see http://github.com/sparklemotion/nokogiri/issues#issue/22
485
+ 10.times do
486
+ begin
487
+ doc = Nokogiri::XML <<-EOHTML
488
+ <root>
489
+ <a>
490
+ <b/>
491
+ <c/>
492
+ </a>
493
+ </root>
494
+ EOHTML
495
+
496
+ assert root = doc.at("root")
497
+ assert a = root.at("a")
498
+ assert b = a.at("b")
499
+ assert c = a.at("c")
500
+ a.add_next_sibling(b.unlink)
501
+ c.unlink
502
+ end
503
+ GC.start
504
+ end
505
+ end
506
+ end
507
+
508
+ describe "replace-merging text nodes" do
509
+ [
510
+ ['<root>a<br/></root>', 'afoo'],
511
+ ['<root>a<br/>b</root>', 'afoob'],
512
+ ['<root><br/>b</root>', 'foob']
513
+ ].each do |xml, result|
514
+ it "doesn't blow up on #{xml}" do
515
+ doc = Nokogiri::XML.parse(xml)
516
+ saved_nodes = doc.root.children
517
+ doc.at_xpath("/root/br").replace(Nokogiri::XML::Text.new('foo', doc))
518
+ saved_nodes.each { |child| child.inspect } # try to cause a crash
519
+ assert_equal result, doc.at_xpath("/root/text()").inner_text
520
+ end
521
+ end
522
+ end
523
+
524
+ describe "reparenting into another document" do
525
+ it "correctly sets default namespace of a reparented node" do
526
+ # issue described in #391
527
+ # thanks to Nick Canzoneri @nickcanz for this test case!
528
+ source_doc = Nokogiri::XML <<-EOX
529
+ <?xml version="1.0" encoding="utf-8"?>
530
+ <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
531
+ <Product>
532
+ <Package />
533
+ <Directory Id="TARGETDIR" Name="SourceDir">
534
+ <Component>
535
+ <File />
536
+ </Component>
537
+ </Directory>
538
+ </Product>
539
+ </Wix>
540
+ EOX
541
+
542
+ dest_doc = Nokogiri::XML <<-EOX
543
+ <?xml version="1.0" encoding="utf-8"?>
544
+ <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
545
+ <Fragment Id='MSIComponents'>
546
+ <DirectoryRef Id='InstallDir'>
547
+ </DirectoryRef>
548
+ </Fragment>
549
+ </Wix>
550
+ EOX
551
+
552
+ stuff = source_doc.at_css("Directory[Id='TARGETDIR']")
553
+ insert_point = dest_doc.at_css("DirectoryRef[Id='InstallDir']")
554
+ insert_point.children = stuff.children()
555
+
556
+ assert_no_match(/default:/, insert_point.children.to_xml)
557
+ assert_match(/<Component>/, insert_point.children.to_xml)
558
+ end
559
+ end
560
+ end
561
+ end
562
+ end
563
+ end