husc 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1028) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +6 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +7 -0
  7. data/Gemfile.lock +64 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +44 -0
  10. data/Rakefile +6 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/husc.gemspec +29 -0
  14. data/lib/husc.rb +213 -0
  15. data/lib/husc/version.rb +3 -0
  16. data/vendor/bundle/bin/htmldiff +29 -0
  17. data/vendor/bundle/bin/ldiff +29 -0
  18. data/vendor/bundle/bin/nokogiri +27 -0
  19. data/vendor/bundle/bin/rake +27 -0
  20. data/vendor/bundle/bin/rspec +27 -0
  21. data/vendor/bundle/cache/connection_pool-2.2.2.gem +0 -0
  22. data/vendor/bundle/cache/diff-lcs-1.3.gem +0 -0
  23. data/vendor/bundle/cache/domain_name-0.5.20190701.gem +0 -0
  24. data/vendor/bundle/cache/http-cookie-1.0.3.gem +0 -0
  25. data/vendor/bundle/cache/mechanize-2.7.6.gem +0 -0
  26. data/vendor/bundle/cache/mime-types-3.3.1.gem +0 -0
  27. data/vendor/bundle/cache/mime-types-data-3.2019.1009.gem +0 -0
  28. data/vendor/bundle/cache/mini_portile2-2.4.0.gem +0 -0
  29. data/vendor/bundle/cache/net-http-digest_auth-1.4.1.gem +0 -0
  30. data/vendor/bundle/cache/net-http-persistent-3.1.0.gem +0 -0
  31. data/vendor/bundle/cache/nokogiri-1.10.7.gem +0 -0
  32. data/vendor/bundle/cache/ntlm-http-0.1.1.gem +0 -0
  33. data/vendor/bundle/cache/rake-12.3.3.gem +0 -0
  34. data/vendor/bundle/cache/rspec-3.9.0.gem +0 -0
  35. data/vendor/bundle/cache/rspec-core-3.9.1.gem +0 -0
  36. data/vendor/bundle/cache/rspec-expectations-3.9.0.gem +0 -0
  37. data/vendor/bundle/cache/rspec-mocks-3.9.1.gem +0 -0
  38. data/vendor/bundle/cache/rspec-support-3.9.2.gem +0 -0
  39. data/vendor/bundle/cache/unf-0.1.4.gem +0 -0
  40. data/vendor/bundle/cache/unf_ext-0.0.7.6.gem +0 -0
  41. data/vendor/bundle/cache/webrobots-0.1.2.gem +0 -0
  42. data/vendor/bundle/extensions/x86_64-darwin-18/2.6.0-static/nokogiri-1.10.7/gem.build_complete +0 -0
  43. data/vendor/bundle/extensions/x86_64-darwin-18/2.6.0-static/nokogiri-1.10.7/gem_make.out +153 -0
  44. data/vendor/bundle/extensions/x86_64-darwin-18/2.6.0-static/nokogiri-1.10.7/mkmf.log +562 -0
  45. data/vendor/bundle/extensions/x86_64-darwin-18/2.6.0-static/nokogiri-1.10.7/nokogiri/nokogiri.bundle +0 -0
  46. data/vendor/bundle/extensions/x86_64-darwin-18/2.6.0-static/unf_ext-0.0.7.6/gem.build_complete +0 -0
  47. data/vendor/bundle/extensions/x86_64-darwin-18/2.6.0-static/unf_ext-0.0.7.6/gem_make.out +38 -0
  48. data/vendor/bundle/extensions/x86_64-darwin-18/2.6.0-static/unf_ext-0.0.7.6/mkmf.log +35 -0
  49. data/vendor/bundle/extensions/x86_64-darwin-18/2.6.0-static/unf_ext-0.0.7.6/unf_ext.bundle +0 -0
  50. data/vendor/bundle/gems/connection_pool-2.2.2/.gitignore +4 -0
  51. data/vendor/bundle/gems/connection_pool-2.2.2/.travis.yml +10 -0
  52. data/vendor/bundle/gems/connection_pool-2.2.2/Changes.md +123 -0
  53. data/vendor/bundle/gems/connection_pool-2.2.2/Gemfile +3 -0
  54. data/vendor/bundle/gems/connection_pool-2.2.2/LICENSE +20 -0
  55. data/vendor/bundle/gems/connection_pool-2.2.2/README.md +107 -0
  56. data/vendor/bundle/gems/connection_pool-2.2.2/Rakefile +6 -0
  57. data/vendor/bundle/gems/connection_pool-2.2.2/connection_pool.gemspec +21 -0
  58. data/vendor/bundle/gems/connection_pool-2.2.2/lib/connection_pool.rb +161 -0
  59. data/vendor/bundle/gems/connection_pool-2.2.2/lib/connection_pool/monotonic_time.rb +66 -0
  60. data/vendor/bundle/gems/connection_pool-2.2.2/lib/connection_pool/timed_stack.rb +176 -0
  61. data/vendor/bundle/gems/connection_pool-2.2.2/lib/connection_pool/version.rb +3 -0
  62. data/vendor/bundle/gems/connection_pool-2.2.2/test/helper.rb +8 -0
  63. data/vendor/bundle/gems/connection_pool-2.2.2/test/test_connection_pool.rb +516 -0
  64. data/vendor/bundle/gems/connection_pool-2.2.2/test/test_connection_pool_timed_stack.rb +149 -0
  65. data/vendor/bundle/gems/diff-lcs-1.3/.rspec +1 -0
  66. data/vendor/bundle/gems/diff-lcs-1.3/Code-of-Conduct.md +74 -0
  67. data/vendor/bundle/gems/diff-lcs-1.3/Contributing.md +83 -0
  68. data/vendor/bundle/gems/diff-lcs-1.3/History.md +220 -0
  69. data/vendor/bundle/gems/diff-lcs-1.3/License.md +39 -0
  70. data/vendor/bundle/gems/diff-lcs-1.3/Manifest.txt +37 -0
  71. data/vendor/bundle/gems/diff-lcs-1.3/README.rdoc +84 -0
  72. data/vendor/bundle/gems/diff-lcs-1.3/Rakefile +57 -0
  73. data/vendor/bundle/gems/diff-lcs-1.3/autotest/discover.rb +1 -0
  74. data/vendor/bundle/gems/diff-lcs-1.3/bin/htmldiff +32 -0
  75. data/vendor/bundle/gems/diff-lcs-1.3/bin/ldiff +6 -0
  76. data/vendor/bundle/gems/diff-lcs-1.3/docs/COPYING.txt +339 -0
  77. data/vendor/bundle/gems/diff-lcs-1.3/docs/artistic.txt +127 -0
  78. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff-lcs.rb +3 -0
  79. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs.rb +725 -0
  80. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +7 -0
  81. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +37 -0
  82. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +322 -0
  83. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +181 -0
  84. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +149 -0
  85. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +276 -0
  86. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +307 -0
  87. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +167 -0
  88. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +5 -0
  89. data/vendor/bundle/gems/diff-lcs-1.3/spec/change_spec.rb +65 -0
  90. data/vendor/bundle/gems/diff-lcs-1.3/spec/diff_spec.rb +47 -0
  91. data/vendor/bundle/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +50 -0
  92. data/vendor/bundle/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +51 -0
  93. data/vendor/bundle/gems/diff-lcs-1.3/spec/hunk_spec.rb +72 -0
  94. data/vendor/bundle/gems/diff-lcs-1.3/spec/issues_spec.rb +49 -0
  95. data/vendor/bundle/gems/diff-lcs-1.3/spec/lcs_spec.rb +56 -0
  96. data/vendor/bundle/gems/diff-lcs-1.3/spec/ldiff_spec.rb +47 -0
  97. data/vendor/bundle/gems/diff-lcs-1.3/spec/patch_spec.rb +422 -0
  98. data/vendor/bundle/gems/diff-lcs-1.3/spec/sdiff_spec.rb +214 -0
  99. data/vendor/bundle/gems/diff-lcs-1.3/spec/spec_helper.rb +321 -0
  100. data/vendor/bundle/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +310 -0
  101. data/vendor/bundle/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +139 -0
  102. data/vendor/bundle/gems/domain_name-0.5.20190701/.document +5 -0
  103. data/vendor/bundle/gems/domain_name-0.5.20190701/.gitignore +17 -0
  104. data/vendor/bundle/gems/domain_name-0.5.20190701/.travis.yml +21 -0
  105. data/vendor/bundle/gems/domain_name-0.5.20190701/CHANGELOG.md +219 -0
  106. data/vendor/bundle/gems/domain_name-0.5.20190701/Gemfile +4 -0
  107. data/vendor/bundle/gems/domain_name-0.5.20190701/LICENSE.txt +78 -0
  108. data/vendor/bundle/gems/domain_name-0.5.20190701/README.md +67 -0
  109. data/vendor/bundle/gems/domain_name-0.5.20190701/Rakefile +111 -0
  110. data/vendor/bundle/gems/domain_name-0.5.20190701/data/public_suffix_list.dat +12985 -0
  111. data/vendor/bundle/gems/domain_name-0.5.20190701/domain_name.gemspec +36 -0
  112. data/vendor/bundle/gems/domain_name-0.5.20190701/lib/domain_name.rb +297 -0
  113. data/vendor/bundle/gems/domain_name-0.5.20190701/lib/domain_name/etld_data.rb +8787 -0
  114. data/vendor/bundle/gems/domain_name-0.5.20190701/lib/domain_name/etld_data.rb.erb +11 -0
  115. data/vendor/bundle/gems/domain_name-0.5.20190701/lib/domain_name/punycode.rb +283 -0
  116. data/vendor/bundle/gems/domain_name-0.5.20190701/lib/domain_name/version.rb +3 -0
  117. data/vendor/bundle/gems/domain_name-0.5.20190701/test/helper.rb +17 -0
  118. data/vendor/bundle/gems/domain_name-0.5.20190701/test/test_domain_name-punycode.rb +97 -0
  119. data/vendor/bundle/gems/domain_name-0.5.20190701/test/test_domain_name.rb +317 -0
  120. data/vendor/bundle/gems/domain_name-0.5.20190701/tool/gen_etld_data.rb +63 -0
  121. data/vendor/bundle/gems/http-cookie-1.0.3/.gitignore +17 -0
  122. data/vendor/bundle/gems/http-cookie-1.0.3/.travis.yml +21 -0
  123. data/vendor/bundle/gems/http-cookie-1.0.3/CHANGELOG.md +22 -0
  124. data/vendor/bundle/gems/http-cookie-1.0.3/Gemfile +4 -0
  125. data/vendor/bundle/gems/http-cookie-1.0.3/LICENSE.txt +24 -0
  126. data/vendor/bundle/gems/http-cookie-1.0.3/README.md +235 -0
  127. data/vendor/bundle/gems/http-cookie-1.0.3/Rakefile +20 -0
  128. data/vendor/bundle/gems/http-cookie-1.0.3/http-cookie.gemspec +34 -0
  129. data/vendor/bundle/gems/http-cookie-1.0.3/lib/http-cookie.rb +1 -0
  130. data/vendor/bundle/gems/http-cookie-1.0.3/lib/http/cookie.rb +685 -0
  131. data/vendor/bundle/gems/http-cookie-1.0.3/lib/http/cookie/ruby_compat.rb +63 -0
  132. data/vendor/bundle/gems/http-cookie-1.0.3/lib/http/cookie/scanner.rb +231 -0
  133. data/vendor/bundle/gems/http-cookie-1.0.3/lib/http/cookie/version.rb +5 -0
  134. data/vendor/bundle/gems/http-cookie-1.0.3/lib/http/cookie_jar.rb +344 -0
  135. data/vendor/bundle/gems/http-cookie-1.0.3/lib/http/cookie_jar/abstract_saver.rb +65 -0
  136. data/vendor/bundle/gems/http-cookie-1.0.3/lib/http/cookie_jar/abstract_store.rb +124 -0
  137. data/vendor/bundle/gems/http-cookie-1.0.3/lib/http/cookie_jar/cookiestxt_saver.rb +106 -0
  138. data/vendor/bundle/gems/http-cookie-1.0.3/lib/http/cookie_jar/hash_store.rb +163 -0
  139. data/vendor/bundle/gems/http-cookie-1.0.3/lib/http/cookie_jar/mozilla_store.rb +458 -0
  140. data/vendor/bundle/gems/http-cookie-1.0.3/lib/http/cookie_jar/yaml_saver.rb +76 -0
  141. data/vendor/bundle/gems/http-cookie-1.0.3/test/helper.rb +55 -0
  142. data/vendor/bundle/gems/http-cookie-1.0.3/test/mechanize.yml +101 -0
  143. data/vendor/bundle/gems/http-cookie-1.0.3/test/simplecov_start.rb +2 -0
  144. data/vendor/bundle/gems/http-cookie-1.0.3/test/test_http_cookie.rb +1122 -0
  145. data/vendor/bundle/gems/http-cookie-1.0.3/test/test_http_cookie_jar.rb +985 -0
  146. data/vendor/bundle/gems/mechanize-2.7.6/.autotest +6 -0
  147. data/vendor/bundle/gems/mechanize-2.7.6/.gitignore +15 -0
  148. data/vendor/bundle/gems/mechanize-2.7.6/.travis.yml +36 -0
  149. data/vendor/bundle/gems/mechanize-2.7.6/CHANGELOG.rdoc +999 -0
  150. data/vendor/bundle/gems/mechanize-2.7.6/EXAMPLES.rdoc +192 -0
  151. data/vendor/bundle/gems/mechanize-2.7.6/GUIDE.rdoc +168 -0
  152. data/vendor/bundle/gems/mechanize-2.7.6/Gemfile +6 -0
  153. data/vendor/bundle/gems/mechanize-2.7.6/LICENSE.rdoc +20 -0
  154. data/vendor/bundle/gems/mechanize-2.7.6/README.rdoc +77 -0
  155. data/vendor/bundle/gems/mechanize-2.7.6/Rakefile +41 -0
  156. data/vendor/bundle/gems/mechanize-2.7.6/examples/flickr_upload.rb +22 -0
  157. data/vendor/bundle/gems/mechanize-2.7.6/examples/mech-dump.rb +5 -0
  158. data/vendor/bundle/gems/mechanize-2.7.6/examples/proxy_req.rb +7 -0
  159. data/vendor/bundle/gems/mechanize-2.7.6/examples/rubygems.rb +23 -0
  160. data/vendor/bundle/gems/mechanize-2.7.6/examples/spider.rb +22 -0
  161. data/vendor/bundle/gems/mechanize-2.7.6/examples/wikipedia_links_to_philosophy.rb +159 -0
  162. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize.rb +1369 -0
  163. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/chunked_termination_error.rb +7 -0
  164. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/content_type_error.rb +13 -0
  165. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/cookie.rb +73 -0
  166. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/cookie_jar.rb +190 -0
  167. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/directory_saver.rb +77 -0
  168. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/download.rb +84 -0
  169. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/element_matcher.rb +68 -0
  170. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/element_not_found_error.rb +19 -0
  171. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/file.rb +93 -0
  172. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/file_connection.rb +17 -0
  173. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/file_request.rb +30 -0
  174. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/file_response.rb +80 -0
  175. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/file_saver.rb +39 -0
  176. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form.rb +724 -0
  177. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/button.rb +6 -0
  178. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/check_box.rb +19 -0
  179. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/field.rb +124 -0
  180. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/file_upload.rb +21 -0
  181. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/hidden.rb +3 -0
  182. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/image_button.rb +19 -0
  183. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/keygen.rb +34 -0
  184. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/multi_select_list.rb +93 -0
  185. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/option.rb +51 -0
  186. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/radio_button.rb +69 -0
  187. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/reset.rb +3 -0
  188. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/select_list.rb +44 -0
  189. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/submit.rb +3 -0
  190. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/text.rb +3 -0
  191. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/form/textarea.rb +3 -0
  192. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/headers.rb +23 -0
  193. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/history.rb +82 -0
  194. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/http.rb +8 -0
  195. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/http/agent.rb +1281 -0
  196. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/http/auth_challenge.rb +65 -0
  197. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/http/auth_realm.rb +31 -0
  198. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/http/auth_store.rb +123 -0
  199. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/http/content_disposition_parser.rb +191 -0
  200. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/http/www_authenticate_parser.rb +178 -0
  201. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/image.rb +6 -0
  202. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/page.rb +648 -0
  203. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/page/base.rb +7 -0
  204. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/page/frame.rb +29 -0
  205. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/page/image.rb +182 -0
  206. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/page/label.rb +20 -0
  207. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/page/link.rb +108 -0
  208. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/page/meta_refresh.rb +78 -0
  209. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/parser.rb +182 -0
  210. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/pluggable_parsers.rb +179 -0
  211. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/prependable.rb +89 -0
  212. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/redirect_limit_reached_error.rb +19 -0
  213. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/redirect_not_get_or_head_error.rb +21 -0
  214. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/response_code_error.rb +26 -0
  215. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/response_read_error.rb +38 -0
  216. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/robots_disallowed_error.rb +28 -0
  217. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case.rb +330 -0
  218. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/.document +1 -0
  219. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/bad_chunking_servlet.rb +14 -0
  220. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/basic_auth_servlet.rb +24 -0
  221. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/content_type_servlet.rb +8 -0
  222. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/digest_auth_servlet.rb +33 -0
  223. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/file_upload_servlet.rb +20 -0
  224. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/form_servlet.rb +55 -0
  225. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/gzip_servlet.rb +32 -0
  226. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/header_servlet.rb +14 -0
  227. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/http_refresh_servlet.rb +8 -0
  228. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/infinite_redirect_servlet.rb +10 -0
  229. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/infinite_refresh_servlet.rb +9 -0
  230. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/many_cookies_as_string_servlet.rb +37 -0
  231. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/many_cookies_servlet.rb +33 -0
  232. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/modified_since_servlet.rb +21 -0
  233. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/ntlm_servlet.rb +30 -0
  234. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/one_cookie_no_spaces_servlet.rb +11 -0
  235. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/one_cookie_servlet.rb +11 -0
  236. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/quoted_value_cookie_servlet.rb +11 -0
  237. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/redirect_servlet.rb +13 -0
  238. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/referer_servlet.rb +12 -0
  239. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/refresh_with_empty_url.rb +15 -0
  240. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/refresh_without_url.rb +14 -0
  241. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/response_code_servlet.rb +15 -0
  242. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/robots_txt_servlet.rb +14 -0
  243. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/send_cookies_servlet.rb +19 -0
  244. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/server.rb +36 -0
  245. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/servlets.rb +58 -0
  246. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/test_case/verb_servlet.rb +11 -0
  247. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/unauthorized_error.rb +22 -0
  248. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/unsupported_scheme_error.rb +8 -0
  249. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/util.rb +161 -0
  250. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/version.rb +3 -0
  251. data/vendor/bundle/gems/mechanize-2.7.6/lib/mechanize/xml_file.rb +47 -0
  252. data/vendor/bundle/gems/mechanize-2.7.6/mechanize.gemspec +66 -0
  253. data/vendor/bundle/gems/mechanize-2.7.6/test/data/htpasswd +1 -0
  254. data/vendor/bundle/gems/mechanize-2.7.6/test/data/server.crt +16 -0
  255. data/vendor/bundle/gems/mechanize-2.7.6/test/data/server.csr +12 -0
  256. data/vendor/bundle/gems/mechanize-2.7.6/test/data/server.key +15 -0
  257. data/vendor/bundle/gems/mechanize-2.7.6/test/data/server.pem +15 -0
  258. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/alt_text.html +10 -0
  259. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/bad_form_test.html +9 -0
  260. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/button.jpg +0 -0
  261. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/canonical_uri.html +9 -0
  262. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/dir with spaces/foo.html +1 -0
  263. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/empty_form.html +6 -0
  264. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/file_upload.html +26 -0
  265. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/find_link.html +38 -0
  266. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/form_multi_select.html +16 -0
  267. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/form_multival.html +37 -0
  268. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/form_no_action.html +18 -0
  269. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/form_no_input_name.html +16 -0
  270. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/form_order_test.html +11 -0
  271. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/form_select.html +16 -0
  272. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/form_set_fields.html +14 -0
  273. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/form_test.html +188 -0
  274. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/frame_referer_test.html +10 -0
  275. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/frame_test.html +30 -0
  276. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/google.html +13 -0
  277. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/index.html +6 -0
  278. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/link with space.html +5 -0
  279. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/meta_cookie.html +11 -0
  280. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/no_title_test.html +6 -0
  281. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/noindex.html +9 -0
  282. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/rails_3_encoding_hack_form_test.html +27 -0
  283. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/relative/tc_relative_links.html +21 -0
  284. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/robots.html +8 -0
  285. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_bad_charset.html +9 -0
  286. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_bad_links.html +5 -0
  287. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_base_link.html +8 -0
  288. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_blank_form.html +11 -0
  289. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_charset.html +6 -0
  290. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_checkboxes.html +19 -0
  291. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_encoded_links.html +5 -0
  292. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_field_precedence.html +11 -0
  293. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_follow_meta.html +8 -0
  294. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_follow_meta_loop_1.html +8 -0
  295. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_follow_meta_loop_2.html +8 -0
  296. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_form_action.html +48 -0
  297. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_links.html +21 -0
  298. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_meta_in_body.html +9 -0
  299. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_pretty_print.html +17 -0
  300. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_referer.html +16 -0
  301. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_relative_links.html +19 -0
  302. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/tc_textarea.html +23 -0
  303. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/test_click.html +11 -0
  304. data/vendor/bundle/gems/mechanize-2.7.6/test/htdocs/unusual______.html +5 -0
  305. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize.rb +1361 -0
  306. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_cookie.rb +547 -0
  307. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_cookie_jar.rb +582 -0
  308. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_directory_saver.rb +59 -0
  309. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_download.rb +89 -0
  310. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_element_not_found_error.rb +15 -0
  311. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_file.rb +107 -0
  312. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_file_connection.rb +21 -0
  313. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_file_request.rb +25 -0
  314. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_file_response.rb +23 -0
  315. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_file_saver.rb +21 -0
  316. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_form.rb +1012 -0
  317. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_form_check_box.rb +48 -0
  318. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_form_encoding.rb +109 -0
  319. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_form_field.rb +77 -0
  320. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_form_file_upload.rb +20 -0
  321. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_form_image_button.rb +12 -0
  322. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_form_keygen.rb +32 -0
  323. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_form_multi_select_list.rb +97 -0
  324. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_form_option.rb +59 -0
  325. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_form_radio_button.rb +95 -0
  326. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_form_select_list.rb +80 -0
  327. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_form_textarea.rb +52 -0
  328. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_headers.rb +35 -0
  329. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_history.rb +103 -0
  330. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_http_agent.rb +1754 -0
  331. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_http_auth_challenge.rb +63 -0
  332. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_http_auth_realm.rb +55 -0
  333. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_http_auth_store.rb +232 -0
  334. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_http_content_disposition_parser.rb +139 -0
  335. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_http_www_authenticate_parser.rb +203 -0
  336. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_image.rb +8 -0
  337. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_link.rb +146 -0
  338. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_page.rb +280 -0
  339. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_page_encoding.rb +187 -0
  340. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_page_frame.rb +16 -0
  341. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_page_image.rb +190 -0
  342. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_page_link.rb +373 -0
  343. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_page_meta_refresh.rb +150 -0
  344. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_parser.rb +315 -0
  345. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_pluggable_parser.rb +67 -0
  346. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_redirect_limit_reached_error.rb +24 -0
  347. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_redirect_not_get_or_head_error.rb +14 -0
  348. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_response_read_error.rb +28 -0
  349. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_subclass.rb +22 -0
  350. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_util.rb +143 -0
  351. data/vendor/bundle/gems/mechanize-2.7.6/test/test_mechanize_xml_file.rb +29 -0
  352. data/vendor/bundle/gems/mechanize-2.7.6/test/test_multi_select.rb +119 -0
  353. data/vendor/bundle/gems/mime-types-3.3.1/Code-of-Conduct.md +73 -0
  354. data/vendor/bundle/gems/mime-types-3.3.1/Contributing.md +143 -0
  355. data/vendor/bundle/gems/mime-types-3.3.1/History.md +240 -0
  356. data/vendor/bundle/gems/mime-types-3.3.1/Licence.md +25 -0
  357. data/vendor/bundle/gems/mime-types-3.3.1/Manifest.txt +31 -0
  358. data/vendor/bundle/gems/mime-types-3.3.1/README.rdoc +193 -0
  359. data/vendor/bundle/gems/mime-types-3.3.1/Rakefile +284 -0
  360. data/vendor/bundle/gems/mime-types-3.3.1/lib/mime-types.rb +3 -0
  361. data/vendor/bundle/gems/mime-types-3.3.1/lib/mime/type.rb +587 -0
  362. data/vendor/bundle/gems/mime-types-3.3.1/lib/mime/type/columnar.rb +57 -0
  363. data/vendor/bundle/gems/mime-types-3.3.1/lib/mime/types.rb +231 -0
  364. data/vendor/bundle/gems/mime-types-3.3.1/lib/mime/types/_columnar.rb +136 -0
  365. data/vendor/bundle/gems/mime-types-3.3.1/lib/mime/types/cache.rb +58 -0
  366. data/vendor/bundle/gems/mime-types-3.3.1/lib/mime/types/columnar.rb +3 -0
  367. data/vendor/bundle/gems/mime-types-3.3.1/lib/mime/types/container.rb +96 -0
  368. data/vendor/bundle/gems/mime-types-3.3.1/lib/mime/types/deprecations.rb +32 -0
  369. data/vendor/bundle/gems/mime-types-3.3.1/lib/mime/types/full.rb +19 -0
  370. data/vendor/bundle/gems/mime-types-3.3.1/lib/mime/types/loader.rb +146 -0
  371. data/vendor/bundle/gems/mime-types-3.3.1/lib/mime/types/logger.rb +39 -0
  372. data/vendor/bundle/gems/mime-types-3.3.1/lib/mime/types/registry.rb +90 -0
  373. data/vendor/bundle/gems/mime-types-3.3.1/test/bad-fixtures/malformed +9 -0
  374. data/vendor/bundle/gems/mime-types-3.3.1/test/fixture/json.json +1 -0
  375. data/vendor/bundle/gems/mime-types-3.3.1/test/fixture/old-data +9 -0
  376. data/vendor/bundle/gems/mime-types-3.3.1/test/fixture/yaml.yaml +55 -0
  377. data/vendor/bundle/gems/mime-types-3.3.1/test/minitest_helper.rb +13 -0
  378. data/vendor/bundle/gems/mime-types-3.3.1/test/test_mime_type.rb +610 -0
  379. data/vendor/bundle/gems/mime-types-3.3.1/test/test_mime_types.rb +169 -0
  380. data/vendor/bundle/gems/mime-types-3.3.1/test/test_mime_types_cache.rb +118 -0
  381. data/vendor/bundle/gems/mime-types-3.3.1/test/test_mime_types_class.rb +159 -0
  382. data/vendor/bundle/gems/mime-types-3.3.1/test/test_mime_types_lazy.rb +49 -0
  383. data/vendor/bundle/gems/mime-types-3.3.1/test/test_mime_types_loader.rb +32 -0
  384. data/vendor/bundle/gems/mime-types-data-3.2019.1009/Code-of-Conduct.md +75 -0
  385. data/vendor/bundle/gems/mime-types-data-3.2019.1009/Contributing.md +162 -0
  386. data/vendor/bundle/gems/mime-types-data-3.2019.1009/History.md +406 -0
  387. data/vendor/bundle/gems/mime-types-data-3.2019.1009/Licence.md +25 -0
  388. data/vendor/bundle/gems/mime-types-data-3.2019.1009/Manifest.txt +31 -0
  389. data/vendor/bundle/gems/mime-types-data-3.2019.1009/README.md +63 -0
  390. data/vendor/bundle/gems/mime-types-data-3.2019.1009/Rakefile +94 -0
  391. data/vendor/bundle/gems/mime-types-data-3.2019.1009/data/mime-types.json +1 -0
  392. data/vendor/bundle/gems/mime-types-data-3.2019.1009/data/mime.content_type.column +2215 -0
  393. data/vendor/bundle/gems/mime-types-data-3.2019.1009/data/mime.docs.column +2215 -0
  394. data/vendor/bundle/gems/mime-types-data-3.2019.1009/data/mime.encoding.column +2215 -0
  395. data/vendor/bundle/gems/mime-types-data-3.2019.1009/data/mime.flags.column +2215 -0
  396. data/vendor/bundle/gems/mime-types-data-3.2019.1009/data/mime.friendly.column +2215 -0
  397. data/vendor/bundle/gems/mime-types-data-3.2019.1009/data/mime.pext.column +2215 -0
  398. data/vendor/bundle/gems/mime-types-data-3.2019.1009/data/mime.use_instead.column +2215 -0
  399. data/vendor/bundle/gems/mime-types-data-3.2019.1009/data/mime.xrefs.column +2215 -0
  400. data/vendor/bundle/gems/mime-types-data-3.2019.1009/lib/mime-types-data.rb +3 -0
  401. data/vendor/bundle/gems/mime-types-data-3.2019.1009/lib/mime/types/data.rb +21 -0
  402. data/vendor/bundle/gems/mime-types-data-3.2019.1009/types/application.yaml +16361 -0
  403. data/vendor/bundle/gems/mime-types-data-3.2019.1009/types/audio.yaml +1644 -0
  404. data/vendor/bundle/gems/mime-types-data-3.2019.1009/types/chemical.yaml +71 -0
  405. data/vendor/bundle/gems/mime-types-data-3.2019.1009/types/conference.yaml +9 -0
  406. data/vendor/bundle/gems/mime-types-data-3.2019.1009/types/drawing.yaml +15 -0
  407. data/vendor/bundle/gems/mime-types-data-3.2019.1009/types/font.yaml +65 -0
  408. data/vendor/bundle/gems/mime-types-data-3.2019.1009/types/image.yaml +1069 -0
  409. data/vendor/bundle/gems/mime-types-data-3.2019.1009/types/message.yaml +200 -0
  410. data/vendor/bundle/gems/mime-types-data-3.2019.1009/types/model.yaml +302 -0
  411. data/vendor/bundle/gems/mime-types-data-3.2019.1009/types/multipart.yaml +179 -0
  412. data/vendor/bundle/gems/mime-types-data-3.2019.1009/types/text.yaml +1055 -0
  413. data/vendor/bundle/gems/mime-types-data-3.2019.1009/types/video.yaml +1070 -0
  414. data/vendor/bundle/gems/mime-types-data-3.2019.1009/types/world.yaml +8 -0
  415. data/vendor/bundle/gems/mini_portile2-2.4.0/.concourse.yml +83 -0
  416. data/vendor/bundle/gems/mini_portile2-2.4.0/.gitignore +7 -0
  417. data/vendor/bundle/gems/mini_portile2-2.4.0/.travis.yml +15 -0
  418. data/vendor/bundle/gems/mini_portile2-2.4.0/CHANGELOG.md +209 -0
  419. data/vendor/bundle/gems/mini_portile2-2.4.0/Gemfile +4 -0
  420. data/vendor/bundle/gems/mini_portile2-2.4.0/LICENSE.txt +20 -0
  421. data/vendor/bundle/gems/mini_portile2-2.4.0/README.md +245 -0
  422. data/vendor/bundle/gems/mini_portile2-2.4.0/Rakefile +29 -0
  423. data/vendor/bundle/gems/mini_portile2-2.4.0/appveyor.yml +25 -0
  424. data/vendor/bundle/gems/mini_portile2-2.4.0/concourse/mini_portile.yml +141 -0
  425. data/vendor/bundle/gems/mini_portile2-2.4.0/concourse/tasks/rake-test/task.ps1 +11 -0
  426. data/vendor/bundle/gems/mini_portile2-2.4.0/concourse/tasks/rake-test/task.sh +13 -0
  427. data/vendor/bundle/gems/mini_portile2-2.4.0/lib/mini_portile2.rb +3 -0
  428. data/vendor/bundle/gems/mini_portile2-2.4.0/lib/mini_portile2/mini_portile.rb +556 -0
  429. data/vendor/bundle/gems/mini_portile2-2.4.0/lib/mini_portile2/mini_portile_cmake.rb +40 -0
  430. data/vendor/bundle/gems/mini_portile2-2.4.0/lib/mini_portile2/version.rb +3 -0
  431. data/vendor/bundle/gems/mini_portile2-2.4.0/mini_portile2.gemspec +42 -0
  432. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/git/config +4 -0
  433. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/gpg-fixtures/data +1 -0
  434. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/gpg-fixtures/data.asc +9 -0
  435. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/gpg-fixtures/data.invalid.asc +9 -0
  436. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/patch 1.diff +7 -0
  437. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/test mini portile-1.0.0/configure +11 -0
  438. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/test-cmake-1.0/CMakeLists.txt +7 -0
  439. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/test-cmake-1.0/hello.c +4 -0
  440. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/test-download-archive.tar.gz +1 -0
  441. data/vendor/bundle/gems/mini_portile2-2.4.0/test/helper.rb +60 -0
  442. data/vendor/bundle/gems/mini_portile2-2.4.0/test/test_cmake.rb +64 -0
  443. data/vendor/bundle/gems/mini_portile2-2.4.0/test/test_cook.rb +115 -0
  444. data/vendor/bundle/gems/mini_portile2-2.4.0/test/test_digest.rb +215 -0
  445. data/vendor/bundle/gems/mini_portile2-2.4.0/test/test_download.rb +71 -0
  446. data/vendor/bundle/gems/mini_portile2-2.4.0/test/test_proxy.rb +121 -0
  447. data/vendor/bundle/gems/net-http-digest_auth-1.4.1/.autotest +8 -0
  448. data/vendor/bundle/gems/net-http-digest_auth-1.4.1/.travis.yml +16 -0
  449. data/vendor/bundle/gems/net-http-digest_auth-1.4.1/History.txt +52 -0
  450. data/vendor/bundle/gems/net-http-digest_auth-1.4.1/Manifest.txt +10 -0
  451. data/vendor/bundle/gems/net-http-digest_auth-1.4.1/README.txt +44 -0
  452. data/vendor/bundle/gems/net-http-digest_auth-1.4.1/Rakefile +25 -0
  453. data/vendor/bundle/gems/net-http-digest_auth-1.4.1/lib/net/http/digest_auth.rb +173 -0
  454. data/vendor/bundle/gems/net-http-digest_auth-1.4.1/sample/auth_server.rb +47 -0
  455. data/vendor/bundle/gems/net-http-digest_auth-1.4.1/sample/net_http_example.rb +27 -0
  456. data/vendor/bundle/gems/net-http-digest_auth-1.4.1/test/test_net_http_digest_auth.rb +130 -0
  457. data/vendor/bundle/gems/net-http-persistent-3.1.0/.autotest +9 -0
  458. data/vendor/bundle/gems/net-http-persistent-3.1.0/.gemtest +0 -0
  459. data/vendor/bundle/gems/net-http-persistent-3.1.0/.travis.yml +24 -0
  460. data/vendor/bundle/gems/net-http-persistent-3.1.0/Gemfile +15 -0
  461. data/vendor/bundle/gems/net-http-persistent-3.1.0/History.txt +391 -0
  462. data/vendor/bundle/gems/net-http-persistent-3.1.0/Manifest.txt +14 -0
  463. data/vendor/bundle/gems/net-http-persistent-3.1.0/README.rdoc +82 -0
  464. data/vendor/bundle/gems/net-http-persistent-3.1.0/Rakefile +31 -0
  465. data/vendor/bundle/gems/net-http-persistent-3.1.0/lib/net/http/persistent.rb +1202 -0
  466. data/vendor/bundle/gems/net-http-persistent-3.1.0/lib/net/http/persistent/connection.rb +40 -0
  467. data/vendor/bundle/gems/net-http-persistent-3.1.0/lib/net/http/persistent/pool.rb +53 -0
  468. data/vendor/bundle/gems/net-http-persistent-3.1.0/lib/net/http/persistent/timed_stack_multi.rb +79 -0
  469. data/vendor/bundle/gems/net-http-persistent-3.1.0/test/test_net_http_persistent.rb +1621 -0
  470. data/vendor/bundle/gems/net-http-persistent-3.1.0/test/test_net_http_persistent_timed_stack_multi.rb +151 -0
  471. data/vendor/bundle/gems/nokogiri-1.10.7/LICENSE-DEPENDENCIES.md +1614 -0
  472. data/vendor/bundle/gems/nokogiri-1.10.7/LICENSE.md +9 -0
  473. data/vendor/bundle/gems/nokogiri-1.10.7/README.md +198 -0
  474. data/vendor/bundle/gems/nokogiri-1.10.7/bin/nokogiri +118 -0
  475. data/vendor/bundle/gems/nokogiri-1.10.7/dependencies.yml +74 -0
  476. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/.sitearchdir.-.nokogiri.time +0 -0
  477. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/Makefile +629 -0
  478. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/depend +358 -0
  479. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/extconf.rb +686 -0
  480. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_document.c +170 -0
  481. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_document.h +10 -0
  482. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_document.o +0 -0
  483. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_element_description.c +279 -0
  484. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_element_description.h +10 -0
  485. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_element_description.o +0 -0
  486. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_entity_lookup.c +32 -0
  487. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_entity_lookup.h +8 -0
  488. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_entity_lookup.o +0 -0
  489. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_sax_parser_context.c +116 -0
  490. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_sax_parser_context.h +11 -0
  491. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_sax_parser_context.o +0 -0
  492. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_sax_push_parser.c +87 -0
  493. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_sax_push_parser.h +9 -0
  494. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/html_sax_push_parser.o +0 -0
  495. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/nokogiri.bundle +0 -0
  496. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/nokogiri.c +141 -0
  497. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/nokogiri.h +121 -0
  498. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/nokogiri.o +0 -0
  499. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_attr.c +103 -0
  500. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_attr.h +9 -0
  501. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_attr.o +0 -0
  502. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_attribute_decl.c +70 -0
  503. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_attribute_decl.h +9 -0
  504. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_attribute_decl.o +0 -0
  505. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_cdata.c +62 -0
  506. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_cdata.h +9 -0
  507. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_cdata.o +0 -0
  508. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_comment.c +69 -0
  509. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_comment.h +9 -0
  510. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_comment.o +0 -0
  511. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_document.c +608 -0
  512. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_document.h +23 -0
  513. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_document.o +0 -0
  514. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_document_fragment.c +48 -0
  515. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_document_fragment.h +10 -0
  516. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_document_fragment.o +0 -0
  517. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_dtd.c +202 -0
  518. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_dtd.h +10 -0
  519. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_dtd.o +0 -0
  520. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_element_content.c +123 -0
  521. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_element_content.h +10 -0
  522. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_element_content.o +0 -0
  523. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_element_decl.c +69 -0
  524. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_element_decl.h +9 -0
  525. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_element_decl.o +0 -0
  526. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_encoding_handler.c +79 -0
  527. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_encoding_handler.h +8 -0
  528. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_encoding_handler.o +0 -0
  529. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_entity_decl.c +110 -0
  530. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_entity_decl.h +10 -0
  531. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_entity_decl.o +0 -0
  532. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_entity_reference.c +52 -0
  533. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_entity_reference.h +9 -0
  534. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_entity_reference.o +0 -0
  535. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_io.c +61 -0
  536. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_io.h +11 -0
  537. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_io.o +0 -0
  538. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_libxml2_hacks.c +112 -0
  539. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_libxml2_hacks.h +12 -0
  540. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_libxml2_hacks.o +0 -0
  541. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_namespace.c +111 -0
  542. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_namespace.h +14 -0
  543. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_namespace.o +0 -0
  544. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_node.c +1753 -0
  545. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_node.h +13 -0
  546. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_node.o +0 -0
  547. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_node_set.c +486 -0
  548. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_node_set.h +12 -0
  549. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_node_set.o +0 -0
  550. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_processing_instruction.c +56 -0
  551. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_processing_instruction.h +9 -0
  552. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_processing_instruction.o +0 -0
  553. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_reader.c +668 -0
  554. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_reader.h +10 -0
  555. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_reader.o +0 -0
  556. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_relax_ng.c +161 -0
  557. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_relax_ng.h +9 -0
  558. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_relax_ng.o +0 -0
  559. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_sax_parser.c +310 -0
  560. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_sax_parser.h +39 -0
  561. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_sax_parser.o +0 -0
  562. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_sax_parser_context.c +262 -0
  563. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_sax_parser_context.h +10 -0
  564. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_sax_parser_context.o +0 -0
  565. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_sax_push_parser.c +159 -0
  566. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_sax_push_parser.h +9 -0
  567. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_sax_push_parser.o +0 -0
  568. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_schema.c +205 -0
  569. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_schema.h +9 -0
  570. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_schema.o +0 -0
  571. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_syntax_error.c +64 -0
  572. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_syntax_error.h +13 -0
  573. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_syntax_error.o +0 -0
  574. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_text.c +52 -0
  575. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_text.h +9 -0
  576. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_text.o +0 -0
  577. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_xpath_context.c +298 -0
  578. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_xpath_context.h +10 -0
  579. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xml_xpath_context.o +0 -0
  580. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xslt_stylesheet.c +270 -0
  581. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xslt_stylesheet.h +14 -0
  582. data/vendor/bundle/gems/nokogiri-1.10.7/ext/nokogiri/xslt_stylesheet.o +0 -0
  583. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri.rb +144 -0
  584. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/css.rb +27 -0
  585. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/css/node.rb +52 -0
  586. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/css/parser.rb +750 -0
  587. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/css/parser.y +272 -0
  588. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/css/parser_extras.rb +91 -0
  589. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/css/syntax_error.rb +7 -0
  590. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/css/tokenizer.rb +153 -0
  591. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/css/tokenizer.rex +55 -0
  592. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/css/xpath_visitor.rb +230 -0
  593. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/decorators/slop.rb +42 -0
  594. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/html.rb +37 -0
  595. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/html/builder.rb +35 -0
  596. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/html/document.rb +335 -0
  597. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/html/document_fragment.rb +49 -0
  598. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/html/element_description.rb +23 -0
  599. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/html/element_description_defaults.rb +671 -0
  600. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/html/entity_lookup.rb +13 -0
  601. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/html/sax/parser.rb +62 -0
  602. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/html/sax/parser_context.rb +16 -0
  603. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/html/sax/push_parser.rb +36 -0
  604. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/nokogiri.bundle +0 -0
  605. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/syntax_error.rb +4 -0
  606. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/version.rb +109 -0
  607. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml.rb +75 -0
  608. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/attr.rb +14 -0
  609. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/attribute_decl.rb +18 -0
  610. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/builder.rb +446 -0
  611. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/cdata.rb +11 -0
  612. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/character_data.rb +7 -0
  613. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/document.rb +285 -0
  614. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/document_fragment.rb +160 -0
  615. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/dtd.rb +32 -0
  616. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/element_content.rb +36 -0
  617. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/element_decl.rb +13 -0
  618. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/entity_decl.rb +19 -0
  619. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/entity_reference.rb +18 -0
  620. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/namespace.rb +13 -0
  621. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/node.rb +902 -0
  622. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/node/save_options.rb +61 -0
  623. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/node_set.rb +371 -0
  624. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/notation.rb +6 -0
  625. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/parse_options.rb +120 -0
  626. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/pp.rb +2 -0
  627. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/pp/character_data.rb +18 -0
  628. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/pp/node.rb +56 -0
  629. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/processing_instruction.rb +8 -0
  630. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/reader.rb +112 -0
  631. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/relax_ng.rb +32 -0
  632. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/sax.rb +4 -0
  633. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/sax/document.rb +171 -0
  634. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/sax/parser.rb +122 -0
  635. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/sax/parser_context.rb +16 -0
  636. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/sax/push_parser.rb +60 -0
  637. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/schema.rb +63 -0
  638. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/searchable.rb +230 -0
  639. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/syntax_error.rb +70 -0
  640. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/text.rb +9 -0
  641. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/xpath.rb +10 -0
  642. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/xpath/syntax_error.rb +11 -0
  643. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xml/xpath_context.rb +16 -0
  644. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xslt.rb +56 -0
  645. data/vendor/bundle/gems/nokogiri-1.10.7/lib/nokogiri/xslt/stylesheet.rb +25 -0
  646. data/vendor/bundle/gems/nokogiri-1.10.7/lib/xsd/xmlparser/nokogiri.rb +102 -0
  647. data/vendor/bundle/gems/nokogiri-1.10.7/patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch +78 -0
  648. data/vendor/bundle/gems/nokogiri-1.10.7/patches/libxml2/0002-Remove-script-macro-support.patch +40 -0
  649. data/vendor/bundle/gems/nokogiri-1.10.7/patches/libxml2/0003-Update-entities-to-remove-handling-of-ssi.patch +44 -0
  650. data/vendor/bundle/gems/nokogiri-1.10.7/patches/libxml2/0004-libxml2.la-is-in-top_builddir.patch +25 -0
  651. data/vendor/bundle/gems/ntlm-http-0.1.1/README +25 -0
  652. data/vendor/bundle/gems/ntlm-http-0.1.1/Rakefile +66 -0
  653. data/vendor/bundle/gems/ntlm-http-0.1.1/examples/http.rb +86 -0
  654. data/vendor/bundle/gems/ntlm-http-0.1.1/examples/imap.rb +73 -0
  655. data/vendor/bundle/gems/ntlm-http-0.1.1/examples/smtp.rb +94 -0
  656. data/vendor/bundle/gems/ntlm-http-0.1.1/lib/net/ntlm.rb +774 -0
  657. data/vendor/bundle/gems/ntlm-http-0.1.1/lib/net/ntlm_http.rb +854 -0
  658. data/vendor/bundle/gems/ntlm-http-0.1.1/ntlm-http-0.1.1.gemspec +16 -0
  659. data/vendor/bundle/gems/ntlm-http-0.1.1/test/function_test.rb +111 -0
  660. data/vendor/bundle/gems/rake-12.3.3/CONTRIBUTING.rdoc +43 -0
  661. data/vendor/bundle/gems/rake-12.3.3/Gemfile +3 -0
  662. data/vendor/bundle/gems/rake-12.3.3/History.rdoc +2344 -0
  663. data/vendor/bundle/gems/rake-12.3.3/MIT-LICENSE +21 -0
  664. data/vendor/bundle/gems/rake-12.3.3/README.rdoc +156 -0
  665. data/vendor/bundle/gems/rake-12.3.3/Rakefile +41 -0
  666. data/vendor/bundle/gems/rake-12.3.3/azure-pipelines.yml +11 -0
  667. data/vendor/bundle/gems/rake-12.3.3/bin/bundle +105 -0
  668. data/vendor/bundle/gems/rake-12.3.3/bin/console +7 -0
  669. data/vendor/bundle/gems/rake-12.3.3/bin/rake +29 -0
  670. data/vendor/bundle/gems/rake-12.3.3/bin/rdoc +29 -0
  671. data/vendor/bundle/gems/rake-12.3.3/bin/rubocop +29 -0
  672. data/vendor/bundle/gems/rake-12.3.3/bin/setup +6 -0
  673. data/vendor/bundle/gems/rake-12.3.3/doc/command_line_usage.rdoc +158 -0
  674. data/vendor/bundle/gems/rake-12.3.3/doc/example/Rakefile1 +38 -0
  675. data/vendor/bundle/gems/rake-12.3.3/doc/example/Rakefile2 +35 -0
  676. data/vendor/bundle/gems/rake-12.3.3/doc/example/a.c +6 -0
  677. data/vendor/bundle/gems/rake-12.3.3/doc/example/b.c +6 -0
  678. data/vendor/bundle/gems/rake-12.3.3/doc/example/main.c +11 -0
  679. data/vendor/bundle/gems/rake-12.3.3/doc/glossary.rdoc +42 -0
  680. data/vendor/bundle/gems/rake-12.3.3/doc/jamis.rb +592 -0
  681. data/vendor/bundle/gems/rake-12.3.3/doc/proto_rake.rdoc +127 -0
  682. data/vendor/bundle/gems/rake-12.3.3/doc/rake.1 +156 -0
  683. data/vendor/bundle/gems/rake-12.3.3/doc/rakefile.rdoc +622 -0
  684. data/vendor/bundle/gems/rake-12.3.3/doc/rational.rdoc +151 -0
  685. data/vendor/bundle/gems/rake-12.3.3/exe/rake +27 -0
  686. data/vendor/bundle/gems/rake-12.3.3/lib/rake.rb +71 -0
  687. data/vendor/bundle/gems/rake-12.3.3/lib/rake/application.rb +824 -0
  688. data/vendor/bundle/gems/rake-12.3.3/lib/rake/backtrace.rb +24 -0
  689. data/vendor/bundle/gems/rake-12.3.3/lib/rake/clean.rb +78 -0
  690. data/vendor/bundle/gems/rake-12.3.3/lib/rake/cloneable.rb +17 -0
  691. data/vendor/bundle/gems/rake-12.3.3/lib/rake/cpu_counter.rb +107 -0
  692. data/vendor/bundle/gems/rake-12.3.3/lib/rake/default_loader.rb +15 -0
  693. data/vendor/bundle/gems/rake-12.3.3/lib/rake/dsl_definition.rb +195 -0
  694. data/vendor/bundle/gems/rake-12.3.3/lib/rake/early_time.rb +22 -0
  695. data/vendor/bundle/gems/rake-12.3.3/lib/rake/ext/core.rb +26 -0
  696. data/vendor/bundle/gems/rake-12.3.3/lib/rake/ext/string.rb +176 -0
  697. data/vendor/bundle/gems/rake-12.3.3/lib/rake/file_creation_task.rb +25 -0
  698. data/vendor/bundle/gems/rake-12.3.3/lib/rake/file_list.rb +435 -0
  699. data/vendor/bundle/gems/rake-12.3.3/lib/rake/file_task.rb +54 -0
  700. data/vendor/bundle/gems/rake-12.3.3/lib/rake/file_utils.rb +137 -0
  701. data/vendor/bundle/gems/rake-12.3.3/lib/rake/file_utils_ext.rb +145 -0
  702. data/vendor/bundle/gems/rake-12.3.3/lib/rake/invocation_chain.rb +57 -0
  703. data/vendor/bundle/gems/rake-12.3.3/lib/rake/invocation_exception_mixin.rb +17 -0
  704. data/vendor/bundle/gems/rake-12.3.3/lib/rake/late_time.rb +18 -0
  705. data/vendor/bundle/gems/rake-12.3.3/lib/rake/linked_list.rb +112 -0
  706. data/vendor/bundle/gems/rake-12.3.3/lib/rake/loaders/makefile.rb +54 -0
  707. data/vendor/bundle/gems/rake-12.3.3/lib/rake/multi_task.rb +14 -0
  708. data/vendor/bundle/gems/rake-12.3.3/lib/rake/name_space.rb +38 -0
  709. data/vendor/bundle/gems/rake-12.3.3/lib/rake/packagetask.rb +207 -0
  710. data/vendor/bundle/gems/rake-12.3.3/lib/rake/phony.rb +16 -0
  711. data/vendor/bundle/gems/rake-12.3.3/lib/rake/private_reader.rb +21 -0
  712. data/vendor/bundle/gems/rake-12.3.3/lib/rake/promise.rb +100 -0
  713. data/vendor/bundle/gems/rake-12.3.3/lib/rake/pseudo_status.rb +30 -0
  714. data/vendor/bundle/gems/rake-12.3.3/lib/rake/rake_module.rb +67 -0
  715. data/vendor/bundle/gems/rake-12.3.3/lib/rake/rake_test_loader.rb +27 -0
  716. data/vendor/bundle/gems/rake-12.3.3/lib/rake/rule_recursion_overflow_error.rb +20 -0
  717. data/vendor/bundle/gems/rake-12.3.3/lib/rake/scope.rb +43 -0
  718. data/vendor/bundle/gems/rake-12.3.3/lib/rake/task.rb +413 -0
  719. data/vendor/bundle/gems/rake-12.3.3/lib/rake/task_argument_error.rb +8 -0
  720. data/vendor/bundle/gems/rake-12.3.3/lib/rake/task_arguments.rb +109 -0
  721. data/vendor/bundle/gems/rake-12.3.3/lib/rake/task_manager.rb +324 -0
  722. data/vendor/bundle/gems/rake-12.3.3/lib/rake/tasklib.rb +12 -0
  723. data/vendor/bundle/gems/rake-12.3.3/lib/rake/testtask.rb +224 -0
  724. data/vendor/bundle/gems/rake-12.3.3/lib/rake/thread_history_display.rb +49 -0
  725. data/vendor/bundle/gems/rake-12.3.3/lib/rake/thread_pool.rb +163 -0
  726. data/vendor/bundle/gems/rake-12.3.3/lib/rake/trace_output.rb +23 -0
  727. data/vendor/bundle/gems/rake-12.3.3/lib/rake/version.rb +10 -0
  728. data/vendor/bundle/gems/rake-12.3.3/lib/rake/win32.rb +51 -0
  729. data/vendor/bundle/gems/rake-12.3.3/rake.gemspec +42 -0
  730. data/vendor/bundle/gems/rspec-3.9.0/LICENSE.md +27 -0
  731. data/vendor/bundle/gems/rspec-3.9.0/README.md +43 -0
  732. data/vendor/bundle/gems/rspec-3.9.0/lib/rspec.rb +3 -0
  733. data/vendor/bundle/gems/rspec-3.9.0/lib/rspec/version.rb +5 -0
  734. data/vendor/bundle/gems/rspec-core-3.9.1/.document +5 -0
  735. data/vendor/bundle/gems/rspec-core-3.9.1/.yardopts +8 -0
  736. data/vendor/bundle/gems/rspec-core-3.9.1/Changelog.md +2274 -0
  737. data/vendor/bundle/gems/rspec-core-3.9.1/LICENSE.md +26 -0
  738. data/vendor/bundle/gems/rspec-core-3.9.1/README.md +384 -0
  739. data/vendor/bundle/gems/rspec-core-3.9.1/exe/rspec +4 -0
  740. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/autorun.rb +3 -0
  741. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core.rb +186 -0
  742. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/backtrace_formatter.rb +65 -0
  743. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/bisect/coordinator.rb +62 -0
  744. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/bisect/example_minimizer.rb +173 -0
  745. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/bisect/fork_runner.rb +135 -0
  746. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/bisect/server.rb +61 -0
  747. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/bisect/shell_command.rb +126 -0
  748. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/bisect/shell_runner.rb +73 -0
  749. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/bisect/utilities.rb +58 -0
  750. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/configuration.rb +2336 -0
  751. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/configuration_options.rb +233 -0
  752. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/did_you_mean.rb +46 -0
  753. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/drb.rb +113 -0
  754. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/dsl.rb +98 -0
  755. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/example.rb +656 -0
  756. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb +889 -0
  757. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/example_status_persister.rb +235 -0
  758. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/filter_manager.rb +231 -0
  759. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/flat_map.rb +20 -0
  760. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters.rb +272 -0
  761. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
  762. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/base_formatter.rb +70 -0
  763. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  764. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
  765. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
  766. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/console_codes.rb +68 -0
  767. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  768. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/documentation_formatter.rb +102 -0
  769. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/exception_presenter.rb +508 -0
  770. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/failure_list_formatter.rb +23 -0
  771. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  772. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/helpers.rb +110 -0
  773. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/html_formatter.rb +153 -0
  774. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/html_printer.rb +414 -0
  775. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
  776. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/json_formatter.rb +102 -0
  777. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  778. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  779. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/protocol.rb +182 -0
  780. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  781. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  782. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb +632 -0
  783. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/invocations.rb +87 -0
  784. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/memoized_helpers.rb +554 -0
  785. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/metadata.rb +498 -0
  786. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/metadata_filter.rb +255 -0
  787. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  788. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  789. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  790. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/mocking_adapters/null.rb +14 -0
  791. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  792. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  793. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/notifications.rb +521 -0
  794. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/option_parser.rb +316 -0
  795. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/ordering.rb +158 -0
  796. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/output_wrapper.rb +29 -0
  797. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/pending.rb +165 -0
  798. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/profiler.rb +34 -0
  799. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/project_initializer.rb +48 -0
  800. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/project_initializer/.rspec +1 -0
  801. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
  802. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/rake_task.rb +188 -0
  803. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/reporter.rb +265 -0
  804. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/ruby_project.rb +53 -0
  805. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb +204 -0
  806. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/sandbox.rb +37 -0
  807. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/set.rb +54 -0
  808. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/shared_context.rb +55 -0
  809. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/shared_example_group.rb +269 -0
  810. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/shell_escape.rb +49 -0
  811. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  812. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/version.rb +9 -0
  813. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/warnings.rb +40 -0
  814. data/vendor/bundle/gems/rspec-core-3.9.1/lib/rspec/core/world.rb +275 -0
  815. data/vendor/bundle/gems/rspec-expectations-3.9.0/.document +5 -0
  816. data/vendor/bundle/gems/rspec-expectations-3.9.0/.yardopts +6 -0
  817. data/vendor/bundle/gems/rspec-expectations-3.9.0/Changelog.md +1170 -0
  818. data/vendor/bundle/gems/rspec-expectations-3.9.0/LICENSE.md +25 -0
  819. data/vendor/bundle/gems/rspec-expectations-3.9.0/README.md +320 -0
  820. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/expectations.rb +82 -0
  821. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
  822. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/expectations/configuration.rb +215 -0
  823. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/expectations/expectation_target.rb +127 -0
  824. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/expectations/fail_with.rb +39 -0
  825. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/expectations/failure_aggregator.rb +194 -0
  826. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/expectations/handler.rb +170 -0
  827. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/expectations/minitest_integration.rb +58 -0
  828. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/expectations/syntax.rb +132 -0
  829. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/expectations/version.rb +8 -0
  830. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers.rb +1038 -0
  831. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
  832. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in.rb +52 -0
  833. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/all.rb +86 -0
  834. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
  835. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be.rb +288 -0
  836. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
  837. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_instance_of.rb +26 -0
  838. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_kind_of.rb +20 -0
  839. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
  840. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/change.rb +428 -0
  841. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/compound.rb +276 -0
  842. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/contain_exactly.rb +302 -0
  843. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/cover.rb +24 -0
  844. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/eq.rb +40 -0
  845. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/eql.rb +34 -0
  846. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/equal.rb +81 -0
  847. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/exist.rb +90 -0
  848. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/has.rb +103 -0
  849. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  850. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/include.rb +149 -0
  851. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/match.rb +106 -0
  852. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/operators.rb +128 -0
  853. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/output.rb +200 -0
  854. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/raise_error.rb +230 -0
  855. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/respond_to.rb +174 -0
  856. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/satisfy.rb +60 -0
  857. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  858. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  859. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/built_in/yield.rb +432 -0
  860. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/composable.rb +171 -0
  861. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/dsl.rb +534 -0
  862. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/english_phrasing.rb +58 -0
  863. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +82 -0
  864. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/fail_matchers.rb +42 -0
  865. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/generated_descriptions.rb +41 -0
  866. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
  867. data/vendor/bundle/gems/rspec-expectations-3.9.0/lib/rspec/matchers/matcher_protocol.rb +99 -0
  868. data/vendor/bundle/gems/rspec-mocks-3.9.1/.document +5 -0
  869. data/vendor/bundle/gems/rspec-mocks-3.9.1/.yardopts +6 -0
  870. data/vendor/bundle/gems/rspec-mocks-3.9.1/Changelog.md +1133 -0
  871. data/vendor/bundle/gems/rspec-mocks-3.9.1/LICENSE.md +25 -0
  872. data/vendor/bundle/gems/rspec-mocks-3.9.1/README.md +463 -0
  873. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks.rb +130 -0
  874. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance.rb +11 -0
  875. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/chain.rb +111 -0
  876. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  877. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
  878. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
  879. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  880. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  881. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/recorder.rb +294 -0
  882. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
  883. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
  884. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/argument_list_matcher.rb +100 -0
  885. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/argument_matchers.rb +322 -0
  886. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/configuration.rb +212 -0
  887. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/error_generator.rb +369 -0
  888. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/example_methods.rb +434 -0
  889. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/instance_method_stasher.rb +146 -0
  890. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/marshal_extension.rb +41 -0
  891. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  892. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/matchers/have_received.rb +134 -0
  893. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/matchers/receive.rb +132 -0
  894. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  895. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  896. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/message_chain.rb +87 -0
  897. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/message_expectation.rb +751 -0
  898. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/method_double.rb +287 -0
  899. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/method_reference.rb +202 -0
  900. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/minitest_integration.rb +68 -0
  901. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/mutate_const.rb +339 -0
  902. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/object_reference.rb +149 -0
  903. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/order_group.rb +81 -0
  904. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/proxy.rb +503 -0
  905. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/space.rb +238 -0
  906. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/standalone.rb +3 -0
  907. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/syntax.rb +325 -0
  908. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/targets.rb +124 -0
  909. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/test_double.rb +171 -0
  910. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/verifying_double.rb +129 -0
  911. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
  912. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/verifying_proxy.rb +220 -0
  913. data/vendor/bundle/gems/rspec-mocks-3.9.1/lib/rspec/mocks/version.rb +9 -0
  914. data/vendor/bundle/gems/rspec-support-3.9.2/Changelog.md +292 -0
  915. data/vendor/bundle/gems/rspec-support-3.9.2/LICENSE.md +23 -0
  916. data/vendor/bundle/gems/rspec-support-3.9.2/README.md +40 -0
  917. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support.rb +149 -0
  918. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/caller_filter.rb +83 -0
  919. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/comparable_version.rb +46 -0
  920. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/differ.rb +215 -0
  921. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/directory_maker.rb +63 -0
  922. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/encoded_string.rb +161 -0
  923. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/fuzzy_matcher.rb +48 -0
  924. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/hunk_generator.rb +47 -0
  925. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/matcher_definition.rb +42 -0
  926. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/method_signature_verifier.rb +438 -0
  927. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/mutex.rb +73 -0
  928. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/object_formatter.rb +275 -0
  929. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/recursive_const_methods.rb +76 -0
  930. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/reentrant_mutex.rb +53 -0
  931. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/ruby_features.rb +185 -0
  932. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/source.rb +75 -0
  933. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/source/location.rb +21 -0
  934. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/source/node.rb +110 -0
  935. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/source/token.rb +87 -0
  936. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/spec.rb +81 -0
  937. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
  938. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/spec/formatting_support.rb +9 -0
  939. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/spec/in_sub_process.rb +69 -0
  940. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/spec/library_wide_checks.rb +150 -0
  941. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/spec/shell_out.rb +89 -0
  942. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/spec/stderr_splitter.rb +67 -0
  943. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/spec/string_matcher.rb +46 -0
  944. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
  945. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  946. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/version.rb +7 -0
  947. data/vendor/bundle/gems/rspec-support-3.9.2/lib/rspec/support/warnings.rb +39 -0
  948. data/vendor/bundle/gems/unf-0.1.4/.gitignore +17 -0
  949. data/vendor/bundle/gems/unf-0.1.4/.travis.yml +17 -0
  950. data/vendor/bundle/gems/unf-0.1.4/CHANGELOG.md +46 -0
  951. data/vendor/bundle/gems/unf-0.1.4/Gemfile +4 -0
  952. data/vendor/bundle/gems/unf-0.1.4/LICENSE +24 -0
  953. data/vendor/bundle/gems/unf-0.1.4/README.md +39 -0
  954. data/vendor/bundle/gems/unf-0.1.4/Rakefile +21 -0
  955. data/vendor/bundle/gems/unf-0.1.4/lib/unf.rb +38 -0
  956. data/vendor/bundle/gems/unf-0.1.4/lib/unf/normalizer.rb +35 -0
  957. data/vendor/bundle/gems/unf-0.1.4/lib/unf/normalizer_cruby.rb +1 -0
  958. data/vendor/bundle/gems/unf-0.1.4/lib/unf/normalizer_jruby.rb +30 -0
  959. data/vendor/bundle/gems/unf-0.1.4/lib/unf/version.rb +3 -0
  960. data/vendor/bundle/gems/unf-0.1.4/test/helper.rb +18 -0
  961. data/vendor/bundle/gems/unf-0.1.4/test/normalization-test.txt +108816 -0
  962. data/vendor/bundle/gems/unf-0.1.4/test/test_unf.rb +41 -0
  963. data/vendor/bundle/gems/unf-0.1.4/unf.gemspec +35 -0
  964. data/vendor/bundle/gems/unf_ext-0.0.7.6/.document +5 -0
  965. data/vendor/bundle/gems/unf_ext-0.0.7.6/.gitignore +19 -0
  966. data/vendor/bundle/gems/unf_ext-0.0.7.6/.travis.yml +24 -0
  967. data/vendor/bundle/gems/unf_ext-0.0.7.6/CHANGELOG.md +42 -0
  968. data/vendor/bundle/gems/unf_ext-0.0.7.6/Gemfile +4 -0
  969. data/vendor/bundle/gems/unf_ext-0.0.7.6/LICENSE.txt +22 -0
  970. data/vendor/bundle/gems/unf_ext-0.0.7.6/README.md +57 -0
  971. data/vendor/bundle/gems/unf_ext-0.0.7.6/Rakefile +31 -0
  972. data/vendor/bundle/gems/unf_ext-0.0.7.6/ext/unf_ext/.sitearchdir.time +0 -0
  973. data/vendor/bundle/gems/unf_ext-0.0.7.6/ext/unf_ext/extconf.rb +50 -0
  974. data/vendor/bundle/gems/unf_ext-0.0.7.6/ext/unf_ext/unf.cc +75 -0
  975. data/vendor/bundle/gems/unf_ext-0.0.7.6/ext/unf_ext/unf.o +0 -0
  976. data/vendor/bundle/gems/unf_ext-0.0.7.6/ext/unf_ext/unf/normalizer.hh +139 -0
  977. data/vendor/bundle/gems/unf_ext-0.0.7.6/ext/unf_ext/unf/table.hh +13617 -0
  978. data/vendor/bundle/gems/unf_ext-0.0.7.6/ext/unf_ext/unf/trie/char_stream.hh +150 -0
  979. data/vendor/bundle/gems/unf_ext-0.0.7.6/ext/unf_ext/unf/trie/node.hh +25 -0
  980. data/vendor/bundle/gems/unf_ext-0.0.7.6/ext/unf_ext/unf/trie/searcher.hh +194 -0
  981. data/vendor/bundle/gems/unf_ext-0.0.7.6/ext/unf_ext/unf/util.hh +24 -0
  982. data/vendor/bundle/gems/unf_ext-0.0.7.6/ext/unf_ext/unf_ext.bundle +0 -0
  983. data/vendor/bundle/gems/unf_ext-0.0.7.6/lib/unf_ext.bundle +0 -0
  984. data/vendor/bundle/gems/unf_ext-0.0.7.6/lib/unf_ext.rb +5 -0
  985. data/vendor/bundle/gems/unf_ext-0.0.7.6/lib/unf_ext/version.rb +5 -0
  986. data/vendor/bundle/gems/unf_ext-0.0.7.6/test/helper.rb +18 -0
  987. data/vendor/bundle/gems/unf_ext-0.0.7.6/test/normalization-test.txt +112332 -0
  988. data/vendor/bundle/gems/unf_ext-0.0.7.6/test/test_unf_ext.rb +41 -0
  989. data/vendor/bundle/gems/unf_ext-0.0.7.6/unf_ext.gemspec +42 -0
  990. data/vendor/bundle/gems/webrobots-0.1.2/.document +4 -0
  991. data/vendor/bundle/gems/webrobots-0.1.2/.gitignore +11 -0
  992. data/vendor/bundle/gems/webrobots-0.1.2/.travis.yml +17 -0
  993. data/vendor/bundle/gems/webrobots-0.1.2/Gemfile +4 -0
  994. data/vendor/bundle/gems/webrobots-0.1.2/LICENSE.txt +24 -0
  995. data/vendor/bundle/gems/webrobots-0.1.2/README.rdoc +38 -0
  996. data/vendor/bundle/gems/webrobots-0.1.2/Rakefile +29 -0
  997. data/vendor/bundle/gems/webrobots-0.1.2/lib/webrobots.rb +213 -0
  998. data/vendor/bundle/gems/webrobots-0.1.2/lib/webrobots/nokogiri.rb +32 -0
  999. data/vendor/bundle/gems/webrobots-0.1.2/lib/webrobots/robotstxt.rb +752 -0
  1000. data/vendor/bundle/gems/webrobots-0.1.2/lib/webrobots/robotstxt.ry +487 -0
  1001. data/vendor/bundle/gems/webrobots-0.1.2/lib/webrobots/version.rb +3 -0
  1002. data/vendor/bundle/gems/webrobots-0.1.2/test/helper.rb +25 -0
  1003. data/vendor/bundle/gems/webrobots-0.1.2/test/simplecov_start.rb +9 -0
  1004. data/vendor/bundle/gems/webrobots-0.1.2/test/test_webrobots.rb +806 -0
  1005. data/vendor/bundle/gems/webrobots-0.1.2/test/vcr_cassettes/major_sites.yml +2006 -0
  1006. data/vendor/bundle/gems/webrobots-0.1.2/webrobots.gemspec +46 -0
  1007. data/vendor/bundle/specifications/connection_pool-2.2.2.gemspec +38 -0
  1008. data/vendor/bundle/specifications/diff-lcs-1.3.gemspec +61 -0
  1009. data/vendor/bundle/specifications/domain_name-0.5.20190701.gemspec +46 -0
  1010. data/vendor/bundle/specifications/http-cookie-1.0.3.gemspec +52 -0
  1011. data/vendor/bundle/specifications/mechanize-2.7.6.gemspec +69 -0
  1012. data/vendor/bundle/specifications/mime-types-3.3.1.gemspec +85 -0
  1013. data/vendor/bundle/specifications/mime-types-data-3.2019.1009.gemspec +60 -0
  1014. data/vendor/bundle/specifications/mini_portile2-2.4.0.gemspec +48 -0
  1015. data/vendor/bundle/specifications/net-http-digest_auth-1.4.1.gemspec +43 -0
  1016. data/vendor/bundle/specifications/net-http-persistent-3.1.0.gemspec +52 -0
  1017. data/vendor/bundle/specifications/nokogiri-1.10.7.gemspec +85 -0
  1018. data/vendor/bundle/specifications/ntlm-http-0.1.1.gemspec +24 -0
  1019. data/vendor/bundle/specifications/rake-12.3.3.gemspec +49 -0
  1020. data/vendor/bundle/specifications/rspec-3.9.0.gemspec +43 -0
  1021. data/vendor/bundle/specifications/rspec-core-3.9.1.gemspec +63 -0
  1022. data/vendor/bundle/specifications/rspec-expectations-3.9.0.gemspec +51 -0
  1023. data/vendor/bundle/specifications/rspec-mocks-3.9.1.gemspec +51 -0
  1024. data/vendor/bundle/specifications/rspec-support-3.9.2.gemspec +39 -0
  1025. data/vendor/bundle/specifications/unf-0.1.4.gemspec +46 -0
  1026. data/vendor/bundle/specifications/unf_ext-0.0.7.6.gemspec +51 -0
  1027. data/vendor/bundle/specifications/webrobots-0.1.2.gemspec +65 -0
  1028. metadata +1100 -0
