color_me_shop 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1804) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/Gemfile.lock +69 -0
  4. data/README.md +148 -0
  5. data/Rakefile +10 -0
  6. data/color_me_shop.gemspec +45 -0
  7. data/docs/CategoryApi.md +53 -0
  8. data/docs/Customer.md +27 -0
  9. data/docs/CustomerApi.md +177 -0
  10. data/docs/Delivery.md +26 -0
  11. data/docs/DeliveryApi.md +98 -0
  12. data/docs/DeliveryChargeByPrefecture.md +10 -0
  13. data/docs/DeliveryDateSetting.md +12 -0
  14. data/docs/EtcApi.md +56 -0
  15. data/docs/GiftApi.md +53 -0
  16. data/docs/GroupApi.md +53 -0
  17. data/docs/Meta.md +10 -0
  18. data/docs/Payment.md +24 -0
  19. data/docs/PaymentApi.md +53 -0
  20. data/docs/Product.md +44 -0
  21. data/docs/ProductApi.md +297 -0
  22. data/docs/ProductCategory.md +18 -0
  23. data/docs/ProductGroup.md +14 -0
  24. data/docs/ProductOption.md +14 -0
  25. data/docs/ProductPickup.md +13 -0
  26. data/docs/ProductUpdateRequest.md +8 -0
  27. data/docs/ProductVariant.md +19 -0
  28. data/docs/Sale.md +47 -0
  29. data/docs/SaleApi.md +363 -0
  30. data/docs/SaleDelivery.md +34 -0
  31. data/docs/SaleDetail.md +27 -0
  32. data/docs/ScriptApi.md +250 -0
  33. data/docs/ScriptTag.md +12 -0
  34. data/docs/Shop.md +39 -0
  35. data/docs/ShopApi.md +55 -0
  36. data/docs/Stock.md +41 -0
  37. data/docs/StockApi.md +81 -0
  38. data/generate.sh +8 -0
  39. data/git_push.sh +55 -0
  40. data/lib/color_me_shop/api/category_api.rb +67 -0
  41. data/lib/color_me_shop/api/customer_api.rb +202 -0
  42. data/lib/color_me_shop/api/delivery_api.rb +111 -0
  43. data/lib/color_me_shop/api/etc_api.rb +70 -0
  44. data/lib/color_me_shop/api/gift_api.rb +67 -0
  45. data/lib/color_me_shop/api/group_api.rb +67 -0
  46. data/lib/color_me_shop/api/payment_api.rb +67 -0
  47. data/lib/color_me_shop/api/product_api.rb +340 -0
  48. data/lib/color_me_shop/api/sale_api.rb +401 -0
  49. data/lib/color_me_shop/api/script_api.rb +274 -0
  50. data/lib/color_me_shop/api/shop_api.rb +69 -0
  51. data/lib/color_me_shop/api/stock_api.rb +105 -0
  52. data/lib/color_me_shop/api_client.rb +389 -0
  53. data/lib/color_me_shop/api_error.rb +38 -0
  54. data/lib/color_me_shop/configuration.rb +209 -0
  55. data/lib/color_me_shop/models/customer.rb +408 -0
  56. data/lib/color_me_shop/models/delivery.rb +422 -0
  57. data/lib/color_me_shop/models/delivery_charge_by_prefecture.rb +228 -0
  58. data/lib/color_me_shop/models/delivery_date_setting.rb +224 -0
  59. data/lib/color_me_shop/models/meta.rb +204 -0
  60. data/lib/color_me_shop/models/payment.rb +359 -0
  61. data/lib/color_me_shop/models/product.rb +587 -0
  62. data/lib/color_me_shop/models/product_category.rb +320 -0
  63. data/lib/color_me_shop/models/product_group.rb +278 -0
  64. data/lib/color_me_shop/models/product_option.rb +246 -0
  65. data/lib/color_me_shop/models/product_pickup.rb +234 -0
  66. data/lib/color_me_shop/models/product_update_request.rb +183 -0
  67. data/lib/color_me_shop/models/product_variant.rb +294 -0
  68. data/lib/color_me_shop/models/sale.rb +669 -0
  69. data/lib/color_me_shop/models/sale_delivery.rb +446 -0
  70. data/lib/color_me_shop/models/sale_detail.rb +374 -0
  71. data/lib/color_me_shop/models/script_tag.rb +258 -0
  72. data/lib/color_me_shop/models/shop.rb +576 -0
  73. data/lib/color_me_shop/models/stock.rb +549 -0
  74. data/lib/color_me_shop/version.rb +15 -0
  75. data/lib/color_me_shop.rb +70 -0
  76. data/spec/api_client_spec.rb +226 -0
  77. data/spec/configuration_spec.rb +42 -0
  78. data/spec/spec_helper.rb +111 -0
  79. data/vendor/bundle/ruby/2.5.0/bin/autotest +27 -0
  80. data/vendor/bundle/ruby/2.5.0/bin/htmldiff +29 -0
  81. data/vendor/bundle/ruby/2.5.0/bin/ldiff +29 -0
  82. data/vendor/bundle/ruby/2.5.0/bin/multigem +29 -0
  83. data/vendor/bundle/ruby/2.5.0/bin/multiruby +29 -0
  84. data/vendor/bundle/ruby/2.5.0/bin/multiruby_setup +29 -0
  85. data/vendor/bundle/ruby/2.5.0/bin/rake +27 -0
  86. data/vendor/bundle/ruby/2.5.0/bin/rspec +27 -0
  87. data/vendor/bundle/ruby/2.5.0/bin/safe_yaml +27 -0
  88. data/vendor/bundle/ruby/2.5.0/bin/unit_diff +29 -0
  89. data/vendor/bundle/ruby/2.5.0/bin/zentest +29 -0
  90. data/vendor/bundle/ruby/2.5.0/cache/ZenTest-4.11.1.gem +0 -0
  91. data/vendor/bundle/ruby/2.5.0/cache/addressable-2.5.2.gem +0 -0
  92. data/vendor/bundle/ruby/2.5.0/cache/autotest-4.4.6.gem +0 -0
  93. data/vendor/bundle/ruby/2.5.0/cache/autotest-fsevent-0.2.13.gem +0 -0
  94. data/vendor/bundle/ruby/2.5.0/cache/autotest-growl-0.2.16.gem +0 -0
  95. data/vendor/bundle/ruby/2.5.0/cache/autotest-rails-pure-4.1.2.gem +0 -0
  96. data/vendor/bundle/ruby/2.5.0/cache/crack-0.4.3.gem +0 -0
  97. data/vendor/bundle/ruby/2.5.0/cache/diff-lcs-1.3.gem +0 -0
  98. data/vendor/bundle/ruby/2.5.0/cache/ethon-0.11.0.gem +0 -0
  99. data/vendor/bundle/ruby/2.5.0/cache/ffi-1.9.25.gem +0 -0
  100. data/vendor/bundle/ruby/2.5.0/cache/hashdiff-0.3.7.gem +0 -0
  101. data/vendor/bundle/ruby/2.5.0/cache/public_suffix-3.0.2.gem +0 -0
  102. data/vendor/bundle/ruby/2.5.0/cache/rake-12.0.0.gem +0 -0
  103. data/vendor/bundle/ruby/2.5.0/cache/rspec-3.7.0.gem +0 -0
  104. data/vendor/bundle/ruby/2.5.0/cache/rspec-core-3.7.1.gem +0 -0
  105. data/vendor/bundle/ruby/2.5.0/cache/rspec-expectations-3.7.0.gem +0 -0
  106. data/vendor/bundle/ruby/2.5.0/cache/rspec-mocks-3.7.0.gem +0 -0
  107. data/vendor/bundle/ruby/2.5.0/cache/rspec-support-3.7.1.gem +0 -0
  108. data/vendor/bundle/ruby/2.5.0/cache/safe_yaml-1.0.4.gem +0 -0
  109. data/vendor/bundle/ruby/2.5.0/cache/sys-uname-1.0.3.gem +0 -0
  110. data/vendor/bundle/ruby/2.5.0/cache/typhoeus-1.3.0.gem +0 -0
  111. data/vendor/bundle/ruby/2.5.0/cache/vcr-3.0.3.gem +0 -0
  112. data/vendor/bundle/ruby/2.5.0/cache/webmock-1.24.6.gem +0 -0
  113. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/autotest-fsevent-0.2.13/gem.build_complete +0 -0
  114. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/autotest-fsevent-0.2.13/gem_make.out +14 -0
  115. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/ffi-1.9.25/ffi_c.so +0 -0
  116. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/ffi-1.9.25/gem.build_complete +0 -0
  117. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/ffi-1.9.25/gem_make.out +50 -0
  118. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/ffi-1.9.25/mkmf.log +457 -0
  119. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/.autotest +20 -0
  120. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/History.txt +933 -0
  121. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/Manifest.txt +38 -0
  122. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/README.txt +164 -0
  123. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/Rakefile +54 -0
  124. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/articles/Article.css +721 -0
  125. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/articles/getting_started_with_autotest.html +533 -0
  126. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/articles/how_to_use_zentest.txt +393 -0
  127. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/bin/autotest +6 -0
  128. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/bin/multigem +4 -0
  129. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/bin/multiruby +76 -0
  130. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/bin/multiruby_setup +74 -0
  131. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/bin/unit_diff +38 -0
  132. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/bin/zentest +23 -0
  133. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/example.txt +42 -0
  134. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/example1.rb +7 -0
  135. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/example2.rb +15 -0
  136. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/example_dot_autotest.rb +16 -0
  137. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/autotest/autoupdate.rb +26 -0
  138. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/autotest/bundler.rb +10 -0
  139. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/autotest/isolate.rb +19 -0
  140. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/autotest/once.rb +9 -0
  141. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/autotest/preload.rb +56 -0
  142. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/autotest/rcov.rb +27 -0
  143. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/autotest/restart.rb +16 -0
  144. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/autotest/timestamp.rb +9 -0
  145. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/autotest.rb +901 -0
  146. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/focus.rb +26 -0
  147. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/functional_test_matrix.rb +92 -0
  148. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/multiruby.rb +413 -0
  149. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/unit_diff.rb +274 -0
  150. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/zentest.rb +601 -0
  151. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/lib/zentest_mapping.rb +117 -0
  152. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/test/test_autotest.rb +560 -0
  153. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/test/test_focus.rb +35 -0
  154. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/test/test_unit_diff.rb +372 -0
  155. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/test/test_zentest.rb +581 -0
  156. data/vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/test/test_zentest_mapping.rb +242 -0
  157. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/CHANGELOG.md +216 -0
  158. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/Gemfile +32 -0
  159. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/LICENSE.txt +202 -0
  160. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/README.md +121 -0
  161. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/Rakefile +32 -0
  162. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/data/unicode.data +0 -0
  163. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/lib/addressable/idna/native.rb +59 -0
  164. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/lib/addressable/idna/pure.rb +677 -0
  165. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/lib/addressable/idna.rb +25 -0
  166. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/lib/addressable/template.rb +1065 -0
  167. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/lib/addressable/uri.rb +2492 -0
  168. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/lib/addressable/version.rb +30 -0
  169. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/lib/addressable.rb +2 -0
  170. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/spec/addressable/idna_spec.rb +298 -0
  171. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/spec/addressable/net_http_compat_spec.rb +28 -0
  172. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/spec/addressable/rack_mount_compat_spec.rb +104 -0
  173. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/spec/addressable/security_spec.rb +57 -0
  174. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/spec/addressable/template_spec.rb +1419 -0
  175. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/spec/addressable/uri_spec.rb +6468 -0
  176. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/spec/spec_helper.rb +21 -0
  177. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/tasks/clobber.rake +2 -0
  178. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/tasks/gem.rake +91 -0
  179. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/tasks/git.rake +45 -0
  180. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/tasks/metrics.rake +22 -0
  181. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/tasks/rspec.rake +21 -0
  182. data/vendor/bundle/ruby/2.5.0/gems/addressable-2.5.2/tasks/yard.rake +27 -0
  183. data/vendor/bundle/ruby/2.5.0/gems/autotest-4.4.6/History.txt +4 -0
  184. data/vendor/bundle/ruby/2.5.0/gems/autotest-4.4.6/Manifest.txt +4 -0
  185. data/vendor/bundle/ruby/2.5.0/gems/autotest-4.4.6/README.txt +43 -0
  186. data/vendor/bundle/ruby/2.5.0/gems/autotest-4.4.6/Rakefile +17 -0
  187. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/.gitignore +5 -0
  188. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/.ruby-version +1 -0
  189. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/CHANGELOG.txt +101 -0
  190. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/Gemfile +4 -0
  191. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/Gemfile.lock +40 -0
  192. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/LICENSE +20 -0
  193. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/PostInstall.txt +14 -0
  194. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/README.rdoc +152 -0
  195. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/Rakefile +7 -0
  196. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/autotest-fsevent.gemspec +28 -0
  197. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/ext/fsevent/Makefile +4 -0
  198. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/ext/fsevent/extconf.rb +41 -0
  199. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/ext/fsevent/fsevent.dll +0 -0
  200. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/ext/fsevent/fsevent.so +0 -0
  201. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/ext/fsevent/fsevent_sleep.c +43 -0
  202. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/ext/fsevent/make +1 -0
  203. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/ext/fsevent/nmake.bat +0 -0
  204. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/lib/autotest/fsevent.rb +38 -0
  205. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/lib/autotest-fsevent/version.rb +5 -0
  206. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/lib/autotest-fsevent.rb +4 -0
  207. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/prebuilt/10.7/fsevent_sleep +0 -0
  208. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/spec/autotest-fsevent_spec.rb +1 -0
  209. data/vendor/bundle/ruby/2.5.0/gems/autotest-fsevent-0.2.13/spec/spec_helper.rb +8 -0
  210. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/.gitignore +5 -0
  211. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/.rvmrc +1 -0
  212. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/CHANGELOG.txt +140 -0
  213. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/Gemfile +4 -0
  214. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/Gemfile.lock +28 -0
  215. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/LICENSE +20 -0
  216. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/PostInstall.txt +26 -0
  217. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/README.rdoc +268 -0
  218. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/Rakefile +7 -0
  219. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/autotest-growl.gemspec +26 -0
  220. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/growl/growlnotify +19 -0
  221. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/growl/growlnotify-1.1.5 +0 -0
  222. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/growl/growlnotify-1.3 +0 -0
  223. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/growl/growlnotify.com +0 -0
  224. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/img/ampelmaennchen/error.png +0 -0
  225. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/img/ampelmaennchen/failed.png +0 -0
  226. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/img/ampelmaennchen/info.png +0 -0
  227. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/img/ampelmaennchen/passed.png +0 -0
  228. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/img/ampelmaennchen/pending.png +0 -0
  229. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/img/ruby/error.png +0 -0
  230. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/img/ruby/failed.png +0 -0
  231. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/img/ruby/info.png +0 -0
  232. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/img/ruby/passed.png +0 -0
  233. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/img/ruby/pending.png +0 -0
  234. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/lib/autotest/growl.rb +199 -0
  235. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/lib/autotest/result.rb +64 -0
  236. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/lib/autotest-growl/version.rb +5 -0
  237. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/lib/autotest-growl.rb +4 -0
  238. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/spec/autotest-growl_spec.rb +79 -0
  239. data/vendor/bundle/ruby/2.5.0/gems/autotest-growl-0.2.16/spec/spec_helper.rb +14 -0
  240. data/vendor/bundle/ruby/2.5.0/gems/autotest-rails-pure-4.1.2/.autotest +23 -0
  241. data/vendor/bundle/ruby/2.5.0/gems/autotest-rails-pure-4.1.2/History.txt +2 -0
  242. data/vendor/bundle/ruby/2.5.0/gems/autotest-rails-pure-4.1.2/Rakefile +21 -0
  243. data/vendor/bundle/ruby/2.5.0/gems/autotest-rails-pure-4.1.2/Readme.md +48 -0
  244. data/vendor/bundle/ruby/2.5.0/gems/autotest-rails-pure-4.1.2/VERSION +1 -0
  245. data/vendor/bundle/ruby/2.5.0/gems/autotest-rails-pure-4.1.2/autotest-rails-pure.gemspec +45 -0
  246. data/vendor/bundle/ruby/2.5.0/gems/autotest-rails-pure-4.1.2/lib/autotest/discover.rb +5 -0
  247. data/vendor/bundle/ruby/2.5.0/gems/autotest-rails-pure-4.1.2/lib/autotest/fixtures.rb +12 -0
  248. data/vendor/bundle/ruby/2.5.0/gems/autotest-rails-pure-4.1.2/lib/autotest/migrate.rb +7 -0
  249. data/vendor/bundle/ruby/2.5.0/gems/autotest-rails-pure-4.1.2/lib/autotest/rails.rb +100 -0
  250. data/vendor/bundle/ruby/2.5.0/gems/autotest-rails-pure-4.1.2/test/rails_test.rb +30 -0
  251. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/.gitignore +8 -0
  252. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/.travis.yml +14 -0
  253. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/Gemfile +5 -0
  254. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/History +25 -0
  255. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/LICENSE +20 -0
  256. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/README.md +46 -0
  257. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/crack.gemspec +20 -0
  258. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/lib/crack/json.rb +111 -0
  259. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/lib/crack/util.rb +17 -0
  260. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/lib/crack/version.rb +3 -0
  261. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/lib/crack/xml.rb +238 -0
  262. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/lib/crack.rb +7 -0
  263. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/script/bootstrap +21 -0
  264. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/script/release +42 -0
  265. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/script/test +25 -0
  266. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/test/data/large_dataset.json +139988 -0
  267. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/test/data/twittersearch-firefox.json +1 -0
  268. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/test/data/twittersearch-ie.json +1 -0
  269. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/test/hash_test.rb +26 -0
  270. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/test/json_test.rb +91 -0
  271. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/test/parser_test.rb +27 -0
  272. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/test/string_test.rb +31 -0
  273. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/test/test_helper.rb +3 -0
  274. data/vendor/bundle/ruby/2.5.0/gems/crack-0.4.3/test/xml_test.rb +514 -0
  275. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/.rspec +1 -0
  276. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Code-of-Conduct.md +74 -0
  277. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Contributing.md +83 -0
  278. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/History.md +220 -0
  279. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/License.md +39 -0
  280. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Manifest.txt +37 -0
  281. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/README.rdoc +84 -0
  282. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Rakefile +57 -0
  283. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/autotest/discover.rb +1 -0
  284. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/bin/htmldiff +32 -0
  285. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/bin/ldiff +6 -0
  286. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/docs/COPYING.txt +339 -0
  287. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/docs/artistic.txt +127 -0
  288. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +7 -0
  289. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +37 -0
  290. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +322 -0
  291. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +181 -0
  292. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +149 -0
  293. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +276 -0
  294. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +307 -0
  295. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +167 -0
  296. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +5 -0
  297. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs.rb +725 -0
  298. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff-lcs.rb +3 -0
  299. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/change_spec.rb +65 -0
  300. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/diff_spec.rb +47 -0
  301. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +50 -0
  302. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +51 -0
  303. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/hunk_spec.rb +72 -0
  304. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/issues_spec.rb +49 -0
  305. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/lcs_spec.rb +56 -0
  306. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/ldiff_spec.rb +47 -0
  307. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/patch_spec.rb +422 -0
  308. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/sdiff_spec.rb +214 -0
  309. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/spec_helper.rb +321 -0
  310. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +310 -0
  311. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +139 -0
  312. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/.gitignore +7 -0
  313. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/.rspec +3 -0
  314. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/.travis.yml +28 -0
  315. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/CHANGELOG.md +357 -0
  316. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/Gemfile +38 -0
  317. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/Guardfile +9 -0
  318. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/LICENSE +20 -0
  319. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/README.md +95 -0
  320. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/Rakefile +39 -0
  321. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/ethon.gemspec +25 -0
  322. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/curl.rb +89 -0
  323. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/curls/classes.rb +54 -0
  324. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/curls/codes.rb +122 -0
  325. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/curls/constants.rb +62 -0
  326. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/curls/form_options.rb +36 -0
  327. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/curls/functions.rb +66 -0
  328. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/curls/infos.rb +150 -0
  329. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/curls/messages.rb +18 -0
  330. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/curls/options.rb +465 -0
  331. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/curls/settings.rb +9 -0
  332. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/callbacks.rb +147 -0
  333. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/debug_info.rb +46 -0
  334. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/features.rb +30 -0
  335. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/form.rb +106 -0
  336. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/header.rb +60 -0
  337. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/http/actionable.rb +156 -0
  338. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/http/custom.rb +28 -0
  339. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/http/delete.rb +24 -0
  340. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/http/get.rb +23 -0
  341. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/http/head.rb +23 -0
  342. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/http/options.rb +23 -0
  343. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/http/patch.rb +23 -0
  344. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/http/post.rb +25 -0
  345. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/http/postable.rb +31 -0
  346. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/http/put.rb +26 -0
  347. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/http/putable.rb +24 -0
  348. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/http.rb +67 -0
  349. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/informations.rb +94 -0
  350. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/mirror.rb +35 -0
  351. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/operations.rb +63 -0
  352. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/options.rb +49 -0
  353. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/params.rb +28 -0
  354. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/queryable.rb +151 -0
  355. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/response_callbacks.rb +130 -0
  356. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy/util.rb +27 -0
  357. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/easy.rb +315 -0
  358. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/errors/ethon_error.rb +8 -0
  359. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/errors/global_init.rb +12 -0
  360. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/errors/invalid_option.rb +12 -0
  361. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/errors/invalid_value.rb +12 -0
  362. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/errors/multi_add.rb +11 -0
  363. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/errors/multi_fdset.rb +11 -0
  364. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/errors/multi_remove.rb +11 -0
  365. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/errors/multi_timeout.rb +12 -0
  366. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/errors/select.rb +12 -0
  367. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/errors.rb +16 -0
  368. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/libc.rb +20 -0
  369. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/loggable.rb +58 -0
  370. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/multi/operations.rb +190 -0
  371. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/multi/options.rb +116 -0
  372. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/multi/stack.rb +48 -0
  373. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/multi.rb +103 -0
  374. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon/version.rb +5 -0
  375. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/lib/ethon.rb +35 -0
  376. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/profile/benchmarks.rb +103 -0
  377. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/profile/memory_leaks.rb +113 -0
  378. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/profile/perf_spec_helper.rb +36 -0
  379. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/profile/support/memory_test_helpers.rb +75 -0
  380. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/profile/support/os_memory_leak_tracker.rb +47 -0
  381. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/profile/support/ruby_object_leak_tracker.rb +48 -0
  382. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/curl_spec.rb +37 -0
  383. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/callbacks_spec.rb +58 -0
  384. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/debug_info_spec.rb +53 -0
  385. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/features_spec.rb +23 -0
  386. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/form_spec.rb +103 -0
  387. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/header_spec.rb +78 -0
  388. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/http/custom_spec.rb +176 -0
  389. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/http/delete_spec.rb +20 -0
  390. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/http/get_spec.rb +125 -0
  391. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/http/head_spec.rb +79 -0
  392. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/http/options_spec.rb +50 -0
  393. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/http/patch_spec.rb +50 -0
  394. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/http/post_spec.rb +316 -0
  395. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/http/put_spec.rb +167 -0
  396. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/http_spec.rb +63 -0
  397. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/informations_spec.rb +97 -0
  398. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/mirror_spec.rb +45 -0
  399. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/operations_spec.rb +267 -0
  400. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/options_spec.rb +192 -0
  401. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/queryable_spec.rb +226 -0
  402. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/response_callbacks_spec.rb +151 -0
  403. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy/util_spec.rb +27 -0
  404. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/easy_spec.rb +202 -0
  405. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/libc_spec.rb +13 -0
  406. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/loggable_spec.rb +21 -0
  407. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/multi/operations_spec.rb +297 -0
  408. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/multi/options_spec.rb +68 -0
  409. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/multi/stack_spec.rb +79 -0
  410. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/multi_spec.rb +21 -0
  411. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/spec_helper.rb +27 -0
  412. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/support/localhost_server.rb +94 -0
  413. data/vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/support/server.rb +114 -0
  414. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/.gitignore +22 -0
  415. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/.gitmodules +3 -0
  416. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/.travis.yml +52 -0
  417. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/.yardopts +5 -0
  418. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/CHANGELOG.md +74 -0
  419. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/COPYING +49 -0
  420. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/Gemfile +15 -0
  421. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/LICENSE +24 -0
  422. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/LICENSE.SPECS +22 -0
  423. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/README.md +112 -0
  424. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/Rakefile +268 -0
  425. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/appveyor.yml +22 -0
  426. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/.sitearchdir.time +0 -0
  427. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/AbstractMemory.c +1109 -0
  428. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/AbstractMemory.h +175 -0
  429. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/AbstractMemory.o +0 -0
  430. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/ArrayType.c +162 -0
  431. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/ArrayType.h +59 -0
  432. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/ArrayType.o +0 -0
  433. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Buffer.c +365 -0
  434. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Buffer.o +0 -0
  435. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Call.c +520 -0
  436. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Call.h +110 -0
  437. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Call.o +0 -0
  438. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/ClosurePool.c +283 -0
  439. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/ClosurePool.h +57 -0
  440. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/ClosurePool.o +0 -0
  441. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/DataConverter.c +91 -0
  442. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/DataConverter.o +0 -0
  443. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/DynamicLibrary.c +339 -0
  444. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/DynamicLibrary.h +98 -0
  445. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/DynamicLibrary.o +0 -0
  446. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Function.c +1001 -0
  447. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Function.h +87 -0
  448. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Function.o +0 -0
  449. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/FunctionInfo.c +271 -0
  450. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/FunctionInfo.o +0 -0
  451. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/LastError.c +184 -0
  452. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/LastError.h +47 -0
  453. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/LastError.o +0 -0
  454. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/LongDouble.c +63 -0
  455. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/LongDouble.h +51 -0
  456. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/LongDouble.o +0 -0
  457. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Makefile +264 -0
  458. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/MappedType.c +168 -0
  459. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/MappedType.h +59 -0
  460. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/MappedType.o +0 -0
  461. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/MemoryPointer.c +197 -0
  462. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/MemoryPointer.h +53 -0
  463. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/MemoryPointer.o +0 -0
  464. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/MethodHandle.c +358 -0
  465. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/MethodHandle.h +55 -0
  466. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/MethodHandle.o +0 -0
  467. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Platform.c +129 -0
  468. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Platform.h +45 -0
  469. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Platform.o +0 -0
  470. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Pointer.c +508 -0
  471. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Pointer.h +63 -0
  472. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Pointer.o +0 -0
  473. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Struct.c +829 -0
  474. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Struct.h +106 -0
  475. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Struct.o +0 -0
  476. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/StructByReference.c +190 -0
  477. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/StructByReference.h +50 -0
  478. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/StructByReference.o +0 -0
  479. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/StructByValue.c +150 -0
  480. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/StructByValue.h +55 -0
  481. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/StructByValue.o +0 -0
  482. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/StructLayout.c +698 -0
  483. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/StructLayout.o +0 -0
  484. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Thread.c +353 -0
  485. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Thread.h +95 -0
  486. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Thread.o +0 -0
  487. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Type.c +397 -0
  488. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Type.h +62 -0
  489. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Type.o +0 -0
  490. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Types.c +139 -0
  491. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Types.h +89 -0
  492. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Types.o +0 -0
  493. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Variadic.c +304 -0
  494. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/Variadic.o +0 -0
  495. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/compat.h +78 -0
  496. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/extconf.h +12 -0
  497. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/extconf.rb +72 -0
  498. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/ffi.c +98 -0
  499. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/ffi.o +0 -0
  500. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/ffi_c.so +0 -0
  501. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/.appveyor.yml +50 -0
  502. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/.github/issue_template.md +10 -0
  503. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/.gitignore +38 -0
  504. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/.travis/ar-lib +270 -0
  505. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/.travis/build.sh +34 -0
  506. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/.travis/compile +351 -0
  507. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/.travis/install.sh +22 -0
  508. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/.travis/moxie-sim.exp +60 -0
  509. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/.travis/site.exp +18 -0
  510. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/.travis.yml +34 -0
  511. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/ChangeLog.libffi +584 -0
  512. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/ChangeLog.libffi-3.1 +6000 -0
  513. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/ChangeLog.libgcj +40 -0
  514. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/ChangeLog.v1 +764 -0
  515. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/LICENSE +21 -0
  516. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/LICENSE-BUILDTOOLS +352 -0
  517. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/Makefile.am +166 -0
  518. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/Makefile.in +1809 -0
  519. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/README.md +461 -0
  520. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/acinclude.m4 +479 -0
  521. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/autogen.sh +2 -0
  522. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/config.guess +1466 -0
  523. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/config.sub +1836 -0
  524. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/configure +21978 -0
  525. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/configure.ac +390 -0
  526. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/configure.host +289 -0
  527. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/doc/Makefile.am +3 -0
  528. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/doc/Makefile.in +811 -0
  529. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/doc/libffi.texi +985 -0
  530. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/doc/version.texi +4 -0
  531. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/fficonfig.h.in +210 -0
  532. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +203 -0
  533. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/include/Makefile.am +9 -0
  534. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/include/Makefile.in +604 -0
  535. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/include/ffi.h.in +511 -0
  536. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/include/ffi_cfi.h +55 -0
  537. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/include/ffi_common.h +149 -0
  538. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/install-sh +508 -0
  539. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/libffi.map.in +80 -0
  540. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/libffi.pc.in +11 -0
  541. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +1043 -0
  542. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/libtool-ldflags +106 -0
  543. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/libtool-version +29 -0
  544. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/ltmain.sh +11156 -0
  545. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/m4/asmcfi.m4 +13 -0
  546. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/m4/ax_append_flag.m4 +71 -0
  547. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +194 -0
  548. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +122 -0
  549. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/m4/ax_check_compile_flag.m4 +74 -0
  550. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +87 -0
  551. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/m4/ax_configure_args.m4 +70 -0
  552. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +302 -0
  553. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +263 -0
  554. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4 +89 -0
  555. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/m4/ax_require_defined.m4 +37 -0
  556. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/man/Makefile.am +8 -0
  557. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/man/Makefile.in +558 -0
  558. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/man/ffi.3 +41 -0
  559. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/man/ffi_call.3 +103 -0
  560. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/man/ffi_prep_cif.3 +68 -0
  561. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +73 -0
  562. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/missing +215 -0
  563. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/msvcc.sh +328 -0
  564. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/aarch64/ffi.c +941 -0
  565. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/aarch64/ffitarget.h +81 -0
  566. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/aarch64/internal.h +67 -0
  567. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/aarch64/sysv.S +438 -0
  568. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/alpha/ffi.c +521 -0
  569. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/alpha/ffitarget.h +57 -0
  570. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/alpha/internal.h +23 -0
  571. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/alpha/osf.S +282 -0
  572. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/arc/arcompact.S +135 -0
  573. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/arc/ffi.c +266 -0
  574. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/arc/ffitarget.h +53 -0
  575. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/arm/ffi.c +819 -0
  576. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/arm/ffitarget.h +82 -0
  577. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/arm/internal.h +7 -0
  578. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/arm/sysv.S +383 -0
  579. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/avr32/ffi.c +423 -0
  580. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/avr32/ffitarget.h +55 -0
  581. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/avr32/sysv.S +208 -0
  582. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/bfin/ffi.c +196 -0
  583. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/bfin/ffitarget.h +43 -0
  584. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/bfin/sysv.S +179 -0
  585. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/closures.c +966 -0
  586. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/cris/ffi.c +386 -0
  587. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/cris/ffitarget.h +56 -0
  588. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/cris/sysv.S +215 -0
  589. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/debug.c +64 -0
  590. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/dlmalloc.c +5166 -0
  591. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/frv/eabi.S +128 -0
  592. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/frv/ffi.c +292 -0
  593. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/frv/ffitarget.h +62 -0
  594. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/ia64/ffi.c +604 -0
  595. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/ia64/ffitarget.h +56 -0
  596. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/ia64/ia64_flags.h +40 -0
  597. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/ia64/unix.S +567 -0
  598. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/java_raw_api.c +374 -0
  599. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/m32r/ffi.c +232 -0
  600. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/m32r/ffitarget.h +53 -0
  601. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/m32r/sysv.S +121 -0
  602. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/m68k/ffi.c +362 -0
  603. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/m68k/ffitarget.h +54 -0
  604. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/m68k/sysv.S +357 -0
  605. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/m88k/ffi.c +400 -0
  606. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/m88k/ffitarget.h +49 -0
  607. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/m88k/obsd.S +209 -0
  608. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/metag/ffi.c +330 -0
  609. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/metag/ffitarget.h +53 -0
  610. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/metag/sysv.S +311 -0
  611. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/microblaze/ffi.c +321 -0
  612. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/microblaze/ffitarget.h +53 -0
  613. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/microblaze/sysv.S +302 -0
  614. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/mips/ffi.c +1130 -0
  615. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/mips/ffitarget.h +244 -0
  616. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/mips/n32.S +663 -0
  617. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/mips/o32.S +502 -0
  618. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/moxie/eabi.S +101 -0
  619. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/moxie/ffi.c +285 -0
  620. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/moxie/ffitarget.h +52 -0
  621. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/nios2/ffi.c +304 -0
  622. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/nios2/ffitarget.h +52 -0
  623. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/nios2/sysv.S +136 -0
  624. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/or1k/ffi.c +328 -0
  625. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/or1k/ffitarget.h +58 -0
  626. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/or1k/sysv.S +107 -0
  627. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/pa/ffi.c +719 -0
  628. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/pa/ffitarget.h +85 -0
  629. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/pa/hpux32.S +368 -0
  630. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/pa/linux.S +357 -0
  631. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/aix.S +566 -0
  632. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/aix_closure.S +694 -0
  633. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/asm.h +125 -0
  634. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/darwin.S +378 -0
  635. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +571 -0
  636. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/ffi.c +173 -0
  637. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +1440 -0
  638. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +974 -0
  639. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +94 -0
  640. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +923 -0
  641. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/ffitarget.h +198 -0
  642. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/linux64.S +228 -0
  643. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +488 -0
  644. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +397 -0
  645. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/powerpc/sysv.S +175 -0
  646. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/prep_cif.c +261 -0
  647. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/raw_api.c +267 -0
  648. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/riscv/ffi.c +445 -0
  649. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/riscv/ffitarget.h +68 -0
  650. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/riscv/sysv.S +214 -0
  651. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/s390/ffi.c +756 -0
  652. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/s390/ffitarget.h +70 -0
  653. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/s390/internal.h +11 -0
  654. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/s390/sysv.S +325 -0
  655. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/sh/ffi.c +717 -0
  656. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/sh/ffitarget.h +54 -0
  657. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/sh/sysv.S +850 -0
  658. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/sh64/ffi.c +469 -0
  659. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/sh64/ffitarget.h +58 -0
  660. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/sh64/sysv.S +539 -0
  661. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/sparc/ffi.c +468 -0
  662. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/sparc/ffi64.c +608 -0
  663. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/sparc/ffitarget.h +81 -0
  664. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/sparc/internal.h +26 -0
  665. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/sparc/v8.S +443 -0
  666. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/sparc/v9.S +440 -0
  667. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/tile/ffi.c +355 -0
  668. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/tile/ffitarget.h +65 -0
  669. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/tile/tile.S +360 -0
  670. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/types.c +108 -0
  671. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/vax/elfbsd.S +195 -0
  672. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/vax/ffi.c +276 -0
  673. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/vax/ffitarget.h +49 -0
  674. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/x86/asmnames.h +30 -0
  675. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/x86/ffi.c +753 -0
  676. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/x86/ffi64.c +884 -0
  677. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/x86/ffitarget.h +147 -0
  678. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/x86/ffiw64.c +308 -0
  679. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/x86/internal.h +29 -0
  680. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/x86/internal64.h +22 -0
  681. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/x86/sysv.S +1043 -0
  682. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/x86/unix64.S +525 -0
  683. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/x86/win64.S +232 -0
  684. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/x86/win64_intel.S +237 -0
  685. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/xtensa/ffi.c +298 -0
  686. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/xtensa/ffitarget.h +53 -0
  687. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/src/xtensa/sysv.S +258 -0
  688. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/stamp-h.in +1 -0
  689. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/Makefile.am +117 -0
  690. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/Makefile.in +608 -0
  691. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/config/default.exp +1 -0
  692. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/lib/libffi.exp +636 -0
  693. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +283 -0
  694. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +45 -0
  695. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.bhaible/Makefile +28 -0
  696. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.bhaible/README +78 -0
  697. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.bhaible/alignof.h +50 -0
  698. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.bhaible/bhaible.exp +58 -0
  699. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +1745 -0
  700. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +2885 -0
  701. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +743 -0
  702. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +46 -0
  703. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/align_stdcall.c +46 -0
  704. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +43 -0
  705. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +89 -0
  706. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +81 -0
  707. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +81 -0
  708. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +82 -0
  709. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +89 -0
  710. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +92 -0
  711. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +90 -0
  712. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/closure_loc_fn0.c +95 -0
  713. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/closure_simple.c +55 -0
  714. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +94 -0
  715. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +95 -0
  716. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +96 -0
  717. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +102 -0
  718. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +89 -0
  719. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +91 -0
  720. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +93 -0
  721. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +113 -0
  722. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +90 -0
  723. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +95 -0
  724. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +90 -0
  725. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +90 -0
  726. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_3float.c +95 -0
  727. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +98 -0
  728. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +90 -0
  729. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +109 -0
  730. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +98 -0
  731. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +124 -0
  732. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +113 -0
  733. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +99 -0
  734. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +117 -0
  735. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +97 -0
  736. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +88 -0
  737. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +90 -0
  738. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +91 -0
  739. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +93 -0
  740. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +91 -0
  741. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +92 -0
  742. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +132 -0
  743. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +115 -0
  744. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +95 -0
  745. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +91 -0
  746. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +91 -0
  747. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +92 -0
  748. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +91 -0
  749. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +91 -0
  750. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +93 -0
  751. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +66 -0
  752. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +43 -0
  753. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +61 -0
  754. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +42 -0
  755. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +105 -0
  756. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +61 -0
  757. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_args.c +70 -0
  758. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_float_double.c +55 -0
  759. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +74 -0
  760. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +74 -0
  761. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +86 -0
  762. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +91 -0
  763. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +74 -0
  764. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +86 -0
  765. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +74 -0
  766. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +142 -0
  767. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +44 -0
  768. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +42 -0
  769. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +42 -0
  770. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_struct_va1.c +114 -0
  771. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +42 -0
  772. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar_va.c +44 -0
  773. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +43 -0
  774. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint_va.c +45 -0
  775. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulong_va.c +45 -0
  776. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +47 -0
  777. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +43 -0
  778. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort_va.c +44 -0
  779. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_abi.c +36 -0
  780. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +26 -0
  781. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +138 -0
  782. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/float.c +59 -0
  783. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +60 -0
  784. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +60 -0
  785. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +74 -0
  786. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +62 -0
  787. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +107 -0
  788. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +341 -0
  789. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/many.c +59 -0
  790. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +57 -0
  791. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +70 -0
  792. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +78 -0
  793. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +52 -0
  794. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +152 -0
  795. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +161 -0
  796. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +134 -0
  797. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct11.c +121 -0
  798. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +110 -0
  799. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +111 -0
  800. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +111 -0
  801. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +112 -0
  802. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +131 -0
  803. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +111 -0
  804. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +131 -0
  805. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +131 -0
  806. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +46 -0
  807. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +127 -0
  808. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +90 -0
  809. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +59 -0
  810. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +114 -0
  811. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +36 -0
  812. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +43 -0
  813. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +42 -0
  814. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +35 -0
  815. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +36 -0
  816. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +49 -0
  817. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +42 -0
  818. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +34 -0
  819. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +41 -0
  820. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +43 -0
  821. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +36 -0
  822. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +38 -0
  823. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +38 -0
  824. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +38 -0
  825. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +145 -0
  826. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +148 -0
  827. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +124 -0
  828. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +125 -0
  829. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +44 -0
  830. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +49 -0
  831. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +49 -0
  832. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +55 -0
  833. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +67 -0
  834. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +57 -0
  835. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +67 -0
  836. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +60 -0
  837. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +64 -0
  838. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +66 -0
  839. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +64 -0
  840. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +74 -0
  841. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +81 -0
  842. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +68 -0
  843. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +70 -0
  844. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +61 -0
  845. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/unwindtest.cc +117 -0
  846. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/unwindtest_ffi_call.cc +54 -0
  847. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +196 -0
  848. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +121 -0
  849. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +123 -0
  850. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +125 -0
  851. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +91 -0
  852. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +10 -0
  853. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +10 -0
  854. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +10 -0
  855. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +42 -0
  856. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +10 -0
  857. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +10 -0
  858. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +10 -0
  859. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +71 -0
  860. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +10 -0
  861. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +10 -0
  862. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +10 -0
  863. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +80 -0
  864. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +10 -0
  865. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +16 -0
  866. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +10 -0
  867. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/complex.exp +36 -0
  868. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +51 -0
  869. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +7 -0
  870. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +7 -0
  871. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +7 -0
  872. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +10 -0
  873. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +10 -0
  874. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +86 -0
  875. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +10 -0
  876. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +1 -0
  877. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +78 -0
  878. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +10 -0
  879. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +10 -0
  880. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +10 -0
  881. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +37 -0
  882. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +41 -0
  883. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +10 -0
  884. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +10 -0
  885. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +10 -0
  886. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +44 -0
  887. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +10 -0
  888. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +10 -0
  889. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +10 -0
  890. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +10 -0
  891. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +10 -0
  892. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +10 -0
  893. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +34 -0
  894. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +28 -0
  895. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +1 -0
  896. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +36 -0
  897. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +19 -0
  898. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi.bsd.mk +40 -0
  899. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi.darwin.mk +105 -0
  900. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi.gnu.mk +32 -0
  901. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi.mk +18 -0
  902. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi.vc.mk +26 -0
  903. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/libffi.vc64.mk +26 -0
  904. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/rbffi.h +57 -0
  905. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/rbffi_endian.h +59 -0
  906. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/win32/stdbool.h +8 -0
  907. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ext/ffi_c/win32/stdint.h +201 -0
  908. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/ffi.gemspec +36 -0
  909. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/autopointer.rb +203 -0
  910. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/buffer.rb +4 -0
  911. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/callback.rb +4 -0
  912. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/enum.rb +296 -0
  913. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/errno.rb +43 -0
  914. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/ffi.rb +44 -0
  915. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/io.rb +62 -0
  916. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/library.rb +588 -0
  917. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/managedstruct.rb +84 -0
  918. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/memorypointer.rb +1 -0
  919. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/aarch64-linux/types.conf +104 -0
  920. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/arm-linux/types.conf +104 -0
  921. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/i386-cygwin/types.conf +3 -0
  922. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/i386-darwin/types.conf +100 -0
  923. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/i386-freebsd/types.conf +152 -0
  924. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/i386-gnu/types.conf +107 -0
  925. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/i386-linux/types.conf +103 -0
  926. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/i386-netbsd/types.conf +126 -0
  927. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/i386-openbsd/types.conf +128 -0
  928. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/i386-solaris/types.conf +122 -0
  929. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/i386-windows/types.conf +105 -0
  930. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/ia64-linux/types.conf +104 -0
  931. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/mips-linux/types.conf +102 -0
  932. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/mips64-linux/types.conf +104 -0
  933. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/mips64el-linux/types.conf +104 -0
  934. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/mipsel-linux/types.conf +102 -0
  935. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/mipsisa32r6-linux/types.conf +102 -0
  936. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/mipsisa32r6el-linux/types.conf +102 -0
  937. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/mipsisa64r6-linux/types.conf +104 -0
  938. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/mipsisa64r6el-linux/types.conf +104 -0
  939. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/powerpc-aix/types.conf +180 -0
  940. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/powerpc-darwin/types.conf +100 -0
  941. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/powerpc-linux/types.conf +100 -0
  942. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/powerpc64-linux/types.conf +104 -0
  943. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/s390-linux/types.conf +102 -0
  944. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/s390x-linux/types.conf +102 -0
  945. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/sparc-linux/types.conf +102 -0
  946. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/sparc-solaris/types.conf +128 -0
  947. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/sparc64-linux/types.conf +102 -0
  948. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/sparcv9-solaris/types.conf +128 -0
  949. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/x86_64-cygwin/types.conf +3 -0
  950. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/x86_64-darwin/types.conf +126 -0
  951. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/x86_64-freebsd/types.conf +128 -0
  952. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/x86_64-linux/types.conf +102 -0
  953. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/x86_64-netbsd/types.conf +128 -0
  954. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/x86_64-openbsd/types.conf +134 -0
  955. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/x86_64-solaris/types.conf +122 -0
  956. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform/x86_64-windows/types.conf +120 -0
  957. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/platform.rb +164 -0
  958. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/pointer.rb +161 -0
  959. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/struct.rb +371 -0
  960. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/struct_layout_builder.rb +227 -0
  961. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/tools/const_generator.rb +229 -0
  962. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/tools/generator.rb +60 -0
  963. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/tools/generator_task.rb +36 -0
  964. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/tools/struct_generator.rb +194 -0
  965. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/tools/types_generator.rb +134 -0
  966. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/types.rb +194 -0
  967. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/union.rb +43 -0
  968. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/variadic.rb +78 -0
  969. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi/version.rb +3 -0
  970. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi.rb +20 -0
  971. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/lib/ffi_c.so +0 -0
  972. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/samples/getlogin.rb +8 -0
  973. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/samples/getpid.rb +8 -0
  974. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/samples/gettimeofday.rb +18 -0
  975. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/samples/hello.rb +7 -0
  976. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/samples/inotify.rb +60 -0
  977. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/samples/pty.rb +76 -0
  978. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/samples/qsort.rb +21 -0
  979. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.9.25/samples/sample_helper.rb +6 -0
  980. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/.gitignore +15 -0
  981. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/.rspec +1 -0
  982. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/.travis.yml +13 -0
  983. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/.yardopts +1 -0
  984. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/Gemfile +6 -0
  985. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/LICENSE +19 -0
  986. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/README.md +265 -0
  987. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/Rakefile +13 -0
  988. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/changelog.md +72 -0
  989. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/hashdiff.gemspec +25 -0
  990. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/lib/hashdiff/diff.rb +232 -0
  991. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/lib/hashdiff/lcs.rb +69 -0
  992. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/lib/hashdiff/linear_compare_array.rb +155 -0
  993. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/lib/hashdiff/patch.rb +88 -0
  994. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/lib/hashdiff/util.rb +146 -0
  995. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/lib/hashdiff/version.rb +3 -0
  996. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/lib/hashdiff.rb +6 -0
  997. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/spec/hashdiff/best_diff_spec.rb +74 -0
  998. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/spec/hashdiff/diff_array_spec.rb +60 -0
  999. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/spec/hashdiff/diff_spec.rb +339 -0
  1000. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/spec/hashdiff/lcs_spec.rb +75 -0
  1001. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/spec/hashdiff/linear_compare_array_spec.rb +48 -0
  1002. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/spec/hashdiff/patch_spec.rb +183 -0
  1003. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/spec/hashdiff/util_spec.rb +78 -0
  1004. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.7/spec/spec_helper.rb +13 -0
  1005. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/.gitignore +11 -0
  1006. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/.rubocop.yml +32 -0
  1007. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/.rubocop_defaults.yml +182 -0
  1008. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/.ruby-gemset +1 -0
  1009. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/.travis.yml +25 -0
  1010. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/.yardopts +1 -0
  1011. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/2.0-Upgrade.md +52 -0
  1012. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/CHANGELOG.md +335 -0
  1013. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/Gemfile +10 -0
  1014. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/LICENSE.txt +22 -0
  1015. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/README.md +202 -0
  1016. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/Rakefile +49 -0
  1017. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/bin/console +14 -0
  1018. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/data/list.txt +12370 -0
  1019. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/lib/public_suffix/domain.rb +235 -0
  1020. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/lib/public_suffix/errors.rb +39 -0
  1021. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/lib/public_suffix/list.rb +243 -0
  1022. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/lib/public_suffix/rule.rb +348 -0
  1023. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/lib/public_suffix/version.rb +10 -0
  1024. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/lib/public_suffix.rb +175 -0
  1025. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/public_suffix.gemspec +25 -0
  1026. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/.empty +2 -0
  1027. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/acceptance_test.rb +127 -0
  1028. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/benchmarks/bm_find.rb +66 -0
  1029. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/benchmarks/bm_find_all.rb +102 -0
  1030. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/benchmarks/bm_names.rb +91 -0
  1031. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/benchmarks/bm_select.rb +26 -0
  1032. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/benchmarks/bm_select_incremental.rb +25 -0
  1033. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/benchmarks/bm_valid.rb +101 -0
  1034. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/profilers/domain_profiler.rb +12 -0
  1035. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/profilers/find_profiler.rb +12 -0
  1036. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/profilers/find_profiler_jp.rb +12 -0
  1037. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/profilers/initialization_profiler.rb +11 -0
  1038. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/profilers/list_profsize.rb +11 -0
  1039. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/profilers/object_binsize.rb +57 -0
  1040. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/psl_test.rb +49 -0
  1041. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/test_helper.rb +13 -0
  1042. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/tests.txt +98 -0
  1043. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/unit/domain_test.rb +104 -0
  1044. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/unit/errors_test.rb +23 -0
  1045. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/unit/list_test.rb +239 -0
  1046. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/unit/public_suffix_test.rb +186 -0
  1047. data/vendor/bundle/ruby/2.5.0/gems/public_suffix-3.0.2/test/unit/rule_test.rb +220 -0
  1048. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/.gitignore +14 -0
  1049. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/.rubocop.yml +57 -0
  1050. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/.travis.yml +21 -0
  1051. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/CONTRIBUTING.rdoc +36 -0
  1052. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/Gemfile +3 -0
  1053. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/History.rdoc +2247 -0
  1054. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/MIT-LICENSE +21 -0
  1055. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/README.rdoc +156 -0
  1056. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/Rakefile +38 -0
  1057. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/appveyor.yml +21 -0
  1058. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/bin/console +7 -0
  1059. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/bin/setup +6 -0
  1060. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/doc/command_line_usage.rdoc +158 -0
  1061. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/doc/example/Rakefile1 +38 -0
  1062. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/doc/example/Rakefile2 +35 -0
  1063. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/doc/example/a.c +6 -0
  1064. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/doc/example/b.c +6 -0
  1065. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/doc/example/main.c +11 -0
  1066. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/doc/glossary.rdoc +42 -0
  1067. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/doc/jamis.rb +591 -0
  1068. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/doc/proto_rake.rdoc +127 -0
  1069. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/doc/rake.1 +156 -0
  1070. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/doc/rakefile.rdoc +622 -0
  1071. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/doc/rational.rdoc +151 -0
  1072. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/exe/rake +27 -0
  1073. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/application.rb +785 -0
  1074. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/backtrace.rb +23 -0
  1075. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/clean.rb +77 -0
  1076. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/cloneable.rb +16 -0
  1077. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/cpu_counter.rb +106 -0
  1078. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/default_loader.rb +14 -0
  1079. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/dsl_definition.rb +194 -0
  1080. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/early_time.rb +21 -0
  1081. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/ext/core.rb +25 -0
  1082. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/ext/string.rb +175 -0
  1083. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/file_creation_task.rb +24 -0
  1084. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/file_list.rb +434 -0
  1085. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/file_task.rb +46 -0
  1086. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/file_utils.rb +136 -0
  1087. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/file_utils_ext.rb +144 -0
  1088. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/invocation_chain.rb +56 -0
  1089. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/invocation_exception_mixin.rb +16 -0
  1090. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/late_time.rb +17 -0
  1091. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/linked_list.rb +111 -0
  1092. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/loaders/makefile.rb +53 -0
  1093. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/multi_task.rb +49 -0
  1094. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/name_space.rb +37 -0
  1095. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/packagetask.rb +210 -0
  1096. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/phony.rb +15 -0
  1097. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/private_reader.rb +20 -0
  1098. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/promise.rb +99 -0
  1099. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/pseudo_status.rb +29 -0
  1100. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/rake_module.rb +38 -0
  1101. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/rake_test_loader.rb +21 -0
  1102. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/rule_recursion_overflow_error.rb +19 -0
  1103. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/scope.rb +42 -0
  1104. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/task.rb +390 -0
  1105. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/task_argument_error.rb +7 -0
  1106. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/task_arguments.rb +108 -0
  1107. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/task_manager.rb +303 -0
  1108. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/tasklib.rb +11 -0
  1109. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/testtask.rb +222 -0
  1110. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/thread_history_display.rb +48 -0
  1111. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/thread_pool.rb +162 -0
  1112. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/trace_output.rb +22 -0
  1113. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/version.rb +9 -0
  1114. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake/win32.rb +50 -0
  1115. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/lib/rake.rb +70 -0
  1116. data/vendor/bundle/ruby/2.5.0/gems/rake-12.0.0/rake.gemspec +39 -0
  1117. data/vendor/bundle/ruby/2.5.0/gems/rspec-3.7.0/LICENSE.md +27 -0
  1118. data/vendor/bundle/ruby/2.5.0/gems/rspec-3.7.0/README.md +39 -0
  1119. data/vendor/bundle/ruby/2.5.0/gems/rspec-3.7.0/lib/rspec/version.rb +5 -0
  1120. data/vendor/bundle/ruby/2.5.0/gems/rspec-3.7.0/lib/rspec.rb +3 -0
  1121. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/.document +5 -0
  1122. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/.yardopts +8 -0
  1123. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/Changelog.md +2192 -0
  1124. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/LICENSE.md +26 -0
  1125. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/README.md +384 -0
  1126. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/exe/rspec +4 -0
  1127. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/autorun.rb +3 -0
  1128. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/backtrace_formatter.rb +65 -0
  1129. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/bisect/coordinator.rb +66 -0
  1130. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/bisect/example_minimizer.rb +169 -0
  1131. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/bisect/runner.rb +169 -0
  1132. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/bisect/server.rb +70 -0
  1133. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb +2209 -0
  1134. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration_options.rb +196 -0
  1135. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/drb.rb +113 -0
  1136. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/dsl.rb +98 -0
  1137. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/example.rb +653 -0
  1138. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/example_group.rb +884 -0
  1139. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/example_status_persister.rb +235 -0
  1140. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/filter_manager.rb +231 -0
  1141. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/flat_map.rb +20 -0
  1142. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/base_formatter.rb +70 -0
  1143. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  1144. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/bisect_formatter.rb +69 -0
  1145. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/bisect_progress_formatter.rb +144 -0
  1146. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/console_codes.rb +68 -0
  1147. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/deprecation_formatter.rb +221 -0
  1148. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/documentation_formatter.rb +70 -0
  1149. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/exception_presenter.rb +496 -0
  1150. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  1151. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/helpers.rb +110 -0
  1152. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/html_formatter.rb +153 -0
  1153. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/html_printer.rb +416 -0
  1154. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
  1155. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/json_formatter.rb +102 -0
  1156. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  1157. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  1158. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/protocol.rb +182 -0
  1159. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  1160. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  1161. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/formatters.rb +265 -0
  1162. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/hooks.rb +626 -0
  1163. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/invocations.rb +85 -0
  1164. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/memoized_helpers.rb +535 -0
  1165. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/metadata.rb +499 -0
  1166. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/metadata_filter.rb +255 -0
  1167. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  1168. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  1169. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  1170. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/mocking_adapters/null.rb +14 -0
  1171. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  1172. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  1173. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/notifications.rb +521 -0
  1174. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/option_parser.rb +309 -0
  1175. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/ordering.rb +158 -0
  1176. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/output_wrapper.rb +29 -0
  1177. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/pending.rb +165 -0
  1178. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/profiler.rb +32 -0
  1179. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/project_initializer/.rspec +1 -0
  1180. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
  1181. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/project_initializer.rb +48 -0
  1182. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/rake_task.rb +168 -0
  1183. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/reporter.rb +260 -0
  1184. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/ruby_project.rb +53 -0
  1185. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb +193 -0
  1186. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/sandbox.rb +37 -0
  1187. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/set.rb +54 -0
  1188. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/shared_context.rb +55 -0
  1189. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/shared_example_group.rb +271 -0
  1190. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/shell_escape.rb +49 -0
  1191. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  1192. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/version.rb +9 -0
  1193. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/warnings.rb +40 -0
  1194. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/world.rb +264 -0
  1195. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.1/lib/rspec/core.rb +185 -0
  1196. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/.document +5 -0
  1197. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/.yardopts +6 -0
  1198. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/Changelog.md +1083 -0
  1199. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/LICENSE.md +25 -0
  1200. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/README.md +305 -0
  1201. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
  1202. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/configuration.rb +201 -0
  1203. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/expectation_target.rb +127 -0
  1204. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/fail_with.rb +39 -0
  1205. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/failure_aggregator.rb +194 -0
  1206. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/handler.rb +170 -0
  1207. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/minitest_integration.rb +58 -0
  1208. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/syntax.rb +132 -0
  1209. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/version.rb +8 -0
  1210. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations.rb +82 -0
  1211. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
  1212. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/all.rb +85 -0
  1213. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
  1214. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be.rb +288 -0
  1215. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
  1216. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
  1217. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
  1218. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
  1219. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/change.rb +387 -0
  1220. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/compound.rb +272 -0
  1221. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/contain_exactly.rb +301 -0
  1222. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/cover.rb +24 -0
  1223. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/eq.rb +40 -0
  1224. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/eql.rb +34 -0
  1225. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/equal.rb +81 -0
  1226. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/exist.rb +90 -0
  1227. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/has.rb +103 -0
  1228. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  1229. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/include.rb +143 -0
  1230. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/match.rb +106 -0
  1231. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/operators.rb +128 -0
  1232. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/output.rb +200 -0
  1233. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/raise_error.rb +230 -0
  1234. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/respond_to.rb +165 -0
  1235. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/satisfy.rb +60 -0
  1236. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  1237. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  1238. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/yield.rb +432 -0
  1239. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in.rb +52 -0
  1240. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/composable.rb +169 -0
  1241. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/dsl.rb +527 -0
  1242. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/english_phrasing.rb +58 -0
  1243. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +73 -0
  1244. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/fail_matchers.rb +42 -0
  1245. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/generated_descriptions.rb +42 -0
  1246. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
  1247. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/matcher_protocol.rb +99 -0
  1248. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers.rb +1031 -0
  1249. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/.document +5 -0
  1250. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/.yardopts +6 -0
  1251. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/Changelog.md +1089 -0
  1252. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/LICENSE.md +25 -0
  1253. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/README.md +460 -0
  1254. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/chain.rb +110 -0
  1255. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  1256. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
  1257. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
  1258. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  1259. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  1260. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/recorder.rb +289 -0
  1261. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
  1262. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
  1263. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance.rb +11 -0
  1264. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/argument_list_matcher.rb +100 -0
  1265. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/argument_matchers.rb +320 -0
  1266. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/configuration.rb +212 -0
  1267. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/error_generator.rb +369 -0
  1268. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/example_methods.rb +434 -0
  1269. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/instance_method_stasher.rb +146 -0
  1270. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/marshal_extension.rb +41 -0
  1271. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  1272. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/have_received.rb +130 -0
  1273. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/receive.rb +132 -0
  1274. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  1275. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  1276. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/message_chain.rb +87 -0
  1277. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/message_expectation.rb +740 -0
  1278. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/method_double.rb +287 -0
  1279. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/method_reference.rb +202 -0
  1280. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/minitest_integration.rb +68 -0
  1281. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/mutate_const.rb +339 -0
  1282. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/object_reference.rb +149 -0
  1283. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/order_group.rb +81 -0
  1284. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/proxy.rb +484 -0
  1285. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/space.rb +238 -0
  1286. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/standalone.rb +3 -0
  1287. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/syntax.rb +325 -0
  1288. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/targets.rb +124 -0
  1289. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/test_double.rb +171 -0
  1290. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/verifying_double.rb +129 -0
  1291. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
  1292. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/verifying_proxy.rb +220 -0
  1293. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/version.rb +9 -0
  1294. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks.rb +130 -0
  1295. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/Changelog.md +234 -0
  1296. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/LICENSE.md +23 -0
  1297. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/README.md +40 -0
  1298. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/caller_filter.rb +83 -0
  1299. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/comparable_version.rb +46 -0
  1300. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/differ.rb +215 -0
  1301. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/directory_maker.rb +63 -0
  1302. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/encoded_string.rb +165 -0
  1303. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/fuzzy_matcher.rb +48 -0
  1304. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/hunk_generator.rb +47 -0
  1305. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/matcher_definition.rb +42 -0
  1306. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/method_signature_verifier.rb +392 -0
  1307. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/mutex.rb +73 -0
  1308. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/object_formatter.rb +267 -0
  1309. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/recursive_const_methods.rb +76 -0
  1310. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/reentrant_mutex.rb +53 -0
  1311. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/ruby_features.rb +162 -0
  1312. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/source/location.rb +21 -0
  1313. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/source/node.rb +110 -0
  1314. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/source/token.rb +87 -0
  1315. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/source.rb +75 -0
  1316. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
  1317. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/spec/formatting_support.rb +9 -0
  1318. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/spec/in_sub_process.rb +69 -0
  1319. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/spec/library_wide_checks.rb +150 -0
  1320. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/spec/shell_out.rb +84 -0
  1321. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/spec/stderr_splitter.rb +63 -0
  1322. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/spec/string_matcher.rb +46 -0
  1323. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
  1324. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  1325. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/spec.rb +81 -0
  1326. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/version.rb +7 -0
  1327. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support/warnings.rb +39 -0
  1328. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.1/lib/rspec/support.rb +149 -0
  1329. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/.gitignore +1 -0
  1330. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/.travis.yml +48 -0
  1331. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/CHANGES.md +149 -0
  1332. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/Gemfile +11 -0
  1333. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/LICENSE.txt +22 -0
  1334. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/README.md +191 -0
  1335. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/Rakefile +26 -0
  1336. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/bin/safe_yaml +75 -0
  1337. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/bundle_install_all_ruby_versions.sh +11 -0
  1338. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/deep.rb +34 -0
  1339. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/libyaml_checker.rb +36 -0
  1340. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/load.rb +181 -0
  1341. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/parse/date.rb +35 -0
  1342. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/parse/hexadecimal.rb +12 -0
  1343. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/parse/sexagesimal.rb +26 -0
  1344. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/psych_handler.rb +99 -0
  1345. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/psych_resolver.rb +52 -0
  1346. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/resolver.rb +94 -0
  1347. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/safe_to_ruby_visitor.rb +29 -0
  1348. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/syck_hack.rb +36 -0
  1349. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/syck_node_monkeypatch.rb +43 -0
  1350. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/syck_resolver.rb +38 -0
  1351. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_boolean.rb +21 -0
  1352. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_date.rb +13 -0
  1353. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_float.rb +33 -0
  1354. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_integer.rb +26 -0
  1355. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_nil.rb +18 -0
  1356. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_symbol.rb +17 -0
  1357. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/transformation_map.rb +47 -0
  1358. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform.rb +41 -0
  1359. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml/version.rb +3 -0
  1360. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/lib/safe_yaml.rb +94 -0
  1361. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/run_specs_all_ruby_versions.sh +38 -0
  1362. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/safe_yaml.gemspec +19 -0
  1363. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/exploit.1.9.2.yaml +2 -0
  1364. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/exploit.1.9.3.yaml +2 -0
  1365. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/issue48.txt +20 -0
  1366. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/issue49.yml +0 -0
  1367. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/libyaml_checker_spec.rb +69 -0
  1368. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/psych_resolver_spec.rb +10 -0
  1369. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/resolver_specs.rb +278 -0
  1370. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/safe_yaml_spec.rb +731 -0
  1371. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/spec_helper.rb +42 -0
  1372. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/support/exploitable_back_door.rb +29 -0
  1373. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/syck_resolver_spec.rb +10 -0
  1374. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/transform/base64_spec.rb +11 -0
  1375. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/transform/to_date_spec.rb +60 -0
  1376. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/transform/to_float_spec.rb +42 -0
  1377. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/transform/to_integer_spec.rb +64 -0
  1378. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/transform/to_symbol_spec.rb +51 -0
  1379. data/vendor/bundle/ruby/2.5.0/gems/safe_yaml-1.0.4/spec/yaml_spec.rb +15 -0
  1380. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/CHANGES +202 -0
  1381. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/MANIFEST +12 -0
  1382. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/README +51 -0
  1383. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/Rakefile +39 -0
  1384. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/certs/djberg96_pub.pem +21 -0
  1385. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/doc/uname.txt +127 -0
  1386. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/examples/uname_test.rb +42 -0
  1387. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/lib/sys/platform.rb +54 -0
  1388. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/lib/sys/uname.rb +19 -0
  1389. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/lib/sys/unix/uname.rb +327 -0
  1390. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/lib/sys/windows/uname.rb +507 -0
  1391. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/lib/sys-uname.rb +1 -0
  1392. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/sys-uname.gemspec +26 -0
  1393. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/test/test_sys_platform.rb +79 -0
  1394. data/vendor/bundle/ruby/2.5.0/gems/sys-uname-1.0.3/test/test_sys_uname.rb +463 -0
  1395. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/.gitignore +8 -0
  1396. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/.rspec +4 -0
  1397. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/.travis.yml +22 -0
  1398. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/CHANGELOG.md +394 -0
  1399. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/CONTRIBUTING.md +16 -0
  1400. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/Gemfile +32 -0
  1401. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/Guardfile +9 -0
  1402. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/LICENSE +22 -0
  1403. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/README.md +533 -0
  1404. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/Rakefile +38 -0
  1405. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/UPGRADE.md +55 -0
  1406. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/rack/typhoeus/middleware/params_decoder/helper.rb +76 -0
  1407. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/rack/typhoeus/middleware/params_decoder.rb +57 -0
  1408. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/rack/typhoeus.rb +1 -0
  1409. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/adapters/faraday.rb +180 -0
  1410. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/cache/dalli.rb +26 -0
  1411. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/cache/rails.rb +26 -0
  1412. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/cache/redis.rb +33 -0
  1413. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/config.rb +69 -0
  1414. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/easy_factory.rb +175 -0
  1415. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/errors/no_stub.rb +12 -0
  1416. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/errors/typhoeus_error.rb +8 -0
  1417. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/errors.rb +9 -0
  1418. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/expectation.rb +217 -0
  1419. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/addable.rb +23 -0
  1420. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/before.rb +31 -0
  1421. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/block_connection.rb +35 -0
  1422. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/cacheable.rb +15 -0
  1423. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/memoizable.rb +56 -0
  1424. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/queueable.rb +83 -0
  1425. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/runnable.rb +19 -0
  1426. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/stubbable.rb +28 -0
  1427. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra.rb +95 -0
  1428. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/pool.rb +70 -0
  1429. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/railtie.rb +12 -0
  1430. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/request/actions.rb +125 -0
  1431. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/request/before.rb +30 -0
  1432. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/request/block_connection.rb +52 -0
  1433. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/request/cacheable.rb +27 -0
  1434. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/request/callbacks.rb +133 -0
  1435. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/request/marshal.rb +22 -0
  1436. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/request/memoizable.rb +38 -0
  1437. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/request/operations.rb +40 -0
  1438. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/request/responseable.rb +29 -0
  1439. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/request/streamable.rb +34 -0
  1440. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/request/stubbable.rb +30 -0
  1441. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/request.rb +221 -0
  1442. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/response/cacheable.rb +14 -0
  1443. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/response/header.rb +103 -0
  1444. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/response/informations.rb +248 -0
  1445. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/response/status.rb +107 -0
  1446. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/response.rb +68 -0
  1447. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus/version.rb +5 -0
  1448. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/lib/typhoeus.rb +142 -0
  1449. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/perf/profile.rb +14 -0
  1450. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/perf/vs_nethttp.rb +64 -0
  1451. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/rack/typhoeus/middleware/params_decoder/helper_spec.rb +156 -0
  1452. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/rack/typhoeus/middleware/params_decoder_spec.rb +31 -0
  1453. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/spec_helper.rb +29 -0
  1454. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/support/localhost_server.rb +94 -0
  1455. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/support/memory_cache.rb +15 -0
  1456. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/support/server.rb +116 -0
  1457. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/adapters/faraday_spec.rb +339 -0
  1458. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/cache/dalli_spec.rb +41 -0
  1459. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/cache/redis_spec.rb +41 -0
  1460. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/config_spec.rb +15 -0
  1461. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/easy_factory_spec.rb +137 -0
  1462. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/errors/no_stub_spec.rb +13 -0
  1463. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/expectation_spec.rb +280 -0
  1464. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/addable_spec.rb +22 -0
  1465. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/before_spec.rb +98 -0
  1466. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/block_connection_spec.rb +18 -0
  1467. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/cacheable_spec.rb +58 -0
  1468. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/memoizable_spec.rb +53 -0
  1469. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/queueable_spec.rb +98 -0
  1470. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/runnable_spec.rb +137 -0
  1471. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/stubbable_spec.rb +48 -0
  1472. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra_spec.rb +22 -0
  1473. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/pool_spec.rb +135 -0
  1474. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/request/actions_spec.rb +19 -0
  1475. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/request/before_spec.rb +93 -0
  1476. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/request/block_connection_spec.rb +75 -0
  1477. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/request/cacheable_spec.rb +70 -0
  1478. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/request/callbacks_spec.rb +91 -0
  1479. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/request/marshal_spec.rb +60 -0
  1480. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/request/memoizable_spec.rb +34 -0
  1481. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/request/operations_spec.rb +101 -0
  1482. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/request/responseable_spec.rb +13 -0
  1483. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/request/stubbable_spec.rb +45 -0
  1484. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/request_spec.rb +232 -0
  1485. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/response/header_spec.rb +147 -0
  1486. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/response/informations_spec.rb +283 -0
  1487. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/response/status_spec.rb +256 -0
  1488. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus/response_spec.rb +100 -0
  1489. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/spec/typhoeus_spec.rb +105 -0
  1490. data/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.0/typhoeus.gemspec +25 -0
  1491. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/CHANGELOG.md +710 -0
  1492. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/CONTRIBUTING.md +26 -0
  1493. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/LICENSE.md +20 -0
  1494. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/README.md +339 -0
  1495. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/Upgrade.md +289 -0
  1496. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/about_these_examples.md +18 -0
  1497. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/cassettes/allow_unused_http_interactions.feature +100 -0
  1498. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/cassettes/automatic_re_recording.feature +72 -0
  1499. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/cassettes/decompress.feature +74 -0
  1500. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/cassettes/dynamic_erb.feature +100 -0
  1501. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/cassettes/exclusive.feature +126 -0
  1502. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/cassettes/format.feature +411 -0
  1503. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/cassettes/freezing_time.feature +68 -0
  1504. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/cassettes/naming.feature +28 -0
  1505. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/cassettes/no_cassette.feature +152 -0
  1506. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/cassettes/update_content_length_header.feature +112 -0
  1507. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/configuration/allow_http_connections_when_no_cassette.feature +55 -0
  1508. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/configuration/cassette_library_dir.feature +31 -0
  1509. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/configuration/debug_logging.feature +58 -0
  1510. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/configuration/default_cassette_options.feature +100 -0
  1511. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/configuration/filter_sensitive_data.feature +153 -0
  1512. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/configuration/hook_into.feature +172 -0
  1513. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/configuration/ignore_request.feature +192 -0
  1514. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/configuration/preserve_exact_body_bytes.feature +108 -0
  1515. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/configuration/query_parser.feature +84 -0
  1516. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/configuration/uri_parser.feature +93 -0
  1517. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/getting_started.md +82 -0
  1518. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/hooks/after_http_request.feature +58 -0
  1519. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/hooks/around_http_request.feature +57 -0
  1520. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/hooks/before_http_request.feature +63 -0
  1521. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/hooks/before_playback.feature +184 -0
  1522. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/hooks/before_record.feature +172 -0
  1523. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/http_libraries/em_http_request.feature +250 -0
  1524. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/http_libraries/net_http.feature +179 -0
  1525. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/middleware/faraday.feature +56 -0
  1526. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/middleware/rack.feature +92 -0
  1527. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/record_modes/all.feature +82 -0
  1528. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/record_modes/new_episodes.feature +79 -0
  1529. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/record_modes/none.feature +72 -0
  1530. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/record_modes/once.feature +95 -0
  1531. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/request_matching/README.md +30 -0
  1532. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/request_matching/body.feature +91 -0
  1533. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/request_matching/body_as_json.feature +90 -0
  1534. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/request_matching/custom_matcher.feature +135 -0
  1535. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/request_matching/headers.feature +85 -0
  1536. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/request_matching/host.feature +95 -0
  1537. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/request_matching/identical_request_sequence.feature +89 -0
  1538. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/request_matching/method.feature +96 -0
  1539. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/request_matching/path.feature +96 -0
  1540. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/request_matching/playback_repeats.feature +98 -0
  1541. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/request_matching/query.feature +97 -0
  1542. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/request_matching/uri.feature +94 -0
  1543. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/request_matching/uri_without_param.feature +101 -0
  1544. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/step_definitions/cli_steps.rb +199 -0
  1545. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/support/env.rb +46 -0
  1546. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/support/http_lib_filters.rb +46 -0
  1547. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/test_frameworks/cucumber.feature +211 -0
  1548. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/test_frameworks/rspec_macro.feature +81 -0
  1549. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/test_frameworks/rspec_metadata.feature +150 -0
  1550. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/features/test_frameworks/test_unit.feature +49 -0
  1551. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/cassette/erb_renderer.rb +55 -0
  1552. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/cassette/http_interaction_list.rb +108 -0
  1553. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/cassette/migrator.rb +118 -0
  1554. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/cassette/persisters/file_system.rb +63 -0
  1555. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/cassette/persisters.rb +42 -0
  1556. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/cassette/serializers/compressed.rb +45 -0
  1557. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/cassette/serializers/json.rb +48 -0
  1558. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/cassette/serializers/psych.rb +48 -0
  1559. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/cassette/serializers/syck.rb +61 -0
  1560. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/cassette/serializers/yaml.rb +50 -0
  1561. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/cassette/serializers.rb +59 -0
  1562. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/cassette.rb +298 -0
  1563. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/configuration.rb +576 -0
  1564. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/deprecations.rb +109 -0
  1565. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/errors.rb +315 -0
  1566. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/extensions/net_http_response.rb +36 -0
  1567. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/library_hooks/excon.rb +27 -0
  1568. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/library_hooks/fakeweb.rb +197 -0
  1569. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/library_hooks/faraday.rb +51 -0
  1570. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/library_hooks/typhoeus.rb +120 -0
  1571. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/library_hooks/typhoeus_0.4.rb +103 -0
  1572. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/library_hooks/webmock.rb +181 -0
  1573. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/library_hooks.rb +18 -0
  1574. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/linked_cassette.rb +72 -0
  1575. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/middleware/excon/legacy_methods.rb +33 -0
  1576. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/middleware/excon.rb +221 -0
  1577. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/middleware/faraday.rb +118 -0
  1578. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/middleware/rack.rb +79 -0
  1579. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/request_handler.rb +114 -0
  1580. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/request_ignorer.rb +43 -0
  1581. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/request_matcher_registry.rb +149 -0
  1582. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/structs.rb +578 -0
  1583. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/tasks/vcr.rake +9 -0
  1584. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/test_frameworks/cucumber.rb +98 -0
  1585. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/test_frameworks/rspec.rb +52 -0
  1586. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/util/hooks.rb +61 -0
  1587. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/util/internet_connection.rb +43 -0
  1588. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/util/logger.rb +59 -0
  1589. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/util/variable_args_block_caller.rb +13 -0
  1590. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/util/version_checker.rb +48 -0
  1591. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr/version.rb +34 -0
  1592. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/lib/vcr.rb +430 -0
  1593. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/acceptance/concurrency_spec.rb +51 -0
  1594. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/acceptance/threading_spec.rb +34 -0
  1595. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/fixtures/cassette_spec/1_x_cassette.yml +110 -0
  1596. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/fixtures/cassette_spec/empty.yml +0 -0
  1597. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/fixtures/cassette_spec/example.yml +111 -0
  1598. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/fixtures/cassette_spec/with_localhost_requests.yml +111 -0
  1599. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/fixtures/fake_example_responses.yml +110 -0
  1600. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/fixtures/match_requests_on.yml +187 -0
  1601. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/cassette/erb_renderer_spec.rb +53 -0
  1602. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/cassette/http_interaction_list_spec.rb +295 -0
  1603. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/cassette/migrator_spec.rb +196 -0
  1604. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/cassette/persisters/file_system_spec.rb +75 -0
  1605. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/cassette/persisters_spec.rb +39 -0
  1606. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/cassette/serializers_spec.rb +182 -0
  1607. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/cassette_spec.rb +618 -0
  1608. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/configuration_spec.rb +326 -0
  1609. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/deprecations_spec.rb +85 -0
  1610. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/errors_spec.rb +178 -0
  1611. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/extensions/net_http_response_spec.rb +86 -0
  1612. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks/excon_spec.rb +104 -0
  1613. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks/fakeweb_spec.rb +169 -0
  1614. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks/faraday_spec.rb +68 -0
  1615. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks/typhoeus_0.4_spec.rb +36 -0
  1616. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks/typhoeus_spec.rb +162 -0
  1617. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks/webmock_spec.rb +117 -0
  1618. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks_spec.rb +51 -0
  1619. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/middleware/faraday_spec.rb +181 -0
  1620. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/middleware/rack_spec.rb +115 -0
  1621. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/request_ignorer_spec.rb +70 -0
  1622. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/request_matcher_registry_spec.rb +345 -0
  1623. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/structs_spec.rb +732 -0
  1624. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/test_frameworks/cucumber_spec.rb +107 -0
  1625. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/test_frameworks/rspec_spec.rb +94 -0
  1626. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/util/hooks_spec.rb +158 -0
  1627. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/util/internet_connection_spec.rb +37 -0
  1628. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/util/version_checker_spec.rb +31 -0
  1629. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr/version_spec.rb +27 -0
  1630. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/lib/vcr_spec.rb +354 -0
  1631. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/monkey_patches.rb +186 -0
  1632. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/spec_helper.rb +63 -0
  1633. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/support/configuration_stubbing.rb +8 -0
  1634. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/support/cucumber_helpers.rb +39 -0
  1635. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/support/fixnum_extension.rb +10 -0
  1636. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/support/http_library_adapters.rb +289 -0
  1637. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/support/limited_uri.rb +21 -0
  1638. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/support/ruby_interpreter.rb +7 -0
  1639. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/support/shared_example_groups/excon.rb +63 -0
  1640. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/support/shared_example_groups/hook_into_http_library.rb +594 -0
  1641. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/support/shared_example_groups/request_hooks.rb +59 -0
  1642. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/support/sinatra_app.rb +86 -0
  1643. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/support/vcr_localhost_server.rb +76 -0
  1644. data/vendor/bundle/ruby/2.5.0/gems/vcr-3.0.3/spec/support/vcr_stub_helpers.rb +17 -0
  1645. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/.gemtest +0 -0
  1646. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/.gitignore +34 -0
  1647. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/.rspec-tm +2 -0
  1648. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/.travis.yml +32 -0
  1649. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/Appraisals +3 -0
  1650. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/CHANGELOG.md +1349 -0
  1651. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/Gemfile +19 -0
  1652. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/LICENSE +20 -0
  1653. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/README.md +1060 -0
  1654. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/Rakefile +53 -0
  1655. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/gemfiles/ruby_1_8.gemfile +21 -0
  1656. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/api.rb +96 -0
  1657. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/assertion_failure.rb +11 -0
  1658. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/callback_registry.rb +35 -0
  1659. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/config.rb +18 -0
  1660. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/cucumber.rb +8 -0
  1661. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/deprecation.rb +9 -0
  1662. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/errors.rb +17 -0
  1663. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/curb_adapter.rb +272 -0
  1664. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/em_http_request/em_http_request_0_x.rb +147 -0
  1665. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/em_http_request/em_http_request_1_x.rb +228 -0
  1666. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/em_http_request_adapter.rb +11 -0
  1667. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/excon_adapter.rb +154 -0
  1668. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_lib_adapter.rb +7 -0
  1669. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_lib_adapter_registry.rb +19 -0
  1670. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_rb/client.rb +14 -0
  1671. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_rb/request.rb +10 -0
  1672. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_rb/response.rb +43 -0
  1673. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_rb/streamer.rb +25 -0
  1674. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_rb/webmock.rb +68 -0
  1675. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_rb_adapter.rb +37 -0
  1676. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/httpclient_adapter.rb +277 -0
  1677. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/manticore_adapter.rb +123 -0
  1678. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/net_http.rb +338 -0
  1679. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/net_http_response.rb +34 -0
  1680. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/patron_adapter.rb +126 -0
  1681. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb +170 -0
  1682. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/matchers/hash_including_matcher.rb +36 -0
  1683. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/minitest.rb +39 -0
  1684. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/rack_response.rb +69 -0
  1685. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/request_body_diff.rb +63 -0
  1686. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/request_execution_verifier.rb +78 -0
  1687. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/request_pattern.rb +328 -0
  1688. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/request_registry.rb +35 -0
  1689. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/request_signature.rb +54 -0
  1690. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/request_signature_snippet.rb +61 -0
  1691. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/request_stub.rb +100 -0
  1692. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/response.rb +160 -0
  1693. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/responses_sequence.rb +40 -0
  1694. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/rspec/matchers/request_pattern_matcher.rb +78 -0
  1695. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/rspec/matchers/webmock_matcher.rb +52 -0
  1696. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/rspec/matchers.rb +27 -0
  1697. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/rspec.rb +33 -0
  1698. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/stub_registry.rb +67 -0
  1699. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/stub_request_snippet.rb +34 -0
  1700. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/test_unit.rb +20 -0
  1701. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/util/hash_counter.rb +32 -0
  1702. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/util/hash_keys_stringifier.rb +25 -0
  1703. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/util/hash_validator.rb +17 -0
  1704. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/util/headers.rb +43 -0
  1705. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/util/json.rb +78 -0
  1706. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/util/query_mapper.rb +279 -0
  1707. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/util/uri.rb +111 -0
  1708. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/util/version_checker.rb +107 -0
  1709. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/version.rb +3 -0
  1710. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock/webmock.rb +158 -0
  1711. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/lib/webmock.rb +66 -0
  1712. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/minitest/test_helper.rb +34 -0
  1713. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/minitest/test_webmock.rb +9 -0
  1714. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/minitest/webmock_spec.rb +60 -0
  1715. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/curb/curb_spec.rb +416 -0
  1716. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/curb/curb_spec_helper.rb +144 -0
  1717. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/em_http_request/em_http_request_spec.rb +406 -0
  1718. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/em_http_request/em_http_request_spec_helper.rb +73 -0
  1719. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/excon/excon_spec.rb +75 -0
  1720. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/excon/excon_spec_helper.rb +43 -0
  1721. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/http_rb/http_rb_spec.rb +73 -0
  1722. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/http_rb/http_rb_spec_helper.rb +45 -0
  1723. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/httpclient/httpclient_spec.rb +205 -0
  1724. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/httpclient/httpclient_spec_helper.rb +48 -0
  1725. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/manticore/manticore_spec.rb +56 -0
  1726. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/manticore/manticore_spec_helper.rb +31 -0
  1727. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/net_http/net_http_shared.rb +142 -0
  1728. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/net_http/net_http_spec.rb +316 -0
  1729. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/net_http/net_http_spec_helper.rb +55 -0
  1730. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/net_http/real_net_http_spec.rb +20 -0
  1731. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/patron/patron_spec.rb +134 -0
  1732. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/patron/patron_spec_helper.rb +51 -0
  1733. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/shared/allowing_and_disabling_net_connect.rb +313 -0
  1734. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/shared/callbacks.rb +147 -0
  1735. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/shared/complex_cross_concern_behaviors.rb +36 -0
  1736. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/shared/enabling_and_disabling_webmock.rb +95 -0
  1737. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/shared/precedence_of_stubs.rb +15 -0
  1738. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/shared/request_expectations.rb +859 -0
  1739. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/shared/returning_declared_responses.rb +388 -0
  1740. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/shared/stubbing_requests.rb +528 -0
  1741. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/typhoeus/typhoeus_hydra_spec.rb +135 -0
  1742. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/typhoeus/typhoeus_hydra_spec_helper.rb +57 -0
  1743. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/acceptance/webmock_shared.rb +41 -0
  1744. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/fixtures/test.txt +1 -0
  1745. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/quality_spec.rb +84 -0
  1746. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/spec_helper.rb +52 -0
  1747. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/support/example_curl_output.txt +22 -0
  1748. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/support/failures.rb +9 -0
  1749. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/support/my_rack_app.rb +53 -0
  1750. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/support/network_connection.rb +19 -0
  1751. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/support/webmock_server.rb +69 -0
  1752. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/api_spec.rb +75 -0
  1753. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/errors_spec.rb +129 -0
  1754. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/http_lib_adapters/http_lib_adapter_registry_spec.rb +17 -0
  1755. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/http_lib_adapters/http_lib_adapter_spec.rb +12 -0
  1756. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/matchers/hash_including_matcher_spec.rb +87 -0
  1757. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/rack_response_spec.rb +102 -0
  1758. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/request_body_diff_spec.rb +90 -0
  1759. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/request_execution_verifier_spec.rb +208 -0
  1760. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/request_pattern_spec.rb +590 -0
  1761. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/request_registry_spec.rb +76 -0
  1762. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/request_signature_snippet_spec.rb +89 -0
  1763. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/request_signature_spec.rb +155 -0
  1764. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/request_stub_spec.rb +199 -0
  1765. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/response_spec.rb +282 -0
  1766. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/stub_registry_spec.rb +103 -0
  1767. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/stub_request_snippet_spec.rb +95 -0
  1768. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/util/hash_counter_spec.rb +39 -0
  1769. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/util/hash_keys_stringifier_spec.rb +27 -0
  1770. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/util/headers_spec.rb +28 -0
  1771. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/util/json_spec.rb +33 -0
  1772. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/util/query_mapper_spec.rb +138 -0
  1773. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/util/uri_spec.rb +299 -0
  1774. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/util/version_checker_spec.rb +65 -0
  1775. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/spec/unit/webmock_spec.rb +11 -0
  1776. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/test/http_request.rb +24 -0
  1777. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/test/shared_test.rb +88 -0
  1778. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/test/test_helper.rb +23 -0
  1779. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/test/test_webmock.rb +6 -0
  1780. data/vendor/bundle/ruby/2.5.0/gems/webmock-1.24.6/webmock.gemspec +44 -0
  1781. data/vendor/bundle/ruby/2.5.0/specifications/ZenTest-4.11.1.gemspec +40 -0
  1782. data/vendor/bundle/ruby/2.5.0/specifications/addressable-2.5.2.gemspec +39 -0
  1783. data/vendor/bundle/ruby/2.5.0/specifications/autotest-4.4.6.gemspec +44 -0
  1784. data/vendor/bundle/ruby/2.5.0/specifications/autotest-fsevent-0.2.13.gemspec +45 -0
  1785. data/vendor/bundle/ruby/2.5.0/specifications/autotest-growl-0.2.16.gemspec +39 -0
  1786. data/vendor/bundle/ruby/2.5.0/specifications/autotest-rails-pure-4.1.2.gemspec +18 -0
  1787. data/vendor/bundle/ruby/2.5.0/specifications/crack-0.4.3.gemspec +32 -0
  1788. data/vendor/bundle/ruby/2.5.0/specifications/diff-lcs-1.3.gemspec +61 -0
  1789. data/vendor/bundle/ruby/2.5.0/specifications/ethon-0.11.0.gemspec +32 -0
  1790. data/vendor/bundle/ruby/2.5.0/specifications/ffi-1.9.25.gemspec +49 -0
  1791. data/vendor/bundle/ruby/2.5.0/specifications/hashdiff-0.3.7.gemspec +39 -0
  1792. data/vendor/bundle/ruby/2.5.0/specifications/public_suffix-3.0.2.gemspec +41 -0
  1793. data/vendor/bundle/ruby/2.5.0/specifications/rake-12.0.0.gemspec +43 -0
  1794. data/vendor/bundle/ruby/2.5.0/specifications/rspec-3.7.0.gemspec +42 -0
  1795. data/vendor/bundle/ruby/2.5.0/specifications/rspec-core-3.7.1.gemspec +62 -0
  1796. data/vendor/bundle/ruby/2.5.0/specifications/rspec-expectations-3.7.0.gemspec +50 -0
  1797. data/vendor/bundle/ruby/2.5.0/specifications/rspec-mocks-3.7.0.gemspec +50 -0
  1798. data/vendor/bundle/ruby/2.5.0/specifications/rspec-support-3.7.1.gemspec +41 -0
  1799. data/vendor/bundle/ruby/2.5.0/specifications/safe_yaml-1.0.4.gemspec +23 -0
  1800. data/vendor/bundle/ruby/2.5.0/specifications/sys-uname-1.0.3.gemspec +35 -0
  1801. data/vendor/bundle/ruby/2.5.0/specifications/typhoeus-1.3.0.gemspec +32 -0
  1802. data/vendor/bundle/ruby/2.5.0/specifications/vcr-3.0.3.gemspec +96 -0
  1803. data/vendor/bundle/ruby/2.5.0/specifications/webmock-1.24.6.gemspec +75 -0
  1804. metadata +2029 -0
@@ -0,0 +1,2492 @@
1
+ # encoding:utf-8
2
+ #--
3
+ # Copyright (C) Bob Aman
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #++
17
+
18
+
19
+ require "addressable/version"
20
+ require "addressable/idna"
21
+ require "public_suffix"
22
+
23
+ ##
24
+ # Addressable is a library for processing links and URIs.
25
+ module Addressable
26
+ ##
27
+ # This is an implementation of a URI parser based on
28
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
29
+ # <a href="http://www.ietf.org/rfc/rfc3987.txt">RFC 3987</a>.
30
+ class URI
31
+ ##
32
+ # Raised if something other than a uri is supplied.
33
+ class InvalidURIError < StandardError
34
+ end
35
+
36
+ ##
37
+ # Container for the character classes specified in
38
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
39
+ module CharacterClasses
40
+ ALPHA = "a-zA-Z"
41
+ DIGIT = "0-9"
42
+ GEN_DELIMS = "\\:\\/\\?\\#\\[\\]\\@"
43
+ SUB_DELIMS = "\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\="
44
+ RESERVED = GEN_DELIMS + SUB_DELIMS
45
+ UNRESERVED = ALPHA + DIGIT + "\\-\\.\\_\\~"
46
+ PCHAR = UNRESERVED + SUB_DELIMS + "\\:\\@"
47
+ SCHEME = ALPHA + DIGIT + "\\-\\+\\."
48
+ HOST = UNRESERVED + SUB_DELIMS + "\\[\\:\\]"
49
+ AUTHORITY = PCHAR
50
+ PATH = PCHAR + "\\/"
51
+ QUERY = PCHAR + "\\/\\?"
52
+ FRAGMENT = PCHAR + "\\/\\?"
53
+ end
54
+
55
+ SLASH = '/'
56
+ EMPTY_STR = ''
57
+
58
+ URIREGEX = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/
59
+
60
+ PORT_MAPPING = {
61
+ "http" => 80,
62
+ "https" => 443,
63
+ "ftp" => 21,
64
+ "tftp" => 69,
65
+ "sftp" => 22,
66
+ "ssh" => 22,
67
+ "svn+ssh" => 22,
68
+ "telnet" => 23,
69
+ "nntp" => 119,
70
+ "gopher" => 70,
71
+ "wais" => 210,
72
+ "ldap" => 389,
73
+ "prospero" => 1525
74
+ }
75
+
76
+ ##
77
+ # Returns a URI object based on the parsed string.
78
+ #
79
+ # @param [String, Addressable::URI, #to_str] uri
80
+ # The URI string to parse.
81
+ # No parsing is performed if the object is already an
82
+ # <code>Addressable::URI</code>.
83
+ #
84
+ # @return [Addressable::URI] The parsed URI.
85
+ def self.parse(uri)
86
+ # If we were given nil, return nil.
87
+ return nil unless uri
88
+ # If a URI object is passed, just return itself.
89
+ return uri.dup if uri.kind_of?(self)
90
+
91
+ # If a URI object of the Ruby standard library variety is passed,
92
+ # convert it to a string, then parse the string.
93
+ # We do the check this way because we don't want to accidentally
94
+ # cause a missing constant exception to be thrown.
95
+ if uri.class.name =~ /^URI\b/
96
+ uri = uri.to_s
97
+ end
98
+
99
+ # Otherwise, convert to a String
100
+ begin
101
+ uri = uri.to_str
102
+ rescue TypeError, NoMethodError
103
+ raise TypeError, "Can't convert #{uri.class} into String."
104
+ end if not uri.is_a? String
105
+
106
+ # This Regexp supplied as an example in RFC 3986, and it works great.
107
+ scan = uri.scan(URIREGEX)
108
+ fragments = scan[0]
109
+ scheme = fragments[1]
110
+ authority = fragments[3]
111
+ path = fragments[4]
112
+ query = fragments[6]
113
+ fragment = fragments[8]
114
+ user = nil
115
+ password = nil
116
+ host = nil
117
+ port = nil
118
+ if authority != nil
119
+ # The Regexp above doesn't split apart the authority.
120
+ userinfo = authority[/^([^\[\]]*)@/, 1]
121
+ if userinfo != nil
122
+ user = userinfo.strip[/^([^:]*):?/, 1]
123
+ password = userinfo.strip[/:(.*)$/, 1]
124
+ end
125
+ host = authority.gsub(
126
+ /^([^\[\]]*)@/, EMPTY_STR
127
+ ).gsub(
128
+ /:([^:@\[\]]*?)$/, EMPTY_STR
129
+ )
130
+ port = authority[/:([^:@\[\]]*?)$/, 1]
131
+ end
132
+ if port == EMPTY_STR
133
+ port = nil
134
+ end
135
+
136
+ return new(
137
+ :scheme => scheme,
138
+ :user => user,
139
+ :password => password,
140
+ :host => host,
141
+ :port => port,
142
+ :path => path,
143
+ :query => query,
144
+ :fragment => fragment
145
+ )
146
+ end
147
+
148
+ ##
149
+ # Converts an input to a URI. The input does not have to be a valid
150
+ # URI — the method will use heuristics to guess what URI was intended.
151
+ # This is not standards-compliant, merely user-friendly.
152
+ #
153
+ # @param [String, Addressable::URI, #to_str] uri
154
+ # The URI string to parse.
155
+ # No parsing is performed if the object is already an
156
+ # <code>Addressable::URI</code>.
157
+ # @param [Hash] hints
158
+ # A <code>Hash</code> of hints to the heuristic parser.
159
+ # Defaults to <code>{:scheme => "http"}</code>.
160
+ #
161
+ # @return [Addressable::URI] The parsed URI.
162
+ def self.heuristic_parse(uri, hints={})
163
+ # If we were given nil, return nil.
164
+ return nil unless uri
165
+ # If a URI object is passed, just return itself.
166
+ return uri.dup if uri.kind_of?(self)
167
+
168
+ # If a URI object of the Ruby standard library variety is passed,
169
+ # convert it to a string, then parse the string.
170
+ # We do the check this way because we don't want to accidentally
171
+ # cause a missing constant exception to be thrown.
172
+ if uri.class.name =~ /^URI\b/
173
+ uri = uri.to_s
174
+ end
175
+
176
+ if !uri.respond_to?(:to_str)
177
+ raise TypeError, "Can't convert #{uri.class} into String."
178
+ end
179
+ # Otherwise, convert to a String
180
+ uri = uri.to_str.dup.strip
181
+ hints = {
182
+ :scheme => "http"
183
+ }.merge(hints)
184
+ case uri
185
+ when /^http:\/+/
186
+ uri.gsub!(/^http:\/+/, "http://")
187
+ when /^https:\/+/
188
+ uri.gsub!(/^https:\/+/, "https://")
189
+ when /^feed:\/+http:\/+/
190
+ uri.gsub!(/^feed:\/+http:\/+/, "feed:http://")
191
+ when /^feed:\/+/
192
+ uri.gsub!(/^feed:\/+/, "feed://")
193
+ when /^file:\/+/
194
+ uri.gsub!(/^file:\/+/, "file:///")
195
+ when /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
196
+ uri.gsub!(/^/, hints[:scheme] + "://")
197
+ end
198
+ match = uri.match(URIREGEX)
199
+ fragments = match.captures
200
+ authority = fragments[3]
201
+ if authority && authority.length > 0
202
+ new_authority = authority.gsub(/\\/, '/').gsub(/ /, '%20')
203
+ # NOTE: We want offset 4, not 3!
204
+ offset = match.offset(4)
205
+ uri[offset[0]...offset[1]] = new_authority
206
+ end
207
+ parsed = self.parse(uri)
208
+ if parsed.scheme =~ /^[^\/?#\.]+\.[^\/?#]+$/
209
+ parsed = self.parse(hints[:scheme] + "://" + uri)
210
+ end
211
+ if parsed.path.include?(".")
212
+ new_host = parsed.path[/^([^\/]+\.[^\/]*)/, 1]
213
+ if new_host
214
+ parsed.defer_validation do
215
+ new_path = parsed.path.gsub(
216
+ Regexp.new("^" + Regexp.escape(new_host)), EMPTY_STR)
217
+ parsed.host = new_host
218
+ parsed.path = new_path
219
+ parsed.scheme = hints[:scheme] unless parsed.scheme
220
+ end
221
+ end
222
+ end
223
+ return parsed
224
+ end
225
+
226
+ ##
227
+ # Converts a path to a file scheme URI. If the path supplied is
228
+ # relative, it will be returned as a relative URI. If the path supplied
229
+ # is actually a non-file URI, it will parse the URI as if it had been
230
+ # parsed with <code>Addressable::URI.parse</code>. Handles all of the
231
+ # various Microsoft-specific formats for specifying paths.
232
+ #
233
+ # @param [String, Addressable::URI, #to_str] path
234
+ # Typically a <code>String</code> path to a file or directory, but
235
+ # will return a sensible return value if an absolute URI is supplied
236
+ # instead.
237
+ #
238
+ # @return [Addressable::URI]
239
+ # The parsed file scheme URI or the original URI if some other URI
240
+ # scheme was provided.
241
+ #
242
+ # @example
243
+ # base = Addressable::URI.convert_path("/absolute/path/")
244
+ # uri = Addressable::URI.convert_path("relative/path")
245
+ # (base + uri).to_s
246
+ # #=> "file:///absolute/path/relative/path"
247
+ #
248
+ # Addressable::URI.convert_path(
249
+ # "c:\\windows\\My Documents 100%20\\foo.txt"
250
+ # ).to_s
251
+ # #=> "file:///c:/windows/My%20Documents%20100%20/foo.txt"
252
+ #
253
+ # Addressable::URI.convert_path("http://example.com/").to_s
254
+ # #=> "http://example.com/"
255
+ def self.convert_path(path)
256
+ # If we were given nil, return nil.
257
+ return nil unless path
258
+ # If a URI object is passed, just return itself.
259
+ return path if path.kind_of?(self)
260
+ if !path.respond_to?(:to_str)
261
+ raise TypeError, "Can't convert #{path.class} into String."
262
+ end
263
+ # Otherwise, convert to a String
264
+ path = path.to_str.strip
265
+
266
+ path.gsub!(/^file:\/?\/?/, EMPTY_STR) if path =~ /^file:\/?\/?/
267
+ path = SLASH + path if path =~ /^([a-zA-Z])[\|:]/
268
+ uri = self.parse(path)
269
+
270
+ if uri.scheme == nil
271
+ # Adjust windows-style uris
272
+ uri.path.gsub!(/^\/?([a-zA-Z])[\|:][\\\/]/) do
273
+ "/#{$1.downcase}:/"
274
+ end
275
+ uri.path.gsub!(/\\/, SLASH)
276
+ if File.exist?(uri.path) &&
277
+ File.stat(uri.path).directory?
278
+ uri.path.gsub!(/\/$/, EMPTY_STR)
279
+ uri.path = uri.path + '/'
280
+ end
281
+
282
+ # If the path is absolute, set the scheme and host.
283
+ if uri.path =~ /^\//
284
+ uri.scheme = "file"
285
+ uri.host = EMPTY_STR
286
+ end
287
+ uri.normalize!
288
+ end
289
+
290
+ return uri
291
+ end
292
+
293
+ ##
294
+ # Joins several URIs together.
295
+ #
296
+ # @param [String, Addressable::URI, #to_str] *uris
297
+ # The URIs to join.
298
+ #
299
+ # @return [Addressable::URI] The joined URI.
300
+ #
301
+ # @example
302
+ # base = "http://example.com/"
303
+ # uri = Addressable::URI.parse("relative/path")
304
+ # Addressable::URI.join(base, uri)
305
+ # #=> #<Addressable::URI:0xcab390 URI:http://example.com/relative/path>
306
+ def self.join(*uris)
307
+ uri_objects = uris.collect do |uri|
308
+ if !uri.respond_to?(:to_str)
309
+ raise TypeError, "Can't convert #{uri.class} into String."
310
+ end
311
+ uri.kind_of?(self) ? uri : self.parse(uri.to_str)
312
+ end
313
+ result = uri_objects.shift.dup
314
+ for uri in uri_objects
315
+ result.join!(uri)
316
+ end
317
+ return result
318
+ end
319
+
320
+ ##
321
+ # Percent encodes a URI component.
322
+ #
323
+ # @param [String, #to_str] component The URI component to encode.
324
+ #
325
+ # @param [String, Regexp] character_class
326
+ # The characters which are not percent encoded. If a <code>String</code>
327
+ # is passed, the <code>String</code> must be formatted as a regular
328
+ # expression character class. (Do not include the surrounding square
329
+ # brackets.) For example, <code>"b-zB-Z0-9"</code> would cause
330
+ # everything but the letters 'b' through 'z' and the numbers '0' through
331
+ # '9' to be percent encoded. If a <code>Regexp</code> is passed, the
332
+ # value <code>/[^b-zB-Z0-9]/</code> would have the same effect. A set of
333
+ # useful <code>String</code> values may be found in the
334
+ # <code>Addressable::URI::CharacterClasses</code> module. The default
335
+ # value is the reserved plus unreserved character classes specified in
336
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
337
+ #
338
+ # @param [Regexp] upcase_encoded
339
+ # A string of characters that may already be percent encoded, and whose
340
+ # encodings should be upcased. This allows normalization of percent
341
+ # encodings for characters not included in the
342
+ # <code>character_class</code>.
343
+ #
344
+ # @return [String] The encoded component.
345
+ #
346
+ # @example
347
+ # Addressable::URI.encode_component("simple/example", "b-zB-Z0-9")
348
+ # => "simple%2Fex%61mple"
349
+ # Addressable::URI.encode_component("simple/example", /[^b-zB-Z0-9]/)
350
+ # => "simple%2Fex%61mple"
351
+ # Addressable::URI.encode_component(
352
+ # "simple/example", Addressable::URI::CharacterClasses::UNRESERVED
353
+ # )
354
+ # => "simple%2Fexample"
355
+ def self.encode_component(component, character_class=
356
+ CharacterClasses::RESERVED + CharacterClasses::UNRESERVED,
357
+ upcase_encoded='')
358
+ return nil if component.nil?
359
+
360
+ begin
361
+ if component.kind_of?(Symbol) ||
362
+ component.kind_of?(Numeric) ||
363
+ component.kind_of?(TrueClass) ||
364
+ component.kind_of?(FalseClass)
365
+ component = component.to_s
366
+ else
367
+ component = component.to_str
368
+ end
369
+ rescue TypeError, NoMethodError
370
+ raise TypeError, "Can't convert #{component.class} into String."
371
+ end if !component.is_a? String
372
+
373
+ if ![String, Regexp].include?(character_class.class)
374
+ raise TypeError,
375
+ "Expected String or Regexp, got #{character_class.inspect}"
376
+ end
377
+ if character_class.kind_of?(String)
378
+ character_class = /[^#{character_class}]/
379
+ end
380
+ # We can't perform regexps on invalid UTF sequences, but
381
+ # here we need to, so switch to ASCII.
382
+ component = component.dup
383
+ component.force_encoding(Encoding::ASCII_8BIT)
384
+ # Avoiding gsub! because there are edge cases with frozen strings
385
+ component = component.gsub(character_class) do |sequence|
386
+ (sequence.unpack('C*').map { |c| "%" + ("%02x" % c).upcase }).join
387
+ end
388
+ if upcase_encoded.length > 0
389
+ component = component.gsub(/%(#{upcase_encoded.chars.map do |char|
390
+ char.unpack('C*').map { |c| '%02x' % c }.join
391
+ end.join('|')})/i) { |s| s.upcase }
392
+ end
393
+ return component
394
+ end
395
+
396
+ class << self
397
+ alias_method :encode_component, :encode_component
398
+ end
399
+
400
+ ##
401
+ # Unencodes any percent encoded characters within a URI component.
402
+ # This method may be used for unencoding either components or full URIs,
403
+ # however, it is recommended to use the <code>unencode_component</code>
404
+ # alias when unencoding components.
405
+ #
406
+ # @param [String, Addressable::URI, #to_str] uri
407
+ # The URI or component to unencode.
408
+ #
409
+ # @param [Class] return_type
410
+ # The type of object to return.
411
+ # This value may only be set to <code>String</code> or
412
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
413
+ # to <code>String</code>.
414
+ #
415
+ # @param [String] leave_encoded
416
+ # A string of characters to leave encoded. If a percent encoded character
417
+ # in this list is encountered then it will remain percent encoded.
418
+ #
419
+ # @return [String, Addressable::URI]
420
+ # The unencoded component or URI.
421
+ # The return type is determined by the <code>return_type</code>
422
+ # parameter.
423
+ def self.unencode(uri, return_type=String, leave_encoded='')
424
+ return nil if uri.nil?
425
+
426
+ begin
427
+ uri = uri.to_str
428
+ rescue NoMethodError, TypeError
429
+ raise TypeError, "Can't convert #{uri.class} into String."
430
+ end if !uri.is_a? String
431
+ if ![String, ::Addressable::URI].include?(return_type)
432
+ raise TypeError,
433
+ "Expected Class (String or Addressable::URI), " +
434
+ "got #{return_type.inspect}"
435
+ end
436
+ uri = uri.dup
437
+ # Seriously, only use UTF-8. I'm really not kidding!
438
+ uri.force_encoding("utf-8")
439
+ leave_encoded = leave_encoded.dup.force_encoding("utf-8")
440
+ result = uri.gsub(/%[0-9a-f]{2}/iu) do |sequence|
441
+ c = sequence[1..3].to_i(16).chr
442
+ c.force_encoding("utf-8")
443
+ leave_encoded.include?(c) ? sequence : c
444
+ end
445
+ result.force_encoding("utf-8")
446
+ if return_type == String
447
+ return result
448
+ elsif return_type == ::Addressable::URI
449
+ return ::Addressable::URI.parse(result)
450
+ end
451
+ end
452
+
453
+ class << self
454
+ alias_method :unescape, :unencode
455
+ alias_method :unencode_component, :unencode
456
+ alias_method :unescape_component, :unencode
457
+ end
458
+
459
+
460
+ ##
461
+ # Normalizes the encoding of a URI component.
462
+ #
463
+ # @param [String, #to_str] component The URI component to encode.
464
+ #
465
+ # @param [String, Regexp] character_class
466
+ # The characters which are not percent encoded. If a <code>String</code>
467
+ # is passed, the <code>String</code> must be formatted as a regular
468
+ # expression character class. (Do not include the surrounding square
469
+ # brackets.) For example, <code>"b-zB-Z0-9"</code> would cause
470
+ # everything but the letters 'b' through 'z' and the numbers '0'
471
+ # through '9' to be percent encoded. If a <code>Regexp</code> is passed,
472
+ # the value <code>/[^b-zB-Z0-9]/</code> would have the same effect. A
473
+ # set of useful <code>String</code> values may be found in the
474
+ # <code>Addressable::URI::CharacterClasses</code> module. The default
475
+ # value is the reserved plus unreserved character classes specified in
476
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
477
+ #
478
+ # @param [String] leave_encoded
479
+ # When <code>character_class</code> is a <code>String</code> then
480
+ # <code>leave_encoded</code> is a string of characters that should remain
481
+ # percent encoded while normalizing the component; if they appear percent
482
+ # encoded in the original component, then they will be upcased ("%2f"
483
+ # normalized to "%2F") but otherwise left alone.
484
+ #
485
+ # @return [String] The normalized component.
486
+ #
487
+ # @example
488
+ # Addressable::URI.normalize_component("simpl%65/%65xampl%65", "b-zB-Z")
489
+ # => "simple%2Fex%61mple"
490
+ # Addressable::URI.normalize_component(
491
+ # "simpl%65/%65xampl%65", /[^b-zB-Z]/
492
+ # )
493
+ # => "simple%2Fex%61mple"
494
+ # Addressable::URI.normalize_component(
495
+ # "simpl%65/%65xampl%65",
496
+ # Addressable::URI::CharacterClasses::UNRESERVED
497
+ # )
498
+ # => "simple%2Fexample"
499
+ # Addressable::URI.normalize_component(
500
+ # "one%20two%2fthree%26four",
501
+ # "0-9a-zA-Z &/",
502
+ # "/"
503
+ # )
504
+ # => "one two%2Fthree&four"
505
+ def self.normalize_component(component, character_class=
506
+ CharacterClasses::RESERVED + CharacterClasses::UNRESERVED,
507
+ leave_encoded='')
508
+ return nil if component.nil?
509
+
510
+ begin
511
+ component = component.to_str
512
+ rescue NoMethodError, TypeError
513
+ raise TypeError, "Can't convert #{component.class} into String."
514
+ end if !component.is_a? String
515
+
516
+ if ![String, Regexp].include?(character_class.class)
517
+ raise TypeError,
518
+ "Expected String or Regexp, got #{character_class.inspect}"
519
+ end
520
+ if character_class.kind_of?(String)
521
+ leave_re = if leave_encoded.length > 0
522
+ character_class = "#{character_class}%" unless character_class.include?('%')
523
+
524
+ "|%(?!#{leave_encoded.chars.map do |char|
525
+ seq = char.unpack('C*').map { |c| '%02x' % c }.join
526
+ [seq.upcase, seq.downcase]
527
+ end.flatten.join('|')})"
528
+ end
529
+
530
+ character_class = /[^#{character_class}]#{leave_re}/
531
+ end
532
+ # We can't perform regexps on invalid UTF sequences, but
533
+ # here we need to, so switch to ASCII.
534
+ component = component.dup
535
+ component.force_encoding(Encoding::ASCII_8BIT)
536
+ unencoded = self.unencode_component(component, String, leave_encoded)
537
+ begin
538
+ encoded = self.encode_component(
539
+ Addressable::IDNA.unicode_normalize_kc(unencoded),
540
+ character_class,
541
+ leave_encoded
542
+ )
543
+ rescue ArgumentError
544
+ encoded = self.encode_component(unencoded)
545
+ end
546
+ encoded.force_encoding(Encoding::UTF_8)
547
+ return encoded
548
+ end
549
+
550
+ ##
551
+ # Percent encodes any special characters in the URI.
552
+ #
553
+ # @param [String, Addressable::URI, #to_str] uri
554
+ # The URI to encode.
555
+ #
556
+ # @param [Class] return_type
557
+ # The type of object to return.
558
+ # This value may only be set to <code>String</code> or
559
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
560
+ # to <code>String</code>.
561
+ #
562
+ # @return [String, Addressable::URI]
563
+ # The encoded URI.
564
+ # The return type is determined by the <code>return_type</code>
565
+ # parameter.
566
+ def self.encode(uri, return_type=String)
567
+ return nil if uri.nil?
568
+
569
+ begin
570
+ uri = uri.to_str
571
+ rescue NoMethodError, TypeError
572
+ raise TypeError, "Can't convert #{uri.class} into String."
573
+ end if !uri.is_a? String
574
+
575
+ if ![String, ::Addressable::URI].include?(return_type)
576
+ raise TypeError,
577
+ "Expected Class (String or Addressable::URI), " +
578
+ "got #{return_type.inspect}"
579
+ end
580
+ uri_object = uri.kind_of?(self) ? uri : self.parse(uri)
581
+ encoded_uri = Addressable::URI.new(
582
+ :scheme => self.encode_component(uri_object.scheme,
583
+ Addressable::URI::CharacterClasses::SCHEME),
584
+ :authority => self.encode_component(uri_object.authority,
585
+ Addressable::URI::CharacterClasses::AUTHORITY),
586
+ :path => self.encode_component(uri_object.path,
587
+ Addressable::URI::CharacterClasses::PATH),
588
+ :query => self.encode_component(uri_object.query,
589
+ Addressable::URI::CharacterClasses::QUERY),
590
+ :fragment => self.encode_component(uri_object.fragment,
591
+ Addressable::URI::CharacterClasses::FRAGMENT)
592
+ )
593
+ if return_type == String
594
+ return encoded_uri.to_s
595
+ elsif return_type == ::Addressable::URI
596
+ return encoded_uri
597
+ end
598
+ end
599
+
600
+ class << self
601
+ alias_method :escape, :encode
602
+ end
603
+
604
+ ##
605
+ # Normalizes the encoding of a URI. Characters within a hostname are
606
+ # not percent encoded to allow for internationalized domain names.
607
+ #
608
+ # @param [String, Addressable::URI, #to_str] uri
609
+ # The URI to encode.
610
+ #
611
+ # @param [Class] return_type
612
+ # The type of object to return.
613
+ # This value may only be set to <code>String</code> or
614
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
615
+ # to <code>String</code>.
616
+ #
617
+ # @return [String, Addressable::URI]
618
+ # The encoded URI.
619
+ # The return type is determined by the <code>return_type</code>
620
+ # parameter.
621
+ def self.normalized_encode(uri, return_type=String)
622
+ begin
623
+ uri = uri.to_str
624
+ rescue NoMethodError, TypeError
625
+ raise TypeError, "Can't convert #{uri.class} into String."
626
+ end if !uri.is_a? String
627
+
628
+ if ![String, ::Addressable::URI].include?(return_type)
629
+ raise TypeError,
630
+ "Expected Class (String or Addressable::URI), " +
631
+ "got #{return_type.inspect}"
632
+ end
633
+ uri_object = uri.kind_of?(self) ? uri : self.parse(uri)
634
+ components = {
635
+ :scheme => self.unencode_component(uri_object.scheme),
636
+ :user => self.unencode_component(uri_object.user),
637
+ :password => self.unencode_component(uri_object.password),
638
+ :host => self.unencode_component(uri_object.host),
639
+ :port => (uri_object.port.nil? ? nil : uri_object.port.to_s),
640
+ :path => self.unencode_component(uri_object.path),
641
+ :query => self.unencode_component(uri_object.query),
642
+ :fragment => self.unencode_component(uri_object.fragment)
643
+ }
644
+ components.each do |key, value|
645
+ if value != nil
646
+ begin
647
+ components[key] =
648
+ Addressable::IDNA.unicode_normalize_kc(value.to_str)
649
+ rescue ArgumentError
650
+ # Likely a malformed UTF-8 character, skip unicode normalization
651
+ components[key] = value.to_str
652
+ end
653
+ end
654
+ end
655
+ encoded_uri = Addressable::URI.new(
656
+ :scheme => self.encode_component(components[:scheme],
657
+ Addressable::URI::CharacterClasses::SCHEME),
658
+ :user => self.encode_component(components[:user],
659
+ Addressable::URI::CharacterClasses::UNRESERVED),
660
+ :password => self.encode_component(components[:password],
661
+ Addressable::URI::CharacterClasses::UNRESERVED),
662
+ :host => components[:host],
663
+ :port => components[:port],
664
+ :path => self.encode_component(components[:path],
665
+ Addressable::URI::CharacterClasses::PATH),
666
+ :query => self.encode_component(components[:query],
667
+ Addressable::URI::CharacterClasses::QUERY),
668
+ :fragment => self.encode_component(components[:fragment],
669
+ Addressable::URI::CharacterClasses::FRAGMENT)
670
+ )
671
+ if return_type == String
672
+ return encoded_uri.to_s
673
+ elsif return_type == ::Addressable::URI
674
+ return encoded_uri
675
+ end
676
+ end
677
+
678
+ ##
679
+ # Encodes a set of key/value pairs according to the rules for the
680
+ # <code>application/x-www-form-urlencoded</code> MIME type.
681
+ #
682
+ # @param [#to_hash, #to_ary] form_values
683
+ # The form values to encode.
684
+ #
685
+ # @param [TrueClass, FalseClass] sort
686
+ # Sort the key/value pairs prior to encoding.
687
+ # Defaults to <code>false</code>.
688
+ #
689
+ # @return [String]
690
+ # The encoded value.
691
+ def self.form_encode(form_values, sort=false)
692
+ if form_values.respond_to?(:to_hash)
693
+ form_values = form_values.to_hash.to_a
694
+ elsif form_values.respond_to?(:to_ary)
695
+ form_values = form_values.to_ary
696
+ else
697
+ raise TypeError, "Can't convert #{form_values.class} into Array."
698
+ end
699
+
700
+ form_values = form_values.inject([]) do |accu, (key, value)|
701
+ if value.kind_of?(Array)
702
+ value.each do |v|
703
+ accu << [key.to_s, v.to_s]
704
+ end
705
+ else
706
+ accu << [key.to_s, value.to_s]
707
+ end
708
+ accu
709
+ end
710
+
711
+ if sort
712
+ # Useful for OAuth and optimizing caching systems
713
+ form_values = form_values.sort
714
+ end
715
+ escaped_form_values = form_values.map do |(key, value)|
716
+ # Line breaks are CRLF pairs
717
+ [
718
+ self.encode_component(
719
+ key.gsub(/(\r\n|\n|\r)/, "\r\n"),
720
+ CharacterClasses::UNRESERVED
721
+ ).gsub("%20", "+"),
722
+ self.encode_component(
723
+ value.gsub(/(\r\n|\n|\r)/, "\r\n"),
724
+ CharacterClasses::UNRESERVED
725
+ ).gsub("%20", "+")
726
+ ]
727
+ end
728
+ return escaped_form_values.map do |(key, value)|
729
+ "#{key}=#{value}"
730
+ end.join("&")
731
+ end
732
+
733
+ ##
734
+ # Decodes a <code>String</code> according to the rules for the
735
+ # <code>application/x-www-form-urlencoded</code> MIME type.
736
+ #
737
+ # @param [String, #to_str] encoded_value
738
+ # The form values to decode.
739
+ #
740
+ # @return [Array]
741
+ # The decoded values.
742
+ # This is not a <code>Hash</code> because of the possibility for
743
+ # duplicate keys.
744
+ def self.form_unencode(encoded_value)
745
+ if !encoded_value.respond_to?(:to_str)
746
+ raise TypeError, "Can't convert #{encoded_value.class} into String."
747
+ end
748
+ encoded_value = encoded_value.to_str
749
+ split_values = encoded_value.split("&").map do |pair|
750
+ pair.split("=", 2)
751
+ end
752
+ return split_values.map do |(key, value)|
753
+ [
754
+ key ? self.unencode_component(
755
+ key.gsub("+", "%20")).gsub(/(\r\n|\n|\r)/, "\n") : nil,
756
+ value ? (self.unencode_component(
757
+ value.gsub("+", "%20")).gsub(/(\r\n|\n|\r)/, "\n")) : nil
758
+ ]
759
+ end
760
+ end
761
+
762
+ ##
763
+ # Creates a new uri object from component parts.
764
+ #
765
+ # @option [String, #to_str] scheme The scheme component.
766
+ # @option [String, #to_str] user The user component.
767
+ # @option [String, #to_str] password The password component.
768
+ # @option [String, #to_str] userinfo
769
+ # The userinfo component. If this is supplied, the user and password
770
+ # components must be omitted.
771
+ # @option [String, #to_str] host The host component.
772
+ # @option [String, #to_str] port The port component.
773
+ # @option [String, #to_str] authority
774
+ # The authority component. If this is supplied, the user, password,
775
+ # userinfo, host, and port components must be omitted.
776
+ # @option [String, #to_str] path The path component.
777
+ # @option [String, #to_str] query The query component.
778
+ # @option [String, #to_str] fragment The fragment component.
779
+ #
780
+ # @return [Addressable::URI] The constructed URI object.
781
+ def initialize(options={})
782
+ if options.has_key?(:authority)
783
+ if (options.keys & [:userinfo, :user, :password, :host, :port]).any?
784
+ raise ArgumentError,
785
+ "Cannot specify both an authority and any of the components " +
786
+ "within the authority."
787
+ end
788
+ end
789
+ if options.has_key?(:userinfo)
790
+ if (options.keys & [:user, :password]).any?
791
+ raise ArgumentError,
792
+ "Cannot specify both a userinfo and either the user or password."
793
+ end
794
+ end
795
+
796
+ self.defer_validation do
797
+ # Bunch of crazy logic required because of the composite components
798
+ # like userinfo and authority.
799
+ self.scheme = options[:scheme] if options[:scheme]
800
+ self.user = options[:user] if options[:user]
801
+ self.password = options[:password] if options[:password]
802
+ self.userinfo = options[:userinfo] if options[:userinfo]
803
+ self.host = options[:host] if options[:host]
804
+ self.port = options[:port] if options[:port]
805
+ self.authority = options[:authority] if options[:authority]
806
+ self.path = options[:path] if options[:path]
807
+ self.query = options[:query] if options[:query]
808
+ self.query_values = options[:query_values] if options[:query_values]
809
+ self.fragment = options[:fragment] if options[:fragment]
810
+ end
811
+ self.to_s
812
+ end
813
+
814
+ ##
815
+ # Freeze URI, initializing instance variables.
816
+ #
817
+ # @return [Addressable::URI] The frozen URI object.
818
+ def freeze
819
+ self.normalized_scheme
820
+ self.normalized_user
821
+ self.normalized_password
822
+ self.normalized_userinfo
823
+ self.normalized_host
824
+ self.normalized_port
825
+ self.normalized_authority
826
+ self.normalized_site
827
+ self.normalized_path
828
+ self.normalized_query
829
+ self.normalized_fragment
830
+ self.hash
831
+ super
832
+ end
833
+
834
+ ##
835
+ # The scheme component for this URI.
836
+ #
837
+ # @return [String] The scheme component.
838
+ def scheme
839
+ return defined?(@scheme) ? @scheme : nil
840
+ end
841
+
842
+ ##
843
+ # The scheme component for this URI, normalized.
844
+ #
845
+ # @return [String] The scheme component, normalized.
846
+ def normalized_scheme
847
+ return nil unless self.scheme
848
+ @normalized_scheme ||= begin
849
+ if self.scheme =~ /^\s*ssh\+svn\s*$/i
850
+ "svn+ssh".dup
851
+ else
852
+ Addressable::URI.normalize_component(
853
+ self.scheme.strip.downcase,
854
+ Addressable::URI::CharacterClasses::SCHEME
855
+ )
856
+ end
857
+ end
858
+ # All normalized values should be UTF-8
859
+ @normalized_scheme.force_encoding(Encoding::UTF_8) if @normalized_scheme
860
+ @normalized_scheme
861
+ end
862
+
863
+ ##
864
+ # Sets the scheme component for this URI.
865
+ #
866
+ # @param [String, #to_str] new_scheme The new scheme component.
867
+ def scheme=(new_scheme)
868
+ if new_scheme && !new_scheme.respond_to?(:to_str)
869
+ raise TypeError, "Can't convert #{new_scheme.class} into String."
870
+ elsif new_scheme
871
+ new_scheme = new_scheme.to_str
872
+ end
873
+ if new_scheme && new_scheme !~ /\A[a-z][a-z0-9\.\+\-]*\z/i
874
+ raise InvalidURIError, "Invalid scheme format: #{new_scheme}"
875
+ end
876
+ @scheme = new_scheme
877
+ @scheme = nil if @scheme.to_s.strip.empty?
878
+
879
+ # Reset dependent values
880
+ remove_instance_variable(:@normalized_scheme) if defined?(@normalized_scheme)
881
+ remove_composite_values
882
+
883
+ # Ensure we haven't created an invalid URI
884
+ validate()
885
+ end
886
+
887
+ ##
888
+ # The user component for this URI.
889
+ #
890
+ # @return [String] The user component.
891
+ def user
892
+ return defined?(@user) ? @user : nil
893
+ end
894
+
895
+ ##
896
+ # The user component for this URI, normalized.
897
+ #
898
+ # @return [String] The user component, normalized.
899
+ def normalized_user
900
+ return nil unless self.user
901
+ return @normalized_user if defined?(@normalized_user)
902
+ @normalized_user ||= begin
903
+ if normalized_scheme =~ /https?/ && self.user.strip.empty? &&
904
+ (!self.password || self.password.strip.empty?)
905
+ nil
906
+ else
907
+ Addressable::URI.normalize_component(
908
+ self.user.strip,
909
+ Addressable::URI::CharacterClasses::UNRESERVED
910
+ )
911
+ end
912
+ end
913
+ # All normalized values should be UTF-8
914
+ @normalized_user.force_encoding(Encoding::UTF_8) if @normalized_user
915
+ @normalized_user
916
+ end
917
+
918
+ ##
919
+ # Sets the user component for this URI.
920
+ #
921
+ # @param [String, #to_str] new_user The new user component.
922
+ def user=(new_user)
923
+ if new_user && !new_user.respond_to?(:to_str)
924
+ raise TypeError, "Can't convert #{new_user.class} into String."
925
+ end
926
+ @user = new_user ? new_user.to_str : nil
927
+
928
+ # You can't have a nil user with a non-nil password
929
+ if password != nil
930
+ @user = EMPTY_STR if @user.nil?
931
+ end
932
+
933
+ # Reset dependent values
934
+ remove_instance_variable(:@userinfo) if defined?(@userinfo)
935
+ remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
936
+ remove_instance_variable(:@authority) if defined?(@authority)
937
+ remove_instance_variable(:@normalized_user) if defined?(@normalized_user)
938
+ remove_composite_values
939
+
940
+ # Ensure we haven't created an invalid URI
941
+ validate()
942
+ end
943
+
944
+ ##
945
+ # The password component for this URI.
946
+ #
947
+ # @return [String] The password component.
948
+ def password
949
+ return defined?(@password) ? @password : nil
950
+ end
951
+
952
+ ##
953
+ # The password component for this URI, normalized.
954
+ #
955
+ # @return [String] The password component, normalized.
956
+ def normalized_password
957
+ return nil unless self.password
958
+ return @normalized_password if defined?(@normalized_password)
959
+ @normalized_password ||= begin
960
+ if self.normalized_scheme =~ /https?/ && self.password.strip.empty? &&
961
+ (!self.user || self.user.strip.empty?)
962
+ nil
963
+ else
964
+ Addressable::URI.normalize_component(
965
+ self.password.strip,
966
+ Addressable::URI::CharacterClasses::UNRESERVED
967
+ )
968
+ end
969
+ end
970
+ # All normalized values should be UTF-8
971
+ if @normalized_password
972
+ @normalized_password.force_encoding(Encoding::UTF_8)
973
+ end
974
+ @normalized_password
975
+ end
976
+
977
+ ##
978
+ # Sets the password component for this URI.
979
+ #
980
+ # @param [String, #to_str] new_password The new password component.
981
+ def password=(new_password)
982
+ if new_password && !new_password.respond_to?(:to_str)
983
+ raise TypeError, "Can't convert #{new_password.class} into String."
984
+ end
985
+ @password = new_password ? new_password.to_str : nil
986
+
987
+ # You can't have a nil user with a non-nil password
988
+ @password ||= nil
989
+ @user ||= nil
990
+ if @password != nil
991
+ @user = EMPTY_STR if @user.nil?
992
+ end
993
+
994
+ # Reset dependent values
995
+ remove_instance_variable(:@userinfo) if defined?(@userinfo)
996
+ remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
997
+ remove_instance_variable(:@authority) if defined?(@authority)
998
+ remove_instance_variable(:@normalized_password) if defined?(@normalized_password)
999
+ remove_composite_values
1000
+
1001
+ # Ensure we haven't created an invalid URI
1002
+ validate()
1003
+ end
1004
+
1005
+ ##
1006
+ # The userinfo component for this URI.
1007
+ # Combines the user and password components.
1008
+ #
1009
+ # @return [String] The userinfo component.
1010
+ def userinfo
1011
+ current_user = self.user
1012
+ current_password = self.password
1013
+ (current_user || current_password) && @userinfo ||= begin
1014
+ if current_user && current_password
1015
+ "#{current_user}:#{current_password}"
1016
+ elsif current_user && !current_password
1017
+ "#{current_user}"
1018
+ end
1019
+ end
1020
+ end
1021
+
1022
+ ##
1023
+ # The userinfo component for this URI, normalized.
1024
+ #
1025
+ # @return [String] The userinfo component, normalized.
1026
+ def normalized_userinfo
1027
+ return nil unless self.userinfo
1028
+ return @normalized_userinfo if defined?(@normalized_userinfo)
1029
+ @normalized_userinfo ||= begin
1030
+ current_user = self.normalized_user
1031
+ current_password = self.normalized_password
1032
+ if !current_user && !current_password
1033
+ nil
1034
+ elsif current_user && current_password
1035
+ "#{current_user}:#{current_password}".dup
1036
+ elsif current_user && !current_password
1037
+ "#{current_user}".dup
1038
+ end
1039
+ end
1040
+ # All normalized values should be UTF-8
1041
+ if @normalized_userinfo
1042
+ @normalized_userinfo.force_encoding(Encoding::UTF_8)
1043
+ end
1044
+ @normalized_userinfo
1045
+ end
1046
+
1047
+ ##
1048
+ # Sets the userinfo component for this URI.
1049
+ #
1050
+ # @param [String, #to_str] new_userinfo The new userinfo component.
1051
+ def userinfo=(new_userinfo)
1052
+ if new_userinfo && !new_userinfo.respond_to?(:to_str)
1053
+ raise TypeError, "Can't convert #{new_userinfo.class} into String."
1054
+ end
1055
+ new_user, new_password = if new_userinfo
1056
+ [
1057
+ new_userinfo.to_str.strip[/^(.*):/, 1],
1058
+ new_userinfo.to_str.strip[/:(.*)$/, 1]
1059
+ ]
1060
+ else
1061
+ [nil, nil]
1062
+ end
1063
+
1064
+ # Password assigned first to ensure validity in case of nil
1065
+ self.password = new_password
1066
+ self.user = new_user
1067
+
1068
+ # Reset dependent values
1069
+ remove_instance_variable(:@authority) if defined?(@authority)
1070
+ remove_composite_values
1071
+
1072
+ # Ensure we haven't created an invalid URI
1073
+ validate()
1074
+ end
1075
+
1076
+ ##
1077
+ # The host component for this URI.
1078
+ #
1079
+ # @return [String] The host component.
1080
+ def host
1081
+ return defined?(@host) ? @host : nil
1082
+ end
1083
+
1084
+ ##
1085
+ # The host component for this URI, normalized.
1086
+ #
1087
+ # @return [String] The host component, normalized.
1088
+ def normalized_host
1089
+ return nil unless self.host
1090
+ @normalized_host ||= begin
1091
+ if !self.host.strip.empty?
1092
+ result = ::Addressable::IDNA.to_ascii(
1093
+ URI.unencode_component(self.host.strip.downcase)
1094
+ )
1095
+ if result =~ /[^\.]\.$/
1096
+ # Single trailing dots are unnecessary.
1097
+ result = result[0...-1]
1098
+ end
1099
+ result = Addressable::URI.normalize_component(
1100
+ result,
1101
+ CharacterClasses::HOST)
1102
+ result
1103
+ else
1104
+ EMPTY_STR.dup
1105
+ end
1106
+ end
1107
+ # All normalized values should be UTF-8
1108
+ @normalized_host.force_encoding(Encoding::UTF_8) if @normalized_host
1109
+ @normalized_host
1110
+ end
1111
+
1112
+ ##
1113
+ # Sets the host component for this URI.
1114
+ #
1115
+ # @param [String, #to_str] new_host The new host component.
1116
+ def host=(new_host)
1117
+ if new_host && !new_host.respond_to?(:to_str)
1118
+ raise TypeError, "Can't convert #{new_host.class} into String."
1119
+ end
1120
+ @host = new_host ? new_host.to_str : nil
1121
+
1122
+ # Reset dependent values
1123
+ remove_instance_variable(:@authority) if defined?(@authority)
1124
+ remove_instance_variable(:@normalized_host) if defined?(@normalized_host)
1125
+ remove_composite_values
1126
+
1127
+ # Ensure we haven't created an invalid URI
1128
+ validate()
1129
+ end
1130
+
1131
+ ##
1132
+ # This method is same as URI::Generic#host except
1133
+ # brackets for IPv6 (and 'IPvFuture') addresses are removed.
1134
+ #
1135
+ # @see Addressable::URI#host
1136
+ #
1137
+ # @return [String] The hostname for this URI.
1138
+ def hostname
1139
+ v = self.host
1140
+ /\A\[(.*)\]\z/ =~ v ? $1 : v
1141
+ end
1142
+
1143
+ ##
1144
+ # This method is same as URI::Generic#host= except
1145
+ # the argument can be a bare IPv6 address (or 'IPvFuture').
1146
+ #
1147
+ # @see Addressable::URI#host=
1148
+ #
1149
+ # @param [String, #to_str] new_hostname The new hostname for this URI.
1150
+ def hostname=(new_hostname)
1151
+ if new_hostname &&
1152
+ (new_hostname.respond_to?(:ipv4?) || new_hostname.respond_to?(:ipv6?))
1153
+ new_hostname = new_hostname.to_s
1154
+ elsif new_hostname && !new_hostname.respond_to?(:to_str)
1155
+ raise TypeError, "Can't convert #{new_hostname.class} into String."
1156
+ end
1157
+ v = new_hostname ? new_hostname.to_str : nil
1158
+ v = "[#{v}]" if /\A\[.*\]\z/ !~ v && /:/ =~ v
1159
+ self.host = v
1160
+ end
1161
+
1162
+ ##
1163
+ # Returns the top-level domain for this host.
1164
+ #
1165
+ # @example
1166
+ # Addressable::URI.parse("www.example.co.uk").tld # => "co.uk"
1167
+ def tld
1168
+ PublicSuffix.parse(self.host, ignore_private: true).tld
1169
+ end
1170
+
1171
+ ##
1172
+ # Returns the public suffix domain for this host.
1173
+ #
1174
+ # @example
1175
+ # Addressable::URI.parse("www.example.co.uk").domain # => "example.co.uk"
1176
+ def domain
1177
+ PublicSuffix.domain(self.host, ignore_private: true)
1178
+ end
1179
+
1180
+ ##
1181
+ # The authority component for this URI.
1182
+ # Combines the user, password, host, and port components.
1183
+ #
1184
+ # @return [String] The authority component.
1185
+ def authority
1186
+ self.host && @authority ||= begin
1187
+ authority = String.new
1188
+ if self.userinfo != nil
1189
+ authority << "#{self.userinfo}@"
1190
+ end
1191
+ authority << self.host
1192
+ if self.port != nil
1193
+ authority << ":#{self.port}"
1194
+ end
1195
+ authority
1196
+ end
1197
+ end
1198
+
1199
+ ##
1200
+ # The authority component for this URI, normalized.
1201
+ #
1202
+ # @return [String] The authority component, normalized.
1203
+ def normalized_authority
1204
+ return nil unless self.authority
1205
+ @normalized_authority ||= begin
1206
+ authority = String.new
1207
+ if self.normalized_userinfo != nil
1208
+ authority << "#{self.normalized_userinfo}@"
1209
+ end
1210
+ authority << self.normalized_host
1211
+ if self.normalized_port != nil
1212
+ authority << ":#{self.normalized_port}"
1213
+ end
1214
+ authority
1215
+ end
1216
+ # All normalized values should be UTF-8
1217
+ if @normalized_authority
1218
+ @normalized_authority.force_encoding(Encoding::UTF_8)
1219
+ end
1220
+ @normalized_authority
1221
+ end
1222
+
1223
+ ##
1224
+ # Sets the authority component for this URI.
1225
+ #
1226
+ # @param [String, #to_str] new_authority The new authority component.
1227
+ def authority=(new_authority)
1228
+ if new_authority
1229
+ if !new_authority.respond_to?(:to_str)
1230
+ raise TypeError, "Can't convert #{new_authority.class} into String."
1231
+ end
1232
+ new_authority = new_authority.to_str
1233
+ new_userinfo = new_authority[/^([^\[\]]*)@/, 1]
1234
+ if new_userinfo
1235
+ new_user = new_userinfo.strip[/^([^:]*):?/, 1]
1236
+ new_password = new_userinfo.strip[/:(.*)$/, 1]
1237
+ end
1238
+ new_host = new_authority.gsub(
1239
+ /^([^\[\]]*)@/, EMPTY_STR
1240
+ ).gsub(
1241
+ /:([^:@\[\]]*?)$/, EMPTY_STR
1242
+ )
1243
+ new_port =
1244
+ new_authority[/:([^:@\[\]]*?)$/, 1]
1245
+ end
1246
+
1247
+ # Password assigned first to ensure validity in case of nil
1248
+ self.password = defined?(new_password) ? new_password : nil
1249
+ self.user = defined?(new_user) ? new_user : nil
1250
+ self.host = defined?(new_host) ? new_host : nil
1251
+ self.port = defined?(new_port) ? new_port : nil
1252
+
1253
+ # Reset dependent values
1254
+ remove_instance_variable(:@userinfo) if defined?(@userinfo)
1255
+ remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
1256
+ remove_composite_values
1257
+
1258
+ # Ensure we haven't created an invalid URI
1259
+ validate()
1260
+ end
1261
+
1262
+ ##
1263
+ # The origin for this URI, serialized to ASCII, as per
1264
+ # RFC 6454, section 6.2.
1265
+ #
1266
+ # @return [String] The serialized origin.
1267
+ def origin
1268
+ if self.scheme && self.authority
1269
+ if self.normalized_port
1270
+ "#{self.normalized_scheme}://#{self.normalized_host}" +
1271
+ ":#{self.normalized_port}"
1272
+ else
1273
+ "#{self.normalized_scheme}://#{self.normalized_host}"
1274
+ end
1275
+ else
1276
+ "null"
1277
+ end
1278
+ end
1279
+
1280
+ ##
1281
+ # Sets the origin for this URI, serialized to ASCII, as per
1282
+ # RFC 6454, section 6.2. This assignment will reset the `userinfo`
1283
+ # component.
1284
+ #
1285
+ # @param [String, #to_str] new_origin The new origin component.
1286
+ def origin=(new_origin)
1287
+ if new_origin
1288
+ if !new_origin.respond_to?(:to_str)
1289
+ raise TypeError, "Can't convert #{new_origin.class} into String."
1290
+ end
1291
+ new_origin = new_origin.to_str
1292
+ new_scheme = new_origin[/^([^:\/?#]+):\/\//, 1]
1293
+ unless new_scheme
1294
+ raise InvalidURIError, 'An origin cannot omit the scheme.'
1295
+ end
1296
+ new_host = new_origin[/:\/\/([^\/?#:]+)/, 1]
1297
+ unless new_host
1298
+ raise InvalidURIError, 'An origin cannot omit the host.'
1299
+ end
1300
+ new_port = new_origin[/:([^:@\[\]\/]*?)$/, 1]
1301
+ end
1302
+
1303
+ self.scheme = defined?(new_scheme) ? new_scheme : nil
1304
+ self.host = defined?(new_host) ? new_host : nil
1305
+ self.port = defined?(new_port) ? new_port : nil
1306
+ self.userinfo = nil
1307
+
1308
+ # Reset dependent values
1309
+ remove_instance_variable(:@userinfo) if defined?(@userinfo)
1310
+ remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
1311
+ remove_instance_variable(:@authority) if defined?(@authority)
1312
+ remove_instance_variable(:@normalized_authority) if defined?(@normalized_authority)
1313
+ remove_composite_values
1314
+
1315
+ # Ensure we haven't created an invalid URI
1316
+ validate()
1317
+ end
1318
+
1319
+ # Returns an array of known ip-based schemes. These schemes typically
1320
+ # use a similar URI form:
1321
+ # <code>//<user>:<password>@<host>:<port>/<url-path></code>
1322
+ def self.ip_based_schemes
1323
+ return self.port_mapping.keys
1324
+ end
1325
+
1326
+ # Returns a hash of common IP-based schemes and their default port
1327
+ # numbers. Adding new schemes to this hash, as necessary, will allow
1328
+ # for better URI normalization.
1329
+ def self.port_mapping
1330
+ PORT_MAPPING
1331
+ end
1332
+
1333
+ ##
1334
+ # The port component for this URI.
1335
+ # This is the port number actually given in the URI. This does not
1336
+ # infer port numbers from default values.
1337
+ #
1338
+ # @return [Integer] The port component.
1339
+ def port
1340
+ return defined?(@port) ? @port : nil
1341
+ end
1342
+
1343
+ ##
1344
+ # The port component for this URI, normalized.
1345
+ #
1346
+ # @return [Integer] The port component, normalized.
1347
+ def normalized_port
1348
+ return nil unless self.port
1349
+ return @normalized_port if defined?(@normalized_port)
1350
+ @normalized_port ||= begin
1351
+ if URI.port_mapping[self.normalized_scheme] == self.port
1352
+ nil
1353
+ else
1354
+ self.port
1355
+ end
1356
+ end
1357
+ end
1358
+
1359
+ ##
1360
+ # Sets the port component for this URI.
1361
+ #
1362
+ # @param [String, Integer, #to_s] new_port The new port component.
1363
+ def port=(new_port)
1364
+ if new_port != nil && new_port.respond_to?(:to_str)
1365
+ new_port = Addressable::URI.unencode_component(new_port.to_str)
1366
+ end
1367
+
1368
+ if new_port.respond_to?(:valid_encoding?) && !new_port.valid_encoding?
1369
+ raise InvalidURIError, "Invalid encoding in port"
1370
+ end
1371
+
1372
+ if new_port != nil && !(new_port.to_s =~ /^\d+$/)
1373
+ raise InvalidURIError,
1374
+ "Invalid port number: #{new_port.inspect}"
1375
+ end
1376
+
1377
+ @port = new_port.to_s.to_i
1378
+ @port = nil if @port == 0
1379
+
1380
+ # Reset dependent values
1381
+ remove_instance_variable(:@authority) if defined?(@authority)
1382
+ remove_instance_variable(:@normalized_port) if defined?(@normalized_port)
1383
+ remove_composite_values
1384
+
1385
+ # Ensure we haven't created an invalid URI
1386
+ validate()
1387
+ end
1388
+
1389
+ ##
1390
+ # The inferred port component for this URI.
1391
+ # This method will normalize to the default port for the URI's scheme if
1392
+ # the port isn't explicitly specified in the URI.
1393
+ #
1394
+ # @return [Integer] The inferred port component.
1395
+ def inferred_port
1396
+ if self.port.to_i == 0
1397
+ self.default_port
1398
+ else
1399
+ self.port.to_i
1400
+ end
1401
+ end
1402
+
1403
+ ##
1404
+ # The default port for this URI's scheme.
1405
+ # This method will always returns the default port for the URI's scheme
1406
+ # regardless of the presence of an explicit port in the URI.
1407
+ #
1408
+ # @return [Integer] The default port.
1409
+ def default_port
1410
+ URI.port_mapping[self.scheme.strip.downcase] if self.scheme
1411
+ end
1412
+
1413
+ ##
1414
+ # The combination of components that represent a site.
1415
+ # Combines the scheme, user, password, host, and port components.
1416
+ # Primarily useful for HTTP and HTTPS.
1417
+ #
1418
+ # For example, <code>"http://example.com/path?query"</code> would have a
1419
+ # <code>site</code> value of <code>"http://example.com"</code>.
1420
+ #
1421
+ # @return [String] The components that identify a site.
1422
+ def site
1423
+ (self.scheme || self.authority) && @site ||= begin
1424
+ site_string = "".dup
1425
+ site_string << "#{self.scheme}:" if self.scheme != nil
1426
+ site_string << "//#{self.authority}" if self.authority != nil
1427
+ site_string
1428
+ end
1429
+ end
1430
+
1431
+ ##
1432
+ # The normalized combination of components that represent a site.
1433
+ # Combines the scheme, user, password, host, and port components.
1434
+ # Primarily useful for HTTP and HTTPS.
1435
+ #
1436
+ # For example, <code>"http://example.com/path?query"</code> would have a
1437
+ # <code>site</code> value of <code>"http://example.com"</code>.
1438
+ #
1439
+ # @return [String] The normalized components that identify a site.
1440
+ def normalized_site
1441
+ return nil unless self.site
1442
+ @normalized_site ||= begin
1443
+ site_string = "".dup
1444
+ if self.normalized_scheme != nil
1445
+ site_string << "#{self.normalized_scheme}:"
1446
+ end
1447
+ if self.normalized_authority != nil
1448
+ site_string << "//#{self.normalized_authority}"
1449
+ end
1450
+ site_string
1451
+ end
1452
+ # All normalized values should be UTF-8
1453
+ @normalized_site.force_encoding(Encoding::UTF_8) if @normalized_site
1454
+ @normalized_site
1455
+ end
1456
+
1457
+ ##
1458
+ # Sets the site value for this URI.
1459
+ #
1460
+ # @param [String, #to_str] new_site The new site value.
1461
+ def site=(new_site)
1462
+ if new_site
1463
+ if !new_site.respond_to?(:to_str)
1464
+ raise TypeError, "Can't convert #{new_site.class} into String."
1465
+ end
1466
+ new_site = new_site.to_str
1467
+ # These two regular expressions derived from the primary parsing
1468
+ # expression
1469
+ self.scheme = new_site[/^(?:([^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?$/, 1]
1470
+ self.authority = new_site[
1471
+ /^(?:(?:[^:\/?#]+):)?(?:\/\/([^\/?#]*))?$/, 1
1472
+ ]
1473
+ else
1474
+ self.scheme = nil
1475
+ self.authority = nil
1476
+ end
1477
+ end
1478
+
1479
+ ##
1480
+ # The path component for this URI.
1481
+ #
1482
+ # @return [String] The path component.
1483
+ def path
1484
+ return defined?(@path) ? @path : EMPTY_STR
1485
+ end
1486
+
1487
+ NORMPATH = /^(?!\/)[^\/:]*:.*$/
1488
+ ##
1489
+ # The path component for this URI, normalized.
1490
+ #
1491
+ # @return [String] The path component, normalized.
1492
+ def normalized_path
1493
+ @normalized_path ||= begin
1494
+ path = self.path.to_s
1495
+ if self.scheme == nil && path =~ NORMPATH
1496
+ # Relative paths with colons in the first segment are ambiguous.
1497
+ path = path.sub(":", "%2F")
1498
+ end
1499
+ # String#split(delimeter, -1) uses the more strict splitting behavior
1500
+ # found by default in Python.
1501
+ result = path.strip.split(SLASH, -1).map do |segment|
1502
+ Addressable::URI.normalize_component(
1503
+ segment,
1504
+ Addressable::URI::CharacterClasses::PCHAR
1505
+ )
1506
+ end.join(SLASH)
1507
+
1508
+ result = URI.normalize_path(result)
1509
+ if result.empty? &&
1510
+ ["http", "https", "ftp", "tftp"].include?(self.normalized_scheme)
1511
+ result = SLASH.dup
1512
+ end
1513
+ result
1514
+ end
1515
+ # All normalized values should be UTF-8
1516
+ @normalized_path.force_encoding(Encoding::UTF_8) if @normalized_path
1517
+ @normalized_path
1518
+ end
1519
+
1520
+ ##
1521
+ # Sets the path component for this URI.
1522
+ #
1523
+ # @param [String, #to_str] new_path The new path component.
1524
+ def path=(new_path)
1525
+ if new_path && !new_path.respond_to?(:to_str)
1526
+ raise TypeError, "Can't convert #{new_path.class} into String."
1527
+ end
1528
+ @path = (new_path || EMPTY_STR).to_str
1529
+ if !@path.empty? && @path[0..0] != SLASH && host != nil
1530
+ @path = "/#{@path}"
1531
+ end
1532
+
1533
+ # Reset dependent values
1534
+ remove_instance_variable(:@normalized_path) if defined?(@normalized_path)
1535
+ remove_composite_values
1536
+
1537
+ # Ensure we haven't created an invalid URI
1538
+ validate()
1539
+ end
1540
+
1541
+ ##
1542
+ # The basename, if any, of the file in the path component.
1543
+ #
1544
+ # @return [String] The path's basename.
1545
+ def basename
1546
+ # Path cannot be nil
1547
+ return File.basename(self.path).gsub(/;[^\/]*$/, EMPTY_STR)
1548
+ end
1549
+
1550
+ ##
1551
+ # The extname, if any, of the file in the path component.
1552
+ # Empty string if there is no extension.
1553
+ #
1554
+ # @return [String] The path's extname.
1555
+ def extname
1556
+ return nil unless self.path
1557
+ return File.extname(self.basename)
1558
+ end
1559
+
1560
+ ##
1561
+ # The query component for this URI.
1562
+ #
1563
+ # @return [String] The query component.
1564
+ def query
1565
+ return defined?(@query) ? @query : nil
1566
+ end
1567
+
1568
+ ##
1569
+ # The query component for this URI, normalized.
1570
+ #
1571
+ # @return [String] The query component, normalized.
1572
+ def normalized_query(*flags)
1573
+ return nil unless self.query
1574
+ return @normalized_query if defined?(@normalized_query)
1575
+ @normalized_query ||= begin
1576
+ modified_query_class = Addressable::URI::CharacterClasses::QUERY.dup
1577
+ # Make sure possible key-value pair delimiters are escaped.
1578
+ modified_query_class.sub!("\\&", "").sub!("\\;", "")
1579
+ pairs = (self.query || "").split("&", -1)
1580
+ pairs.sort! if flags.include?(:sorted)
1581
+ component = pairs.map do |pair|
1582
+ Addressable::URI.normalize_component(pair, modified_query_class, "+")
1583
+ end.join("&")
1584
+ component == "" ? nil : component
1585
+ end
1586
+ # All normalized values should be UTF-8
1587
+ @normalized_query.force_encoding(Encoding::UTF_8) if @normalized_query
1588
+ @normalized_query
1589
+ end
1590
+
1591
+ ##
1592
+ # Sets the query component for this URI.
1593
+ #
1594
+ # @param [String, #to_str] new_query The new query component.
1595
+ def query=(new_query)
1596
+ if new_query && !new_query.respond_to?(:to_str)
1597
+ raise TypeError, "Can't convert #{new_query.class} into String."
1598
+ end
1599
+ @query = new_query ? new_query.to_str : nil
1600
+
1601
+ # Reset dependent values
1602
+ remove_instance_variable(:@normalized_query) if defined?(@normalized_query)
1603
+ remove_composite_values
1604
+ end
1605
+
1606
+ ##
1607
+ # Converts the query component to a Hash value.
1608
+ #
1609
+ # @param [Class] return_type The return type desired. Value must be either
1610
+ # `Hash` or `Array`.
1611
+ #
1612
+ # @return [Hash, Array, nil] The query string parsed as a Hash or Array
1613
+ # or nil if the query string is blank.
1614
+ #
1615
+ # @example
1616
+ # Addressable::URI.parse("?one=1&two=2&three=3").query_values
1617
+ # #=> {"one" => "1", "two" => "2", "three" => "3"}
1618
+ # Addressable::URI.parse("?one=two&one=three").query_values(Array)
1619
+ # #=> [["one", "two"], ["one", "three"]]
1620
+ # Addressable::URI.parse("?one=two&one=three").query_values(Hash)
1621
+ # #=> {"one" => "three"}
1622
+ # Addressable::URI.parse("?").query_values
1623
+ # #=> {}
1624
+ # Addressable::URI.parse("").query_values
1625
+ # #=> nil
1626
+ def query_values(return_type=Hash)
1627
+ empty_accumulator = Array == return_type ? [] : {}
1628
+ if return_type != Hash && return_type != Array
1629
+ raise ArgumentError, "Invalid return type. Must be Hash or Array."
1630
+ end
1631
+ return nil if self.query == nil
1632
+ split_query = self.query.split("&").map do |pair|
1633
+ pair.split("=", 2) if pair && !pair.empty?
1634
+ end.compact
1635
+ return split_query.inject(empty_accumulator.dup) do |accu, pair|
1636
+ # I'd rather use key/value identifiers instead of array lookups,
1637
+ # but in this case I really want to maintain the exact pair structure,
1638
+ # so it's best to make all changes in-place.
1639
+ pair[0] = URI.unencode_component(pair[0])
1640
+ if pair[1].respond_to?(:to_str)
1641
+ # I loathe the fact that I have to do this. Stupid HTML 4.01.
1642
+ # Treating '+' as a space was just an unbelievably bad idea.
1643
+ # There was nothing wrong with '%20'!
1644
+ # If it ain't broke, don't fix it!
1645
+ pair[1] = URI.unencode_component(pair[1].to_str.gsub(/\+/, " "))
1646
+ end
1647
+ if return_type == Hash
1648
+ accu[pair[0]] = pair[1]
1649
+ else
1650
+ accu << pair
1651
+ end
1652
+ accu
1653
+ end
1654
+ end
1655
+
1656
+ ##
1657
+ # Sets the query component for this URI from a Hash object.
1658
+ # An empty Hash or Array will result in an empty query string.
1659
+ #
1660
+ # @param [Hash, #to_hash, Array] new_query_values The new query values.
1661
+ #
1662
+ # @example
1663
+ # uri.query_values = {:a => "a", :b => ["c", "d", "e"]}
1664
+ # uri.query
1665
+ # # => "a=a&b=c&b=d&b=e"
1666
+ # uri.query_values = [['a', 'a'], ['b', 'c'], ['b', 'd'], ['b', 'e']]
1667
+ # uri.query
1668
+ # # => "a=a&b=c&b=d&b=e"
1669
+ # uri.query_values = [['a', 'a'], ['b', ['c', 'd', 'e']]]
1670
+ # uri.query
1671
+ # # => "a=a&b=c&b=d&b=e"
1672
+ # uri.query_values = [['flag'], ['key', 'value']]
1673
+ # uri.query
1674
+ # # => "flag&key=value"
1675
+ def query_values=(new_query_values)
1676
+ if new_query_values == nil
1677
+ self.query = nil
1678
+ return nil
1679
+ end
1680
+
1681
+ if !new_query_values.is_a?(Array)
1682
+ if !new_query_values.respond_to?(:to_hash)
1683
+ raise TypeError,
1684
+ "Can't convert #{new_query_values.class} into Hash."
1685
+ end
1686
+ new_query_values = new_query_values.to_hash
1687
+ new_query_values = new_query_values.map do |key, value|
1688
+ key = key.to_s if key.kind_of?(Symbol)
1689
+ [key, value]
1690
+ end
1691
+ # Useful default for OAuth and caching.
1692
+ # Only to be used for non-Array inputs. Arrays should preserve order.
1693
+ new_query_values.sort!
1694
+ end
1695
+
1696
+ # new_query_values have form [['key1', 'value1'], ['key2', 'value2']]
1697
+ buffer = "".dup
1698
+ new_query_values.each do |key, value|
1699
+ encoded_key = URI.encode_component(
1700
+ key, CharacterClasses::UNRESERVED
1701
+ )
1702
+ if value == nil
1703
+ buffer << "#{encoded_key}&"
1704
+ elsif value.kind_of?(Array)
1705
+ value.each do |sub_value|
1706
+ encoded_value = URI.encode_component(
1707
+ sub_value, CharacterClasses::UNRESERVED
1708
+ )
1709
+ buffer << "#{encoded_key}=#{encoded_value}&"
1710
+ end
1711
+ else
1712
+ encoded_value = URI.encode_component(
1713
+ value, CharacterClasses::UNRESERVED
1714
+ )
1715
+ buffer << "#{encoded_key}=#{encoded_value}&"
1716
+ end
1717
+ end
1718
+ self.query = buffer.chop
1719
+ end
1720
+
1721
+ ##
1722
+ # The HTTP request URI for this URI. This is the path and the
1723
+ # query string.
1724
+ #
1725
+ # @return [String] The request URI required for an HTTP request.
1726
+ def request_uri
1727
+ return nil if self.absolute? && self.scheme !~ /^https?$/i
1728
+ return (
1729
+ (!self.path.empty? ? self.path : SLASH) +
1730
+ (self.query ? "?#{self.query}" : EMPTY_STR)
1731
+ )
1732
+ end
1733
+
1734
+ ##
1735
+ # Sets the HTTP request URI for this URI.
1736
+ #
1737
+ # @param [String, #to_str] new_request_uri The new HTTP request URI.
1738
+ def request_uri=(new_request_uri)
1739
+ if !new_request_uri.respond_to?(:to_str)
1740
+ raise TypeError, "Can't convert #{new_request_uri.class} into String."
1741
+ end
1742
+ if self.absolute? && self.scheme !~ /^https?$/i
1743
+ raise InvalidURIError,
1744
+ "Cannot set an HTTP request URI for a non-HTTP URI."
1745
+ end
1746
+ new_request_uri = new_request_uri.to_str
1747
+ path_component = new_request_uri[/^([^\?]*)\?(?:.*)$/, 1]
1748
+ query_component = new_request_uri[/^(?:[^\?]*)\?(.*)$/, 1]
1749
+ path_component = path_component.to_s
1750
+ path_component = (!path_component.empty? ? path_component : SLASH)
1751
+ self.path = path_component
1752
+ self.query = query_component
1753
+
1754
+ # Reset dependent values
1755
+ remove_composite_values
1756
+ end
1757
+
1758
+ ##
1759
+ # The fragment component for this URI.
1760
+ #
1761
+ # @return [String] The fragment component.
1762
+ def fragment
1763
+ return defined?(@fragment) ? @fragment : nil
1764
+ end
1765
+
1766
+ ##
1767
+ # The fragment component for this URI, normalized.
1768
+ #
1769
+ # @return [String] The fragment component, normalized.
1770
+ def normalized_fragment
1771
+ return nil unless self.fragment
1772
+ return @normalized_fragment if defined?(@normalized_fragment)
1773
+ @normalized_fragment ||= begin
1774
+ component = Addressable::URI.normalize_component(
1775
+ self.fragment,
1776
+ Addressable::URI::CharacterClasses::FRAGMENT
1777
+ )
1778
+ component == "" ? nil : component
1779
+ end
1780
+ # All normalized values should be UTF-8
1781
+ if @normalized_fragment
1782
+ @normalized_fragment.force_encoding(Encoding::UTF_8)
1783
+ end
1784
+ @normalized_fragment
1785
+ end
1786
+
1787
+ ##
1788
+ # Sets the fragment component for this URI.
1789
+ #
1790
+ # @param [String, #to_str] new_fragment The new fragment component.
1791
+ def fragment=(new_fragment)
1792
+ if new_fragment && !new_fragment.respond_to?(:to_str)
1793
+ raise TypeError, "Can't convert #{new_fragment.class} into String."
1794
+ end
1795
+ @fragment = new_fragment ? new_fragment.to_str : nil
1796
+
1797
+ # Reset dependent values
1798
+ remove_instance_variable(:@normalized_fragment) if defined?(@normalized_fragment)
1799
+ remove_composite_values
1800
+
1801
+ # Ensure we haven't created an invalid URI
1802
+ validate()
1803
+ end
1804
+
1805
+ ##
1806
+ # Determines if the scheme indicates an IP-based protocol.
1807
+ #
1808
+ # @return [TrueClass, FalseClass]
1809
+ # <code>true</code> if the scheme indicates an IP-based protocol.
1810
+ # <code>false</code> otherwise.
1811
+ def ip_based?
1812
+ if self.scheme
1813
+ return URI.ip_based_schemes.include?(
1814
+ self.scheme.strip.downcase)
1815
+ end
1816
+ return false
1817
+ end
1818
+
1819
+ ##
1820
+ # Determines if the URI is relative.
1821
+ #
1822
+ # @return [TrueClass, FalseClass]
1823
+ # <code>true</code> if the URI is relative. <code>false</code>
1824
+ # otherwise.
1825
+ def relative?
1826
+ return self.scheme.nil?
1827
+ end
1828
+
1829
+ ##
1830
+ # Determines if the URI is absolute.
1831
+ #
1832
+ # @return [TrueClass, FalseClass]
1833
+ # <code>true</code> if the URI is absolute. <code>false</code>
1834
+ # otherwise.
1835
+ def absolute?
1836
+ return !relative?
1837
+ end
1838
+
1839
+ ##
1840
+ # Joins two URIs together.
1841
+ #
1842
+ # @param [String, Addressable::URI, #to_str] The URI to join with.
1843
+ #
1844
+ # @return [Addressable::URI] The joined URI.
1845
+ def join(uri)
1846
+ if !uri.respond_to?(:to_str)
1847
+ raise TypeError, "Can't convert #{uri.class} into String."
1848
+ end
1849
+ if !uri.kind_of?(URI)
1850
+ # Otherwise, convert to a String, then parse.
1851
+ uri = URI.parse(uri.to_str)
1852
+ end
1853
+ if uri.to_s.empty?
1854
+ return self.dup
1855
+ end
1856
+
1857
+ joined_scheme = nil
1858
+ joined_user = nil
1859
+ joined_password = nil
1860
+ joined_host = nil
1861
+ joined_port = nil
1862
+ joined_path = nil
1863
+ joined_query = nil
1864
+ joined_fragment = nil
1865
+
1866
+ # Section 5.2.2 of RFC 3986
1867
+ if uri.scheme != nil
1868
+ joined_scheme = uri.scheme
1869
+ joined_user = uri.user
1870
+ joined_password = uri.password
1871
+ joined_host = uri.host
1872
+ joined_port = uri.port
1873
+ joined_path = URI.normalize_path(uri.path)
1874
+ joined_query = uri.query
1875
+ else
1876
+ if uri.authority != nil
1877
+ joined_user = uri.user
1878
+ joined_password = uri.password
1879
+ joined_host = uri.host
1880
+ joined_port = uri.port
1881
+ joined_path = URI.normalize_path(uri.path)
1882
+ joined_query = uri.query
1883
+ else
1884
+ if uri.path == nil || uri.path.empty?
1885
+ joined_path = self.path
1886
+ if uri.query != nil
1887
+ joined_query = uri.query
1888
+ else
1889
+ joined_query = self.query
1890
+ end
1891
+ else
1892
+ if uri.path[0..0] == SLASH
1893
+ joined_path = URI.normalize_path(uri.path)
1894
+ else
1895
+ base_path = self.path.dup
1896
+ base_path = EMPTY_STR if base_path == nil
1897
+ base_path = URI.normalize_path(base_path)
1898
+
1899
+ # Section 5.2.3 of RFC 3986
1900
+ #
1901
+ # Removes the right-most path segment from the base path.
1902
+ if base_path =~ /\//
1903
+ base_path.gsub!(/\/[^\/]+$/, SLASH)
1904
+ else
1905
+ base_path = EMPTY_STR
1906
+ end
1907
+
1908
+ # If the base path is empty and an authority segment has been
1909
+ # defined, use a base path of SLASH
1910
+ if base_path.empty? && self.authority != nil
1911
+ base_path = SLASH
1912
+ end
1913
+
1914
+ joined_path = URI.normalize_path(base_path + uri.path)
1915
+ end
1916
+ joined_query = uri.query
1917
+ end
1918
+ joined_user = self.user
1919
+ joined_password = self.password
1920
+ joined_host = self.host
1921
+ joined_port = self.port
1922
+ end
1923
+ joined_scheme = self.scheme
1924
+ end
1925
+ joined_fragment = uri.fragment
1926
+
1927
+ return self.class.new(
1928
+ :scheme => joined_scheme,
1929
+ :user => joined_user,
1930
+ :password => joined_password,
1931
+ :host => joined_host,
1932
+ :port => joined_port,
1933
+ :path => joined_path,
1934
+ :query => joined_query,
1935
+ :fragment => joined_fragment
1936
+ )
1937
+ end
1938
+ alias_method :+, :join
1939
+
1940
+ ##
1941
+ # Destructive form of <code>join</code>.
1942
+ #
1943
+ # @param [String, Addressable::URI, #to_str] The URI to join with.
1944
+ #
1945
+ # @return [Addressable::URI] The joined URI.
1946
+ #
1947
+ # @see Addressable::URI#join
1948
+ def join!(uri)
1949
+ replace_self(self.join(uri))
1950
+ end
1951
+
1952
+ ##
1953
+ # Merges a URI with a <code>Hash</code> of components.
1954
+ # This method has different behavior from <code>join</code>. Any
1955
+ # components present in the <code>hash</code> parameter will override the
1956
+ # original components. The path component is not treated specially.
1957
+ #
1958
+ # @param [Hash, Addressable::URI, #to_hash] The components to merge with.
1959
+ #
1960
+ # @return [Addressable::URI] The merged URI.
1961
+ #
1962
+ # @see Hash#merge
1963
+ def merge(hash)
1964
+ if !hash.respond_to?(:to_hash)
1965
+ raise TypeError, "Can't convert #{hash.class} into Hash."
1966
+ end
1967
+ hash = hash.to_hash
1968
+
1969
+ if hash.has_key?(:authority)
1970
+ if (hash.keys & [:userinfo, :user, :password, :host, :port]).any?
1971
+ raise ArgumentError,
1972
+ "Cannot specify both an authority and any of the components " +
1973
+ "within the authority."
1974
+ end
1975
+ end
1976
+ if hash.has_key?(:userinfo)
1977
+ if (hash.keys & [:user, :password]).any?
1978
+ raise ArgumentError,
1979
+ "Cannot specify both a userinfo and either the user or password."
1980
+ end
1981
+ end
1982
+
1983
+ uri = self.class.new
1984
+ uri.defer_validation do
1985
+ # Bunch of crazy logic required because of the composite components
1986
+ # like userinfo and authority.
1987
+ uri.scheme =
1988
+ hash.has_key?(:scheme) ? hash[:scheme] : self.scheme
1989
+ if hash.has_key?(:authority)
1990
+ uri.authority =
1991
+ hash.has_key?(:authority) ? hash[:authority] : self.authority
1992
+ end
1993
+ if hash.has_key?(:userinfo)
1994
+ uri.userinfo =
1995
+ hash.has_key?(:userinfo) ? hash[:userinfo] : self.userinfo
1996
+ end
1997
+ if !hash.has_key?(:userinfo) && !hash.has_key?(:authority)
1998
+ uri.user =
1999
+ hash.has_key?(:user) ? hash[:user] : self.user
2000
+ uri.password =
2001
+ hash.has_key?(:password) ? hash[:password] : self.password
2002
+ end
2003
+ if !hash.has_key?(:authority)
2004
+ uri.host =
2005
+ hash.has_key?(:host) ? hash[:host] : self.host
2006
+ uri.port =
2007
+ hash.has_key?(:port) ? hash[:port] : self.port
2008
+ end
2009
+ uri.path =
2010
+ hash.has_key?(:path) ? hash[:path] : self.path
2011
+ uri.query =
2012
+ hash.has_key?(:query) ? hash[:query] : self.query
2013
+ uri.fragment =
2014
+ hash.has_key?(:fragment) ? hash[:fragment] : self.fragment
2015
+ end
2016
+
2017
+ return uri
2018
+ end
2019
+
2020
+ ##
2021
+ # Destructive form of <code>merge</code>.
2022
+ #
2023
+ # @param [Hash, Addressable::URI, #to_hash] The components to merge with.
2024
+ #
2025
+ # @return [Addressable::URI] The merged URI.
2026
+ #
2027
+ # @see Addressable::URI#merge
2028
+ def merge!(uri)
2029
+ replace_self(self.merge(uri))
2030
+ end
2031
+
2032
+ ##
2033
+ # Returns the shortest normalized relative form of this URI that uses the
2034
+ # supplied URI as a base for resolution. Returns an absolute URI if
2035
+ # necessary. This is effectively the opposite of <code>route_to</code>.
2036
+ #
2037
+ # @param [String, Addressable::URI, #to_str] uri The URI to route from.
2038
+ #
2039
+ # @return [Addressable::URI]
2040
+ # The normalized relative URI that is equivalent to the original URI.
2041
+ def route_from(uri)
2042
+ uri = URI.parse(uri).normalize
2043
+ normalized_self = self.normalize
2044
+ if normalized_self.relative?
2045
+ raise ArgumentError, "Expected absolute URI, got: #{self.to_s}"
2046
+ end
2047
+ if uri.relative?
2048
+ raise ArgumentError, "Expected absolute URI, got: #{uri.to_s}"
2049
+ end
2050
+ if normalized_self == uri
2051
+ return Addressable::URI.parse("##{normalized_self.fragment}")
2052
+ end
2053
+ components = normalized_self.to_hash
2054
+ if normalized_self.scheme == uri.scheme
2055
+ components[:scheme] = nil
2056
+ if normalized_self.authority == uri.authority
2057
+ components[:user] = nil
2058
+ components[:password] = nil
2059
+ components[:host] = nil
2060
+ components[:port] = nil
2061
+ if normalized_self.path == uri.path
2062
+ components[:path] = nil
2063
+ if normalized_self.query == uri.query
2064
+ components[:query] = nil
2065
+ end
2066
+ else
2067
+ if uri.path != SLASH and components[:path]
2068
+ self_splitted_path = split_path(components[:path])
2069
+ uri_splitted_path = split_path(uri.path)
2070
+ self_dir = self_splitted_path.shift
2071
+ uri_dir = uri_splitted_path.shift
2072
+ while !self_splitted_path.empty? && !uri_splitted_path.empty? and self_dir == uri_dir
2073
+ self_dir = self_splitted_path.shift
2074
+ uri_dir = uri_splitted_path.shift
2075
+ end
2076
+ components[:path] = (uri_splitted_path.fill('..') + [self_dir] + self_splitted_path).join(SLASH)
2077
+ end
2078
+ end
2079
+ end
2080
+ end
2081
+ # Avoid network-path references.
2082
+ if components[:host] != nil
2083
+ components[:scheme] = normalized_self.scheme
2084
+ end
2085
+ return Addressable::URI.new(
2086
+ :scheme => components[:scheme],
2087
+ :user => components[:user],
2088
+ :password => components[:password],
2089
+ :host => components[:host],
2090
+ :port => components[:port],
2091
+ :path => components[:path],
2092
+ :query => components[:query],
2093
+ :fragment => components[:fragment]
2094
+ )
2095
+ end
2096
+
2097
+ ##
2098
+ # Returns the shortest normalized relative form of the supplied URI that
2099
+ # uses this URI as a base for resolution. Returns an absolute URI if
2100
+ # necessary. This is effectively the opposite of <code>route_from</code>.
2101
+ #
2102
+ # @param [String, Addressable::URI, #to_str] uri The URI to route to.
2103
+ #
2104
+ # @return [Addressable::URI]
2105
+ # The normalized relative URI that is equivalent to the supplied URI.
2106
+ def route_to(uri)
2107
+ return URI.parse(uri).route_from(self)
2108
+ end
2109
+
2110
+ ##
2111
+ # Returns a normalized URI object.
2112
+ #
2113
+ # NOTE: This method does not attempt to fully conform to specifications.
2114
+ # It exists largely to correct other people's failures to read the
2115
+ # specifications, and also to deal with caching issues since several
2116
+ # different URIs may represent the same resource and should not be
2117
+ # cached multiple times.
2118
+ #
2119
+ # @return [Addressable::URI] The normalized URI.
2120
+ def normalize
2121
+ # This is a special exception for the frequently misused feed
2122
+ # URI scheme.
2123
+ if normalized_scheme == "feed"
2124
+ if self.to_s =~ /^feed:\/*http:\/*/
2125
+ return URI.parse(
2126
+ self.to_s[/^feed:\/*(http:\/*.*)/, 1]
2127
+ ).normalize
2128
+ end
2129
+ end
2130
+
2131
+ return self.class.new(
2132
+ :scheme => normalized_scheme,
2133
+ :authority => normalized_authority,
2134
+ :path => normalized_path,
2135
+ :query => normalized_query,
2136
+ :fragment => normalized_fragment
2137
+ )
2138
+ end
2139
+
2140
+ ##
2141
+ # Destructively normalizes this URI object.
2142
+ #
2143
+ # @return [Addressable::URI] The normalized URI.
2144
+ #
2145
+ # @see Addressable::URI#normalize
2146
+ def normalize!
2147
+ replace_self(self.normalize)
2148
+ end
2149
+
2150
+ ##
2151
+ # Creates a URI suitable for display to users. If semantic attacks are
2152
+ # likely, the application should try to detect these and warn the user.
2153
+ # See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
2154
+ # section 7.6 for more information.
2155
+ #
2156
+ # @return [Addressable::URI] A URI suitable for display purposes.
2157
+ def display_uri
2158
+ display_uri = self.normalize
2159
+ display_uri.host = ::Addressable::IDNA.to_unicode(display_uri.host)
2160
+ return display_uri
2161
+ end
2162
+
2163
+ ##
2164
+ # Returns <code>true</code> if the URI objects are equal. This method
2165
+ # normalizes both URIs before doing the comparison, and allows comparison
2166
+ # against <code>Strings</code>.
2167
+ #
2168
+ # @param [Object] uri The URI to compare.
2169
+ #
2170
+ # @return [TrueClass, FalseClass]
2171
+ # <code>true</code> if the URIs are equivalent, <code>false</code>
2172
+ # otherwise.
2173
+ def ===(uri)
2174
+ if uri.respond_to?(:normalize)
2175
+ uri_string = uri.normalize.to_s
2176
+ else
2177
+ begin
2178
+ uri_string = ::Addressable::URI.parse(uri).normalize.to_s
2179
+ rescue InvalidURIError, TypeError
2180
+ return false
2181
+ end
2182
+ end
2183
+ return self.normalize.to_s == uri_string
2184
+ end
2185
+
2186
+ ##
2187
+ # Returns <code>true</code> if the URI objects are equal. This method
2188
+ # normalizes both URIs before doing the comparison.
2189
+ #
2190
+ # @param [Object] uri The URI to compare.
2191
+ #
2192
+ # @return [TrueClass, FalseClass]
2193
+ # <code>true</code> if the URIs are equivalent, <code>false</code>
2194
+ # otherwise.
2195
+ def ==(uri)
2196
+ return false unless uri.kind_of?(URI)
2197
+ return self.normalize.to_s == uri.normalize.to_s
2198
+ end
2199
+
2200
+ ##
2201
+ # Returns <code>true</code> if the URI objects are equal. This method
2202
+ # does NOT normalize either URI before doing the comparison.
2203
+ #
2204
+ # @param [Object] uri The URI to compare.
2205
+ #
2206
+ # @return [TrueClass, FalseClass]
2207
+ # <code>true</code> if the URIs are equivalent, <code>false</code>
2208
+ # otherwise.
2209
+ def eql?(uri)
2210
+ return false unless uri.kind_of?(URI)
2211
+ return self.to_s == uri.to_s
2212
+ end
2213
+
2214
+ ##
2215
+ # A hash value that will make a URI equivalent to its normalized
2216
+ # form.
2217
+ #
2218
+ # @return [Integer] A hash of the URI.
2219
+ def hash
2220
+ @hash ||= self.to_s.hash * -1
2221
+ end
2222
+
2223
+ ##
2224
+ # Clones the URI object.
2225
+ #
2226
+ # @return [Addressable::URI] The cloned URI.
2227
+ def dup
2228
+ duplicated_uri = self.class.new(
2229
+ :scheme => self.scheme ? self.scheme.dup : nil,
2230
+ :user => self.user ? self.user.dup : nil,
2231
+ :password => self.password ? self.password.dup : nil,
2232
+ :host => self.host ? self.host.dup : nil,
2233
+ :port => self.port,
2234
+ :path => self.path ? self.path.dup : nil,
2235
+ :query => self.query ? self.query.dup : nil,
2236
+ :fragment => self.fragment ? self.fragment.dup : nil
2237
+ )
2238
+ return duplicated_uri
2239
+ end
2240
+
2241
+ ##
2242
+ # Omits components from a URI.
2243
+ #
2244
+ # @param [Symbol] *components The components to be omitted.
2245
+ #
2246
+ # @return [Addressable::URI] The URI with components omitted.
2247
+ #
2248
+ # @example
2249
+ # uri = Addressable::URI.parse("http://example.com/path?query")
2250
+ # #=> #<Addressable::URI:0xcc5e7a URI:http://example.com/path?query>
2251
+ # uri.omit(:scheme, :authority)
2252
+ # #=> #<Addressable::URI:0xcc4d86 URI:/path?query>
2253
+ def omit(*components)
2254
+ invalid_components = components - [
2255
+ :scheme, :user, :password, :userinfo, :host, :port, :authority,
2256
+ :path, :query, :fragment
2257
+ ]
2258
+ unless invalid_components.empty?
2259
+ raise ArgumentError,
2260
+ "Invalid component names: #{invalid_components.inspect}."
2261
+ end
2262
+ duplicated_uri = self.dup
2263
+ duplicated_uri.defer_validation do
2264
+ components.each do |component|
2265
+ duplicated_uri.send((component.to_s + "=").to_sym, nil)
2266
+ end
2267
+ duplicated_uri.user = duplicated_uri.normalized_user
2268
+ end
2269
+ duplicated_uri
2270
+ end
2271
+
2272
+ ##
2273
+ # Destructive form of omit.
2274
+ #
2275
+ # @param [Symbol] *components The components to be omitted.
2276
+ #
2277
+ # @return [Addressable::URI] The URI with components omitted.
2278
+ #
2279
+ # @see Addressable::URI#omit
2280
+ def omit!(*components)
2281
+ replace_self(self.omit(*components))
2282
+ end
2283
+
2284
+ ##
2285
+ # Determines if the URI is an empty string.
2286
+ #
2287
+ # @return [TrueClass, FalseClass]
2288
+ # Returns <code>true</code> if empty, <code>false</code> otherwise.
2289
+ def empty?
2290
+ return self.to_s.empty?
2291
+ end
2292
+
2293
+ ##
2294
+ # Converts the URI to a <code>String</code>.
2295
+ #
2296
+ # @return [String] The URI's <code>String</code> representation.
2297
+ def to_s
2298
+ if self.scheme == nil && self.path != nil && !self.path.empty? &&
2299
+ self.path =~ NORMPATH
2300
+ raise InvalidURIError,
2301
+ "Cannot assemble URI string with ambiguous path: '#{self.path}'"
2302
+ end
2303
+ @uri_string ||= begin
2304
+ uri_string = String.new
2305
+ uri_string << "#{self.scheme}:" if self.scheme != nil
2306
+ uri_string << "//#{self.authority}" if self.authority != nil
2307
+ uri_string << self.path.to_s
2308
+ uri_string << "?#{self.query}" if self.query != nil
2309
+ uri_string << "##{self.fragment}" if self.fragment != nil
2310
+ uri_string.force_encoding(Encoding::UTF_8)
2311
+ uri_string
2312
+ end
2313
+ end
2314
+
2315
+ ##
2316
+ # URI's are glorified <code>Strings</code>. Allow implicit conversion.
2317
+ alias_method :to_str, :to_s
2318
+
2319
+ ##
2320
+ # Returns a Hash of the URI components.
2321
+ #
2322
+ # @return [Hash] The URI as a <code>Hash</code> of components.
2323
+ def to_hash
2324
+ return {
2325
+ :scheme => self.scheme,
2326
+ :user => self.user,
2327
+ :password => self.password,
2328
+ :host => self.host,
2329
+ :port => self.port,
2330
+ :path => self.path,
2331
+ :query => self.query,
2332
+ :fragment => self.fragment
2333
+ }
2334
+ end
2335
+
2336
+ ##
2337
+ # Returns a <code>String</code> representation of the URI object's state.
2338
+ #
2339
+ # @return [String] The URI object's state, as a <code>String</code>.
2340
+ def inspect
2341
+ sprintf("#<%s:%#0x URI:%s>", URI.to_s, self.object_id, self.to_s)
2342
+ end
2343
+
2344
+ ##
2345
+ # This method allows you to make several changes to a URI simultaneously,
2346
+ # which separately would cause validation errors, but in conjunction,
2347
+ # are valid. The URI will be revalidated as soon as the entire block has
2348
+ # been executed.
2349
+ #
2350
+ # @param [Proc] block
2351
+ # A set of operations to perform on a given URI.
2352
+ def defer_validation(&block)
2353
+ raise LocalJumpError, "No block given." unless block
2354
+ @validation_deferred = true
2355
+ block.call()
2356
+ @validation_deferred = false
2357
+ validate
2358
+ return nil
2359
+ end
2360
+
2361
+ protected
2362
+ SELF_REF = '.'
2363
+ PARENT = '..'
2364
+
2365
+ RULE_2A = /\/\.\/|\/\.$/
2366
+ RULE_2B_2C = /\/([^\/]*)\/\.\.\/|\/([^\/]*)\/\.\.$/
2367
+ RULE_2D = /^\.\.?\/?/
2368
+ RULE_PREFIXED_PARENT = /^\/\.\.?\/|^(\/\.\.?)+\/?$/
2369
+
2370
+ ##
2371
+ # Resolves paths to their simplest form.
2372
+ #
2373
+ # @param [String] path The path to normalize.
2374
+ #
2375
+ # @return [String] The normalized path.
2376
+ def self.normalize_path(path)
2377
+ # Section 5.2.4 of RFC 3986
2378
+
2379
+ return nil if path.nil?
2380
+ normalized_path = path.dup
2381
+ begin
2382
+ mod = nil
2383
+ mod ||= normalized_path.gsub!(RULE_2A, SLASH)
2384
+
2385
+ pair = normalized_path.match(RULE_2B_2C)
2386
+ parent, current = pair[1], pair[2] if pair
2387
+ if pair && ((parent != SELF_REF && parent != PARENT) ||
2388
+ (current != SELF_REF && current != PARENT))
2389
+ mod ||= normalized_path.gsub!(
2390
+ Regexp.new(
2391
+ "/#{Regexp.escape(parent.to_s)}/\\.\\./|" +
2392
+ "(/#{Regexp.escape(current.to_s)}/\\.\\.$)"
2393
+ ), SLASH
2394
+ )
2395
+ end
2396
+
2397
+ mod ||= normalized_path.gsub!(RULE_2D, EMPTY_STR)
2398
+ # Non-standard, removes prefixed dotted segments from path.
2399
+ mod ||= normalized_path.gsub!(RULE_PREFIXED_PARENT, SLASH)
2400
+ end until mod.nil?
2401
+
2402
+ return normalized_path
2403
+ end
2404
+
2405
+ ##
2406
+ # Ensures that the URI is valid.
2407
+ def validate
2408
+ return if !!@validation_deferred
2409
+ if self.scheme != nil && self.ip_based? &&
2410
+ (self.host == nil || self.host.empty?) &&
2411
+ (self.path == nil || self.path.empty?)
2412
+ raise InvalidURIError,
2413
+ "Absolute URI missing hierarchical segment: '#{self.to_s}'"
2414
+ end
2415
+ if self.host == nil
2416
+ if self.port != nil ||
2417
+ self.user != nil ||
2418
+ self.password != nil
2419
+ raise InvalidURIError, "Hostname not supplied: '#{self.to_s}'"
2420
+ end
2421
+ end
2422
+ if self.path != nil && !self.path.empty? && self.path[0..0] != SLASH &&
2423
+ self.authority != nil
2424
+ raise InvalidURIError,
2425
+ "Cannot have a relative path with an authority set: '#{self.to_s}'"
2426
+ end
2427
+ if self.path != nil && !self.path.empty? &&
2428
+ self.path[0..1] == SLASH + SLASH && self.authority == nil
2429
+ raise InvalidURIError,
2430
+ "Cannot have a path with two leading slashes " +
2431
+ "without an authority set: '#{self.to_s}'"
2432
+ end
2433
+ unreserved = CharacterClasses::UNRESERVED
2434
+ sub_delims = CharacterClasses::SUB_DELIMS
2435
+ if !self.host.nil? && (self.host =~ /[<>{}\/\\\?\#\@"[[:space:]]]/ ||
2436
+ (self.host[/^\[(.*)\]$/, 1] != nil && self.host[/^\[(.*)\]$/, 1] !~
2437
+ Regexp.new("^[#{unreserved}#{sub_delims}:]*$")))
2438
+ raise InvalidURIError, "Invalid character in host: '#{self.host.to_s}'"
2439
+ end
2440
+ return nil
2441
+ end
2442
+
2443
+ ##
2444
+ # Replaces the internal state of self with the specified URI's state.
2445
+ # Used in destructive operations to avoid massive code repetition.
2446
+ #
2447
+ # @param [Addressable::URI] uri The URI to replace <code>self</code> with.
2448
+ #
2449
+ # @return [Addressable::URI] <code>self</code>.
2450
+ def replace_self(uri)
2451
+ # Reset dependent values
2452
+ instance_variables.each do |var|
2453
+ if instance_variable_defined?(var) && var != :@validation_deferred
2454
+ remove_instance_variable(var)
2455
+ end
2456
+ end
2457
+
2458
+ @scheme = uri.scheme
2459
+ @user = uri.user
2460
+ @password = uri.password
2461
+ @host = uri.host
2462
+ @port = uri.port
2463
+ @path = uri.path
2464
+ @query = uri.query
2465
+ @fragment = uri.fragment
2466
+ return self
2467
+ end
2468
+
2469
+ ##
2470
+ # Splits path string with "/" (slash).
2471
+ # It is considered that there is empty string after last slash when
2472
+ # path ends with slash.
2473
+ #
2474
+ # @param [String] path The path to split.
2475
+ #
2476
+ # @return [Array<String>] An array of parts of path.
2477
+ def split_path(path)
2478
+ splitted = path.split(SLASH)
2479
+ splitted << EMPTY_STR if path.end_with? SLASH
2480
+ splitted
2481
+ end
2482
+
2483
+ ##
2484
+ # Resets composite values for the entire URI
2485
+ #
2486
+ # @api private
2487
+ def remove_composite_values
2488
+ remove_instance_variable(:@uri_string) if defined?(@uri_string)
2489
+ remove_instance_variable(:@hash) if defined?(@hash)
2490
+ end
2491
+ end
2492
+ end