@@ -0,0 +1,41 @@
1
+ require 'rubygems'
2
+
3
+ begin
4
+ require "bundler/gem_tasks"
5
+ rescue LoadError
6
+ end
7
+
8
+ require 'rdoc/task'
9
+ require 'rake/testtask'
10
+
11
+ task :prerelease => [:clobber_rdoc, :test]
12
+
13
+ desc "Update SSL Certificate"
14
+ task('ssl_cert') do |p|
15
+ sh "openssl genrsa -des3 -out server.key 1024"
16
+ sh "openssl req -new -key server.key -out server.csr"
17
+ sh "cp server.key server.key.org"
18
+ sh "openssl rsa -in server.key.org -out server.key"
19
+ sh "openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt"
20
+ sh "cp server.key server.pem"
21
+ sh "mv server.key server.csr server.crt server.pem test/data/"
22
+ sh "rm server.key.org"
23
+ end
24
+
25
+ RDoc::Task.new do |rdoc|
26
+ rdoc.main = "README.rdoc"
27
+ rdoc.rdoc_dir = 'doc'
28
+ rdoc.rdoc_files.include( "CHANGELOG.rdoc", "EXAMPLES.rdoc", "GUIDE.rdoc", "LICENSE.rdoc", "README.rdoc", "lib/**/*.rb")
29
+ end
30
+
31
+ desc "Run tests"
32
+ Rake::TestTask.new { |t|
33
+ t.test_files = Dir['test/**/test*.rb']
34
+ t.verbose = true
35
+ }
36
+
37
+ task publish_docs: %w[rdoc] do
38
+ sh 'rsync', '-avzO', '--delete', 'doc/', 'docs-push.seattlerb.org:/data/www/docs.seattlerb.org/mechanize/'
39
+ end
40
+
41
+ task default: :test
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'mechanize'
3
+
4
+ agent = Mechanize.new
5
+
6
+ # Get the flickr sign in page
7
+ page = agent.get 'http://flickr.com/signin/flickr/'
8
+
9
+ # Fill out the login form
10
+ form = page.form_with :name => 'flickrloginform'
11
+ form.email = ARGV[0]
12
+ form.password = ARGV[1]
13
+ form.submit
14
+
15
+ # Go to the upload page
16
+ page = page.link_with(:text => 'Upload').click
17
+
18
+ # Fill out the form
19
+ form = page.forms.action('/photos_upload_process.gne').first
20
+ form.file_uploads.name('file1').first.file_name = ARGV[2]
21
+ form.submit
22
+
@@ -0,0 +1,5 @@
1
+ require 'rubygems'
2
+ require 'mechanize'
3
+
4
+ agent = Mechanize.new
5
+ puts agent.get(ARGV[0]).inspect
@@ -0,0 +1,7 @@
1
+ require 'rubygems'
2
+ require 'mechanize'
3
+
4
+ agent = Mechanize.new
5
+ agent.set_proxy('localhost', '8000')
6
+ page = agent.get(ARGV[0])
7
+ puts page.body
@@ -0,0 +1,23 @@
1
+ # This example logs a user in to rubyforge and prints out the body of the
2
+ # page after logging the user in.
3
+ require 'rubygems'
4
+ require 'mechanize'
5
+ require 'logger'
6
+
7
+ # Create a new mechanize object
8
+ mech = Mechanize.new
9
+ mech.log = Logger.new $stderr
10
+ mech.agent.http.debug_output = $stderr
11
+
12
+ # Load the rubyforge website
13
+ page = mech.get('https://rubygems.org/')
14
+ page = mech.click page.link_with(:text => /Sign in/) # Click the login link
15
+ form = page.forms[1] # Select the first form
16
+ form["session[who]"] = ARGV[0]
17
+ form["session[password]"] = ARGV[1]
18
+ form["commit"] = "Sign in"
19
+
20
+ # Submit the form
21
+ page = form.submit form.buttons.first
22
+
23
+ puts page.body # Print out the body
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'mechanize'
3
+
4
+ agent = Mechanize.new
5
+ agent.max_history = nil # unlimited history
6
+ stack = agent.get(ARGV[0]).links
7
+
8
+ while l = stack.pop
9
+ next unless l.uri
10
+ host = l.uri.host
11
+ next unless host.nil? or host == agent.history.first.uri.host
12
+ next if agent.visited? l.href
13
+
14
+ puts "crawling #{l.uri}"
15
+ begin
16
+ page = l.click
17
+ next unless Mechanize::Page === page
18
+ stack.push(*page.links)
19
+ rescue Mechanize::ResponseCodeError
20
+ end
21
+ end
22
+
@@ -0,0 +1,159 @@
1
+ require 'mechanize'
2
+ require 'tsort'
3
+
4
+ ##
5
+ # This example implements the alt-text of http://xkcd.com/903/ which states:
6
+ #
7
+ # Wikipedia trivia: if you take any article, click on the first link in the
8
+ # article text not in parentheses or italics, and then repeat, you will
9
+ # eventually end up at "Philosophy".
10
+
11
+ class WikipediaLinksToPhilosophy
12
+
13
+ def initialize
14
+ @agent = Mechanize.new
15
+ @agent.user_agent_alias = 'Mac Safari' # Wikipedia blocks "mechanize"
16
+
17
+ @history = @agent.history
18
+
19
+ @wiki_url = URI 'http://en.wikipedia.org'
20
+ @search_url = @wiki_url + '/w/index.php'
21
+ @random_url = @wiki_url + '/wiki/Special:Random'
22
+
23
+ @title = nil
24
+ @seen = nil
25
+ end
26
+
27
+ ##
28
+ # Retrieves the title of the current page
29
+
30
+ def extract_title
31
+ @page.title =~ /(.*) - Wikipedia/
32
+
33
+ @title = $1
34
+ end
35
+
36
+ ##
37
+ # Retrieves the initial page. If +query+ is not given a random page is
38
+ # chosen
39
+
40
+ def fetch_first_page query
41
+ if query then
42
+ search query
43
+ else
44
+ random
45
+ end
46
+ end
47
+
48
+ ##
49
+ # The search is finished if we've seen the page before or we've reached
50
+ # Philosophy
51
+
52
+ def finished?
53
+ @seen or @title == 'Philosophy'
54
+ end
55
+
56
+ ##
57
+ # Follows the first non-parenthetical, non-italic link in the main body of
58
+ # the article.
59
+
60
+ def follow_first_link
61
+ puts @title
62
+
63
+ # > p > a rejects italics
64
+ links = @page.root.css('.mw-content-ltr > p > a[href^="/wiki/"]')
65
+
66
+ # reject disambiguation and special pages, images and files
67
+ links = links.reject do |link_node|
68
+ link_node['href'] =~ %r%/wiki/\w+:|\(disambiguation\)%
69
+ end
70
+
71
+ links = links.reject do |link_node|
72
+ in_parenthetical? link_node
73
+ end
74
+
75
+ link = links.first
76
+
77
+ unless link then
78
+ # disambiguation page? try the first item in the list
79
+ link =
80
+ @page.root.css('.mw-content-ltr > ul > li > a[href^="/wiki/"]').first
81
+ end
82
+
83
+ # convert a Nokogiri HTML element back to a mechanize link
84
+ link = Mechanize::Page::Link.new link, @agent, @page
85
+
86
+ return if @seen = @agent.visited?(link)
87
+
88
+ @page = link.click
89
+
90
+ extract_title
91
+ end
92
+
93
+ ##
94
+ # Is +link_node+ in an open parenthetical section?
95
+
96
+ def in_parenthetical? link_node
97
+ siblings = link_node.parent.children
98
+
99
+ seen = false
100
+
101
+ before = siblings.reject do |node|
102
+ seen or (seen = node == link_node)
103
+ end
104
+
105
+ preceding_text = before.map { |node| node.text }.join
106
+
107
+ open = preceding_text.count '('
108
+ close = preceding_text.count ')'
109
+
110
+ open > close
111
+ end
112
+
113
+ ##
114
+ # Prints the result of the search
115
+
116
+ def print_result
117
+ if @seen then
118
+ puts "[Loop detected]"
119
+ else
120
+ puts @title
121
+ end
122
+ puts
123
+ # subtract initial search or Special:Random
124
+ puts "After #{@agent.history.length - 1} pages"
125
+ end
126
+
127
+ ##
128
+ # Retrieves a random page from wikipedia
129
+
130
+ def random
131
+ @page = @agent.get @random_url
132
+
133
+ extract_title
134
+ end
135
+
136
+ ##
137
+ # Entry point
138
+
139
+ def run query = nil
140
+ fetch_first_page query
141
+
142
+ follow_first_link until finished?
143
+
144
+ print_result
145
+ end
146
+
147
+ ##
148
+ # Searches for +query+ on wikipedia
149
+
150
+ def search query
151
+ @page = @agent.get @search_url, search: query
152
+
153
+ extract_title
154
+ end
155
+
156
+ end
157
+
158
+ WikipediaLinksToPhilosophy.new.run ARGV.shift if $0 == __FILE__
159
+
@@ -0,0 +1,1369 @@
1
+ require 'mechanize/version'
2
+ require 'fileutils'
3
+ require 'forwardable'
4
+ require 'mutex_m'
5
+ require 'net/http/digest_auth'
6
+ require 'net/http/persistent'
7
+ require 'nokogiri'
8
+ require 'openssl'
9
+ require 'pp'
10
+ require 'stringio'
11
+ require 'uri'
12
+ require 'webrick/httputils'
13
+ require 'zlib'
14
+
15
+ ##
16
+ # The Mechanize library is used for automating interactions with a website. It
17
+ # can follow links and submit forms. Form fields can be populated and
18
+ # submitted. A history of URLs is maintained and can be queried.
19
+ #
20
+ # == Example
21
+ #
22
+ # require 'mechanize'
23
+ # require 'logger'
24
+ #
25
+ # agent = Mechanize.new
26
+ # agent.log = Logger.new "mech.log"
27
+ # agent.user_agent_alias = 'Mac Safari'
28
+ #
29
+ # page = agent.get "http://www.google.com/"
30
+ # search_form = page.form_with :name => "f"
31
+ # search_form.field_with(:name => "q").value = "Hello"
32
+ #
33
+ # search_results = agent.submit search_form
34
+ # puts search_results.body
35
+ #
36
+ # == Issues with mechanize
37
+ #
38
+ # If you think you have a bug with mechanize, but aren't sure, please file a
39
+ # ticket at https://github.com/sparklemotion/mechanize/issues
40
+ #
41
+ # Here are some common problems you may experience with mechanize
42
+ #
43
+ # === Problems connecting to SSL sites
44
+ #
45
+ # Mechanize defaults to validating SSL certificates using the default CA
46
+ # certificates for your platform. At this time, Windows users do not have
47
+ # integration between the OS default CA certificates and OpenSSL. #cert_store
48
+ # explains how to download and use Mozilla's CA certificates to allow SSL
49
+ # sites to work.
50
+ #
51
+ # === Problems with content-length
52
+ #
53
+ # Some sites return an incorrect content-length value. Unlike a browser,
54
+ # mechanize raises an error when the content-length header does not match the
55
+ # response length since it does not know if there was a connection problem or
56
+ # if the mismatch is a server bug.
57
+ #
58
+ # The error raised, Mechanize::ResponseReadError, can be converted to a parsed
59
+ # Page, File, etc. depending upon the content-type:
60
+ #
61
+ # agent = Mechanize.new
62
+ # uri = URI 'http://example/invalid_content_length'
63
+ #
64
+ # begin
65
+ # page = agent.get uri
66
+ # rescue Mechanize::ResponseReadError => e
67
+ # page = e.force_parse
68
+ # end
69
+
70
+ class Mechanize
71
+
72
+ ##
73
+ # Base mechanize error class
74
+
75
+ class Error < RuntimeError
76
+ end
77
+
78
+ ruby_version = if RUBY_PATCHLEVEL >= 0 then
79
+ "#{RUBY_VERSION}p#{RUBY_PATCHLEVEL}"
80
+ else
81
+ "#{RUBY_VERSION}dev#{RUBY_REVISION}"
82
+ end
83
+
84
+ ##
85
+ # Supported User-Agent aliases for use with user_agent_alias=. The
86
+ # description in parenthesis is for informative purposes and is not part of
87
+ # the alias name.
88
+ #
89
+ # * Linux Firefox (43.0 on Ubuntu Linux)
90
+ # * Linux Konqueror (3)
91
+ # * Linux Mozilla
92
+ # * Mac Firefox (43.0)
93
+ # * Mac Mozilla
94
+ # * Mac Safari (9.0 on OS X 10.11.2)
95
+ # * Mac Safari 4
96
+ # * Mechanize (default)
97
+ # * Windows IE 6
98
+ # * Windows IE 7
99
+ # * Windows IE 8
100
+ # * Windows IE 9
101
+ # * Windows IE 10 (Windows 8 64bit)
102
+ # * Windows IE 11 (Windows 8.1 64bit)
103
+ # * Windows Edge
104
+ # * Windows Mozilla
105
+ # * Windows Firefox (43.0)
106
+ # * iPhone (iOS 9.1)
107
+ # * iPad (iOS 9.1)
108
+ # * Android (5.1.1)
109
+ #
110
+ # Example:
111
+ #
112
+ # agent = Mechanize.new
113
+ # agent.user_agent_alias = 'Mac Safari'
114
+
115
+ AGENT_ALIASES = {
116
+ 'Mechanize' => "Mechanize/#{VERSION} Ruby/#{ruby_version} (http://github.com/sparklemotion/mechanize/)",
117
+ 'Linux Firefox' => 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:43.0) Gecko/20100101 Firefox/43.0',
118
+ 'Linux Konqueror' => 'Mozilla/5.0 (compatible; Konqueror/3; Linux)',
119
+ 'Linux Mozilla' => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624',
120
+ 'Mac Firefox' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:43.0) Gecko/20100101 Firefox/43.0',
121
+ 'Mac Mozilla' => 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.4a) Gecko/20030401',
122
+ 'Mac Safari 4' => 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; de-at) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10',
123
+ 'Mac Safari' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9',
124
+ 'Windows Chrome' => 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.125 Safari/537.36',
125
+ 'Windows IE 6' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
126
+ 'Windows IE 7' => 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
127
+ 'Windows IE 8' => 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
128
+ 'Windows IE 9' => 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',
129
+ 'Windows IE 10' => 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)',
130
+ 'Windows IE 11' => 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko',
131
+ 'Windows Edge' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586',
132
+ 'Windows Mozilla' => 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4b) Gecko/20030516 Mozilla Firebird/0.6',
133
+ 'Windows Firefox' => 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0',
134
+ 'iPhone' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B5110e Safari/601.1',
135
+ 'iPad' => 'Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
136
+ 'Android' => 'Mozilla/5.0 (Linux; Android 5.1.1; Nexus 7 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.76 Safari/537.36',
137
+ }
138
+
139
+ AGENT_ALIASES.default_proc = proc { |hash, key|
140
+ case key
141
+ when /FireFox/
142
+ if ua = hash[nkey = key.sub(/FireFox/, 'Firefox')]
143
+ warn "Mechanize#user_agent_alias: #{key.inspect} should be spelled as #{nkey.inspect}"
144
+ ua
145
+ end
146
+ end
147
+ }
148
+
149
+ def self.inherited(child) # :nodoc:
150
+ child.html_parser = html_parser
151
+ child.log = log
152
+ super
153
+ end
154
+
155
+ ##
156
+ # Creates a new Mechanize instance and yields it to the given block.
157
+ #
158
+ # After the block executes, the instance is cleaned up. This includes
159
+ # closing all open connections.
160
+ #
161
+ # Mechanize.start do |m|
162
+ # m.get("http://example.com")
163
+ # end
164
+
165
+ def self.start
166
+ instance = new
167
+ yield(instance)
168
+ ensure
169
+ instance.shutdown
170
+ end
171
+
172
+ ##
173
+ # Creates a new mechanize instance. If a block is given, the created
174
+ # instance is yielded to the block for setting up pre-connection state such
175
+ # as SSL parameters or proxies:
176
+ #
177
+ # agent = Mechanize.new do |a|
178
+ # a.proxy_host = 'proxy.example'
179
+ # a.proxy_port = 8080
180
+ # end
181
+ #
182
+ # If you need segregated SSL connections give each agent a unique
183
+ # name. Otherwise the connections will be shared. This is
184
+ # particularly important if you are using certifcates.
185
+ #
186
+ # agent_1 = Mechanize.new 'conn1'
187
+ # agent_2 = Mechanize.new 'conn2'
188
+ #
189
+
190
+ def initialize(connection_name = 'mechanize')
191
+ @agent = Mechanize::HTTP::Agent.new(connection_name)
192
+ @agent.context = self
193
+ @log = nil
194
+
195
+ # attr_accessors
196
+ @agent.user_agent = AGENT_ALIASES['Mechanize']
197
+ @watch_for_set = nil
198
+ @history_added = nil
199
+
200
+ # attr_readers
201
+ @pluggable_parser = PluggableParser.new
202
+
203
+ @keep_alive_time = 0
204
+
205
+ # Proxy
206
+ @proxy_addr = nil
207
+ @proxy_port = nil
208
+ @proxy_user = nil
209
+ @proxy_pass = nil
210
+
211
+ @html_parser = self.class.html_parser
212
+
213
+ @default_encoding = nil
214
+ @force_default_encoding = false
215
+
216
+ # defaults
217
+ @agent.max_history = 50
218
+
219
+ yield self if block_given?
220
+
221
+ @agent.set_proxy @proxy_addr, @proxy_port, @proxy_user, @proxy_pass
222
+ end
223
+
224
+ # :section: History
225
+ #
226
+ # Methods for navigating and controlling history
227
+
228
+ ##
229
+ # Equivalent to the browser back button. Returns the previous page visited.
230
+
231
+ def back
232
+ @agent.history.pop
233
+ end
234
+
235
+ ##
236
+ # Returns the latest page loaded by Mechanize
237
+
238
+ def current_page
239
+ @agent.current_page
240
+ end
241
+
242
+ alias page current_page
243
+
244
+ ##
245
+ # The history of this mechanize run
246
+
247
+ def history
248
+ @agent.history
249
+ end
250
+
251
+ ##
252
+ # Maximum number of items allowed in the history. The default setting is 50
253
+ # pages. Note that the size of the history multiplied by the maximum
254
+ # response body size
255
+
256
+ def max_history
257
+ @agent.history.max_size
258
+ end
259
+
260
+ ##
261
+ # Sets the maximum number of items allowed in the history to +length+.
262
+ #
263
+ # Setting the maximum history length to nil will make the history size
264
+ # unlimited. Take care when doing this, mechanize stores response bodies in
265
+ # memory for pages and in the temporary files directory for other responses.
266
+ # For a long-running mechanize program this can be quite large.
267
+ #
268
+ # See also the discussion under #max_file_buffer=
269
+
270
+ def max_history= length
271
+ @agent.history.max_size = length
272
+ end
273
+
274
+ ##
275
+ # Returns a visited page for the +url+ passed in, otherwise nil
276
+
277
+ def visited? url
278
+ url = url.href if url.respond_to? :href
279
+
280
+ @agent.visited_page url
281
+ end
282
+
283
+ ##
284
+ # Returns whether or not a url has been visited
285
+
286
+ alias visited_page visited?
287
+
288
+ # :section: Hooks
289
+ #
290
+ # Hooks into the operation of mechanize
291
+
292
+ ##
293
+ # A list of hooks to call before reading response header 'content-encoding'.
294
+ #
295
+ # The hook is called with the agent making the request, the URI of the
296
+ # request, the response an IO containing the response body.
297
+
298
+ def content_encoding_hooks
299
+ @agent.content_encoding_hooks
300
+ end
301
+
302
+ ##
303
+ # Callback which is invoked with the page that was added to history.
304
+
305
+ attr_accessor :history_added
306
+
307
+ ##
308
+ # A list of hooks to call after retrieving a response. Hooks are called with
309
+ # the agent, the URI, the response, and the response body.
310
+
311
+ def post_connect_hooks
312
+ @agent.post_connect_hooks
313
+ end
314
+
315
+ ##
316
+ # A list of hooks to call before retrieving a response. Hooks are called
317
+ # with the agent, the URI, the response, and the response body.
318
+
319
+ def pre_connect_hooks
320
+ @agent.pre_connect_hooks
321
+ end
322
+
323
+ # :section: Requests
324
+ #
325
+ # Methods for making HTTP requests
326
+
327
+ ##
328
+ # If the parameter is a string, finds the button or link with the
329
+ # value of the string on the current page and clicks it. Otherwise, clicks
330
+ # the Mechanize::Page::Link object passed in. Returns the page fetched.
331
+
332
+ def click link
333
+ case link
334
+ when Page::Link then
335
+ referer = link.page || current_page()
336
+ if @agent.robots
337
+ if (referer.is_a?(Page) and referer.parser.nofollow?) or
338
+ link.rel?('nofollow') then
339
+ raise RobotsDisallowedError.new(link.href)
340
+ end
341
+ end
342
+ if link.noreferrer?
343
+ href = @agent.resolve(link.href, link.page || current_page)
344
+ referer = Page.new
345
+ else
346
+ href = link.href
347
+ end
348
+ get href, [], referer
349
+ when String, Regexp then
350
+ if real_link = page.link_with(:text => link)
351
+ click real_link
352
+ else
353
+ button = nil
354
+ # Note that this will not work if we have since navigated to a different page.
355
+ # Should rather make each button aware of its parent form.
356
+ form = page.forms.find do |f|
357
+ button = f.button_with(:value => link)
358
+ button.is_a? Form::Submit
359
+ end
360
+ submit form, button if form
361
+ end
362
+ when Form::Submit, Form::ImageButton then
363
+ # Note that this will not work if we have since navigated to a different page.
364
+ # Should rather make each button aware of its parent form.
365
+ form = page.forms.find do |f|
366
+ f.buttons.include?(link)
367
+ end
368
+ submit form, link if form
369
+ else
370
+ referer = current_page()
371
+ href = link.respond_to?(:href) ? link.href :
372
+ (link['href'] || link['src'])
373
+ get href, [], referer
374
+ end
375
+ end
376
+
377
+ ##
378
+ # GETs +uri+ and writes it to +io_or_filename+ without recording the request
379
+ # in the history. If +io_or_filename+ does not respond to #write it will be
380
+ # used as a file name. +parameters+, +referer+ and +headers+ are used as in
381
+ # #get.
382
+ #
383
+ # By default, if the Content-type of the response matches a Mechanize::File
384
+ # or Mechanize::Page parser, the response body will be loaded into memory
385
+ # before being saved. See #pluggable_parser for details on changing this
386
+ # default.
387
+ #
388
+ # For alternate ways of downloading files see Mechanize::FileSaver and
389
+ # Mechanize::DirectorySaver.
390
+
391
+ def download uri, io_or_filename, parameters = [], referer = nil, headers = {}
392
+ page = transact do
393
+ get uri, parameters, referer, headers
394
+ end
395
+
396
+ io = if io_or_filename.respond_to? :write then
397
+ io_or_filename
398
+ else
399
+ open io_or_filename, 'wb'
400
+ end
401
+
402
+ case page
403
+ when Mechanize::File then
404
+ io.write page.body
405
+ else
406
+ body_io = page.body_io
407
+
408
+ until body_io.eof? do
409
+ io.write body_io.read 16384
410
+ end
411
+ end
412
+
413
+ page
414
+ ensure
415
+ io.close if io and not io_or_filename.respond_to? :write
416
+ end
417
+
418
+ ##
419
+ # DELETE +uri+ with +query_params+, and setting +headers+:
420
+ #
421
+ # +query_params+ is formatted into a query string using
422
+ # Mechanize::Util.build_query_string, which see.
423
+ #
424
+ # delete('http://example/', {'q' => 'foo'}, {})
425
+
426
+ def delete(uri, query_params = {}, headers = {})
427
+ page = @agent.fetch(uri, :delete, headers, query_params)
428
+ add_to_history(page)
429
+ page
430
+ end
431
+
432
+ ##
433
+ # GET the +uri+ with the given request +parameters+, +referer+ and
434
+ # +headers+.
435
+ #
436
+ # The +referer+ may be a URI or a page.
437
+ #
438
+ # +parameters+ is formatted into a query string using
439
+ # Mechanize::Util.build_query_string, which see.
440
+
441
+ def get(uri, parameters = [], referer = nil, headers = {})
442
+ method = :get
443
+
444
+ referer ||=
445
+ if uri.to_s =~ %r{\Ahttps?://}
446
+ Page.new
447
+ else
448
+ current_page || Page.new
449
+ end
450
+
451
+ # FIXME: Huge hack so that using a URI as a referer works. I need to
452
+ # refactor everything to pass around URIs but still support
453
+ # Mechanize::Page#base
454
+ unless Mechanize::Parser === referer then
455
+ referer = if referer.is_a?(String) then
456
+ Page.new URI(referer)
457
+ else
458
+ Page.new referer
459
+ end
460
+ end
461
+
462
+ # fetch the page
463
+ headers ||= {}
464
+ page = @agent.fetch uri, method, headers, parameters, referer
465
+ add_to_history(page)
466
+ yield page if block_given?
467
+ page
468
+ end
469
+
470
+ ##
471
+ # GET +url+ and return only its contents
472
+
473
+ def get_file(url)
474
+ get(url).body
475
+ end
476
+
477
+ ##
478
+ # HEAD +uri+ with +query_params+ and +headers+:
479
+ #
480
+ # +query_params+ is formatted into a query string using
481
+ # Mechanize::Util.build_query_string, which see.
482
+ #
483
+ # head('http://example/', {'q' => 'foo'}, {})
484
+
485
+ def head(uri, query_params = {}, headers = {})
486
+ page = @agent.fetch uri, :head, headers, query_params
487
+
488
+ yield page if block_given?
489
+
490
+ page
491
+ end
492
+
493
+ ##
494
+ # POST to the given +uri+ with the given +query+.
495
+ #
496
+ # +query+ is processed using Mechanize::Util.each_parameter (which
497
+ # see), and then encoded into an entity body. If any IO/FileUpload
498
+ # object is specified as a field value the "enctype" will be
499
+ # multipart/form-data, or application/x-www-form-urlencoded
500
+ # otherwise.
501
+ #
502
+ # Examples:
503
+ # agent.post 'http://example.com/', "foo" => "bar"
504
+ #
505
+ # agent.post 'http://example.com/', [%w[foo bar]]
506
+ #
507
+ # agent.post('http://example.com/', "<message>hello</message>",
508
+ # 'Content-Type' => 'application/xml')
509
+
510
+ def post(uri, query = {}, headers = {})
511
+ return request_with_entity(:post, uri, query, headers) if String === query
512
+
513
+ node = {}
514
+ # Create a fake form
515
+ class << node
516
+ def search(*args); []; end
517
+ end
518
+ node['method'] = 'POST'
519
+ node['enctype'] = 'application/x-www-form-urlencoded'
520
+
521
+ form = Form.new(node)
522
+
523
+ Mechanize::Util.each_parameter(query) { |k, v|
524
+ if v.is_a?(IO)
525
+ form.enctype = 'multipart/form-data'
526
+ ul = Form::FileUpload.new({'name' => k.to_s},::File.basename(v.path))
527
+ ul.file_data = v.read
528
+ form.file_uploads << ul
529
+ elsif v.is_a?(Form::FileUpload)
530
+ form.enctype = 'multipart/form-data'
531
+ form.file_uploads << v
532
+ else
533
+ form.fields << Form::Field.new({'name' => k.to_s},v)
534
+ end
535
+ }
536
+ post_form(uri, form, headers)
537
+ end
538
+
539
+ ##
540
+ # PUT to +uri+ with +entity+, and setting +headers+:
541
+ #
542
+ # put('http://example/', 'new content', {'Content-Type' => 'text/plain'})
543
+
544
+ def put(uri, entity, headers = {})
545
+ request_with_entity(:put, uri, entity, headers)
546
+ end
547
+
548
+ ##
549
+ # Makes an HTTP request to +url+ using HTTP method +verb+. +entity+ is used
550
+ # as the request body, if allowed.
551
+
552
+ def request_with_entity(verb, uri, entity, headers = {})
553
+ cur_page = current_page || Page.new
554
+
555
+ log.debug("query: #{ entity.inspect }") if log
556
+
557
+ headers = {
558
+ 'Content-Type' => 'application/octet-stream',
559
+ 'Content-Length' => entity.size.to_s,
560
+ }.update headers
561
+
562
+ page = @agent.fetch uri, verb, headers, [entity], cur_page
563
+ add_to_history(page)
564
+ page
565
+ end
566
+
567
+ ##
568
+ # Submits +form+ with an optional +button+.
569
+ #
570
+ # Without a button:
571
+ #
572
+ # page = agent.get('http://example.com')
573
+ # agent.submit(page.forms.first)
574
+ #
575
+ # With a button:
576
+ #
577
+ # agent.submit(page.forms.first, page.forms.first.buttons.first)
578
+
579
+ def submit(form, button = nil, headers = {})
580
+ form.add_button_to_query(button) if button
581
+
582
+ case form.method.upcase
583
+ when 'POST'
584
+ post_form(form.action, form, headers)
585
+ when 'GET'
586
+ get(form.action.gsub(/\?[^\?]*$/, ''),
587
+ form.build_query,
588
+ form.page,
589
+ headers)
590
+ else
591
+ raise ArgumentError, "unsupported method: #{form.method.upcase}"
592
+ end
593
+ end
594
+
595
+ ##
596
+ # Runs given block, then resets the page history as it was before. self is
597
+ # given as a parameter to the block. Returns the value of the block.
598
+
599
+ def transact
600
+ history_backup = @agent.history.dup
601
+ begin
602
+ yield self
603
+ ensure
604
+ @agent.history = history_backup
605
+ end
606
+ end
607
+
608
+ # :section: Settings
609
+ #
610
+ # Settings that adjust how mechanize makes HTTP requests including timeouts,
611
+ # keep-alives, compression, redirects and headers.
612
+
613
+ @html_parser = Nokogiri::HTML
614
+ @log = nil
615
+
616
+ class << self
617
+
618
+ ##
619
+ # Default HTML parser for all mechanize instances
620
+ #
621
+ # Mechanize.html_parser = Nokogiri::XML
622
+
623
+ attr_accessor :html_parser
624
+
625
+ ##
626
+ # Default logger for all mechanize instances
627
+ #
628
+ # Mechanize.log = Logger.new $stderr
629
+
630
+ attr_accessor :log
631
+
632
+ end
633
+
634
+ ##
635
+ # A default encoding name used when parsing HTML parsing. When set it is
636
+ # used after any other encoding. The default is nil.
637
+
638
+ attr_accessor :default_encoding
639
+
640
+ ##
641
+ # Overrides the encodings given by the HTTP server and the HTML page with
642
+ # the default_encoding when set to true.
643
+
644
+ attr_accessor :force_default_encoding
645
+
646
+ ##
647
+ # The HTML parser to be used when parsing documents
648
+
649
+ attr_accessor :html_parser
650
+
651
+ ##
652
+ # HTTP/1.0 keep-alive time. This is no longer supported by mechanize as it
653
+ # now uses net-http-persistent which only supports HTTP/1.1 persistent
654
+ # connections
655
+
656
+ attr_accessor :keep_alive_time
657
+
658
+ ##
659
+ # The pluggable parser maps a response Content-Type to a parser class. The
660
+ # registered Content-Type may be either a full content type like 'image/png'
661
+ # or a media type 'text'. See Mechanize::PluggableParser for further
662
+ # details.
663
+ #
664
+ # Example:
665
+ #
666
+ # agent.pluggable_parser['application/octet-stream'] = Mechanize::Download
667
+
668
+ attr_reader :pluggable_parser
669
+
670
+ ##
671
+ # The HTTP proxy address
672
+
673
+ attr_reader :proxy_addr
674
+
675
+ ##
676
+ # The HTTP proxy password
677
+
678
+ attr_reader :proxy_pass
679
+
680
+ ##
681
+ # The HTTP proxy port
682
+
683
+ attr_reader :proxy_port
684
+
685
+ ##
686
+ # The HTTP proxy username
687
+
688
+ attr_reader :proxy_user
689
+
690
+ ##
691
+ # *NOTE*: These credentials will be used as a default for any challenge
692
+ # exposing your password to disclosure to malicious servers. Use of this
693
+ # method will warn. This method is deprecated and will be removed in
694
+ # mechanize 3.
695
+ #
696
+ # Sets the +user+ and +password+ as the default credentials to be used for
697
+ # HTTP authentication for any server. The +domain+ is used for NTLM
698
+ # authentication.
699
+
700
+ def auth user, password, domain = nil
701
+ caller.first =~ /(.*?):(\d+).*?$/
702
+
703
+ warn <<-WARNING
704
+ At #{$1} line #{$2}
705
+
706
+ Use of #auth and #basic_auth are deprecated due to a security vulnerability.
707
+
708
+ WARNING
709
+
710
+ @agent.add_default_auth user, password, domain
711
+ end
712
+
713
+ alias basic_auth auth
714
+
715
+ ##
716
+ # Adds credentials +user+, +pass+ for +uri+. If +realm+ is set the
717
+ # credentials are used only for that realm. If +realm+ is not set the
718
+ # credentials become the default for any realm on that URI.
719
+ #
720
+ # +domain+ and +realm+ are exclusive as NTLM does not follow RFC 2617. If
721
+ # +domain+ is given it is only used for NTLM authentication.
722
+
723
+ def add_auth uri, user, password, realm = nil, domain = nil
724
+ @agent.add_auth uri, user, password, realm, domain
725
+ end
726
+
727
+ ##
728
+ # Are If-Modified-Since conditional requests enabled?
729
+
730
+ def conditional_requests
731
+ @agent.conditional_requests
732
+ end
733
+
734
+ ##
735
+ # Disables If-Modified-Since conditional requests (enabled by default)
736
+
737
+ def conditional_requests= enabled
738
+ @agent.conditional_requests = enabled
739
+ end
740
+
741
+ ##
742
+ # A Mechanize::CookieJar which stores cookies
743
+
744
+ def cookie_jar
745
+ @agent.cookie_jar
746
+ end
747
+
748
+ ##
749
+ # Replaces the cookie jar with +cookie_jar+
750
+
751
+ def cookie_jar= cookie_jar
752
+ @agent.cookie_jar = cookie_jar
753
+ end
754
+
755
+ ##
756
+ # Returns a list of cookies stored in the cookie jar.
757
+
758
+ def cookies
759
+ @agent.cookie_jar.to_a
760
+ end
761
+
762
+ ##
763
+ # Follow HTML meta refresh and HTTP Refresh headers. If set to +:anywhere+
764
+ # meta refresh tags outside of the head element will be followed.
765
+
766
+ def follow_meta_refresh
767
+ @agent.follow_meta_refresh
768
+ end
769
+
770
+ ##
771
+ # Controls following of HTML meta refresh and HTTP Refresh headers in
772
+ # responses.
773
+
774
+ def follow_meta_refresh= follow
775
+ @agent.follow_meta_refresh = follow
776
+ end
777
+
778
+ ##
779
+ # Follow an HTML meta refresh and HTTP Refresh headers that have no "url="
780
+ # in the content attribute.
781
+ #
782
+ # Defaults to false to prevent infinite refresh loops.
783
+
784
+ def follow_meta_refresh_self
785
+ @agent.follow_meta_refresh_self
786
+ end
787
+
788
+ ##
789
+ # Alters the following of HTML meta refresh and HTTP Refresh headers that
790
+ # point to the same page.
791
+
792
+ def follow_meta_refresh_self= follow
793
+ @agent.follow_meta_refresh_self = follow
794
+ end
795
+
796
+ ##
797
+ # Is gzip compression of responses enabled?
798
+
799
+ def gzip_enabled
800
+ @agent.gzip_enabled
801
+ end
802
+
803
+ ##
804
+ # Disables HTTP/1.1 gzip compression (enabled by default)
805
+
806
+ def gzip_enabled=enabled
807
+ @agent.gzip_enabled = enabled
808
+ end
809
+
810
+ ##
811
+ # Connections that have not been used in this many seconds will be reset.
812
+
813
+ def idle_timeout
814
+ @agent.idle_timeout
815
+ end
816
+
817
+ # Sets the idle timeout to +idle_timeout+. The default timeout is 5
818
+ # seconds. If you experience "too many connection resets", reducing this
819
+ # value may help.
820
+
821
+ def idle_timeout= idle_timeout
822
+ @agent.idle_timeout = idle_timeout
823
+ end
824
+
825
+ ##
826
+ # When set to true mechanize will ignore an EOF during chunked transfer
827
+ # encoding so long as at least one byte was received. Be careful when
828
+ # enabling this as it may cause data loss.
829
+ #
830
+ # Net::HTTP does not inform mechanize of where in the chunked stream the EOF
831
+ # occurred. Usually it is after the last-chunk but before the terminating
832
+ # CRLF (invalid termination) but it may occur earlier. In the second case
833
+ # your response body may be incomplete.
834
+
835
+ def ignore_bad_chunking
836
+ @agent.ignore_bad_chunking
837
+ end
838
+
839
+ ##
840
+ # When set to true mechanize will ignore an EOF during chunked transfer
841
+ # encoding. See ignore_bad_chunking for further details
842
+
843
+ def ignore_bad_chunking= ignore_bad_chunking
844
+ @agent.ignore_bad_chunking = ignore_bad_chunking
845
+ end
846
+
847
+ ##
848
+ # Are HTTP/1.1 keep-alive connections enabled?
849
+
850
+ def keep_alive
851
+ @agent.keep_alive
852
+ end
853
+
854
+ ##
855
+ # Disable HTTP/1.1 keep-alive connections if +enable+ is set to false. If
856
+ # you are experiencing "too many connection resets" errors setting this to
857
+ # false will eliminate them.
858
+ #
859
+ # You should first investigate reducing idle_timeout.
860
+
861
+ def keep_alive= enable
862
+ @agent.keep_alive = enable
863
+ end
864
+
865
+ ##
866
+ # The current logger. If no logger has been set Mechanize.log is used.
867
+
868
+ def log
869
+ @log || Mechanize.log
870
+ end
871
+
872
+ ##
873
+ # Sets the +logger+ used by this instance of mechanize
874
+
875
+ def log= logger
876
+ @log = logger
877
+ end
878
+
879
+ ##
880
+ # Responses larger than this will be written to a Tempfile instead of stored
881
+ # in memory. The default is 100,000 bytes.
882
+ #
883
+ # A value of nil disables creation of Tempfiles.
884
+
885
+ def max_file_buffer
886
+ @agent.max_file_buffer
887
+ end
888
+
889
+ ##
890
+ # Sets the maximum size of a response body that will be stored in memory to
891
+ # +bytes+. A value of nil causes all response bodies to be stored in
892
+ # memory.
893
+ #
894
+ # Note that for Mechanize::Download subclasses, the maximum buffer size
895
+ # multiplied by the number of pages stored in history (controlled by
896
+ # #max_history) is an approximate upper limit on the amount of memory
897
+ # Mechanize will use. By default, Mechanize can use up to ~5MB to store
898
+ # response bodies for non-File and non-Page (HTML) responses.
899
+ #
900
+ # See also the discussion under #max_history=
901
+
902
+ def max_file_buffer= bytes
903
+ @agent.max_file_buffer = bytes
904
+ end
905
+
906
+ ##
907
+ # Length of time to wait until a connection is opened in seconds
908
+
909
+ def open_timeout
910
+ @agent.open_timeout
911
+ end
912
+
913
+ ##
914
+ # Sets the connection open timeout to +open_timeout+
915
+
916
+ def open_timeout= open_timeout
917
+ @agent.open_timeout = open_timeout
918
+ end
919
+
920
+ ##
921
+ # Length of time to wait for data from the server
922
+
923
+ def read_timeout
924
+ @agent.read_timeout
925
+ end
926
+
927
+ ##
928
+ # Sets the timeout for each chunk of data read from the server to
929
+ # +read_timeout+. A single request may read many chunks of data.
930
+
931
+ def read_timeout= read_timeout
932
+ @agent.read_timeout = read_timeout
933
+ end
934
+
935
+ ##
936
+ # Controls how mechanize deals with redirects. The following values are
937
+ # allowed:
938
+ #
939
+ # :all, true:: All 3xx redirects are followed (default)
940
+ # :permanent:: Only 301 Moved Permanantly redirects are followed
941
+ # false:: No redirects are followed
942
+
943
+ def redirect_ok
944
+ @agent.redirect_ok
945
+ end
946
+
947
+ alias follow_redirect? redirect_ok
948
+
949
+ ##
950
+ # Sets the mechanize redirect handling policy. See redirect_ok for allowed
951
+ # values
952
+
953
+ def redirect_ok= follow
954
+ @agent.redirect_ok = follow
955
+ end
956
+
957
+ alias follow_redirect= redirect_ok=
958
+
959
+ ##
960
+ # Maximum number of redirections to follow
961
+
962
+ def redirection_limit
963
+ @agent.redirection_limit
964
+ end
965
+
966
+ ##
967
+ # Sets the maximum number of redirections to follow to +limit+
968
+
969
+ def redirection_limit= limit
970
+ @agent.redirection_limit = limit
971
+ end
972
+
973
+ ##
974
+ # Resolve the full path of a link / uri
975
+ def resolve link
976
+ @agent.resolve link
977
+ end
978
+
979
+ ##
980
+ # A hash of custom request headers that will be sent on every request
981
+
982
+ def request_headers
983
+ @agent.request_headers
984
+ end
985
+
986
+ ##
987
+ # Replaces the custom request headers that will be sent on every request
988
+ # with +request_headers+
989
+
990
+ def request_headers= request_headers
991
+ @agent.request_headers = request_headers
992
+ end
993
+
994
+ ##
995
+ # Retry POST and other non-idempotent requests. See RFC 2616 9.1.2.
996
+
997
+ def retry_change_requests
998
+ @agent.retry_change_requests
999
+ end
1000
+
1001
+ ##
1002
+ # When setting +retry_change_requests+ to true you are stating that, for all
1003
+ # the URLs you access with mechanize, making POST and other non-idempotent
1004
+ # requests is safe and will not cause data duplication or other harmful
1005
+ # results.
1006
+ #
1007
+ # If you are experiencing "too many connection resets" errors you should
1008
+ # instead investigate reducing the idle_timeout or disabling keep_alive
1009
+ # connections.
1010
+
1011
+ def retry_change_requests= retry_change_requests
1012
+ @agent.retry_change_requests = retry_change_requests
1013
+ end
1014
+
1015
+ ##
1016
+ # Will <code>/robots.txt</code> files be obeyed?
1017
+
1018
+ def robots
1019
+ @agent.robots
1020
+ end
1021
+
1022
+ ##
1023
+ # When +enabled+ mechanize will retrieve and obey <code>robots.txt</code>
1024
+ # files
1025
+
1026
+ def robots= enabled
1027
+ @agent.robots = enabled
1028
+ end
1029
+
1030
+ ##
1031
+ # The handlers for HTTP and other URI protocols.
1032
+
1033
+ def scheme_handlers
1034
+ @agent.scheme_handlers
1035
+ end
1036
+
1037
+ ##
1038
+ # Replaces the URI scheme handler table with +scheme_handlers+
1039
+
1040
+ def scheme_handlers= scheme_handlers
1041
+ @agent.scheme_handlers = scheme_handlers
1042
+ end
1043
+
1044
+ ##
1045
+ # The identification string for the client initiating a web request
1046
+
1047
+ def user_agent
1048
+ @agent.user_agent
1049
+ end
1050
+
1051
+ ##
1052
+ # Sets the User-Agent used by mechanize to +user_agent+. See also
1053
+ # user_agent_alias
1054
+
1055
+ def user_agent= user_agent
1056
+ @agent.user_agent = user_agent
1057
+ end
1058
+
1059
+ ##
1060
+ # Set the user agent for the Mechanize object based on the given +name+.
1061
+ #
1062
+ # See also AGENT_ALIASES
1063
+
1064
+ def user_agent_alias= name
1065
+ self.user_agent = AGENT_ALIASES[name] ||
1066
+ raise(ArgumentError, "unknown agent alias #{name.inspect}")
1067
+ end
1068
+
1069
+ ##
1070
+ # The value of watch_for_set is passed to pluggable parsers for retrieved
1071
+ # content
1072
+
1073
+ attr_accessor :watch_for_set
1074
+
1075
+ # :section: SSL
1076
+ #
1077
+ # SSL settings for mechanize. These must be set in the block given to
1078
+ # Mechanize.new
1079
+
1080
+ ##
1081
+ # Path to an OpenSSL server certificate file
1082
+
1083
+ def ca_file
1084
+ @agent.ca_file
1085
+ end
1086
+
1087
+ ##
1088
+ # Sets the certificate file used for SSL connections
1089
+
1090
+ def ca_file= ca_file
1091
+ @agent.ca_file = ca_file
1092
+ end
1093
+
1094
+ ##
1095
+ # An OpenSSL client certificate or the path to a certificate file.
1096
+
1097
+ def cert
1098
+ @agent.certificate
1099
+ end
1100
+
1101
+ ##
1102
+ # Sets the OpenSSL client certificate +cert+ to the given path or
1103
+ # certificate instance
1104
+
1105
+ def cert= cert
1106
+ @agent.certificate = cert
1107
+ end
1108
+
1109
+ ##
1110
+ # An OpenSSL certificate store for verifying server certificates. This
1111
+ # defaults to the default certificate store for your system.
1112
+ #
1113
+ # If your system does not ship with a default set of certificates you can
1114
+ # retrieve a copy of the set from Mozilla here:
1115
+ # http://curl.haxx.se/docs/caextract.html
1116
+ #
1117
+ # (Note that this set does not have an HTTPS download option so you may
1118
+ # wish to use the firefox-db2pem.sh script to extract the certificates
1119
+ # from a local install to avoid man-in-the-middle attacks.)
1120
+ #
1121
+ # After downloading or generating a cacert.pem from the above link you
1122
+ # can create a certificate store from the pem file like this:
1123
+ #
1124
+ # cert_store = OpenSSL::X509::Store.new
1125
+ # cert_store.add_file 'cacert.pem'
1126
+ #
1127
+ # And have mechanize use it with:
1128
+ #
1129
+ # agent.cert_store = cert_store
1130
+
1131
+ def cert_store
1132
+ @agent.cert_store
1133
+ end
1134
+
1135
+ ##
1136
+ # Sets the OpenSSL certificate store to +store+.
1137
+ #
1138
+ # See also #cert_store
1139
+
1140
+ def cert_store= cert_store
1141
+ @agent.cert_store = cert_store
1142
+ end
1143
+
1144
+ ##
1145
+ # What is this?
1146
+ #
1147
+ # Why is it different from #cert?
1148
+
1149
+ def certificate # :nodoc:
1150
+ @agent.certificate
1151
+ end
1152
+
1153
+ ##
1154
+ # An OpenSSL private key or the path to a private key
1155
+
1156
+ def key
1157
+ @agent.private_key
1158
+ end
1159
+
1160
+ ##
1161
+ # Sets the OpenSSL client +key+ to the given path or key instance. If a
1162
+ # path is given, the path must contain an RSA key file.
1163
+
1164
+ def key= key
1165
+ @agent.private_key = key
1166
+ end
1167
+
1168
+ ##
1169
+ # OpenSSL client key password
1170
+
1171
+ def pass
1172
+ @agent.pass
1173
+ end
1174
+
1175
+ ##
1176
+ # Sets the client key password to +pass+
1177
+
1178
+ def pass= pass
1179
+ @agent.pass = pass
1180
+ end
1181
+
1182
+ ##
1183
+ # SSL version to use.
1184
+
1185
+ def ssl_version
1186
+ @agent.ssl_version
1187
+ end
1188
+
1189
+ ##
1190
+ # Sets the SSL version to use to +version+ without client/server
1191
+ # negotiation.
1192
+
1193
+ def ssl_version= ssl_version
1194
+ @agent.ssl_version = ssl_version
1195
+ end
1196
+
1197
+ ##
1198
+ # A callback for additional certificate verification. See
1199
+ # OpenSSL::SSL::SSLContext#verify_callback
1200
+ #
1201
+ # The callback can be used for debugging or to ignore errors by always
1202
+ # returning +true+. Specifying nil uses the default method that was valid
1203
+ # when the SSLContext was created
1204
+
1205
+ def verify_callback
1206
+ @agent.verify_callback
1207
+ end
1208
+
1209
+ ##
1210
+ # Sets the OpenSSL certificate verification callback
1211
+
1212
+ def verify_callback= verify_callback
1213
+ @agent.verify_callback = verify_callback
1214
+ end
1215
+
1216
+ ##
1217
+ # the OpenSSL server certificate verification method. The default is
1218
+ # OpenSSL::SSL::VERIFY_PEER and certificate verification uses the default
1219
+ # system certificates. See also cert_store
1220
+
1221
+ def verify_mode
1222
+ @agent.verify_mode
1223
+ end
1224
+
1225
+ ##
1226
+ # Sets the OpenSSL server certificate verification method.
1227
+
1228
+ def verify_mode= verify_mode
1229
+ @agent.verify_mode = verify_mode
1230
+ end
1231
+
1232
+ # :section: Utilities
1233
+
1234
+ attr_reader :agent # :nodoc:
1235
+
1236
+ ##
1237
+ # Parses the +body+ of the +response+ from +uri+ using the pluggable parser
1238
+ # that matches its content type
1239
+
1240
+ def parse uri, response, body
1241
+ content_type = nil
1242
+
1243
+ unless response['Content-Type'].nil?
1244
+ data, = response['Content-Type'].split ';', 2
1245
+ content_type, = data.downcase.split ',', 2 unless data.nil?
1246
+ end
1247
+
1248
+ parser_klass = @pluggable_parser.parser content_type
1249
+
1250
+ unless parser_klass <= Mechanize::Download then
1251
+ body = case body
1252
+ when IO, Tempfile, StringIO then
1253
+ body.read
1254
+ else
1255
+ body
1256
+ end
1257
+ end
1258
+
1259
+ parser_klass.new uri, response, body, response.code do |parser|
1260
+ parser.mech = self if parser.respond_to? :mech=
1261
+
1262
+ parser.watch_for_set = @watch_for_set if
1263
+ @watch_for_set and parser.respond_to?(:watch_for_set=)
1264
+ end
1265
+ end
1266
+
1267
+ def pretty_print(q) # :nodoc:
1268
+ q.object_group(self) {
1269
+ q.breakable
1270
+ q.pp cookie_jar
1271
+ q.breakable
1272
+ q.pp current_page
1273
+ }
1274
+ end
1275
+
1276
+ ##
1277
+ # Sets the proxy +address+ at +port+ with an optional +user+ and +password+
1278
+
1279
+ def set_proxy address, port, user = nil, password = nil
1280
+ @proxy_addr = address
1281
+ @proxy_port = port
1282
+ @proxy_user = user
1283
+ @proxy_pass = password
1284
+
1285
+ @agent.set_proxy address, port, user, password
1286
+ end
1287
+
1288
+ ##
1289
+ # Clears history and cookies.
1290
+
1291
+ def reset
1292
+ @agent.reset
1293
+ end
1294
+
1295
+ ##
1296
+ # Shuts down this session by clearing browsing state and closing all
1297
+ # persistent connections.
1298
+
1299
+ def shutdown
1300
+ reset
1301
+ @agent.shutdown
1302
+ end
1303
+
1304
+ private
1305
+
1306
+ ##
1307
+ # Posts +form+ to +uri+
1308
+
1309
+ def post_form(uri, form, headers = {})
1310
+ cur_page = form.page || current_page ||
1311
+ Page.new
1312
+
1313
+ request_data = form.request_data
1314
+
1315
+ log.debug("query: #{ request_data.inspect }") if log
1316
+
1317
+ headers = {
1318
+ 'Content-Type' => form.enctype,
1319
+ 'Content-Length' => request_data.size.to_s,
1320
+ }.merge headers
1321
+
1322
+ # fetch the page
1323
+ page = @agent.fetch uri, :post, headers, [request_data], cur_page
1324
+ add_to_history(page)
1325
+ page
1326
+ end
1327
+
1328
+ ##
1329
+ # Adds +page+ to the history
1330
+
1331
+ def add_to_history(page)
1332
+ @agent.history.push(page, @agent.resolve(page.uri))
1333
+ @history_added.call(page) if @history_added
1334
+ end
1335
+
1336
+ end
1337
+
1338
+ require 'mechanize/element_not_found_error'
1339
+ require 'mechanize/response_read_error'
1340
+ require 'mechanize/chunked_termination_error'
1341
+ require 'mechanize/content_type_error'
1342
+ require 'mechanize/cookie'
1343
+ require 'mechanize/cookie_jar'
1344
+ require 'mechanize/parser'
1345
+ require 'mechanize/download'
1346
+ require 'mechanize/directory_saver'
1347
+ require 'mechanize/file'
1348
+ require 'mechanize/file_connection'
1349
+ require 'mechanize/file_request'
1350
+ require 'mechanize/file_response'
1351
+ require 'mechanize/form'
1352
+ require 'mechanize/history'
1353
+ require 'mechanize/http'
1354
+ require 'mechanize/http/agent'
1355
+ require 'mechanize/http/auth_challenge'
1356
+ require 'mechanize/http/auth_realm'
1357
+ require 'mechanize/http/content_disposition_parser'
1358
+ require 'mechanize/http/www_authenticate_parser'
1359
+ require 'mechanize/image'
1360
+ require 'mechanize/page'
1361
+ require 'mechanize/pluggable_parsers'
1362
+ require 'mechanize/redirect_limit_reached_error'
1363
+ require 'mechanize/redirect_not_get_or_head_error'
1364
+ require 'mechanize/response_code_error'
1365
+ require 'mechanize/robots_disallowed_error'
1366
+ require 'mechanize/unauthorized_error'
1367
+ require 'mechanize/unsupported_scheme_error'
1368
+ require 'mechanize/util'
1369
+