cloudsmith-api 0.53.1 → 0.57.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1695) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +24 -24
  3. data/README.md +32 -27
  4. data/build.json +1 -1
  5. data/docs/AlpinePackageUpload.md +8 -1
  6. data/docs/BadgesApi.md +21 -8
  7. data/docs/ConanPackageUpload.md +8 -1
  8. data/docs/DistrosApi.md +3 -13
  9. data/docs/EntitlementUsageMetrics.md +8 -0
  10. data/docs/EntitlementsApi.md +17 -63
  11. data/docs/EntitlementsCreate.md +4 -0
  12. data/docs/EntitlementsPartialUpdate.md +4 -0
  13. data/docs/EntitlementsRefresh.md +4 -0
  14. data/docs/FilesApi.md +6 -31
  15. data/docs/FormatsApi.md +3 -13
  16. data/docs/MavenPackageUpload.md +8 -1
  17. data/docs/MetricsApi.md +94 -37
  18. data/docs/NamespacesApi.md +3 -13
  19. data/docs/OrgsApi.md +3 -13
  20. data/docs/Package.md +8 -1
  21. data/docs/PackageCopy.md +8 -1
  22. data/docs/PackageMove.md +8 -1
  23. data/docs/PackageUsageMetrics.md +8 -0
  24. data/docs/PackagesApi.md +112 -301
  25. data/docs/PackagesownerrepoFiles.md +1 -0
  26. data/docs/QuotaApi.md +38 -82
  27. data/docs/QuotaHistory.md +1 -1
  28. data/docs/QuotaHistoryHistory.md +13 -0
  29. data/docs/RatesApi.md +2 -7
  30. data/docs/RawPackageUpload.md +8 -1
  31. data/docs/ReposApi.md +7 -37
  32. data/docs/RepositoryToken.md +7 -0
  33. data/docs/RepositoryTokenRefresh.md +7 -0
  34. data/docs/RepositoryTokenSyncTokens.md +7 -0
  35. data/docs/StatusApi.md +1 -1
  36. data/docs/StorageregionsApi.md +3 -13
  37. data/docs/UserApi.md +3 -13
  38. data/docs/UsersApi.md +2 -7
  39. data/docs/VagrantPackageUpload.md +8 -1
  40. data/docs/VulnerabilitiesApi.md +264 -0
  41. data/docs/VulnerabilityScanResults.md +15 -0
  42. data/docs/VulnerabilityScanResultsList.md +14 -0
  43. data/docs/WebhooksApi.md +6 -31
  44. data/lib/cloudsmith-api.rb +6 -4
  45. data/lib/cloudsmith-api/api/badges_api.rb +28 -1
  46. data/lib/cloudsmith-api/api/distros_api.rb +2 -2
  47. data/lib/cloudsmith-api/api/entitlements_api.rb +13 -10
  48. data/lib/cloudsmith-api/api/files_api.rb +5 -5
  49. data/lib/cloudsmith-api/api/formats_api.rb +2 -2
  50. data/lib/cloudsmith-api/api/metrics_api.rb +106 -40
  51. data/lib/cloudsmith-api/api/namespaces_api.rb +2 -2
  52. data/lib/cloudsmith-api/api/orgs_api.rb +2 -2
  53. data/lib/cloudsmith-api/api/packages_api.rb +113 -50
  54. data/lib/cloudsmith-api/api/quota_api.rb +56 -80
  55. data/lib/cloudsmith-api/api/rates_api.rb +1 -1
  56. data/lib/cloudsmith-api/api/repos_api.rb +6 -6
  57. data/lib/cloudsmith-api/api/storageregions_api.rb +2 -2
  58. data/lib/cloudsmith-api/api/user_api.rb +2 -2
  59. data/lib/cloudsmith-api/api/users_api.rb +1 -1
  60. data/lib/cloudsmith-api/api/vulnerabilities_api.rb +281 -0
  61. data/lib/cloudsmith-api/api/webhooks_api.rb +5 -5
  62. data/lib/cloudsmith-api/configuration.rb +1 -8
  63. data/lib/cloudsmith-api/models/alpine_package_upload.rb +75 -5
  64. data/lib/cloudsmith-api/models/conan_package_upload.rb +75 -5
  65. data/lib/cloudsmith-api/models/entitlement_usage_metrics.rb +194 -0
  66. data/lib/cloudsmith-api/models/entitlements_create.rb +41 -1
  67. data/lib/cloudsmith-api/models/entitlements_partial_update.rb +41 -1
  68. data/lib/cloudsmith-api/models/entitlements_refresh.rb +41 -1
  69. data/lib/cloudsmith-api/models/maven_package_upload.rb +75 -5
  70. data/lib/cloudsmith-api/models/package.rb +75 -5
  71. data/lib/cloudsmith-api/models/package_copy.rb +75 -5
  72. data/lib/cloudsmith-api/models/package_move.rb +75 -5
  73. data/lib/cloudsmith-api/models/package_usage_metrics.rb +194 -0
  74. data/lib/cloudsmith-api/models/packagesownerrepo_files.rb +11 -1
  75. data/lib/cloudsmith-api/models/quota_history.rb +1 -1
  76. data/lib/cloudsmith-api/models/quota_history_history.rb +239 -0
  77. data/lib/cloudsmith-api/models/raw_package_upload.rb +75 -5
  78. data/lib/cloudsmith-api/models/repository_token.rb +71 -1
  79. data/lib/cloudsmith-api/models/repository_token_refresh.rb +71 -1
  80. data/lib/cloudsmith-api/models/repository_token_sync_tokens.rb +71 -1
  81. data/lib/cloudsmith-api/models/vagrant_package_upload.rb +75 -5
  82. data/lib/cloudsmith-api/models/vulnerability_scan_results.rb +279 -0
  83. data/lib/cloudsmith-api/models/vulnerability_scan_results_list.rb +264 -0
  84. data/lib/cloudsmith-api/version.rb +1 -1
  85. data/spec/api/badges_api_spec.rb +9 -0
  86. data/spec/api/entitlements_api_spec.rb +1 -0
  87. data/spec/api/metrics_api_spec.rb +31 -14
  88. data/spec/api/packages_api_spec.rb +14 -0
  89. data/spec/api/quota_api_spec.rb +18 -26
  90. data/spec/api/vulnerabilities_api_spec.rb +95 -0
  91. data/spec/configuration_spec.rb +3 -3
  92. data/spec/models/alpine_package_upload_spec.rb +42 -0
  93. data/spec/models/conan_package_upload_spec.rb +42 -0
  94. data/spec/models/entitlement_usage_metrics_spec.rb +42 -0
  95. data/spec/models/entitlements_create_spec.rb +24 -0
  96. data/spec/models/entitlements_partial_update_spec.rb +24 -0
  97. data/spec/models/entitlements_refresh_spec.rb +24 -0
  98. data/spec/models/maven_package_upload_spec.rb +42 -0
  99. data/spec/models/package_copy_spec.rb +42 -0
  100. data/spec/models/package_move_spec.rb +42 -0
  101. data/spec/models/package_spec.rb +42 -0
  102. data/spec/models/package_usage_metrics_spec.rb +42 -0
  103. data/spec/models/packagesownerrepo_files_spec.rb +6 -0
  104. data/spec/models/quota_history_history_spec.rb +72 -0
  105. data/spec/models/raw_package_upload_spec.rb +42 -0
  106. data/spec/models/repository_token_refresh_spec.rb +42 -0
  107. data/spec/models/repository_token_spec.rb +42 -0
  108. data/spec/models/repository_token_sync_tokens_spec.rb +42 -0
  109. data/spec/models/vagrant_package_upload_spec.rb +42 -0
  110. data/spec/models/vulnerability_scan_results_list_spec.rb +78 -0
  111. data/spec/models/vulnerability_scan_results_spec.rb +84 -0
  112. data/vendor/bundle/ruby/2.6.0/cache/autotest-fsevent-0.2.18.gem +0 -0
  113. data/vendor/bundle/ruby/2.6.0/cache/crack-0.4.5.gem +0 -0
  114. data/vendor/bundle/ruby/2.6.0/cache/ethon-0.14.0.gem +0 -0
  115. data/vendor/bundle/ruby/2.6.0/cache/ffi-1.15.0.gem +0 -0
  116. data/vendor/bundle/ruby/2.6.0/cache/json-2.5.1.gem +0 -0
  117. data/vendor/bundle/ruby/2.6.0/cache/rexml-3.2.5.gem +0 -0
  118. data/vendor/bundle/ruby/2.6.0/cache/rspec-3.10.0.gem +0 -0
  119. data/vendor/bundle/ruby/2.6.0/cache/rspec-core-3.10.1.gem +0 -0
  120. data/vendor/bundle/ruby/2.6.0/cache/rspec-expectations-3.10.1.gem +0 -0
  121. data/vendor/bundle/ruby/2.6.0/cache/rspec-mocks-3.10.2.gem +0 -0
  122. data/vendor/bundle/ruby/2.6.0/cache/rspec-support-3.10.2.gem +0 -0
  123. data/vendor/bundle/ruby/2.6.0/cache/sys-uname-1.2.2.gem +0 -0
  124. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/{autotest-fsevent-0.2.17 → autotest-fsevent-0.2.18}/gem.build_complete +0 -0
  125. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/autotest-fsevent-0.2.18/gem_make.out +14 -0
  126. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/ffi-1.15.0/ffi_c.so +0 -0
  127. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/{ffi-1.13.1 → ffi-1.15.0}/gem.build_complete +0 -0
  128. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/ffi-1.15.0/gem_make.out +42 -0
  129. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/{ffi-1.13.1 → ffi-1.15.0}/mkmf.log +0 -0
  130. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/{json-2.3.1 → json-2.5.1}/gem.build_complete +0 -0
  131. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.5.1/gem_make.out +13 -0
  132. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.5.1/json/ext/generator.so +0 -0
  133. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.5.1/json/ext/parser.so +0 -0
  134. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/{json-2.3.1 → json-2.5.1}/mkmf.log +0 -0
  135. data/vendor/bundle/ruby/2.6.0/gems/autotest-fsevent-0.2.18/CHANGELOG.md +130 -0
  136. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.17 → autotest-fsevent-0.2.18}/LICENSE.txt +0 -0
  137. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.17 → autotest-fsevent-0.2.18}/README.md +0 -0
  138. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.17 → autotest-fsevent-0.2.18}/ext/fsevent/Makefile +0 -0
  139. data/vendor/bundle/ruby/2.6.0/gems/autotest-fsevent-0.2.18/ext/fsevent/extconf.rb +40 -0
  140. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.17 → autotest-fsevent-0.2.18}/ext/fsevent/fsevent.dll +0 -0
  141. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.17 → autotest-fsevent-0.2.18}/ext/fsevent/fsevent.so +0 -0
  142. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.17 → autotest-fsevent-0.2.18}/ext/fsevent/fsevent_sleep.c +0 -0
  143. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.17 → autotest-fsevent-0.2.18}/ext/fsevent/make +0 -0
  144. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.17 → autotest-fsevent-0.2.18}/ext/fsevent/nmake.bat +0 -0
  145. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.17 → autotest-fsevent-0.2.18}/lib/autotest-fsevent.rb +0 -0
  146. data/vendor/bundle/ruby/2.6.0/gems/autotest-fsevent-0.2.18/lib/autotest-fsevent/version.rb +5 -0
  147. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.17 → autotest-fsevent-0.2.18}/lib/autotest/fsevent.rb +0 -0
  148. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.17 → autotest-fsevent-0.2.18}/post-install.txt +0 -0
  149. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.17 → autotest-fsevent-0.2.18}/prebuilt/fsevent_sleep +0 -0
  150. data/vendor/bundle/ruby/2.6.0/gems/{crack-0.4.3 → crack-0.4.5}/lib/crack.rb +0 -0
  151. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.5/lib/crack/json.rb +98 -0
  152. data/vendor/bundle/ruby/2.6.0/gems/{crack-0.4.3 → crack-0.4.5}/lib/crack/util.rb +0 -0
  153. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.5/lib/crack/version.rb +3 -0
  154. data/vendor/bundle/ruby/2.6.0/gems/{crack-0.4.3 → crack-0.4.5}/lib/crack/xml.rb +0 -0
  155. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/.github/workflows/ruby.yml +41 -0
  156. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.12.0 → ethon-0.14.0}/.gitignore +0 -0
  157. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.12.0 → ethon-0.14.0}/.rspec +0 -0
  158. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/CHANGELOG.md +368 -0
  159. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/Gemfile +43 -0
  160. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/Guardfile +10 -0
  161. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.12.0 → ethon-0.14.0}/LICENSE +0 -0
  162. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/README.md +95 -0
  163. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/Rakefile +40 -0
  164. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/ethon.gemspec +26 -0
  165. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon.rb +36 -0
  166. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/curl.rb +90 -0
  167. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/curls/classes.rb +55 -0
  168. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/curls/codes.rb +122 -0
  169. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/curls/constants.rb +63 -0
  170. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/curls/form_options.rb +37 -0
  171. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/curls/functions.rb +57 -0
  172. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/curls/infos.rb +151 -0
  173. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/curls/messages.rb +19 -0
  174. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/curls/options.rb +471 -0
  175. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/curls/settings.rb +10 -0
  176. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy.rb +315 -0
  177. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/callbacks.rb +148 -0
  178. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/debug_info.rb +47 -0
  179. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/features.rb +31 -0
  180. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/form.rb +107 -0
  181. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/header.rb +61 -0
  182. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/http.rb +68 -0
  183. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/http/actionable.rb +157 -0
  184. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/http/custom.rb +29 -0
  185. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/http/delete.rb +25 -0
  186. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/http/get.rb +24 -0
  187. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/http/head.rb +24 -0
  188. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/http/options.rb +24 -0
  189. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/http/patch.rb +24 -0
  190. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/http/post.rb +26 -0
  191. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/http/postable.rb +32 -0
  192. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/http/put.rb +27 -0
  193. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/http/putable.rb +25 -0
  194. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/informations.rb +95 -0
  195. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/mirror.rb +36 -0
  196. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/operations.rb +78 -0
  197. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/options.rb +50 -0
  198. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/params.rb +29 -0
  199. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/queryable.rb +154 -0
  200. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/response_callbacks.rb +131 -0
  201. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/easy/util.rb +28 -0
  202. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/errors.rb +17 -0
  203. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/errors/ethon_error.rb +9 -0
  204. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/errors/global_init.rb +13 -0
  205. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/errors/invalid_option.rb +13 -0
  206. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/errors/invalid_value.rb +13 -0
  207. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/errors/multi_add.rb +12 -0
  208. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/errors/multi_fdset.rb +12 -0
  209. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/errors/multi_remove.rb +12 -0
  210. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/errors/multi_timeout.rb +13 -0
  211. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/errors/select.rb +13 -0
  212. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/libc.rb +21 -0
  213. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/loggable.rb +59 -0
  214. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/multi.rb +104 -0
  215. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/multi/operations.rb +191 -0
  216. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/multi/options.rb +117 -0
  217. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/multi/stack.rb +49 -0
  218. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/lib/ethon/version.rb +6 -0
  219. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/profile/benchmarks.rb +104 -0
  220. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/profile/memory_leaks.rb +114 -0
  221. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/profile/perf_spec_helper.rb +37 -0
  222. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/profile/support/memory_test_helpers.rb +76 -0
  223. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/profile/support/os_memory_leak_tracker.rb +48 -0
  224. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/profile/support/ruby_object_leak_tracker.rb +49 -0
  225. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/curl_spec.rb +38 -0
  226. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/callbacks_spec.rb +59 -0
  227. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/debug_info_spec.rb +54 -0
  228. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/features_spec.rb +24 -0
  229. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/form_spec.rb +104 -0
  230. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/header_spec.rb +79 -0
  231. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/http/custom_spec.rb +177 -0
  232. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/http/delete_spec.rb +21 -0
  233. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/http/get_spec.rb +126 -0
  234. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/http/head_spec.rb +80 -0
  235. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/http/options_spec.rb +51 -0
  236. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/http/patch_spec.rb +51 -0
  237. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/http/post_spec.rb +317 -0
  238. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/http/put_spec.rb +168 -0
  239. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/http_spec.rb +64 -0
  240. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/informations_spec.rb +98 -0
  241. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/mirror_spec.rb +46 -0
  242. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/operations_spec.rb +268 -0
  243. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/options_spec.rb +193 -0
  244. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/queryable_spec.rb +235 -0
  245. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/response_callbacks_spec.rb +152 -0
  246. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy/util_spec.rb +28 -0
  247. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/easy_spec.rb +203 -0
  248. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/libc_spec.rb +14 -0
  249. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/loggable_spec.rb +22 -0
  250. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/multi/operations_spec.rb +298 -0
  251. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/multi/options_spec.rb +69 -0
  252. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/multi/stack_spec.rb +80 -0
  253. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/ethon/multi_spec.rb +22 -0
  254. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/spec_helper.rb +28 -0
  255. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/support/localhost_server.rb +95 -0
  256. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.14.0/spec/support/server.rb +115 -0
  257. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/CHANGELOG.md +286 -0
  258. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/COPYING +0 -0
  259. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/Gemfile +14 -0
  260. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/LICENSE +0 -0
  261. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/LICENSE.SPECS +0 -0
  262. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/README.md +132 -0
  263. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/Rakefile +177 -0
  264. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/.sitearchdir.time +0 -0
  265. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/AbstractMemory.c +1104 -0
  266. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/AbstractMemory.h +0 -0
  267. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/AbstractMemory.o +0 -0
  268. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/ArrayType.c +0 -0
  269. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/ArrayType.h +0 -0
  270. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/ArrayType.o +0 -0
  271. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Buffer.c +360 -0
  272. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Buffer.o +0 -0
  273. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Call.c +487 -0
  274. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/Call.h +0 -0
  275. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Call.o +0 -0
  276. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/ClosurePool.c +333 -0
  277. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/ClosurePool.h +59 -0
  278. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/ClosurePool.o +0 -0
  279. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/DynamicLibrary.c +334 -0
  280. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/DynamicLibrary.h +0 -0
  281. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/DynamicLibrary.o +0 -0
  282. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Function.c +917 -0
  283. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Function.h +83 -0
  284. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Function.o +0 -0
  285. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/FunctionInfo.c +266 -0
  286. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/FunctionInfo.o +0 -0
  287. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/LastError.c +225 -0
  288. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/LastError.h +0 -0
  289. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/LastError.o +0 -0
  290. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/LongDouble.c +0 -0
  291. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/LongDouble.h +0 -0
  292. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/LongDouble.o +0 -0
  293. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Makefile +266 -0
  294. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/MappedType.c +0 -0
  295. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/MappedType.h +0 -0
  296. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/MappedType.o +0 -0
  297. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/MemoryPointer.c +192 -0
  298. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/MemoryPointer.h +49 -0
  299. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/MemoryPointer.o +0 -0
  300. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/MethodHandle.c +348 -0
  301. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/MethodHandle.h +0 -0
  302. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/MethodHandle.o +0 -0
  303. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Platform.c +78 -0
  304. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/Platform.h +0 -0
  305. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Platform.o +0 -0
  306. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Pointer.c +507 -0
  307. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Pointer.h +59 -0
  308. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Pointer.o +0 -0
  309. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Struct.c +822 -0
  310. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/Struct.h +0 -0
  311. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Struct.o +0 -0
  312. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/StructByValue.c +145 -0
  313. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/StructByValue.h +0 -0
  314. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/StructByValue.o +0 -0
  315. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/StructLayout.c +700 -0
  316. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/StructLayout.o +0 -0
  317. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Thread.c +129 -0
  318. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Thread.h +76 -0
  319. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Thread.o +0 -0
  320. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Type.c +379 -0
  321. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/Type.h +0 -0
  322. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Type.o +0 -0
  323. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Types.c +138 -0
  324. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Types.h +88 -0
  325. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Types.o +0 -0
  326. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Variadic.c +303 -0
  327. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/Variadic.o +0 -0
  328. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/compat.h +0 -0
  329. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/extconf.h +0 -0
  330. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/extconf.rb +95 -0
  331. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/ffi.c +0 -0
  332. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/ffi.o +0 -0
  333. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/ffi_c.so +0 -0
  334. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi.bsd.mk +0 -0
  335. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi.darwin.mk +0 -0
  336. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi.gnu.mk +0 -0
  337. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi.mk +0 -0
  338. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi.vc.mk +0 -0
  339. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi.vc64.mk +0 -0
  340. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/.appveyor.yml +0 -0
  341. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/.gitattributes +0 -0
  342. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/.github/issue_template.md +0 -0
  343. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/.gitignore +0 -0
  344. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/.travis.yml +0 -0
  345. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/.travis/ar-lib +0 -0
  346. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/.travis/bfin-sim.exp +58 -0
  347. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/.travis/build-cross-in-container.sh +0 -0
  348. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/.travis/build-in-container.sh +0 -0
  349. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/.travis/build.sh +0 -0
  350. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/.travis/compile +0 -0
  351. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/.travis/install.sh +0 -0
  352. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/.travis/m32r-sim.exp +58 -0
  353. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/.travis/moxie-sim.exp +60 -0
  354. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/.travis/or1k-sim.exp +58 -0
  355. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/.travis/powerpc-eabisim.exp +58 -0
  356. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/.travis/site.exp +0 -0
  357. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/.travis/wine-sim.exp +55 -0
  358. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/ChangeLog.old +0 -0
  359. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/LICENSE +0 -0
  360. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/LICENSE-BUILDTOOLS +0 -0
  361. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/Makefile.am +150 -0
  362. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/README.md +486 -0
  363. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/acinclude.m4 +0 -0
  364. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/autogen.sh +0 -0
  365. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/config.guess +1687 -0
  366. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/config.sub +1851 -0
  367. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/configure.ac +415 -0
  368. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/configure.host +318 -0
  369. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/doc/Makefile.am +3 -0
  370. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/doc/libffi.texi +997 -0
  371. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/doc/version.texi +4 -0
  372. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +201 -0
  373. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/include/Makefile.am +0 -0
  374. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/include/ffi.h.in +0 -0
  375. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/include/ffi_cfi.h +0 -0
  376. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/include/ffi_common.h +0 -0
  377. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/libffi.map.in +0 -0
  378. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/libffi.pc.in +0 -0
  379. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +0 -0
  380. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/libtool-version +0 -0
  381. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/m4/asmcfi.m4 +0 -0
  382. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/m4/ax_append_flag.m4 +0 -0
  383. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +0 -0
  384. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +0 -0
  385. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/m4/ax_check_compile_flag.m4 +0 -0
  386. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +0 -0
  387. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/m4/ax_configure_args.m4 +0 -0
  388. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +0 -0
  389. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +0 -0
  390. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4 +0 -0
  391. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/m4/ax_require_defined.m4 +0 -0
  392. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/make_sunver.pl +0 -0
  393. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/man/Makefile.am +0 -0
  394. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/man/ffi.3 +0 -0
  395. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/man/ffi_call.3 +0 -0
  396. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/man/ffi_prep_cif.3 +0 -0
  397. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +0 -0
  398. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.sln +0 -0
  399. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.vcxproj +0 -0
  400. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.vcxproj.filters +0 -0
  401. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.vcxproj.user +0 -0
  402. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/msvc_build/aarch64/aarch64_include/ffi.h +0 -0
  403. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/msvcc.sh +353 -0
  404. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/aarch64/ffi.c +1025 -0
  405. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/aarch64/ffitarget.h +97 -0
  406. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/aarch64/internal.h +68 -0
  407. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/aarch64/sysv.S +451 -0
  408. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/aarch64/win64_armasm.S +506 -0
  409. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/alpha/ffi.c +0 -0
  410. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/alpha/ffitarget.h +0 -0
  411. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/alpha/internal.h +0 -0
  412. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/alpha/osf.S +0 -0
  413. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/arc/arcompact.S +0 -0
  414. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/arc/ffi.c +0 -0
  415. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/arc/ffitarget.h +0 -0
  416. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/arm/ffi.c +876 -0
  417. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/arm/ffitarget.h +0 -0
  418. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/arm/internal.h +0 -0
  419. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/arm/sysv.S +385 -0
  420. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/arm/sysv_msvc_arm32.S +0 -0
  421. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/avr32/ffi.c +0 -0
  422. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/avr32/ffitarget.h +0 -0
  423. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/avr32/sysv.S +0 -0
  424. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/bfin/ffi.c +0 -0
  425. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/bfin/ffitarget.h +0 -0
  426. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/bfin/sysv.S +0 -0
  427. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/closures.c +1021 -0
  428. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/cris/ffi.c +0 -0
  429. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/cris/ffitarget.h +0 -0
  430. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/cris/sysv.S +0 -0
  431. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/csky/ffi.c +395 -0
  432. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/csky/ffitarget.h +63 -0
  433. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/csky/sysv.S +371 -0
  434. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/debug.c +0 -0
  435. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/dlmalloc.c +5166 -0
  436. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/frv/eabi.S +0 -0
  437. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/frv/ffi.c +0 -0
  438. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/frv/ffitarget.h +0 -0
  439. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/ia64/ffi.c +0 -0
  440. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/ia64/ffitarget.h +0 -0
  441. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/ia64/ia64_flags.h +0 -0
  442. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/ia64/unix.S +0 -0
  443. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/java_raw_api.c +0 -0
  444. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/kvx/asm.h +5 -0
  445. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/kvx/ffi.c +273 -0
  446. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/kvx/ffitarget.h +75 -0
  447. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/kvx/sysv.S +127 -0
  448. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/m32r/ffi.c +0 -0
  449. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/m32r/ffitarget.h +0 -0
  450. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/m32r/sysv.S +0 -0
  451. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/m68k/ffi.c +0 -0
  452. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/m68k/ffitarget.h +0 -0
  453. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/m68k/sysv.S +0 -0
  454. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/m88k/ffi.c +0 -0
  455. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/m88k/ffitarget.h +0 -0
  456. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/m88k/obsd.S +0 -0
  457. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/metag/ffi.c +0 -0
  458. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/metag/ffitarget.h +0 -0
  459. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/metag/sysv.S +0 -0
  460. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/microblaze/ffi.c +0 -0
  461. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/microblaze/ffitarget.h +0 -0
  462. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/microblaze/sysv.S +0 -0
  463. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/mips/ffi.c +1134 -0
  464. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/mips/ffitarget.h +244 -0
  465. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/mips/n32.S +0 -0
  466. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/mips/o32.S +0 -0
  467. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/moxie/eabi.S +0 -0
  468. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/moxie/ffi.c +0 -0
  469. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/moxie/ffitarget.h +0 -0
  470. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/nios2/ffi.c +0 -0
  471. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/nios2/ffitarget.h +0 -0
  472. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/nios2/sysv.S +0 -0
  473. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/or1k/ffi.c +0 -0
  474. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/or1k/ffitarget.h +0 -0
  475. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/or1k/sysv.S +0 -0
  476. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/pa/ffi.c +0 -0
  477. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/pa/ffitarget.h +0 -0
  478. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/pa/hpux32.S +0 -0
  479. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/pa/linux.S +0 -0
  480. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/powerpc/aix.S +0 -0
  481. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/powerpc/aix_closure.S +0 -0
  482. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/powerpc/asm.h +0 -0
  483. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/powerpc/darwin.S +0 -0
  484. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +0 -0
  485. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/powerpc/ffi.c +0 -0
  486. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +1452 -0
  487. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +0 -0
  488. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +105 -0
  489. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +0 -0
  490. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/powerpc/ffitarget.h +0 -0
  491. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/powerpc/linux64.S +291 -0
  492. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +564 -0
  493. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +0 -0
  494. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/powerpc/sysv.S +0 -0
  495. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/prep_cif.c +263 -0
  496. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/raw_api.c +0 -0
  497. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/riscv/ffi.c +0 -0
  498. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/riscv/ffitarget.h +0 -0
  499. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/riscv/sysv.S +0 -0
  500. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/s390/ffi.c +0 -0
  501. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/s390/ffitarget.h +0 -0
  502. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/s390/internal.h +0 -0
  503. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/s390/sysv.S +0 -0
  504. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/sh/ffi.c +0 -0
  505. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/sh/ffitarget.h +0 -0
  506. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/sh/sysv.S +0 -0
  507. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/sh64/ffi.c +0 -0
  508. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/sh64/ffitarget.h +0 -0
  509. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/sh64/sysv.S +0 -0
  510. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/sparc/ffi.c +0 -0
  511. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/sparc/ffi64.c +0 -0
  512. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/sparc/ffitarget.h +0 -0
  513. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/sparc/internal.h +0 -0
  514. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/sparc/v8.S +0 -0
  515. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/sparc/v9.S +0 -0
  516. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/tile/ffi.c +0 -0
  517. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/tile/ffitarget.h +0 -0
  518. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/tile/tile.S +0 -0
  519. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/types.c +0 -0
  520. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/vax/elfbsd.S +0 -0
  521. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/vax/ffi.c +0 -0
  522. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/vax/ffitarget.h +0 -0
  523. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/x86/asmnames.h +0 -0
  524. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/x86/ffi.c +770 -0
  525. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/x86/ffi64.c +895 -0
  526. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/x86/ffitarget.h +0 -0
  527. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/x86/ffiw64.c +318 -0
  528. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/x86/internal.h +0 -0
  529. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/x86/internal64.h +0 -0
  530. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/x86/sysv.S +1138 -0
  531. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/x86/sysv_intel.S +0 -0
  532. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/x86/unix64.S +621 -0
  533. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/x86/win64.S +241 -0
  534. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/src/x86/win64_intel.S +238 -0
  535. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/xtensa/ffi.c +0 -0
  536. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/xtensa/ffitarget.h +0 -0
  537. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/src/xtensa/sysv.S +0 -0
  538. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/stamp-h.in +0 -0
  539. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/Makefile.am +0 -0
  540. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/config/default.exp +0 -0
  541. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/testsuite/lib/libffi.exp +660 -0
  542. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +0 -0
  543. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +0 -0
  544. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.bhaible/Makefile +0 -0
  545. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.bhaible/README +0 -0
  546. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.bhaible/alignof.h +0 -0
  547. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.bhaible/bhaible.exp +0 -0
  548. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +1745 -0
  549. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +2885 -0
  550. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +0 -0
  551. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +0 -0
  552. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/align_stdcall.c +0 -0
  553. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +0 -0
  554. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +0 -0
  555. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +0 -0
  556. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/float.c +0 -0
  557. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +0 -0
  558. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +0 -0
  559. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +0 -0
  560. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +0 -0
  561. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +0 -0
  562. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/many.c +0 -0
  563. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +0 -0
  564. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +0 -0
  565. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +0 -0
  566. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -0
  567. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +0 -0
  568. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +0 -0
  569. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +0 -0
  570. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +0 -0
  571. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +0 -0
  572. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +0 -0
  573. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +0 -0
  574. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +0 -0
  575. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +0 -0
  576. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +0 -0
  577. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +0 -0
  578. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +0 -0
  579. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +0 -0
  580. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +0 -0
  581. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +0 -0
  582. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +0 -0
  583. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +0 -0
  584. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +0 -0
  585. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +0 -0
  586. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +0 -0
  587. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +0 -0
  588. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +0 -0
  589. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +0 -0
  590. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +0 -0
  591. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +0 -0
  592. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +0 -0
  593. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +0 -0
  594. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +0 -0
  595. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +0 -0
  596. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +0 -0
  597. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +0 -0
  598. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +0 -0
  599. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +0 -0
  600. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +0 -0
  601. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +0 -0
  602. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +0 -0
  603. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +0 -0
  604. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/closure.exp +0 -0
  605. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn0.c +0 -0
  606. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn1.c +0 -0
  607. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn2.c +0 -0
  608. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn3.c +0 -0
  609. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn4.c +0 -0
  610. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn5.c +0 -0
  611. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn6.c +0 -0
  612. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/closure_loc_fn0.c +0 -0
  613. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/closure_simple.c +0 -0
  614. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_12byte.c +0 -0
  615. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_16byte.c +0 -0
  616. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_18byte.c +0 -0
  617. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_19byte.c +0 -0
  618. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_1_1byte.c +0 -0
  619. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte.c +0 -0
  620. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte1.c +0 -0
  621. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_24byte.c +0 -0
  622. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_2byte.c +0 -0
  623. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3_1byte.c +0 -0
  624. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte1.c +0 -0
  625. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte2.c +0 -0
  626. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3float.c +0 -0
  627. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4_1byte.c +0 -0
  628. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4byte.c +0 -0
  629. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5_1_byte.c +0 -0
  630. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5byte.c +0 -0
  631. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_64byte.c +0 -0
  632. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6_1_byte.c +0 -0
  633. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6byte.c +0 -0
  634. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7_1_byte.c +0 -0
  635. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7byte.c +0 -0
  636. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_8byte.c +0 -0
  637. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte1.c +0 -0
  638. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte2.c +0 -0
  639. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_double.c +0 -0
  640. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_float.c +0 -0
  641. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble.c +0 -0
  642. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split.c +0 -0
  643. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split2.c +0 -0
  644. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_pointer.c +0 -0
  645. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint16.c +0 -0
  646. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint32.c +0 -0
  647. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint64.c +0 -0
  648. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint16.c +0 -0
  649. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint32.c +0 -0
  650. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint64.c +0 -0
  651. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.c +0 -0
  652. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double.c +0 -0
  653. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double_va.c +0 -0
  654. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_float.c +0 -0
  655. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble.c +0 -0
  656. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble_va.c +0 -0
  657. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_args.c +0 -0
  658. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_float_double.c +0 -0
  659. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_schar.c +0 -0
  660. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshort.c +0 -0
  661. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c +0 -0
  662. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_uchar.c +0 -0
  663. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushort.c +0 -0
  664. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c +0 -0
  665. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer.c +0 -0
  666. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer_stack.c +0 -0
  667. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_schar.c +0 -0
  668. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sint.c +0 -0
  669. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sshort.c +0 -0
  670. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_struct_va1.c +0 -0
  671. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar.c +0 -0
  672. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar_va.c +0 -0
  673. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint.c +0 -0
  674. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint_va.c +0 -0
  675. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulong_va.c +0 -0
  676. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulonglong.c +0 -0
  677. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort.c +0 -0
  678. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort_va.c +0 -0
  679. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/err_bad_abi.c +0 -0
  680. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/ffitest.h +0 -0
  681. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +343 -0
  682. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct.c +0 -0
  683. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct1.c +0 -0
  684. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct10.c +0 -0
  685. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct11.c +0 -0
  686. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct2.c +0 -0
  687. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct3.c +0 -0
  688. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct4.c +0 -0
  689. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct5.c +0 -0
  690. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct6.c +0 -0
  691. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct7.c +0 -0
  692. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct8.c +0 -0
  693. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct9.c +0 -0
  694. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/problem1.c +0 -0
  695. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large.c +0 -0
  696. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large2.c +0 -0
  697. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium.c +0 -0
  698. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium2.c +0 -0
  699. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/testclosure.c +0 -0
  700. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest.cc +0 -0
  701. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest_ffi_call.cc +0 -0
  702. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +0 -0
  703. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +0 -0
  704. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +0 -0
  705. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +0 -0
  706. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +0 -0
  707. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +0 -0
  708. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +0 -0
  709. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +0 -0
  710. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +0 -0
  711. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +0 -0
  712. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +0 -0
  713. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +0 -0
  714. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +0 -0
  715. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +0 -0
  716. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +0 -0
  717. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +0 -0
  718. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/complex.exp +0 -0
  719. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +0 -0
  720. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +0 -0
  721. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +0 -0
  722. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +0 -0
  723. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +0 -0
  724. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +0 -0
  725. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +0 -0
  726. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +0 -0
  727. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +0 -0
  728. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +0 -0
  729. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +0 -0
  730. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +0 -0
  731. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +0 -0
  732. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +0 -0
  733. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +0 -0
  734. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +0 -0
  735. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +0 -0
  736. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +0 -0
  737. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +0 -0
  738. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +0 -0
  739. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +0 -0
  740. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +0 -0
  741. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +0 -0
  742. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +0 -0
  743. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +0 -0
  744. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +0 -0
  745. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +0 -0
  746. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +0 -0
  747. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +0 -0
  748. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +0 -0
  749. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/rbffi.h +0 -0
  750. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/ext/ffi_c/rbffi_endian.h +0 -0
  751. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/ffi.gemspec +43 -0
  752. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi.rb +28 -0
  753. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/abstract_memory.rb +44 -0
  754. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/autopointer.rb +203 -0
  755. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/buffer.rb +0 -0
  756. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/callback.rb +0 -0
  757. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/data_converter.rb +0 -0
  758. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/enum.rb +0 -0
  759. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/errno.rb +0 -0
  760. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/ffi.rb +47 -0
  761. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/io.rb +62 -0
  762. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/library.rb +592 -0
  763. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/managedstruct.rb +84 -0
  764. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/memorypointer.rb +0 -0
  765. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/platform.rb +188 -0
  766. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1/lib/ffi/platform/x86_64-darwin → ffi-1.15.0/lib/ffi/platform/aarch64-darwin}/types.conf +0 -0
  767. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/aarch64-freebsd/types.conf +0 -0
  768. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/aarch64-freebsd12/types.conf +0 -0
  769. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/aarch64-linux/types.conf +0 -0
  770. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1/lib/ffi/platform/x86_64-openbsd → ffi-1.15.0/lib/ffi/platform/aarch64-openbsd}/types.conf +0 -0
  771. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/arm-freebsd/types.conf +0 -0
  772. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/arm-freebsd12/types.conf +0 -0
  773. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/arm-linux/types.conf +0 -0
  774. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/i386-cygwin/types.conf +0 -0
  775. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/i386-darwin/types.conf +0 -0
  776. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/i386-freebsd/types.conf +0 -0
  777. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/i386-freebsd12/types.conf +0 -0
  778. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/i386-gnu/types.conf +0 -0
  779. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/i386-linux/types.conf +0 -0
  780. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/i386-netbsd/types.conf +0 -0
  781. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/i386-openbsd/types.conf +0 -0
  782. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/i386-solaris/types.conf +0 -0
  783. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/i386-windows/types.conf +0 -0
  784. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/ia64-linux/types.conf +0 -0
  785. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/mips-linux/types.conf +0 -0
  786. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/mips64-linux/types.conf +0 -0
  787. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/mips64el-linux/types.conf +0 -0
  788. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/mipsel-linux/types.conf +0 -0
  789. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/mipsisa32r6-linux/types.conf +0 -0
  790. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/mipsisa32r6el-linux/types.conf +0 -0
  791. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/mipsisa64r6-linux/types.conf +0 -0
  792. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/mipsisa64r6el-linux/types.conf +0 -0
  793. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/powerpc-aix/types.conf +0 -0
  794. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/powerpc-darwin/types.conf +0 -0
  795. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/powerpc-linux/types.conf +0 -0
  796. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/powerpc-openbsd/types.conf +0 -0
  797. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/powerpc64-linux/types.conf +0 -0
  798. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/platform/powerpc64le-linux/types.conf +100 -0
  799. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/platform/riscv64-linux/types.conf +104 -0
  800. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/s390-linux/types.conf +0 -0
  801. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/s390x-linux/types.conf +0 -0
  802. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/sparc-linux/types.conf +0 -0
  803. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/sparc-solaris/types.conf +0 -0
  804. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/sparc64-linux/types.conf +0 -0
  805. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/sparcv9-openbsd/types.conf +0 -0
  806. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/sparcv9-solaris/types.conf +0 -0
  807. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/x86_64-cygwin/types.conf +0 -0
  808. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/platform/x86_64-darwin/types.conf +130 -0
  809. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/x86_64-dragonflybsd/types.conf +0 -0
  810. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/x86_64-freebsd/types.conf +0 -0
  811. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/x86_64-freebsd12/types.conf +0 -0
  812. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/platform/x86_64-haiku/types.conf +117 -0
  813. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/x86_64-linux/types.conf +0 -0
  814. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/platform/x86_64-msys/types.conf +119 -0
  815. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/x86_64-netbsd/types.conf +0 -0
  816. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/platform/x86_64-openbsd/types.conf +134 -0
  817. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/x86_64-solaris/types.conf +0 -0
  818. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/platform/x86_64-windows/types.conf +0 -0
  819. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/pointer.rb +167 -0
  820. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/struct.rb +0 -0
  821. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/struct_by_reference.rb +0 -0
  822. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/struct_layout.rb +0 -0
  823. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/struct_layout_builder.rb +0 -0
  824. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/tools/const_generator.rb +0 -0
  825. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/tools/generator.rb +0 -0
  826. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/tools/generator_task.rb +0 -0
  827. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/tools/struct_generator.rb +0 -0
  828. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/tools/types_generator.rb +0 -0
  829. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/types.rb +0 -0
  830. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/lib/ffi/union.rb +0 -0
  831. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/variadic.rb +69 -0
  832. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/version.rb +3 -0
  833. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi_c.so +0 -0
  834. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.0/rakelib/ffi_gem_helper.rb +65 -0
  835. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/samples/getlogin.rb +0 -0
  836. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/samples/getpid.rb +0 -0
  837. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/samples/gettimeofday.rb +0 -0
  838. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/samples/hello.rb +0 -0
  839. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/samples/inotify.rb +0 -0
  840. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/samples/pty.rb +0 -0
  841. data/vendor/bundle/ruby/2.6.0/gems/{ffi-1.13.1 → ffi-1.15.0}/samples/qsort.rb +0 -0
  842. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/CHANGES.md +446 -0
  843. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/Gemfile +0 -0
  844. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/LICENSE +56 -0
  845. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/README.md +0 -0
  846. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/VERSION +1 -0
  847. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/Makefile +202 -0
  848. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/ext/json/ext/fbuffer/fbuffer.h +0 -0
  849. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/ext/json/ext/generator/.sitearchdir.-.json.-.ext.time +0 -0
  850. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/ext/generator/Makefile +267 -0
  851. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/ext/json/ext/generator/depend +0 -0
  852. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/ext/json/ext/generator/extconf.rb +0 -0
  853. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/ext/generator/generator.c +1618 -0
  854. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/ext/generator/generator.h +174 -0
  855. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/ext/generator/generator.o +0 -0
  856. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/ext/generator/generator.so +0 -0
  857. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/ext/json/ext/parser/.sitearchdir.-.json.-.ext.time +0 -0
  858. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/ext/parser/Makefile +267 -0
  859. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/ext/json/ext/parser/depend +0 -0
  860. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/ext/parser/extconf.rb +31 -0
  861. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/ext/parser/parser.c +2179 -0
  862. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/ext/parser/parser.h +92 -0
  863. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/ext/parser/parser.o +0 -0
  864. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/ext/parser/parser.rl +939 -0
  865. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/ext/parser/parser.so +0 -0
  866. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/ext/json/extconf.rb +3 -0
  867. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/json.gemspec +73 -0
  868. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/lib/json.rb +583 -0
  869. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/add/bigdecimal.rb +0 -0
  870. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/lib/json/add/complex.rb +28 -0
  871. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/add/core.rb +0 -0
  872. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/add/date.rb +0 -0
  873. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/add/date_time.rb +0 -0
  874. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/add/exception.rb +0 -0
  875. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/add/ostruct.rb +0 -0
  876. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/add/range.rb +0 -0
  877. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/lib/json/add/rational.rb +27 -0
  878. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/add/regexp.rb +0 -0
  879. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/add/set.rb +0 -0
  880. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/add/struct.rb +0 -0
  881. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/add/symbol.rb +0 -0
  882. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/add/time.rb +0 -0
  883. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/lib/json/common.rb +703 -0
  884. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/ext.rb +0 -0
  885. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1/diagrams → json-2.5.1/lib/json/ext}/.keep +0 -0
  886. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/lib/json/ext/generator.so +0 -0
  887. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/lib/json/ext/parser.so +0 -0
  888. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/generic_object.rb +0 -0
  889. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/lib/json/pure.rb +0 -0
  890. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/lib/json/pure/generator.rb +479 -0
  891. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/lib/json/pure/parser.rb +337 -0
  892. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/lib/json/version.rb +9 -0
  893. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail10.json +0 -0
  894. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail11.json +0 -0
  895. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail12.json +0 -0
  896. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail13.json +0 -0
  897. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail14.json +0 -0
  898. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail18.json +0 -0
  899. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail19.json +0 -0
  900. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail2.json +0 -0
  901. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail20.json +0 -0
  902. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail21.json +0 -0
  903. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail22.json +0 -0
  904. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail23.json +0 -0
  905. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail24.json +0 -0
  906. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail25.json +0 -0
  907. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail27.json +0 -0
  908. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail28.json +0 -0
  909. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/fixtures/fail29.json +1 -0
  910. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail3.json +0 -0
  911. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/fixtures/fail30.json +1 -0
  912. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/fixtures/fail31.json +1 -0
  913. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/fixtures/fail32.json +1 -0
  914. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail4.json +0 -0
  915. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail5.json +0 -0
  916. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail6.json +0 -0
  917. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail7.json +0 -0
  918. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail8.json +0 -0
  919. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/fail9.json +0 -0
  920. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/obsolete_fail1.json +0 -0
  921. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/pass1.json +0 -0
  922. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/pass15.json +0 -0
  923. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/pass16.json +0 -0
  924. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/pass17.json +0 -0
  925. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/pass2.json +0 -0
  926. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/pass26.json +0 -0
  927. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/fixtures/pass3.json +0 -0
  928. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/json_addition_test.rb +199 -0
  929. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/json_common_interface_test.rb +169 -0
  930. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/json_encoding_test.rb +0 -0
  931. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/json_ext_parser_test.rb +0 -0
  932. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/json_fixtures_test.rb +40 -0
  933. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/json_generator_test.rb +399 -0
  934. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/json_generic_object_test.rb +0 -0
  935. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/json_parser_test.rb +497 -0
  936. data/vendor/bundle/ruby/2.6.0/gems/{json-2.3.1 → json-2.5.1}/tests/json_string_matching_test.rb +0 -0
  937. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/lib/core_assertions.rb +763 -0
  938. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/lib/envutil.rb +365 -0
  939. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/lib/find_executable.rb +22 -0
  940. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/lib/helper.rb +4 -0
  941. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/ractor_test.rb +30 -0
  942. data/vendor/bundle/ruby/2.6.0/gems/json-2.5.1/tests/test_helper.rb +17 -0
  943. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/LICENSE.txt +22 -0
  944. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/NEWS.md +178 -0
  945. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/README.md +48 -0
  946. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/doc/rexml/context.rdoc +143 -0
  947. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/doc/rexml/tasks/rdoc/child.rdoc +87 -0
  948. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/doc/rexml/tasks/rdoc/document.rdoc +276 -0
  949. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/doc/rexml/tasks/rdoc/element.rdoc +602 -0
  950. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/doc/rexml/tasks/rdoc/node.rdoc +97 -0
  951. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/doc/rexml/tasks/rdoc/parent.rdoc +267 -0
  952. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/doc/rexml/tasks/tocs/child_toc.rdoc +12 -0
  953. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/doc/rexml/tasks/tocs/document_toc.rdoc +30 -0
  954. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/doc/rexml/tasks/tocs/element_toc.rdoc +55 -0
  955. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/doc/rexml/tasks/tocs/master_toc.rdoc +135 -0
  956. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/doc/rexml/tasks/tocs/node_toc.rdoc +16 -0
  957. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/doc/rexml/tasks/tocs/parent_toc.rdoc +25 -0
  958. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml.rb +3 -0
  959. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/attlistdecl.rb +63 -0
  960. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/attribute.rb +205 -0
  961. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/cdata.rb +68 -0
  962. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/child.rb +97 -0
  963. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/comment.rb +80 -0
  964. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/doctype.rb +311 -0
  965. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/document.rb +451 -0
  966. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/dtd/attlistdecl.rb +11 -0
  967. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/dtd/dtd.rb +47 -0
  968. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/dtd/elementdecl.rb +18 -0
  969. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/dtd/entitydecl.rb +57 -0
  970. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/dtd/notationdecl.rb +40 -0
  971. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/element.rb +2599 -0
  972. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/encoding.rb +51 -0
  973. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/entity.rb +171 -0
  974. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/formatters/default.rb +116 -0
  975. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/formatters/pretty.rb +142 -0
  976. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/formatters/transitive.rb +58 -0
  977. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/functions.rb +447 -0
  978. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/instruction.rb +79 -0
  979. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/light/node.rb +188 -0
  980. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/namespace.rb +59 -0
  981. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/node.rb +76 -0
  982. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/output.rb +30 -0
  983. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/parent.rb +166 -0
  984. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/parseexception.rb +52 -0
  985. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/parsers/baseparser.rb +694 -0
  986. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/parsers/lightparser.rb +59 -0
  987. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/parsers/pullparser.rb +197 -0
  988. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/parsers/sax2parser.rb +273 -0
  989. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/parsers/streamparser.rb +61 -0
  990. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/parsers/treeparser.rb +101 -0
  991. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/parsers/ultralightparser.rb +57 -0
  992. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/parsers/xpathparser.rb +689 -0
  993. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/quickpath.rb +266 -0
  994. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/rexml.rb +37 -0
  995. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/sax2listener.rb +98 -0
  996. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/security.rb +28 -0
  997. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/source.rb +298 -0
  998. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/streamlistener.rb +93 -0
  999. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/text.rb +424 -0
  1000. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/undefinednamespaceexception.rb +9 -0
  1001. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/validation/relaxng.rb +539 -0
  1002. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/validation/validation.rb +144 -0
  1003. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/validation/validationexception.rb +10 -0
  1004. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/xmldecl.rb +130 -0
  1005. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/xmltokens.rb +85 -0
  1006. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/xpath.rb +81 -0
  1007. data/vendor/bundle/ruby/2.6.0/gems/rexml-3.2.5/lib/rexml/xpath_parser.rb +974 -0
  1008. data/vendor/bundle/ruby/2.6.0/gems/{rspec-3.9.0 → rspec-3.10.0}/LICENSE.md +0 -0
  1009. data/vendor/bundle/ruby/2.6.0/gems/{rspec-3.9.0 → rspec-3.10.0}/README.md +0 -0
  1010. data/vendor/bundle/ruby/2.6.0/gems/{rspec-3.9.0 → rspec-3.10.0}/lib/rspec.rb +0 -0
  1011. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.10.0/lib/rspec/version.rb +5 -0
  1012. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/.document +0 -0
  1013. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/.yardopts +0 -0
  1014. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/Changelog.md +2327 -0
  1015. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/LICENSE.md +0 -0
  1016. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/README.md +384 -0
  1017. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/exe/rspec +0 -0
  1018. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/autorun.rb +0 -0
  1019. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core.rb +0 -0
  1020. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/backtrace_formatter.rb +0 -0
  1021. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/bisect/coordinator.rb +0 -0
  1022. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/bisect/example_minimizer.rb +0 -0
  1023. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib/rspec/core/bisect/fork_runner.rb +138 -0
  1024. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/bisect/server.rb +0 -0
  1025. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/bisect/shell_command.rb +0 -0
  1026. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/bisect/shell_runner.rb +0 -0
  1027. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/bisect/utilities.rb +0 -0
  1028. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib/rspec/core/configuration.rb +2372 -0
  1029. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/configuration_options.rb +0 -0
  1030. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/did_you_mean.rb +0 -0
  1031. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib/rspec/core/drb.rb +120 -0
  1032. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/dsl.rb +0 -0
  1033. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb +663 -0
  1034. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb +901 -0
  1035. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/example_status_persister.rb +0 -0
  1036. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/filter_manager.rb +0 -0
  1037. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/flat_map.rb +0 -0
  1038. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters.rb +0 -0
  1039. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/base_bisect_formatter.rb +0 -0
  1040. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/base_formatter.rb +0 -0
  1041. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/base_text_formatter.rb +0 -0
  1042. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/bisect_drb_formatter.rb +0 -0
  1043. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/bisect_progress_formatter.rb +0 -0
  1044. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/console_codes.rb +0 -0
  1045. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/deprecation_formatter.rb +0 -0
  1046. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/documentation_formatter.rb +0 -0
  1047. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib/rspec/core/formatters/exception_presenter.rb +521 -0
  1048. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/failure_list_formatter.rb +0 -0
  1049. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/fallback_message_formatter.rb +0 -0
  1050. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/helpers.rb +0 -0
  1051. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/html_formatter.rb +0 -0
  1052. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/html_printer.rb +0 -0
  1053. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/html_snippet_extractor.rb +0 -0
  1054. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/json_formatter.rb +0 -0
  1055. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/profile_formatter.rb +0 -0
  1056. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/progress_formatter.rb +0 -0
  1057. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/protocol.rb +0 -0
  1058. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/snippet_extractor.rb +0 -0
  1059. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/formatters/syntax_highlighter.rb +0 -0
  1060. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb +646 -0
  1061. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib/rspec/core/invocations.rb +87 -0
  1062. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/memoized_helpers.rb +0 -0
  1063. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/metadata.rb +0 -0
  1064. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/metadata_filter.rb +0 -0
  1065. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/minitest_assertions_adapter.rb +0 -0
  1066. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/mocking_adapters/flexmock.rb +0 -0
  1067. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/mocking_adapters/mocha.rb +0 -0
  1068. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/mocking_adapters/null.rb +0 -0
  1069. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/mocking_adapters/rr.rb +0 -0
  1070. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/mocking_adapters/rspec.rb +0 -0
  1071. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/notifications.rb +0 -0
  1072. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib/rspec/core/option_parser.rb +324 -0
  1073. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/ordering.rb +0 -0
  1074. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/output_wrapper.rb +0 -0
  1075. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/pending.rb +0 -0
  1076. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/profiler.rb +0 -0
  1077. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/project_initializer.rb +0 -0
  1078. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/project_initializer/.rspec +0 -0
  1079. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/project_initializer/spec/spec_helper.rb +0 -0
  1080. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/rake_task.rb +0 -0
  1081. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/reporter.rb +0 -0
  1082. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/ruby_project.rb +0 -0
  1083. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb +212 -0
  1084. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/sandbox.rb +0 -0
  1085. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/set.rb +0 -0
  1086. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/shared_context.rb +0 -0
  1087. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/shared_example_group.rb +0 -0
  1088. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/shell_escape.rb +0 -0
  1089. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/test_unit_assertions_adapter.rb +0 -0
  1090. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib/rspec/core/version.rb +9 -0
  1091. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.1}/lib/rspec/core/warnings.rb +0 -0
  1092. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib/rspec/core/world.rb +277 -0
  1093. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/.document +0 -0
  1094. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/.yardopts +0 -0
  1095. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/Changelog.md +1240 -0
  1096. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/LICENSE.md +0 -0
  1097. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/README.md +320 -0
  1098. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/expectations.rb +0 -0
  1099. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/expectations/block_snippet_extractor.rb +0 -0
  1100. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/expectations/configuration.rb +230 -0
  1101. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/expectations/expectation_target.rb +0 -0
  1102. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/expectations/fail_with.rb +0 -0
  1103. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/expectations/failure_aggregator.rb +212 -0
  1104. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/expectations/handler.rb +182 -0
  1105. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/expectations/minitest_integration.rb +0 -0
  1106. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/expectations/syntax.rb +0 -0
  1107. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/expectations/version.rb +8 -0
  1108. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/matchers.rb +1041 -0
  1109. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/aliased_matcher.rb +0 -0
  1110. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/matchers/built_in.rb +53 -0
  1111. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/all.rb +0 -0
  1112. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/base_matcher.rb +0 -0
  1113. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/matchers/built_in/be.rb +191 -0
  1114. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/be_between.rb +0 -0
  1115. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/be_instance_of.rb +0 -0
  1116. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/be_kind_of.rb +0 -0
  1117. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/matchers/built_in/be_within.rb +72 -0
  1118. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/change.rb +0 -0
  1119. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/compound.rb +0 -0
  1120. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/contain_exactly.rb +0 -0
  1121. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/matchers/built_in/count_expectation.rb +169 -0
  1122. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/cover.rb +0 -0
  1123. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/eq.rb +0 -0
  1124. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/eql.rb +0 -0
  1125. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/equal.rb +0 -0
  1126. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/exist.rb +0 -0
  1127. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/matchers/built_in/has.rb +167 -0
  1128. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/have_attributes.rb +0 -0
  1129. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/matchers/built_in/include.rb +206 -0
  1130. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/match.rb +0 -0
  1131. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/operators.rb +0 -0
  1132. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/output.rb +0 -0
  1133. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/matchers/built_in/raise_error.rb +259 -0
  1134. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/matchers/built_in/respond_to.rb +200 -0
  1135. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/satisfy.rb +0 -0
  1136. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/start_or_end_with.rb +0 -0
  1137. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/built_in/throw_symbol.rb +0 -0
  1138. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/matchers/built_in/yield.rb +355 -0
  1139. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/composable.rb +0 -0
  1140. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/dsl.rb +0 -0
  1141. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib/rspec/matchers/english_phrasing.rb +58 -0
  1142. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +0 -0
  1143. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/fail_matchers.rb +0 -0
  1144. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/generated_descriptions.rb +0 -0
  1145. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/matcher_delegator.rb +0 -0
  1146. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.1}/lib/rspec/matchers/matcher_protocol.rb +0 -0
  1147. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/.document +0 -0
  1148. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/.yardopts +0 -0
  1149. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/Changelog.md +1167 -0
  1150. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/LICENSE.md +0 -0
  1151. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/README.md +463 -0
  1152. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/lib/rspec/mocks.rb +133 -0
  1153. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/any_instance.rb +0 -0
  1154. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/any_instance/chain.rb +0 -0
  1155. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/any_instance/error_generator.rb +0 -0
  1156. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/any_instance/expect_chain_chain.rb +0 -0
  1157. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/any_instance/expectation_chain.rb +0 -0
  1158. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/any_instance/message_chains.rb +0 -0
  1159. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/any_instance/proxy.rb +0 -0
  1160. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/lib/rspec/mocks/any_instance/recorder.rb +295 -0
  1161. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/any_instance/stub_chain.rb +0 -0
  1162. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/any_instance/stub_chain_chain.rb +0 -0
  1163. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/argument_list_matcher.rb +0 -0
  1164. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/argument_matchers.rb +0 -0
  1165. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/configuration.rb +0 -0
  1166. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/error_generator.rb +0 -0
  1167. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/example_methods.rb +0 -0
  1168. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/instance_method_stasher.rb +0 -0
  1169. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/marshal_extension.rb +0 -0
  1170. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/matchers/expectation_customization.rb +0 -0
  1171. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/matchers/have_received.rb +0 -0
  1172. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/matchers/receive.rb +0 -0
  1173. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/matchers/receive_message_chain.rb +0 -0
  1174. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/matchers/receive_messages.rb +0 -0
  1175. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/message_chain.rb +0 -0
  1176. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/lib/rspec/mocks/message_expectation.rb +751 -0
  1177. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/lib/rspec/mocks/method_double.rb +288 -0
  1178. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/method_reference.rb +0 -0
  1179. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/minitest_integration.rb +0 -0
  1180. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/lib/rspec/mocks/mutate_const.rb +339 -0
  1181. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/object_reference.rb +0 -0
  1182. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/order_group.rb +0 -0
  1183. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/lib/rspec/mocks/proxy.rb +519 -0
  1184. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/space.rb +0 -0
  1185. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/standalone.rb +0 -0
  1186. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/syntax.rb +0 -0
  1187. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/targets.rb +0 -0
  1188. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/test_double.rb +0 -0
  1189. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/verifying_double.rb +0 -0
  1190. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/verifying_message_expectation.rb +0 -0
  1191. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.2}/lib/rspec/mocks/verifying_proxy.rb +0 -0
  1192. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/lib/rspec/mocks/version.rb +9 -0
  1193. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/Changelog.md +332 -0
  1194. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/LICENSE.md +0 -0
  1195. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/README.md +40 -0
  1196. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib/rspec/support.rb +154 -0
  1197. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib/rspec/support/caller_filter.rb +83 -0
  1198. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib/rspec/support/comparable_version.rb +46 -0
  1199. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/differ.rb +0 -0
  1200. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/directory_maker.rb +0 -0
  1201. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/encoded_string.rb +0 -0
  1202. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/fuzzy_matcher.rb +0 -0
  1203. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/hunk_generator.rb +0 -0
  1204. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/matcher_definition.rb +0 -0
  1205. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib/rspec/support/method_signature_verifier.rb +438 -0
  1206. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/mutex.rb +0 -0
  1207. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/object_formatter.rb +0 -0
  1208. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/recursive_const_methods.rb +0 -0
  1209. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/reentrant_mutex.rb +0 -0
  1210. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib/rspec/support/ruby_features.rb +191 -0
  1211. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib/rspec/support/source.rb +85 -0
  1212. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/source/location.rb +0 -0
  1213. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/source/node.rb +0 -0
  1214. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/source/token.rb +0 -0
  1215. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib/rspec/support/spec.rb +82 -0
  1216. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib/rspec/support/spec/deprecation_helpers.rb +48 -0
  1217. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib/rspec/support/spec/diff_helpers.rb +31 -0
  1218. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/spec/formatting_support.rb +0 -0
  1219. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib/rspec/support/spec/in_sub_process.rb +67 -0
  1220. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/spec/library_wide_checks.rb +0 -0
  1221. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib/rspec/support/spec/shell_out.rb +105 -0
  1222. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/spec/stderr_splitter.rb +0 -0
  1223. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib/rspec/support/spec/string_matcher.rb +45 -0
  1224. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/spec/with_isolated_directory.rb +0 -0
  1225. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/spec/with_isolated_stderr.rb +0 -0
  1226. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib/rspec/support/version.rb +7 -0
  1227. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/warnings.rb +0 -0
  1228. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.2}/lib/rspec/support/with_keywords_when_needed.rb +0 -0
  1229. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.2/CHANGES.md +230 -0
  1230. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.2/Gemfile +7 -0
  1231. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/LICENSE +0 -0
  1232. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.2/MANIFEST.md +12 -0
  1233. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.2/README.md +53 -0
  1234. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.2/Rakefile +37 -0
  1235. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/certs/djberg96_pub.pem +0 -0
  1236. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.2/doc/uname.rdoc +127 -0
  1237. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/examples/uname_test.rb +0 -0
  1238. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/lib/sys-uname.rb +0 -0
  1239. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/lib/sys/platform.rb +0 -0
  1240. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.2/lib/sys/uname.rb +19 -0
  1241. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/lib/sys/unix/uname.rb +0 -0
  1242. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/lib/sys/windows/uname.rb +0 -0
  1243. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.2/spec/sys_platform_spec.rb +75 -0
  1244. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.2/spec/sys_uname_spec.rb +445 -0
  1245. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.2/sys-uname.gemspec +37 -0
  1246. data/vendor/bundle/ruby/2.6.0/specifications/ZenTest-4.12.0.gemspec +2 -2
  1247. data/vendor/bundle/ruby/2.6.0/specifications/addressable-2.7.0.gemspec +2 -2
  1248. data/vendor/bundle/ruby/2.6.0/specifications/autotest-4.4.6.gemspec +2 -2
  1249. data/vendor/bundle/ruby/2.6.0/specifications/autotest-fsevent-0.2.18.gemspec +49 -0
  1250. data/vendor/bundle/ruby/2.6.0/specifications/autotest-growl-0.2.16.gemspec +2 -2
  1251. data/vendor/bundle/ruby/2.6.0/specifications/autotest-rails-pure-4.1.2.gemspec +2 -2
  1252. data/vendor/bundle/ruby/2.6.0/specifications/crack-0.4.5.gemspec +32 -0
  1253. data/vendor/bundle/ruby/2.6.0/specifications/diff-lcs-1.4.4.gemspec +2 -2
  1254. data/vendor/bundle/ruby/2.6.0/specifications/ethon-0.14.0.gemspec +32 -0
  1255. data/vendor/bundle/ruby/2.6.0/specifications/ffi-1.15.0.gemspec +50 -0
  1256. data/vendor/bundle/ruby/2.6.0/specifications/hashdiff-1.0.1.gemspec +2 -2
  1257. data/vendor/bundle/ruby/2.6.0/specifications/json-2.5.1.gemspec +0 -0
  1258. data/vendor/bundle/ruby/2.6.0/specifications/public_suffix-4.0.6.gemspec +2 -2
  1259. data/vendor/bundle/ruby/2.6.0/specifications/rake-12.0.0.gemspec +2 -2
  1260. data/vendor/bundle/ruby/2.6.0/specifications/rexml-3.2.5.gemspec +42 -0
  1261. data/vendor/bundle/ruby/2.6.0/specifications/rspec-3.10.0.gemspec +43 -0
  1262. data/vendor/bundle/ruby/2.6.0/specifications/rspec-core-3.10.1.gemspec +63 -0
  1263. data/vendor/bundle/ruby/2.6.0/specifications/rspec-expectations-3.10.1.gemspec +51 -0
  1264. data/vendor/bundle/ruby/2.6.0/specifications/rspec-mocks-3.10.2.gemspec +51 -0
  1265. data/vendor/bundle/ruby/2.6.0/specifications/rspec-support-3.10.2.gemspec +39 -0
  1266. data/vendor/bundle/ruby/2.6.0/specifications/sys-uname-1.2.2.gemspec +42 -0
  1267. data/vendor/bundle/ruby/2.6.0/specifications/typhoeus-1.4.0.gemspec +2 -2
  1268. data/vendor/bundle/ruby/2.6.0/specifications/vcr-3.0.3.gemspec +2 -2
  1269. data/vendor/bundle/ruby/2.6.0/specifications/webmock-1.24.6.gemspec +2 -2
  1270. metadata +1272 -1277
  1271. data/docs/EntitlementTokenMetric.md +0 -9
  1272. data/docs/MetricsownerrepopackagesusageActivePackages.md +0 -10
  1273. data/docs/PackageUsageMetric.md +0 -11
  1274. data/docs/QuotaownerhistoryHistory.md +0 -13
  1275. data/lib/cloudsmith-api/models/entitlement_token_metric.rb +0 -209
  1276. data/lib/cloudsmith-api/models/metricsownerrepopackagesusage_active_packages.rb +0 -209
  1277. data/lib/cloudsmith-api/models/package_usage_metric.rb +0 -243
  1278. data/lib/cloudsmith-api/models/quotaownerhistory_history.rb +0 -239
  1279. data/spec/models/entitlement_token_metric_spec.rb +0 -48
  1280. data/spec/models/metricsownerrepopackagesusage_active_packages_spec.rb +0 -54
  1281. data/spec/models/package_usage_metric_spec.rb +0 -60
  1282. data/spec/models/quotaownerhistory_history_spec.rb +0 -72
  1283. data/vendor/bundle/ruby/2.6.0/bin/safe_yaml +0 -27
  1284. data/vendor/bundle/ruby/2.6.0/cache/autotest-fsevent-0.2.17.gem +0 -0
  1285. data/vendor/bundle/ruby/2.6.0/cache/crack-0.4.3.gem +0 -0
  1286. data/vendor/bundle/ruby/2.6.0/cache/ethon-0.12.0.gem +0 -0
  1287. data/vendor/bundle/ruby/2.6.0/cache/ffi-1.13.1.gem +0 -0
  1288. data/vendor/bundle/ruby/2.6.0/cache/json-2.3.1.gem +0 -0
  1289. data/vendor/bundle/ruby/2.6.0/cache/rspec-3.9.0.gem +0 -0
  1290. data/vendor/bundle/ruby/2.6.0/cache/rspec-core-3.9.2.gem +0 -0
  1291. data/vendor/bundle/ruby/2.6.0/cache/rspec-expectations-3.9.2.gem +0 -0
  1292. data/vendor/bundle/ruby/2.6.0/cache/rspec-mocks-3.9.1.gem +0 -0
  1293. data/vendor/bundle/ruby/2.6.0/cache/rspec-support-3.9.3.gem +0 -0
  1294. data/vendor/bundle/ruby/2.6.0/cache/safe_yaml-1.0.5.gem +0 -0
  1295. data/vendor/bundle/ruby/2.6.0/cache/sys-uname-1.2.1.gem +0 -0
  1296. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/autotest-fsevent-0.2.17/gem_make.out +0 -14
  1297. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/ffi-1.13.1/ffi_c.so +0 -0
  1298. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/ffi-1.13.1/gem_make.out +0 -42
  1299. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.3.1/gem_make.out +0 -13
  1300. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.3.1/json/ext/generator.so +0 -0
  1301. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.3.1/json/ext/parser.so +0 -0
  1302. data/vendor/bundle/ruby/2.6.0/gems/autotest-fsevent-0.2.17/CHANGELOG.md +0 -125
  1303. data/vendor/bundle/ruby/2.6.0/gems/autotest-fsevent-0.2.17/ext/fsevent/extconf.rb +0 -40
  1304. data/vendor/bundle/ruby/2.6.0/gems/autotest-fsevent-0.2.17/lib/autotest-fsevent/version.rb +0 -5
  1305. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/.gitignore +0 -8
  1306. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/.travis.yml +0 -14
  1307. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/Gemfile +0 -5
  1308. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/History +0 -25
  1309. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/LICENSE +0 -20
  1310. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/README.md +0 -46
  1311. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/crack.gemspec +0 -20
  1312. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/lib/crack/json.rb +0 -111
  1313. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/lib/crack/version.rb +0 -3
  1314. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/script/bootstrap +0 -21
  1315. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/script/release +0 -42
  1316. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/script/test +0 -25
  1317. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/data/large_dataset.json +0 -139988
  1318. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/data/twittersearch-firefox.json +0 -1
  1319. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/data/twittersearch-ie.json +0 -1
  1320. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/hash_test.rb +0 -26
  1321. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/json_test.rb +0 -91
  1322. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/parser_test.rb +0 -27
  1323. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/string_test.rb +0 -31
  1324. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/test_helper.rb +0 -3
  1325. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/xml_test.rb +0 -514
  1326. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/.travis.yml +0 -30
  1327. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/CHANGELOG.md +0 -365
  1328. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/Gemfile +0 -38
  1329. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/Guardfile +0 -9
  1330. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/README.md +0 -95
  1331. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/Rakefile +0 -39
  1332. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/ethon.gemspec +0 -25
  1333. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon.rb +0 -35
  1334. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/curl.rb +0 -89
  1335. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/curls/classes.rb +0 -54
  1336. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/curls/codes.rb +0 -122
  1337. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/curls/constants.rb +0 -62
  1338. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/curls/form_options.rb +0 -36
  1339. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/curls/functions.rb +0 -66
  1340. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/curls/infos.rb +0 -150
  1341. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/curls/messages.rb +0 -18
  1342. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/curls/options.rb +0 -468
  1343. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/curls/settings.rb +0 -9
  1344. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy.rb +0 -315
  1345. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/callbacks.rb +0 -147
  1346. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/debug_info.rb +0 -46
  1347. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/features.rb +0 -30
  1348. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/form.rb +0 -106
  1349. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/header.rb +0 -60
  1350. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/http.rb +0 -67
  1351. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/http/actionable.rb +0 -156
  1352. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/http/custom.rb +0 -28
  1353. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/http/delete.rb +0 -24
  1354. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/http/get.rb +0 -23
  1355. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/http/head.rb +0 -23
  1356. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/http/options.rb +0 -23
  1357. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/http/patch.rb +0 -23
  1358. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/http/post.rb +0 -25
  1359. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/http/postable.rb +0 -31
  1360. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/http/put.rb +0 -26
  1361. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/http/putable.rb +0 -24
  1362. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/informations.rb +0 -94
  1363. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/mirror.rb +0 -35
  1364. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/operations.rb +0 -63
  1365. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/options.rb +0 -49
  1366. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/params.rb +0 -28
  1367. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/queryable.rb +0 -153
  1368. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/response_callbacks.rb +0 -130
  1369. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/easy/util.rb +0 -27
  1370. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/errors.rb +0 -16
  1371. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/errors/ethon_error.rb +0 -8
  1372. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/errors/global_init.rb +0 -12
  1373. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/errors/invalid_option.rb +0 -12
  1374. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/errors/invalid_value.rb +0 -12
  1375. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/errors/multi_add.rb +0 -11
  1376. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/errors/multi_fdset.rb +0 -11
  1377. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/errors/multi_remove.rb +0 -11
  1378. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/errors/multi_timeout.rb +0 -12
  1379. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/errors/select.rb +0 -12
  1380. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/libc.rb +0 -20
  1381. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/loggable.rb +0 -58
  1382. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/multi.rb +0 -103
  1383. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/multi/operations.rb +0 -190
  1384. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/multi/options.rb +0 -116
  1385. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/multi/stack.rb +0 -48
  1386. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/lib/ethon/version.rb +0 -5
  1387. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/profile/benchmarks.rb +0 -103
  1388. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/profile/memory_leaks.rb +0 -113
  1389. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/profile/perf_spec_helper.rb +0 -36
  1390. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/profile/support/memory_test_helpers.rb +0 -75
  1391. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/profile/support/os_memory_leak_tracker.rb +0 -47
  1392. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/profile/support/ruby_object_leak_tracker.rb +0 -48
  1393. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/curl_spec.rb +0 -37
  1394. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/callbacks_spec.rb +0 -58
  1395. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/debug_info_spec.rb +0 -53
  1396. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/features_spec.rb +0 -23
  1397. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/form_spec.rb +0 -103
  1398. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/header_spec.rb +0 -78
  1399. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/http/custom_spec.rb +0 -176
  1400. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/http/delete_spec.rb +0 -20
  1401. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/http/get_spec.rb +0 -125
  1402. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/http/head_spec.rb +0 -79
  1403. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/http/options_spec.rb +0 -50
  1404. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/http/patch_spec.rb +0 -50
  1405. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/http/post_spec.rb +0 -316
  1406. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/http/put_spec.rb +0 -167
  1407. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/http_spec.rb +0 -63
  1408. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/informations_spec.rb +0 -97
  1409. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/mirror_spec.rb +0 -45
  1410. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/operations_spec.rb +0 -267
  1411. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/options_spec.rb +0 -192
  1412. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/queryable_spec.rb +0 -234
  1413. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/response_callbacks_spec.rb +0 -151
  1414. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy/util_spec.rb +0 -27
  1415. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/easy_spec.rb +0 -202
  1416. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/libc_spec.rb +0 -13
  1417. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/loggable_spec.rb +0 -21
  1418. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/multi/operations_spec.rb +0 -297
  1419. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/multi/options_spec.rb +0 -68
  1420. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/multi/stack_spec.rb +0 -79
  1421. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/multi_spec.rb +0 -21
  1422. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/spec_helper.rb +0 -27
  1423. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/support/localhost_server.rb +0 -94
  1424. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/support/server.rb +0 -114
  1425. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/.appveyor.yml +0 -30
  1426. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/.github/workflows/ci.yml +0 -64
  1427. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/.gitignore +0 -25
  1428. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/.gitmodules +0 -4
  1429. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/.travis.yml +0 -58
  1430. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/.yardopts +0 -5
  1431. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/CHANGELOG.md +0 -222
  1432. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/Gemfile +0 -17
  1433. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/README.md +0 -124
  1434. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/Rakefile +0 -177
  1435. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/AbstractMemory.c +0 -1105
  1436. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Buffer.c +0 -365
  1437. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Call.c +0 -493
  1438. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/ClosurePool.c +0 -280
  1439. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/ClosurePool.h +0 -57
  1440. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/DynamicLibrary.c +0 -339
  1441. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Function.c +0 -902
  1442. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Function.h +0 -87
  1443. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/FunctionInfo.c +0 -270
  1444. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/LastError.c +0 -229
  1445. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Makefile +0 -266
  1446. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/MemoryPointer.c +0 -197
  1447. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/MemoryPointer.h +0 -53
  1448. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/MethodHandle.c +0 -352
  1449. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Platform.c +0 -83
  1450. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Pointer.c +0 -508
  1451. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Pointer.h +0 -63
  1452. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Struct.c +0 -825
  1453. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/StructByValue.c +0 -150
  1454. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/StructLayout.c +0 -704
  1455. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Thread.c +0 -134
  1456. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Thread.h +0 -81
  1457. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Type.c +0 -379
  1458. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Types.c +0 -139
  1459. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Types.h +0 -89
  1460. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Variadic.c +0 -298
  1461. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/extconf.rb +0 -82
  1462. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/.travis/bfin-sim.exp +0 -58
  1463. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/.travis/m32r-sim.exp +0 -58
  1464. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/.travis/moxie-sim.exp +0 -60
  1465. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/.travis/or1k-sim.exp +0 -58
  1466. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/.travis/powerpc-eabisim.exp +0 -58
  1467. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/.travis/wine-sim.exp +0 -55
  1468. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/Makefile.am +0 -160
  1469. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/README.md +0 -482
  1470. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/config.guess +0 -1466
  1471. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/config.sub +0 -1836
  1472. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/configure.ac +0 -410
  1473. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/configure.host +0 -306
  1474. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +0 -201
  1475. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/msvcc.sh +0 -353
  1476. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/aarch64/ffi.c +0 -1015
  1477. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/aarch64/ffitarget.h +0 -92
  1478. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/aarch64/internal.h +0 -67
  1479. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/aarch64/sysv.S +0 -451
  1480. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/aarch64/win64_armasm.S +0 -506
  1481. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/arm/ffi.c +0 -854
  1482. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/arm/sysv.S +0 -385
  1483. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/closures.c +0 -1004
  1484. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/dlmalloc.c +0 -5166
  1485. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/mips/ffi.c +0 -1130
  1486. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/mips/ffitarget.h +0 -244
  1487. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +0 -1440
  1488. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +0 -105
  1489. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/powerpc/linux64.S +0 -283
  1490. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +0 -552
  1491. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/prep_cif.c +0 -263
  1492. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/ffi.c +0 -764
  1493. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/ffi64.c +0 -888
  1494. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/ffiw64.c +0 -313
  1495. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/sysv.S +0 -1138
  1496. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/unix64.S +0 -622
  1497. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/win64.S +0 -240
  1498. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/win64_intel.S +0 -237
  1499. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/lib/libffi.exp +0 -640
  1500. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +0 -1745
  1501. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +0 -2885
  1502. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +0 -341
  1503. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/win32/stdbool.h +0 -8
  1504. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/win32/stdint.h +0 -201
  1505. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ffi.gemspec +0 -43
  1506. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/lib/ffi.rb +0 -28
  1507. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/lib/ffi/autopointer.rb +0 -203
  1508. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/lib/ffi/ffi.rb +0 -46
  1509. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/lib/ffi/io.rb +0 -62
  1510. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/lib/ffi/library.rb +0 -592
  1511. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/lib/ffi/managedstruct.rb +0 -84
  1512. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/lib/ffi/platform.rb +0 -179
  1513. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/lib/ffi/pointer.rb +0 -167
  1514. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/lib/ffi/variadic.rb +0 -78
  1515. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/lib/ffi/version.rb +0 -3
  1516. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/.gitignore +0 -18
  1517. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/.travis.yml +0 -26
  1518. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/CHANGES.md +0 -424
  1519. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/README-json-jruby.md +0 -33
  1520. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/Rakefile +0 -334
  1521. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/VERSION +0 -1
  1522. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/ext/json/ext/generator/generator.c +0 -1569
  1523. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/ext/json/ext/generator/generator.h +0 -171
  1524. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/ext/json/ext/generator/generator.so +0 -0
  1525. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/ext/json/ext/parser/extconf.rb +0 -6
  1526. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/ext/json/ext/parser/parser.c +0 -2137
  1527. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/ext/json/ext/parser/parser.h +0 -91
  1528. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/ext/json/ext/parser/parser.rl +0 -897
  1529. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/ext/json/ext/parser/parser.so +0 -0
  1530. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/ext/json/extconf.rb +0 -2
  1531. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/install.rb +0 -23
  1532. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/java/src/json/ext/ByteListTranscoder.java +0 -166
  1533. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/java/src/json/ext/Generator.java +0 -466
  1534. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/java/src/json/ext/GeneratorMethods.java +0 -231
  1535. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/java/src/json/ext/GeneratorService.java +0 -42
  1536. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/java/src/json/ext/GeneratorState.java +0 -490
  1537. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/java/src/json/ext/OptionsReader.java +0 -113
  1538. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/java/src/json/ext/Parser.java +0 -2362
  1539. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/java/src/json/ext/Parser.rl +0 -893
  1540. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/java/src/json/ext/ParserService.java +0 -34
  1541. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/java/src/json/ext/RuntimeInfo.java +0 -116
  1542. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/java/src/json/ext/StringDecoder.java +0 -166
  1543. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/java/src/json/ext/StringEncoder.java +0 -111
  1544. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/java/src/json/ext/Utils.java +0 -88
  1545. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/json-java.gemspec +0 -37
  1546. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/json.gemspec +0 -139
  1547. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/json_pure.gemspec +0 -33
  1548. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/lib/json.rb +0 -412
  1549. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/lib/json/add/complex.rb +0 -29
  1550. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/lib/json/add/rational.rb +0 -28
  1551. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/lib/json/common.rb +0 -691
  1552. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/lib/json/ext/.keep +0 -0
  1553. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/lib/json/ext/generator.so +0 -0
  1554. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/lib/json/ext/parser.so +0 -0
  1555. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/lib/json/pure/generator.rb +0 -459
  1556. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/lib/json/pure/parser.rb +0 -319
  1557. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/lib/json/version.rb +0 -9
  1558. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/references/rfc7159.txt +0 -899
  1559. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tests/json_addition_test.rb +0 -203
  1560. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tests/json_common_interface_test.rb +0 -126
  1561. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tests/json_fixtures_test.rb +0 -37
  1562. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tests/json_generator_test.rb +0 -421
  1563. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tests/json_parser_test.rb +0 -472
  1564. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tests/test_helper.rb +0 -17
  1565. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tools/diff.sh +0 -18
  1566. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tools/fuzz.rb +0 -131
  1567. data/vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tools/server.rb +0 -62
  1568. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.9.0/lib/rspec/version.rb +0 -5
  1569. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/Changelog.md +0 -2291
  1570. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/README.md +0 -384
  1571. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/lib/rspec/core/bisect/fork_runner.rb +0 -135
  1572. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb +0 -2363
  1573. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/lib/rspec/core/drb.rb +0 -113
  1574. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb +0 -656
  1575. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb +0 -900
  1576. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/exception_presenter.rb +0 -511
  1577. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb +0 -641
  1578. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/lib/rspec/core/invocations.rb +0 -87
  1579. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/lib/rspec/core/option_parser.rb +0 -316
  1580. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb +0 -204
  1581. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/lib/rspec/core/version.rb +0 -9
  1582. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.9.2/lib/rspec/core/world.rb +0 -276
  1583. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/Changelog.md +0 -1191
  1584. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/README.md +0 -320
  1585. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/configuration.rb +0 -215
  1586. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/failure_aggregator.rb +0 -194
  1587. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/handler.rb +0 -170
  1588. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/version.rb +0 -8
  1589. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers.rb +0 -1038
  1590. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in.rb +0 -52
  1591. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/be.rb +0 -288
  1592. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/be_within.rb +0 -72
  1593. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/has.rb +0 -103
  1594. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/include.rb +0 -149
  1595. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/raise_error.rb +0 -230
  1596. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/respond_to.rb +0 -199
  1597. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/yield.rb +0 -441
  1598. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/english_phrasing.rb +0 -58
  1599. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.1/Changelog.md +0 -1133
  1600. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.1/README.md +0 -463
  1601. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks.rb +0 -130
  1602. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/recorder.rb +0 -294
  1603. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/message_expectation.rb +0 -751
  1604. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/method_double.rb +0 -287
  1605. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/mutate_const.rb +0 -339
  1606. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/proxy.rb +0 -503
  1607. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/version.rb +0 -9
  1608. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/Changelog.md +0 -302
  1609. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/README.md +0 -40
  1610. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/lib/rspec/support.rb +0 -149
  1611. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/lib/rspec/support/caller_filter.rb +0 -83
  1612. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/lib/rspec/support/comparable_version.rb +0 -46
  1613. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/lib/rspec/support/method_signature_verifier.rb +0 -438
  1614. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/lib/rspec/support/ruby_features.rb +0 -190
  1615. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/lib/rspec/support/source.rb +0 -75
  1616. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/lib/rspec/support/spec.rb +0 -81
  1617. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/lib/rspec/support/spec/deprecation_helpers.rb +0 -64
  1618. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/lib/rspec/support/spec/in_sub_process.rb +0 -69
  1619. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/lib/rspec/support/spec/shell_out.rb +0 -89
  1620. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/lib/rspec/support/spec/string_matcher.rb +0 -46
  1621. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.9.3/lib/rspec/support/version.rb +0 -7
  1622. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/.gitignore +0 -3
  1623. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/.travis.yml +0 -48
  1624. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/CHANGES.md +0 -154
  1625. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/Gemfile +0 -11
  1626. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/LICENSE.txt +0 -22
  1627. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/README.md +0 -191
  1628. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/Rakefile +0 -26
  1629. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/bin/safe_yaml +0 -75
  1630. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/bundle_install_all_ruby_versions.sh +0 -11
  1631. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml.rb +0 -94
  1632. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/deep.rb +0 -34
  1633. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/libyaml_checker.rb +0 -36
  1634. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/load.rb +0 -181
  1635. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/date.rb +0 -37
  1636. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/hexadecimal.rb +0 -12
  1637. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb +0 -26
  1638. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/psych_handler.rb +0 -99
  1639. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/psych_resolver.rb +0 -52
  1640. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/resolver.rb +0 -94
  1641. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/safe_to_ruby_visitor.rb +0 -29
  1642. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/store.rb +0 -39
  1643. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_hack.rb +0 -36
  1644. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_node_monkeypatch.rb +0 -43
  1645. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_resolver.rb +0 -38
  1646. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform.rb +0 -41
  1647. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_boolean.rb +0 -21
  1648. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_date.rb +0 -13
  1649. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_float.rb +0 -33
  1650. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_integer.rb +0 -26
  1651. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_nil.rb +0 -18
  1652. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_symbol.rb +0 -17
  1653. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/transformation_map.rb +0 -47
  1654. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/version.rb +0 -3
  1655. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/run_specs_all_ruby_versions.sh +0 -38
  1656. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/safe_yaml.gemspec +0 -19
  1657. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/exploit.1.9.2.yaml +0 -2
  1658. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/exploit.1.9.3.yaml +0 -2
  1659. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/issue48.txt +0 -20
  1660. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/issue49.yml +0 -0
  1661. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/libyaml_checker_spec.rb +0 -69
  1662. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/psych_resolver_spec.rb +0 -10
  1663. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/resolver_specs.rb +0 -278
  1664. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/safe_yaml_spec.rb +0 -731
  1665. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/spec_helper.rb +0 -42
  1666. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/store_spec.rb +0 -57
  1667. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/support/exploitable_back_door.rb +0 -29
  1668. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/syck_resolver_spec.rb +0 -10
  1669. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/base64_spec.rb +0 -11
  1670. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/to_date_spec.rb +0 -60
  1671. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/to_float_spec.rb +0 -42
  1672. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/to_integer_spec.rb +0 -64
  1673. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/to_symbol_spec.rb +0 -51
  1674. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/yaml_spec.rb +0 -15
  1675. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.1/CHANGES.rdoc +0 -224
  1676. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.1/MANIFEST.rdoc +0 -11
  1677. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.1/README.rdoc +0 -51
  1678. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.1/Rakefile +0 -37
  1679. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.1/doc/uname.rdoc +0 -127
  1680. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.1/lib/sys/uname.rb +0 -19
  1681. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.1/spec/sys_platform_spec.rb +0 -75
  1682. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.1/spec/sys_uname_spec.rb +0 -445
  1683. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.1/sys-uname.gemspec +0 -36
  1684. data/vendor/bundle/ruby/2.6.0/specifications/autotest-fsevent-0.2.17.gemspec +0 -49
  1685. data/vendor/bundle/ruby/2.6.0/specifications/crack-0.4.3.gemspec +0 -32
  1686. data/vendor/bundle/ruby/2.6.0/specifications/ethon-0.12.0.gemspec +0 -32
  1687. data/vendor/bundle/ruby/2.6.0/specifications/ffi-1.13.1.gemspec +0 -50
  1688. data/vendor/bundle/ruby/2.6.0/specifications/json-2.3.1.gemspec +0 -0
  1689. data/vendor/bundle/ruby/2.6.0/specifications/rspec-3.9.0.gemspec +0 -43
  1690. data/vendor/bundle/ruby/2.6.0/specifications/rspec-core-3.9.2.gemspec +0 -63
  1691. data/vendor/bundle/ruby/2.6.0/specifications/rspec-expectations-3.9.2.gemspec +0 -51
  1692. data/vendor/bundle/ruby/2.6.0/specifications/rspec-mocks-3.9.1.gemspec +0 -51
  1693. data/vendor/bundle/ruby/2.6.0/specifications/rspec-support-3.9.3.gemspec +0 -39
  1694. data/vendor/bundle/ruby/2.6.0/specifications/safe_yaml-1.0.5.gemspec +0 -23
  1695. data/vendor/bundle/ruby/2.6.0/specifications/sys-uname-1.2.1.gemspec +0 -39
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: false
2
+ require_relative "elementdecl"
3
+ require_relative "entitydecl"
4
+ require_relative "../comment"
5
+ require_relative "notationdecl"
6
+ require_relative "attlistdecl"
7
+ require_relative "../parent"
8
+
9
+ module REXML
10
+ module DTD
11
+ class Parser
12
+ def Parser.parse( input )
13
+ case input
14
+ when String
15
+ parse_helper input
16
+ when File
17
+ parse_helper input.read
18
+ end
19
+ end
20
+
21
+ # Takes a String and parses it out
22
+ def Parser.parse_helper( input )
23
+ contents = Parent.new
24
+ while input.size > 0
25
+ case input
26
+ when ElementDecl.PATTERN_RE
27
+ match = $&
28
+ contents << ElementDecl.new( match )
29
+ when AttlistDecl.PATTERN_RE
30
+ matchdata = $~
31
+ contents << AttlistDecl.new( matchdata )
32
+ when EntityDecl.PATTERN_RE
33
+ matchdata = $~
34
+ contents << EntityDecl.new( matchdata )
35
+ when Comment.PATTERN_RE
36
+ matchdata = $~
37
+ contents << Comment.new( matchdata )
38
+ when NotationDecl.PATTERN_RE
39
+ matchdata = $~
40
+ contents << NotationDecl.new( matchdata )
41
+ end
42
+ end
43
+ contents
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: false
2
+ require_relative "../child"
3
+ module REXML
4
+ module DTD
5
+ class ElementDecl < Child
6
+ START = "<!ELEMENT"
7
+ START_RE = /^\s*#{START}/um
8
+ # PATTERN_RE = /^\s*(#{START}.*?)>/um
9
+ PATTERN_RE = /^\s*#{START}\s+((?:[:\w][-\.\w]*:)?[-!\*\.\w]*)(.*?)>/
10
+ #\s*((((["']).*?\5)|[^\/'">]*)*?)(\/)?>/um, true)
11
+
12
+ def initialize match
13
+ @name = match[1]
14
+ @rest = match[2]
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: false
2
+ require_relative "../child"
3
+ module REXML
4
+ module DTD
5
+ class EntityDecl < Child
6
+ START = "<!ENTITY"
7
+ START_RE = /^\s*#{START}/um
8
+ PUBLIC = /^\s*#{START}\s+(?:%\s+)?(\w+)\s+PUBLIC\s+((["']).*?\3)\s+((["']).*?\5)\s*>/um
9
+ SYSTEM = /^\s*#{START}\s+(?:%\s+)?(\w+)\s+SYSTEM\s+((["']).*?\3)(?:\s+NDATA\s+\w+)?\s*>/um
10
+ PLAIN = /^\s*#{START}\s+(\w+)\s+((["']).*?\3)\s*>/um
11
+ PERCENT = /^\s*#{START}\s+%\s+(\w+)\s+((["']).*?\3)\s*>/um
12
+ # <!ENTITY name SYSTEM "...">
13
+ # <!ENTITY name "...">
14
+ def initialize src
15
+ super()
16
+ md = nil
17
+ if src.match( PUBLIC )
18
+ md = src.match( PUBLIC, true )
19
+ @middle = "PUBLIC"
20
+ @content = "#{md[2]} #{md[4]}"
21
+ elsif src.match( SYSTEM )
22
+ md = src.match( SYSTEM, true )
23
+ @middle = "SYSTEM"
24
+ @content = md[2]
25
+ elsif src.match( PLAIN )
26
+ md = src.match( PLAIN, true )
27
+ @middle = ""
28
+ @content = md[2]
29
+ elsif src.match( PERCENT )
30
+ md = src.match( PERCENT, true )
31
+ @middle = ""
32
+ @content = md[2]
33
+ end
34
+ raise ParseException.new("failed Entity match", src) if md.nil?
35
+ @name = md[1]
36
+ end
37
+
38
+ def to_s
39
+ rv = "<!ENTITY #@name "
40
+ rv << "#@middle " if @middle.size > 0
41
+ rv << @content
42
+ rv
43
+ end
44
+
45
+ def write( output, indent )
46
+ indent( output, indent )
47
+ output << to_s
48
+ end
49
+
50
+ def EntityDecl.parse_source source, listener
51
+ md = source.match( PATTERN_RE, true )
52
+ thing = md[0].squeeze(" \t\n\r")
53
+ listener.send inspect.downcase, thing
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: false
2
+ require_relative "../child"
3
+ module REXML
4
+ module DTD
5
+ class NotationDecl < Child
6
+ START = "<!NOTATION"
7
+ START_RE = /^\s*#{START}/um
8
+ PUBLIC = /^\s*#{START}\s+(\w[\w-]*)\s+(PUBLIC)\s+((["']).*?\4)\s*>/um
9
+ SYSTEM = /^\s*#{START}\s+(\w[\w-]*)\s+(SYSTEM)\s+((["']).*?\4)\s*>/um
10
+ def initialize src
11
+ super()
12
+ if src.match( PUBLIC )
13
+ md = src.match( PUBLIC, true )
14
+ elsif src.match( SYSTEM )
15
+ md = src.match( SYSTEM, true )
16
+ else
17
+ raise ParseException.new( "error parsing notation: no matching pattern", src )
18
+ end
19
+ @name = md[1]
20
+ @middle = md[2]
21
+ @rest = md[3]
22
+ end
23
+
24
+ def to_s
25
+ "<!NOTATION #@name #@middle #@rest>"
26
+ end
27
+
28
+ def write( output, indent )
29
+ indent( output, indent )
30
+ output << to_s
31
+ end
32
+
33
+ def NotationDecl.parse_source source, listener
34
+ md = source.match( PATTERN_RE, true )
35
+ thing = md[0].squeeze(" \t\n\r")
36
+ listener.send inspect.downcase, thing
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,2599 @@
1
+ # frozen_string_literal: false
2
+ require_relative "parent"
3
+ require_relative "namespace"
4
+ require_relative "attribute"
5
+ require_relative "cdata"
6
+ require_relative "xpath"
7
+ require_relative "parseexception"
8
+
9
+ module REXML
10
+ # An implementation note about namespaces:
11
+ # As we parse, when we find namespaces we put them in a hash and assign
12
+ # them a unique ID. We then convert the namespace prefix for the node
13
+ # to the unique ID. This makes namespace lookup much faster for the
14
+ # cost of extra memory use. We save the namespace prefix for the
15
+ # context node and convert it back when we write it.
16
+ @@namespaces = {}
17
+
18
+ # An \REXML::Element object represents an XML element.
19
+ #
20
+ # An element:
21
+ #
22
+ # - Has a name (string).
23
+ # - May have a parent (another element).
24
+ # - Has zero or more children
25
+ # (other elements, text, CDATA, processing instructions, and comments).
26
+ # - Has zero or more siblings
27
+ # (other elements, text, CDATA, processing instructions, and comments).
28
+ # - Has zero or more named attributes.
29
+ #
30
+ # == In a Hurry?
31
+ #
32
+ # If you're somewhat familiar with XML
33
+ # and have a particular task in mind,
34
+ # you may want to see the
35
+ # {tasks pages}[../doc/rexml/tasks/tocs/master_toc_rdoc.html],
36
+ # and in particular, the
37
+ # {tasks page for elements}[../doc/rexml/tasks/tocs/element_toc_rdoc.html].
38
+ #
39
+ # === Name
40
+ #
41
+ # An element has a name, which is initially set when the element is created:
42
+ #
43
+ # e = REXML::Element.new('foo')
44
+ # e.name # => "foo"
45
+ #
46
+ # The name may be changed:
47
+ #
48
+ # e.name = 'bar'
49
+ # e.name # => "bar"
50
+ #
51
+ #
52
+ # === \Parent
53
+ #
54
+ # An element may have a parent.
55
+ #
56
+ # Its parent may be assigned explicitly when the element is created:
57
+ #
58
+ # e0 = REXML::Element.new('foo')
59
+ # e1 = REXML::Element.new('bar', e0)
60
+ # e1.parent # => <foo> ... </>
61
+ #
62
+ # Note: the representation of an element always shows the element's name.
63
+ # If the element has children, the representation indicates that
64
+ # by including an ellipsis (<tt>...</tt>).
65
+ #
66
+ # The parent may be assigned explicitly at any time:
67
+ #
68
+ # e2 = REXML::Element.new('baz')
69
+ # e1.parent = e2
70
+ # e1.parent # => <baz/>
71
+ #
72
+ # When an element is added as a child, its parent is set automatically:
73
+ #
74
+ # e1.add_element(e0)
75
+ # e0.parent # => <bar> ... </>
76
+ #
77
+ # For an element that has no parent, method +parent+ returns +nil+.
78
+ #
79
+ # === Children
80
+ #
81
+ # An element has zero or more children.
82
+ # The children are an ordered collection
83
+ # of all objects whose parent is the element itself.
84
+ #
85
+ # The children may include any combination of elements, text, comments,
86
+ # processing instructions, and CDATA.
87
+ # (This example keeps things clean by controlling whitespace
88
+ # via a +context+ setting.)
89
+ #
90
+ # xml_string = <<-EOT
91
+ # <root>
92
+ # <ele_0/>
93
+ # text 0
94
+ # <!--comment 0-->
95
+ # <?target_0 pi_0?>
96
+ # <![CDATA[cdata 0]]>
97
+ # <ele_1/>
98
+ # text 1
99
+ # <!--comment 1-->
100
+ # <?target_0 pi_1?>
101
+ # <![CDATA[cdata 1]]>
102
+ # </root>
103
+ # EOT
104
+ # context = {ignore_whitespace_nodes: :all, compress_whitespace: :all}
105
+ # d = REXML::Document.new(xml_string, context)
106
+ # root = d.root
107
+ # root.children.size # => 10
108
+ # root.each {|child| p "#{child.class}: #{child}" }
109
+ #
110
+ # Output:
111
+ #
112
+ # "REXML::Element: <ele_0/>"
113
+ # "REXML::Text: \n text 0\n "
114
+ # "REXML::Comment: comment 0"
115
+ # "REXML::Instruction: <?target_0 pi_0?>"
116
+ # "REXML::CData: cdata 0"
117
+ # "REXML::Element: <ele_1/>"
118
+ # "REXML::Text: \n text 1\n "
119
+ # "REXML::Comment: comment 1"
120
+ # "REXML::Instruction: <?target_0 pi_1?>"
121
+ # "REXML::CData: cdata 1"
122
+ #
123
+ # A child may be added using inherited methods
124
+ # Parent#insert_before or Parent#insert_after:
125
+ #
126
+ # xml_string = '<root><a/><c/><d/></root>'
127
+ # d = REXML::Document.new(xml_string)
128
+ # root = d.root
129
+ # c = d.root[1] # => <c/>
130
+ # root.insert_before(c, REXML::Element.new('b'))
131
+ # root.to_a # => [<a/>, <b/>, <c/>, <d/>]
132
+ #
133
+ # A child may be replaced using Parent#replace_child:
134
+ #
135
+ # root.replace_child(c, REXML::Element.new('x'))
136
+ # root.to_a # => [<a/>, <b/>, <x/>, <d/>]
137
+ #
138
+ # A child may be removed using Parent#delete:
139
+ #
140
+ # x = root[2] # => <x/>
141
+ # root.delete(x)
142
+ # root.to_a # => [<a/>, <b/>, <d/>]
143
+ #
144
+ # === Siblings
145
+ #
146
+ # An element has zero or more siblings,
147
+ # which are the other children of the element's parent.
148
+ #
149
+ # In the example above, element +ele_1+ is between a CDATA sibling
150
+ # and a text sibling:
151
+ #
152
+ # ele_1 = root[5] # => <ele_1/>
153
+ # ele_1.previous_sibling # => "cdata 0"
154
+ # ele_1.next_sibling # => "\n text 1\n "
155
+ #
156
+ # === \Attributes
157
+ #
158
+ # An element has zero or more named attributes.
159
+ #
160
+ # A new element has no attributes:
161
+ #
162
+ # e = REXML::Element.new('foo')
163
+ # e.attributes # => {}
164
+ #
165
+ # Attributes may be added:
166
+ #
167
+ # e.add_attribute('bar', 'baz')
168
+ # e.add_attribute('bat', 'bam')
169
+ # e.attributes.size # => 2
170
+ # e['bar'] # => "baz"
171
+ # e['bat'] # => "bam"
172
+ #
173
+ # An existing attribute may be modified:
174
+ #
175
+ # e.add_attribute('bar', 'bad')
176
+ # e.attributes.size # => 2
177
+ # e['bar'] # => "bad"
178
+ #
179
+ # An existing attribute may be deleted:
180
+ #
181
+ # e.delete_attribute('bar')
182
+ # e.attributes.size # => 1
183
+ # e['bar'] # => nil
184
+ #
185
+ # == What's Here
186
+ #
187
+ # To begin with, what's elsewhere?
188
+ #
189
+ # \Class \REXML::Element inherits from its ancestor classes:
190
+ #
191
+ # - REXML::Child
192
+ # - REXML::Parent
193
+ #
194
+ # \REXML::Element itself and its ancestors also include modules:
195
+ #
196
+ # - {Enumerable}[https://docs.ruby-lang.org/en/master/Enumerable.html]
197
+ # - REXML::Namespace
198
+ # - REXML::Node
199
+ # - REXML::XMLTokens
200
+ #
201
+ # === Methods for Creating an \Element
202
+ #
203
+ # ::new:: Returns a new empty element.
204
+ # #clone:: Returns a clone of another element.
205
+ #
206
+ # === Methods for Attributes
207
+ #
208
+ # {[attribute_name]}[#method-i-5B-5D]:: Returns an attribute value.
209
+ # #add_attribute:: Adds a new attribute.
210
+ # #add_attributes:: Adds multiple new attributes.
211
+ # #attribute:: Returns the attribute value for a given name and optional namespace.
212
+ # #delete_attribute:: Removes an attribute.
213
+ #
214
+ # === Methods for Children
215
+ #
216
+ # {[index]}[#method-i-5B-5D]:: Returns the child at the given offset.
217
+ # #add_element:: Adds an element as the last child.
218
+ # #delete_element:: Deletes a child element.
219
+ # #each_element:: Calls the given block with each child element.
220
+ # #each_element_with_attribute:: Calls the given block with each child element
221
+ # that meets given criteria,
222
+ # which can include the attribute name.
223
+ # #each_element_with_text:: Calls the given block with each child element
224
+ # that meets given criteria,
225
+ # which can include text.
226
+ # #get_elements:: Returns an array of element children that match a given xpath.
227
+ #
228
+ # === Methods for \Text Children
229
+ #
230
+ # #add_text:: Adds a text node to the element.
231
+ # #get_text:: Returns a text node that meets specified criteria.
232
+ # #text:: Returns the text string from the first node that meets specified criteria.
233
+ # #texts:: Returns an array of the text children of the element.
234
+ # #text=:: Adds, removes, or replaces the first text child of the element
235
+ #
236
+ # === Methods for Other Children
237
+ #
238
+ # #cdatas:: Returns an array of the cdata children of the element.
239
+ # #comments:: Returns an array of the comment children of the element.
240
+ # #instructions:: Returns an array of the instruction children of the element.
241
+ #
242
+ # === Methods for Namespaces
243
+ #
244
+ # #add_namespace:: Adds a namespace to the element.
245
+ # #delete_namespace:: Removes a namespace from the element.
246
+ # #namespace:: Returns the string namespace URI for the element.
247
+ # #namespaces:: Returns a hash of all defined namespaces in the element.
248
+ # #prefixes:: Returns an array of the string prefixes (names)
249
+ # of all defined namespaces in the element
250
+ #
251
+ # === Methods for Querying
252
+ #
253
+ # #document:: Returns the document, if any, that the element belongs to.
254
+ # #root:: Returns the most distant element (not document) ancestor of the element.
255
+ # #root_node:: Returns the most distant ancestor of the element.
256
+ # #xpath:: Returns the string xpath to the element
257
+ # relative to the most distant parent
258
+ # #has_attributes?:: Returns whether the element has attributes.
259
+ # #has_elements?:: Returns whether the element has elements.
260
+ # #has_text?:: Returns whether the element has text.
261
+ # #next_element:: Returns the next sibling that is an element.
262
+ # #previous_element:: Returns the previous sibling that is an element.
263
+ # #raw:: Returns whether raw mode is set for the element.
264
+ # #whitespace:: Returns whether whitespace is respected for the element.
265
+ # #ignore_whitespace_nodes:: Returns whether whitespace nodes
266
+ # are to be ignored for the element.
267
+ # #node_type:: Returns symbol <tt>:element</tt>.
268
+ #
269
+ # === One More Method
270
+ #
271
+ # #inspect:: Returns a string representation of the element.
272
+ #
273
+ # === Accessors
274
+ #
275
+ # #elements:: Returns the REXML::Elements object for the element.
276
+ # #attributes:: Returns the REXML::Attributes object for the element.
277
+ # #context:: Returns or sets the context hash for the element.
278
+ #
279
+ class Element < Parent
280
+ include Namespace
281
+
282
+ UNDEFINED = "UNDEFINED"; # The default name
283
+
284
+ # Mechanisms for accessing attributes and child elements of this
285
+ # element.
286
+ attr_reader :attributes, :elements
287
+ # The context holds information about the processing environment, such as
288
+ # whitespace handling.
289
+ attr_accessor :context
290
+
291
+ # :call-seq:
292
+ # Element.new(name = 'UNDEFINED', parent = nil, context = nil) -> new_element
293
+ # Element.new(element, parent = nil, context = nil) -> new_element
294
+ #
295
+ # Returns a new \REXML::Element object.
296
+ #
297
+ # When no arguments are given,
298
+ # returns an element with name <tt>'UNDEFINED'</tt>:
299
+ #
300
+ # e = REXML::Element.new # => <UNDEFINED/>
301
+ # e.class # => REXML::Element
302
+ # e.name # => "UNDEFINED"
303
+ #
304
+ # When only argument +name+ is given,
305
+ # returns an element of the given name:
306
+ #
307
+ # REXML::Element.new('foo') # => <foo/>
308
+ #
309
+ # When only argument +element+ is given, it must be an \REXML::Element object;
310
+ # returns a shallow copy of the given element:
311
+ #
312
+ # e0 = REXML::Element.new('foo')
313
+ # e1 = REXML::Element.new(e0) # => <foo/>
314
+ #
315
+ # When argument +parent+ is also given, it must be an REXML::Parent object:
316
+ #
317
+ # e = REXML::Element.new('foo', REXML::Parent.new)
318
+ # e.parent # => #<REXML::Parent @parent=nil, @children=[<foo/>]>
319
+ #
320
+ # When argument +context+ is also given, it must be a hash
321
+ # representing the context for the element;
322
+ # see {Element Context}[../doc/rexml/context_rdoc.html]:
323
+ #
324
+ # e = REXML::Element.new('foo', nil, {raw: :all})
325
+ # e.context # => {:raw=>:all}
326
+ #
327
+ def initialize( arg = UNDEFINED, parent=nil, context=nil )
328
+ super(parent)
329
+
330
+ @elements = Elements.new(self)
331
+ @attributes = Attributes.new(self)
332
+ @context = context
333
+
334
+ if arg.kind_of? String
335
+ self.name = arg
336
+ elsif arg.kind_of? Element
337
+ self.name = arg.expanded_name
338
+ arg.attributes.each_attribute{ |attribute|
339
+ @attributes << Attribute.new( attribute )
340
+ }
341
+ @context = arg.context
342
+ end
343
+ end
344
+
345
+ # :call-seq:
346
+ # inspect -> string
347
+ #
348
+ # Returns a string representation of the element.
349
+ #
350
+ # For an element with no attributes and no children, shows the element name:
351
+ #
352
+ # REXML::Element.new.inspect # => "<UNDEFINED/>"
353
+ #
354
+ # Shows attributes, if any:
355
+ #
356
+ # e = REXML::Element.new('foo')
357
+ # e.add_attributes({'bar' => 0, 'baz' => 1})
358
+ # e.inspect # => "<foo bar='0' baz='1'/>"
359
+ #
360
+ # Shows an ellipsis (<tt>...</tt>), if there are child elements:
361
+ #
362
+ # e.add_element(REXML::Element.new('bar'))
363
+ # e.add_element(REXML::Element.new('baz'))
364
+ # e.inspect # => "<foo bar='0' baz='1'> ... </>"
365
+ #
366
+ def inspect
367
+ rv = "<#@expanded_name"
368
+
369
+ @attributes.each_attribute do |attr|
370
+ rv << " "
371
+ attr.write( rv, 0 )
372
+ end
373
+
374
+ if children.size > 0
375
+ rv << "> ... </>"
376
+ else
377
+ rv << "/>"
378
+ end
379
+ end
380
+
381
+ # :call-seq:
382
+ # clone -> new_element
383
+ #
384
+ # Returns a shallow copy of the element, containing the name and attributes,
385
+ # but not the parent or children:
386
+ #
387
+ # e = REXML::Element.new('foo')
388
+ # e.add_attributes({'bar' => 0, 'baz' => 1})
389
+ # e.clone # => <foo bar='0' baz='1'/>
390
+ #
391
+ def clone
392
+ self.class.new self
393
+ end
394
+
395
+ # :call-seq:
396
+ # root_node -> document or element
397
+ #
398
+ # Returns the most distant ancestor of +self+.
399
+ #
400
+ # When the element is part of a document,
401
+ # returns the root node of the document.
402
+ # Note that the root node is different from the document element;
403
+ # in this example +a+ is document element and the root node is its parent:
404
+ #
405
+ # d = REXML::Document.new('<a><b><c/></b></a>')
406
+ # top_element = d.first # => <a> ... </>
407
+ # child = top_element.first # => <b> ... </>
408
+ # d.root_node == d # => true
409
+ # top_element.root_node == d # => true
410
+ # child.root_node == d # => true
411
+ #
412
+ # When the element is not part of a document, but does have ancestor elements,
413
+ # returns the most distant ancestor element:
414
+ #
415
+ # e0 = REXML::Element.new('foo')
416
+ # e1 = REXML::Element.new('bar')
417
+ # e1.parent = e0
418
+ # e2 = REXML::Element.new('baz')
419
+ # e2.parent = e1
420
+ # e2.root_node == e0 # => true
421
+ #
422
+ # When the element has no ancestor elements,
423
+ # returns +self+:
424
+ #
425
+ # e = REXML::Element.new('foo')
426
+ # e.root_node == e # => true
427
+ #
428
+ # Related: #root, #document.
429
+ #
430
+ def root_node
431
+ parent.nil? ? self : parent.root_node
432
+ end
433
+
434
+ # :call-seq:
435
+ # root -> element
436
+ #
437
+ # Returns the most distant _element_ (not document) ancestor of the element:
438
+ #
439
+ # d = REXML::Document.new('<a><b><c/></b></a>')
440
+ # top_element = d.first
441
+ # child = top_element.first
442
+ # top_element.root == top_element # => true
443
+ # child.root == top_element # => true
444
+ #
445
+ # For a document, returns the topmost element:
446
+ #
447
+ # d.root == top_element # => true
448
+ #
449
+ # Related: #root_node, #document.
450
+ #
451
+ def root
452
+ return elements[1] if self.kind_of? Document
453
+ return self if parent.kind_of? Document or parent.nil?
454
+ return parent.root
455
+ end
456
+
457
+ # :call-seq:
458
+ # document -> document or nil
459
+ #
460
+ # If the element is part of a document, returns that document:
461
+ #
462
+ # d = REXML::Document.new('<a><b><c/></b></a>')
463
+ # top_element = d.first
464
+ # child = top_element.first
465
+ # top_element.document == d # => true
466
+ # child.document == d # => true
467
+ #
468
+ # If the element is not part of a document, returns +nil+:
469
+ #
470
+ # REXML::Element.new.document # => nil
471
+ #
472
+ # For a document, returns +self+:
473
+ #
474
+ # d.document == d # => true
475
+ #
476
+ # Related: #root, #root_node.
477
+ #
478
+ def document
479
+ rt = root
480
+ rt.parent if rt
481
+ end
482
+
483
+ # :call-seq:
484
+ # whitespace
485
+ #
486
+ # Returns +true+ if whitespace is respected for this element,
487
+ # +false+ otherwise.
488
+ #
489
+ # See {Element Context}[../doc/rexml/context_rdoc.html].
490
+ #
491
+ # The evaluation is tested against the element's +expanded_name+,
492
+ # and so is namespace-sensitive.
493
+ def whitespace
494
+ @whitespace = nil
495
+ if @context
496
+ if @context[:respect_whitespace]
497
+ @whitespace = (@context[:respect_whitespace] == :all or
498
+ @context[:respect_whitespace].include? expanded_name)
499
+ end
500
+ @whitespace = false if (@context[:compress_whitespace] and
501
+ (@context[:compress_whitespace] == :all or
502
+ @context[:compress_whitespace].include? expanded_name)
503
+ )
504
+ end
505
+ @whitespace = true unless @whitespace == false
506
+ @whitespace
507
+ end
508
+
509
+ # :call-seq:
510
+ # ignore_whitespace_nodes
511
+ #
512
+ # Returns +true+ if whitespace nodes are ignored for the element.
513
+ #
514
+ # See {Element Context}[../doc/rexml/context_rdoc.html].
515
+ #
516
+ def ignore_whitespace_nodes
517
+ @ignore_whitespace_nodes = false
518
+ if @context
519
+ if @context[:ignore_whitespace_nodes]
520
+ @ignore_whitespace_nodes =
521
+ (@context[:ignore_whitespace_nodes] == :all or
522
+ @context[:ignore_whitespace_nodes].include? expanded_name)
523
+ end
524
+ end
525
+ end
526
+
527
+ # :call-seq:
528
+ # raw
529
+ #
530
+ # Returns +true+ if raw mode is set for the element.
531
+ #
532
+ # See {Element Context}[../doc/rexml/context_rdoc.html].
533
+ #
534
+ # The evaluation is tested against +expanded_name+, and so is namespace
535
+ # sensitive.
536
+ def raw
537
+ @raw = (@context and @context[:raw] and
538
+ (@context[:raw] == :all or
539
+ @context[:raw].include? expanded_name))
540
+ @raw
541
+ end
542
+
543
+ #once :whitespace, :raw, :ignore_whitespace_nodes
544
+
545
+ #################################################
546
+ # Namespaces #
547
+ #################################################
548
+
549
+ # :call-seq:
550
+ # prefixes -> array_of_namespace_prefixes
551
+ #
552
+ # Returns an array of the string prefixes (names) of all defined namespaces
553
+ # in the element and its ancestors:
554
+ #
555
+ # xml_string = <<-EOT
556
+ # <root>
557
+ # <a xmlns:x='1' xmlns:y='2'>
558
+ # <b/>
559
+ # <c xmlns:z='3'/>
560
+ # </a>
561
+ # </root>
562
+ # EOT
563
+ # d = REXML::Document.new(xml_string, {compress_whitespace: :all})
564
+ # d.elements['//a'].prefixes # => ["x", "y"]
565
+ # d.elements['//b'].prefixes # => ["x", "y"]
566
+ # d.elements['//c'].prefixes # => ["x", "y", "z"]
567
+ #
568
+ def prefixes
569
+ prefixes = []
570
+ prefixes = parent.prefixes if parent
571
+ prefixes |= attributes.prefixes
572
+ return prefixes
573
+ end
574
+
575
+ # :call-seq:
576
+ # namespaces -> array_of_namespace_names
577
+ #
578
+ # Returns a hash of all defined namespaces
579
+ # in the element and its ancestors:
580
+ #
581
+ # xml_string = <<-EOT
582
+ # <root>
583
+ # <a xmlns:x='1' xmlns:y='2'>
584
+ # <b/>
585
+ # <c xmlns:z='3'/>
586
+ # </a>
587
+ # </root>
588
+ # EOT
589
+ # d = REXML::Document.new(xml_string)
590
+ # d.elements['//a'].namespaces # => {"x"=>"1", "y"=>"2"}
591
+ # d.elements['//b'].namespaces # => {"x"=>"1", "y"=>"2"}
592
+ # d.elements['//c'].namespaces # => {"x"=>"1", "y"=>"2", "z"=>"3"}
593
+ #
594
+ def namespaces
595
+ namespaces = {}
596
+ namespaces = parent.namespaces if parent
597
+ namespaces = namespaces.merge( attributes.namespaces )
598
+ return namespaces
599
+ end
600
+
601
+ # :call-seq:
602
+ # namespace(prefix = nil) -> string_uri or nil
603
+ #
604
+ # Returns the string namespace URI for the element,
605
+ # possibly deriving from one of its ancestors.
606
+ #
607
+ # xml_string = <<-EOT
608
+ # <root>
609
+ # <a xmlns='1' xmlns:y='2'>
610
+ # <b/>
611
+ # <c xmlns:z='3'/>
612
+ # </a>
613
+ # </root>
614
+ # EOT
615
+ # d = REXML::Document.new(xml_string)
616
+ # b = d.elements['//b']
617
+ # b.namespace # => "1"
618
+ # b.namespace('y') # => "2"
619
+ # b.namespace('nosuch') # => nil
620
+ #
621
+ def namespace(prefix=nil)
622
+ if prefix.nil?
623
+ prefix = prefix()
624
+ end
625
+ if prefix == ''
626
+ prefix = "xmlns"
627
+ else
628
+ prefix = "xmlns:#{prefix}" unless prefix[0,5] == 'xmlns'
629
+ end
630
+ ns = attributes[ prefix ]
631
+ ns = parent.namespace(prefix) if ns.nil? and parent
632
+ ns = '' if ns.nil? and prefix == 'xmlns'
633
+ return ns
634
+ end
635
+
636
+ # :call-seq:
637
+ # add_namespace(prefix, uri = nil) -> self
638
+ #
639
+ # Adds a namespace to the element; returns +self+.
640
+ #
641
+ # With the single argument +prefix+,
642
+ # adds a namespace using the given +prefix+ and the namespace URI:
643
+ #
644
+ # e = REXML::Element.new('foo')
645
+ # e.add_namespace('bar')
646
+ # e.namespaces # => {"xmlns"=>"bar"}
647
+ #
648
+ # With both arguments +prefix+ and +uri+ given,
649
+ # adds a namespace using both arguments:
650
+ #
651
+ # e.add_namespace('baz', 'bat')
652
+ # e.namespaces # => {"xmlns"=>"bar", "baz"=>"bat"}
653
+ #
654
+ def add_namespace( prefix, uri=nil )
655
+ unless uri
656
+ @attributes["xmlns"] = prefix
657
+ else
658
+ prefix = "xmlns:#{prefix}" unless prefix =~ /^xmlns:/
659
+ @attributes[ prefix ] = uri
660
+ end
661
+ self
662
+ end
663
+
664
+ # :call-seq:
665
+ # delete_namespace(namespace = 'xmlns') -> self
666
+ #
667
+ # Removes a namespace from the element.
668
+ #
669
+ # With no argument, removes the default namespace:
670
+ #
671
+ # d = REXML::Document.new "<a xmlns:foo='bar' xmlns='twiddle'/>"
672
+ # d.to_s # => "<a xmlns:foo='bar' xmlns='twiddle'/>"
673
+ # d.root.delete_namespace # => <a xmlns:foo='bar'/>
674
+ # d.to_s # => "<a xmlns:foo='bar'/>"
675
+ #
676
+ # With argument +namespace+, removes the specified namespace:
677
+ #
678
+ # d.root.delete_namespace('foo')
679
+ # d.to_s # => "<a/>"
680
+ #
681
+ # Does nothing if no such namespace is found:
682
+ #
683
+ # d.root.delete_namespace('nosuch')
684
+ # d.to_s # => "<a/>"
685
+ #
686
+ def delete_namespace namespace="xmlns"
687
+ namespace = "xmlns:#{namespace}" unless namespace == 'xmlns'
688
+ attribute = attributes.get_attribute(namespace)
689
+ attribute.remove unless attribute.nil?
690
+ self
691
+ end
692
+
693
+ #################################################
694
+ # Elements #
695
+ #################################################
696
+
697
+ # :call-seq:
698
+ # add_element(name, attributes = nil) -> new_element
699
+ # add_element(element, attributes = nil) -> element
700
+ #
701
+ # Adds a child element, optionally setting attributes
702
+ # on the added element; returns the added element.
703
+ #
704
+ # With string argument +name+, creates a new element with that name
705
+ # and adds the new element as a child:
706
+ #
707
+ # e0 = REXML::Element.new('foo')
708
+ # e0.add_element('bar')
709
+ # e0[0] # => <bar/>
710
+ #
711
+ #
712
+ # With argument +name+ and hash argument +attributes+,
713
+ # sets attributes on the new element:
714
+ #
715
+ # e0.add_element('baz', {'bat' => '0', 'bam' => '1'})
716
+ # e0[1] # => <baz bat='0' bam='1'/>
717
+ #
718
+ # With element argument +element+, adds that element as a child:
719
+ #
720
+ # e0 = REXML::Element.new('foo')
721
+ # e1 = REXML::Element.new('bar')
722
+ # e0.add_element(e1)
723
+ # e0[0] # => <bar/>
724
+ #
725
+ # With argument +element+ and hash argument +attributes+,
726
+ # sets attributes on the added element:
727
+ #
728
+ # e0.add_element(e1, {'bat' => '0', 'bam' => '1'})
729
+ # e0[1] # => <bar bat='0' bam='1'/>
730
+ #
731
+ def add_element element, attrs=nil
732
+ raise "First argument must be either an element name, or an Element object" if element.nil?
733
+ el = @elements.add(element)
734
+ attrs.each do |key, value|
735
+ el.attributes[key]=value
736
+ end if attrs.kind_of? Hash
737
+ el
738
+ end
739
+
740
+ # :call-seq:
741
+ # delete_element(index) -> removed_element or nil
742
+ # delete_element(element) -> removed_element or nil
743
+ # delete_element(xpath) -> removed_element or nil
744
+ #
745
+ # Deletes a child element.
746
+ #
747
+ # When 1-based integer argument +index+ is given,
748
+ # removes and returns the child element at that offset if it exists;
749
+ # indexing does not include text nodes;
750
+ # returns +nil+ if the element does not exist:
751
+ #
752
+ # d = REXML::Document.new '<a><b/>text<c/></a>'
753
+ # a = d.root # => <a> ... </>
754
+ # a.delete_element(1) # => <b/>
755
+ # a.delete_element(1) # => <c/>
756
+ # a.delete_element(1) # => nil
757
+ #
758
+ # When element argument +element+ is given,
759
+ # removes and returns that child element if it exists,
760
+ # otherwise returns +nil+:
761
+ #
762
+ # d = REXML::Document.new '<a><b/>text<c/></a>'
763
+ # a = d.root # => <a> ... </>
764
+ # c = a[2] # => <c/>
765
+ # a.delete_element(c) # => <c/>
766
+ # a.delete_element(c) # => nil
767
+ #
768
+ # When xpath argument +xpath+ is given,
769
+ # removes and returns the element at xpath if it exists,
770
+ # otherwise returns +nil+:
771
+ #
772
+ # d = REXML::Document.new '<a><b/>text<c/></a>'
773
+ # a = d.root # => <a> ... </>
774
+ # a.delete_element('//c') # => <c/>
775
+ # a.delete_element('//c') # => nil
776
+ #
777
+ def delete_element element
778
+ @elements.delete element
779
+ end
780
+
781
+ # :call-seq:
782
+ # has_elements?
783
+ #
784
+ # Returns +true+ if the element has one or more element children,
785
+ # +false+ otherwise:
786
+ #
787
+ # d = REXML::Document.new '<a><b/>text<c/></a>'
788
+ # a = d.root # => <a> ... </>
789
+ # a.has_elements? # => true
790
+ # b = a[0] # => <b/>
791
+ # b.has_elements? # => false
792
+ #
793
+ def has_elements?
794
+ !@elements.empty?
795
+ end
796
+
797
+ # :call-seq:
798
+ # each_element_with_attribute(attr_name, value = nil, max = 0, xpath = nil) {|e| ... }
799
+ #
800
+ # Calls the given block with each child element that meets given criteria.
801
+ #
802
+ # When only string argument +attr_name+ is given,
803
+ # calls the block with each child element that has that attribute:
804
+ #
805
+ # d = REXML::Document.new '<a><b id="1"/><c id="2"/><d id="1"/><e/></a>'
806
+ # a = d.root
807
+ # a.each_element_with_attribute('id') {|e| p e }
808
+ #
809
+ # Output:
810
+ #
811
+ # <b id='1'/>
812
+ # <c id='2'/>
813
+ # <d id='1'/>
814
+ #
815
+ # With argument +attr_name+ and string argument +value+ given,
816
+ # calls the block with each child element that has that attribute
817
+ # with that value:
818
+ #
819
+ # a.each_element_with_attribute('id', '1') {|e| p e }
820
+ #
821
+ # Output:
822
+ #
823
+ # <b id='1'/>
824
+ # <d id='1'/>
825
+ #
826
+ # With arguments +attr_name+, +value+, and integer argument +max+ given,
827
+ # calls the block with at most +max+ child elements:
828
+ #
829
+ # a.each_element_with_attribute('id', '1', 1) {|e| p e }
830
+ #
831
+ # Output:
832
+ #
833
+ # <b id='1'/>
834
+ #
835
+ # With all arguments given, including +xpath+,
836
+ # calls the block with only those child elements
837
+ # that meet the first three criteria,
838
+ # and also match the given +xpath+:
839
+ #
840
+ # a.each_element_with_attribute('id', '1', 2, '//d') {|e| p e }
841
+ #
842
+ # Output:
843
+ #
844
+ # <d id='1'/>
845
+ #
846
+ def each_element_with_attribute( key, value=nil, max=0, name=nil, &block ) # :yields: Element
847
+ each_with_something( proc {|child|
848
+ if value.nil?
849
+ child.attributes[key] != nil
850
+ else
851
+ child.attributes[key]==value
852
+ end
853
+ }, max, name, &block )
854
+ end
855
+
856
+ # :call-seq:
857
+ # each_element_with_text(text = nil, max = 0, xpath = nil) {|e| ... }
858
+ #
859
+ # Calls the given block with each child element that meets given criteria.
860
+ #
861
+ # With no arguments, calls the block with each child element that has text:
862
+ #
863
+ # d = REXML::Document.new '<a><b>b</b><c>b</c><d>d</d><e/></a>'
864
+ # a = d.root
865
+ # a.each_element_with_text {|e| p e }
866
+ #
867
+ # Output:
868
+ #
869
+ # <b> ... </>
870
+ # <c> ... </>
871
+ # <d> ... </>
872
+ #
873
+ # With the single string argument +text+,
874
+ # calls the block with each element that has exactly that text:
875
+ #
876
+ # a.each_element_with_text('b') {|e| p e }
877
+ #
878
+ # Output:
879
+ #
880
+ # <b> ... </>
881
+ # <c> ... </>
882
+ #
883
+ # With argument +text+ and integer argument +max+,
884
+ # calls the block with at most +max+ elements:
885
+ #
886
+ # a.each_element_with_text('b', 1) {|e| p e }
887
+ #
888
+ # Output:
889
+ #
890
+ # <b> ... </>
891
+ #
892
+ # With all arguments given, including +xpath+,
893
+ # calls the block with only those child elements
894
+ # that meet the first two criteria,
895
+ # and also match the given +xpath+:
896
+ #
897
+ # a.each_element_with_text('b', 2, '//c') {|e| p e }
898
+ #
899
+ # Output:
900
+ #
901
+ # <c> ... </>
902
+ #
903
+ def each_element_with_text( text=nil, max=0, name=nil, &block ) # :yields: Element
904
+ each_with_something( proc {|child|
905
+ if text.nil?
906
+ child.has_text?
907
+ else
908
+ child.text == text
909
+ end
910
+ }, max, name, &block )
911
+ end
912
+
913
+ # :call-seq:
914
+ # each_element {|e| ... }
915
+ #
916
+ # Calls the given block with each child element:
917
+ #
918
+ # d = REXML::Document.new '<a><b>b</b><c>b</c><d>d</d><e/></a>'
919
+ # a = d.root
920
+ # a.each_element {|e| p e }
921
+ #
922
+ # Output:
923
+ #
924
+ # <b> ... </>
925
+ # <c> ... </>
926
+ # <d> ... </>
927
+ # <e/>
928
+ #
929
+ def each_element( xpath=nil, &block ) # :yields: Element
930
+ @elements.each( xpath, &block )
931
+ end
932
+
933
+ # :call-seq:
934
+ # get_elements(xpath)
935
+ #
936
+ # Returns an array of the elements that match the given +xpath+:
937
+ #
938
+ # xml_string = <<-EOT
939
+ # <root>
940
+ # <a level='1'>
941
+ # <a level='2'/>
942
+ # </a>
943
+ # </root>
944
+ # EOT
945
+ # d = REXML::Document.new(xml_string)
946
+ # d.root.get_elements('//a') # => [<a level='1'> ... </>, <a level='2'/>]
947
+ #
948
+ def get_elements( xpath )
949
+ @elements.to_a( xpath )
950
+ end
951
+
952
+ # :call-seq:
953
+ # next_element
954
+ #
955
+ # Returns the next sibling that is an element if it exists,
956
+ # +niL+ otherwise:
957
+ #
958
+ # d = REXML::Document.new '<a><b/>text<c/></a>'
959
+ # d.root.elements['b'].next_element #-> <c/>
960
+ # d.root.elements['c'].next_element #-> nil
961
+ #
962
+ def next_element
963
+ element = next_sibling
964
+ element = element.next_sibling until element.nil? or element.kind_of? Element
965
+ return element
966
+ end
967
+
968
+ # :call-seq:
969
+ # previous_element
970
+ #
971
+ # Returns the previous sibling that is an element if it exists,
972
+ # +niL+ otherwise:
973
+ #
974
+ # d = REXML::Document.new '<a><b/>text<c/></a>'
975
+ # d.root.elements['c'].previous_element #-> <b/>
976
+ # d.root.elements['b'].previous_element #-> nil
977
+ #
978
+ def previous_element
979
+ element = previous_sibling
980
+ element = element.previous_sibling until element.nil? or element.kind_of? Element
981
+ return element
982
+ end
983
+
984
+
985
+ #################################################
986
+ # Text #
987
+ #################################################
988
+
989
+ # :call-seq:
990
+ # has_text? -> true or false
991
+ #
992
+ # Returns +true if the element has one or more text noded,
993
+ # +false+ otherwise:
994
+ #
995
+ # d = REXML::Document.new '<a><b/>text<c/></a>'
996
+ # a = d.root
997
+ # a.has_text? # => true
998
+ # b = a[0]
999
+ # b.has_text? # => false
1000
+ #
1001
+ def has_text?
1002
+ not text().nil?
1003
+ end
1004
+
1005
+ # :call-seq:
1006
+ # text(xpath = nil) -> text_string or nil
1007
+ #
1008
+ # Returns the text string from the first text node child
1009
+ # in a specified element, if it exists, # +nil+ otherwise.
1010
+ #
1011
+ # With no argument, returns the text from the first text node in +self+:
1012
+ #
1013
+ # d = REXML::Document.new "<p>some text <b>this is bold!</b> more text</p>"
1014
+ # d.root.text.class # => String
1015
+ # d.root.text # => "some text "
1016
+ #
1017
+ # With argument +xpath+, returns text from the the first text node
1018
+ # in the element that matches +xpath+:
1019
+ #
1020
+ # d.root.text(1) # => "this is bold!"
1021
+ #
1022
+ # Note that an element may have multiple text nodes,
1023
+ # possibly separated by other non-text children, as above.
1024
+ # Even so, the returned value is the string text from the first such node.
1025
+ #
1026
+ # Note also that the text note is retrieved by method get_text,
1027
+ # and so is always normalized text.
1028
+ #
1029
+ def text( path = nil )
1030
+ rv = get_text(path)
1031
+ return rv.value unless rv.nil?
1032
+ nil
1033
+ end
1034
+
1035
+ # :call-seq:
1036
+ # get_text(xpath = nil) -> text_node or nil
1037
+ #
1038
+ # Returns the first text node child in a specified element, if it exists,
1039
+ # +nil+ otherwise.
1040
+ #
1041
+ # With no argument, returns the first text node from +self+:
1042
+ #
1043
+ # d = REXML::Document.new "<p>some text <b>this is bold!</b> more text</p>"
1044
+ # d.root.get_text.class # => REXML::Text
1045
+ # d.root.get_text # => "some text "
1046
+ #
1047
+ # With argument +xpath+, returns the first text node from the element
1048
+ # that matches +xpath+:
1049
+ #
1050
+ # d.root.get_text(1) # => "this is bold!"
1051
+ #
1052
+ def get_text path = nil
1053
+ rv = nil
1054
+ if path
1055
+ element = @elements[ path ]
1056
+ rv = element.get_text unless element.nil?
1057
+ else
1058
+ rv = @children.find { |node| node.kind_of? Text }
1059
+ end
1060
+ return rv
1061
+ end
1062
+
1063
+ # :call-seq:
1064
+ # text = string -> string
1065
+ # text = nil -> nil
1066
+ #
1067
+ # Adds, replaces, or removes the first text node child in the element.
1068
+ #
1069
+ # With string argument +string+,
1070
+ # creates a new \REXML::Text node containing that string,
1071
+ # honoring the current settings for whitespace and row,
1072
+ # then places the node as the first text child in the element;
1073
+ # returns +string+.
1074
+ #
1075
+ # If the element has no text child, the text node is added:
1076
+ #
1077
+ # d = REXML::Document.new '<a><b/></a>'
1078
+ # d.root.text = 'foo' #-> '<a><b/>foo</a>'
1079
+ #
1080
+ # If the element has a text child, it is replaced:
1081
+ #
1082
+ # d.root.text = 'bar' #-> '<a><b/>bar</a>'
1083
+ #
1084
+ # With argument +nil+, removes the first text child:
1085
+ #
1086
+ # d.root.text = nil #-> '<a><b/><c/></a>'
1087
+ #
1088
+ def text=( text )
1089
+ if text.kind_of? String
1090
+ text = Text.new( text, whitespace(), nil, raw() )
1091
+ elsif !text.nil? and !text.kind_of? Text
1092
+ text = Text.new( text.to_s, whitespace(), nil, raw() )
1093
+ end
1094
+ old_text = get_text
1095
+ if text.nil?
1096
+ old_text.remove unless old_text.nil?
1097
+ else
1098
+ if old_text.nil?
1099
+ self << text
1100
+ else
1101
+ old_text.replace_with( text )
1102
+ end
1103
+ end
1104
+ return self
1105
+ end
1106
+
1107
+ # :call-seq:
1108
+ # add_text(string) -> nil
1109
+ # add_text(text_node) -> self
1110
+ #
1111
+ # Adds text to the element.
1112
+ #
1113
+ # When string argument +string+ is given, returns +nil+.
1114
+ #
1115
+ # If the element has no child text node,
1116
+ # creates a \REXML::Text object using the string,
1117
+ # honoring the current settings for whitespace and raw,
1118
+ # then adds that node to the element:
1119
+ #
1120
+ # d = REXML::Document.new('<a><b/></a>')
1121
+ # a = d.root
1122
+ # a.add_text('foo')
1123
+ # a.to_a # => [<b/>, "foo"]
1124
+ #
1125
+ # If the element has child text nodes,
1126
+ # appends the string to the _last_ text node:
1127
+ #
1128
+ # d = REXML::Document.new('<a>foo<b/>bar</a>')
1129
+ # a = d.root
1130
+ # a.add_text('baz')
1131
+ # a.to_a # => ["foo", <b/>, "barbaz"]
1132
+ # a.add_text('baz')
1133
+ # a.to_a # => ["foo", <b/>, "barbazbaz"]
1134
+ #
1135
+ # When text node argument +text_node+ is given,
1136
+ # appends the node as the last text node in the element;
1137
+ # returns +self+:
1138
+ #
1139
+ # d = REXML::Document.new('<a>foo<b/>bar</a>')
1140
+ # a = d.root
1141
+ # a.add_text(REXML::Text.new('baz'))
1142
+ # a.to_a # => ["foo", <b/>, "bar", "baz"]
1143
+ # a.add_text(REXML::Text.new('baz'))
1144
+ # a.to_a # => ["foo", <b/>, "bar", "baz", "baz"]
1145
+ #
1146
+ def add_text( text )
1147
+ if text.kind_of? String
1148
+ if @children[-1].kind_of? Text
1149
+ @children[-1] << text
1150
+ return
1151
+ end
1152
+ text = Text.new( text, whitespace(), nil, raw() )
1153
+ end
1154
+ self << text unless text.nil?
1155
+ return self
1156
+ end
1157
+
1158
+ # :call-seq:
1159
+ # node_type -> :element
1160
+ #
1161
+ # Returns symbol <tt>:element</tt>:
1162
+ #
1163
+ # d = REXML::Document.new('<a/>')
1164
+ # a = d.root # => <a/>
1165
+ # a.node_type # => :element
1166
+ #
1167
+ def node_type
1168
+ :element
1169
+ end
1170
+
1171
+ # :call-seq:
1172
+ # xpath -> string_xpath
1173
+ #
1174
+ # Returns the string xpath to the element
1175
+ # relative to the most distant parent:
1176
+ #
1177
+ # d = REXML::Document.new('<a><b><c/></b></a>')
1178
+ # a = d.root # => <a> ... </>
1179
+ # b = a[0] # => <b> ... </>
1180
+ # c = b[0] # => <c/>
1181
+ # d.xpath # => ""
1182
+ # a.xpath # => "/a"
1183
+ # b.xpath # => "/a/b"
1184
+ # c.xpath # => "/a/b/c"
1185
+ #
1186
+ # If there is no parent, returns the expanded name of the element:
1187
+ #
1188
+ # e = REXML::Element.new('foo')
1189
+ # e.xpath # => "foo"
1190
+ #
1191
+ def xpath
1192
+ path_elements = []
1193
+ cur = self
1194
+ path_elements << __to_xpath_helper( self )
1195
+ while cur.parent
1196
+ cur = cur.parent
1197
+ path_elements << __to_xpath_helper( cur )
1198
+ end
1199
+ return path_elements.reverse.join( "/" )
1200
+ end
1201
+
1202
+ #################################################
1203
+ # Attributes #
1204
+ #################################################
1205
+
1206
+ # :call-seq:
1207
+ # [index] -> object
1208
+ # [attr_name] -> attr_value
1209
+ # [attr_sym] -> attr_value
1210
+ #
1211
+ # With integer argument +index+ given,
1212
+ # returns the child at offset +index+, or +nil+ if none:
1213
+ #
1214
+ # d = REXML::Document.new '><root><a/>text<b/>more<c/></root>'
1215
+ # root = d.root
1216
+ # (0..root.size).each do |index|
1217
+ # node = root[index]
1218
+ # p "#{index}: #{node} (#{node.class})"
1219
+ # end
1220
+ #
1221
+ # Output:
1222
+ #
1223
+ # "0: <a/> (REXML::Element)"
1224
+ # "1: text (REXML::Text)"
1225
+ # "2: <b/> (REXML::Element)"
1226
+ # "3: more (REXML::Text)"
1227
+ # "4: <c/> (REXML::Element)"
1228
+ # "5: (NilClass)"
1229
+ #
1230
+ # With string argument +attr_name+ given,
1231
+ # returns the string value for the given attribute name if it exists,
1232
+ # otherwise +nil+:
1233
+ #
1234
+ # d = REXML::Document.new('<root attr="value"></root>')
1235
+ # root = d.root
1236
+ # root['attr'] # => "value"
1237
+ # root['nosuch'] # => nil
1238
+ #
1239
+ # With symbol argument +attr_sym+ given,
1240
+ # returns <tt>[attr_sym.to_s]</tt>:
1241
+ #
1242
+ # root[:attr] # => "value"
1243
+ # root[:nosuch] # => nil
1244
+ #
1245
+ def [](name_or_index)
1246
+ case name_or_index
1247
+ when String
1248
+ attributes[name_or_index]
1249
+ when Symbol
1250
+ attributes[name_or_index.to_s]
1251
+ else
1252
+ super
1253
+ end
1254
+ end
1255
+
1256
+
1257
+ # :call-seq:
1258
+ # attribute(name, namespace = nil)
1259
+ #
1260
+ # Returns the string value for the given attribute name.
1261
+ #
1262
+ # With only argument +name+ given,
1263
+ # returns the value of the named attribute if it exists, otherwise +nil+:
1264
+ #
1265
+ # xml_string = <<-EOT
1266
+ # <root xmlns="ns0">
1267
+ # <a xmlns="ns1" attr="value"></a>
1268
+ # <b xmlns="ns2" attr="value"></b>
1269
+ # <c attr="value"/>
1270
+ # </root>
1271
+ # EOT
1272
+ # d = REXML::Document.new(xml_string)
1273
+ # root = d.root
1274
+ # a = root[1] # => <a xmlns='ns1' attr='value'/>
1275
+ # a.attribute('attr') # => attr='value'
1276
+ # a.attribute('nope') # => nil
1277
+ #
1278
+ # With arguments +name+ and +namespace+ given,
1279
+ # returns the value of the named attribute if it exists, otherwise +nil+:
1280
+ #
1281
+ # xml_string = "<root xmlns:a='a' a:x='a:x' x='x'/>"
1282
+ # document = REXML::Document.new(xml_string)
1283
+ # document.root.attribute("x") # => x='x'
1284
+ # document.root.attribute("x", "a") # => a:x='a:x'
1285
+ #
1286
+ def attribute( name, namespace=nil )
1287
+ prefix = nil
1288
+ if namespaces.respond_to? :key
1289
+ prefix = namespaces.key(namespace) if namespace
1290
+ else
1291
+ prefix = namespaces.index(namespace) if namespace
1292
+ end
1293
+ prefix = nil if prefix == 'xmlns'
1294
+
1295
+ ret_val =
1296
+ attributes.get_attribute( "#{prefix ? prefix + ':' : ''}#{name}" )
1297
+
1298
+ return ret_val unless ret_val.nil?
1299
+ return nil if prefix.nil?
1300
+
1301
+ # now check that prefix'es namespace is not the same as the
1302
+ # default namespace
1303
+ return nil unless ( namespaces[ prefix ] == namespaces[ 'xmlns' ] )
1304
+
1305
+ attributes.get_attribute( name )
1306
+
1307
+ end
1308
+
1309
+ # :call-seq:
1310
+ # has_attributes? -> true or false
1311
+ #
1312
+ # Returns +true+ if the element has attributes, +false+ otherwise:
1313
+ #
1314
+ # d = REXML::Document.new('<root><a attr="val"/><b/></root>')
1315
+ # a, b = *d.root
1316
+ # a.has_attributes? # => true
1317
+ # b.has_attributes? # => false
1318
+ #
1319
+ def has_attributes?
1320
+ return !@attributes.empty?
1321
+ end
1322
+
1323
+ # :call-seq:
1324
+ # add_attribute(name, value) -> value
1325
+ # add_attribute(attribute) -> attribute
1326
+ #
1327
+ # Adds an attribute to this element, overwriting any existing attribute
1328
+ # by the same name.
1329
+ #
1330
+ # With string argument +name+ and object +value+ are given,
1331
+ # adds the attribute created with that name and value:
1332
+ #
1333
+ # e = REXML::Element.new
1334
+ # e.add_attribute('attr', 'value') # => "value"
1335
+ # e['attr'] # => "value"
1336
+ # e.add_attribute('attr', 'VALUE') # => "VALUE"
1337
+ # e['attr'] # => "VALUE"
1338
+ #
1339
+ # With only attribute object +attribute+ given,
1340
+ # adds the given attribute:
1341
+ #
1342
+ # a = REXML::Attribute.new('attr', 'value')
1343
+ # e.add_attribute(a) # => attr='value'
1344
+ # e['attr'] # => "value"
1345
+ # a = REXML::Attribute.new('attr', 'VALUE')
1346
+ # e.add_attribute(a) # => attr='VALUE'
1347
+ # e['attr'] # => "VALUE"
1348
+ #
1349
+ def add_attribute( key, value=nil )
1350
+ if key.kind_of? Attribute
1351
+ @attributes << key
1352
+ else
1353
+ @attributes[key] = value
1354
+ end
1355
+ end
1356
+
1357
+ # :call-seq:
1358
+ # add_attributes(hash) -> hash
1359
+ # add_attributes(array)
1360
+ #
1361
+ # Adds zero or more attributes to the element;
1362
+ # returns the argument.
1363
+ #
1364
+ # If hash argument +hash+ is given,
1365
+ # each key must be a string;
1366
+ # adds each attribute created with the key/value pair:
1367
+ #
1368
+ # e = REXML::Element.new
1369
+ # h = {'foo' => 'bar', 'baz' => 'bat'}
1370
+ # e.add_attributes(h)
1371
+ #
1372
+ # If argument +array+ is given,
1373
+ # each array member must be a 2-element array <tt>[name, value];
1374
+ # each name must be a string:
1375
+ #
1376
+ # e = REXML::Element.new
1377
+ # a = [['foo' => 'bar'], ['baz' => 'bat']]
1378
+ # e.add_attributes(a)
1379
+ #
1380
+ def add_attributes hash
1381
+ if hash.kind_of? Hash
1382
+ hash.each_pair {|key, value| @attributes[key] = value }
1383
+ elsif hash.kind_of? Array
1384
+ hash.each { |value| @attributes[ value[0] ] = value[1] }
1385
+ end
1386
+ end
1387
+
1388
+ # :call-seq:
1389
+ # delete_attribute(name) -> removed_attribute or nil
1390
+ #
1391
+ # Removes a named attribute if it exists;
1392
+ # returns the removed attribute if found, otherwise +nil+:
1393
+ #
1394
+ # e = REXML::Element.new('foo')
1395
+ # e.add_attribute('bar', 'baz')
1396
+ # e.delete_attribute('bar') # => <bar/>
1397
+ # e.delete_attribute('bar') # => nil
1398
+ #
1399
+ def delete_attribute(key)
1400
+ attr = @attributes.get_attribute(key)
1401
+ attr.remove unless attr.nil?
1402
+ end
1403
+
1404
+ #################################################
1405
+ # Other Utilities #
1406
+ #################################################
1407
+
1408
+ # :call-seq:
1409
+ # cdatas -> array_of_cdata_children
1410
+ #
1411
+ # Returns a frozen array of the REXML::CData children of the element:
1412
+ #
1413
+ # xml_string = <<-EOT
1414
+ # <root>
1415
+ # <![CDATA[foo]]>
1416
+ # <![CDATA[bar]]>
1417
+ # </root>
1418
+ # EOT
1419
+ # d = REXML::Document.new(xml_string)
1420
+ # cds = d.root.cdatas # => ["foo", "bar"]
1421
+ # cds.frozen? # => true
1422
+ # cds.map {|cd| cd.class } # => [REXML::CData, REXML::CData]
1423
+ #
1424
+ def cdatas
1425
+ find_all { |child| child.kind_of? CData }.freeze
1426
+ end
1427
+
1428
+ # :call-seq:
1429
+ # comments -> array_of_comment_children
1430
+ #
1431
+ # Returns a frozen array of the REXML::Comment children of the element:
1432
+ #
1433
+ # xml_string = <<-EOT
1434
+ # <root>
1435
+ # <!--foo-->
1436
+ # <!--bar-->
1437
+ # </root>
1438
+ # EOT
1439
+ # d = REXML::Document.new(xml_string)
1440
+ # cs = d.root.comments
1441
+ # cs.frozen? # => true
1442
+ # cs.map {|c| c.class } # => [REXML::Comment, REXML::Comment]
1443
+ # cs.map {|c| c.to_s } # => ["foo", "bar"]
1444
+ #
1445
+ def comments
1446
+ find_all { |child| child.kind_of? Comment }.freeze
1447
+ end
1448
+
1449
+ # :call-seq:
1450
+ # instructions -> array_of_instruction_children
1451
+ #
1452
+ # Returns a frozen array of the REXML::Instruction children of the element:
1453
+ #
1454
+ # xml_string = <<-EOT
1455
+ # <root>
1456
+ # <?target0 foo?>
1457
+ # <?target1 bar?>
1458
+ # </root>
1459
+ # EOT
1460
+ # d = REXML::Document.new(xml_string)
1461
+ # is = d.root.instructions
1462
+ # is.frozen? # => true
1463
+ # is.map {|i| i.class } # => [REXML::Instruction, REXML::Instruction]
1464
+ # is.map {|i| i.to_s } # => ["<?target0 foo?>", "<?target1 bar?>"]
1465
+ #
1466
+ def instructions
1467
+ find_all { |child| child.kind_of? Instruction }.freeze
1468
+ end
1469
+
1470
+ # :call-seq:
1471
+ # texts -> array_of_text_children
1472
+ #
1473
+ # Returns a frozen array of the REXML::Text children of the element:
1474
+ #
1475
+ # xml_string = '<root><a/>text<b/>more<c/></root>'
1476
+ # d = REXML::Document.new(xml_string)
1477
+ # ts = d.root.texts
1478
+ # ts.frozen? # => true
1479
+ # ts.map {|t| t.class } # => [REXML::Text, REXML::Text]
1480
+ # ts.map {|t| t.to_s } # => ["text", "more"]
1481
+ #
1482
+ def texts
1483
+ find_all { |child| child.kind_of? Text }.freeze
1484
+ end
1485
+
1486
+ # == DEPRECATED
1487
+ # See REXML::Formatters
1488
+ #
1489
+ # Writes out this element, and recursively, all children.
1490
+ # output::
1491
+ # output an object which supports '<< string'; this is where the
1492
+ # document will be written.
1493
+ # indent::
1494
+ # An integer. If -1, no indenting will be used; otherwise, the
1495
+ # indentation will be this number of spaces, and children will be
1496
+ # indented an additional amount. Defaults to -1
1497
+ # transitive::
1498
+ # If transitive is true and indent is >= 0, then the output will be
1499
+ # pretty-printed in such a way that the added whitespace does not affect
1500
+ # the parse tree of the document
1501
+ # ie_hack::
1502
+ # This hack inserts a space before the /> on empty tags to address
1503
+ # a limitation of Internet Explorer. Defaults to false
1504
+ #
1505
+ # out = ''
1506
+ # doc.write( out ) #-> doc is written to the string 'out'
1507
+ # doc.write( $stdout ) #-> doc written to the console
1508
+ def write(output=$stdout, indent=-1, transitive=false, ie_hack=false)
1509
+ Kernel.warn("#{self.class.name}.write is deprecated. See REXML::Formatters", uplevel: 1)
1510
+ formatter = if indent > -1
1511
+ if transitive
1512
+ require_relative "formatters/transitive"
1513
+ REXML::Formatters::Transitive.new( indent, ie_hack )
1514
+ else
1515
+ REXML::Formatters::Pretty.new( indent, ie_hack )
1516
+ end
1517
+ else
1518
+ REXML::Formatters::Default.new( ie_hack )
1519
+ end
1520
+ formatter.write( self, output )
1521
+ end
1522
+
1523
+
1524
+ private
1525
+ def __to_xpath_helper node
1526
+ rv = node.expanded_name.clone
1527
+ if node.parent
1528
+ results = node.parent.find_all {|n|
1529
+ n.kind_of?(REXML::Element) and n.expanded_name == node.expanded_name
1530
+ }
1531
+ if results.length > 1
1532
+ idx = results.index( node )
1533
+ rv << "[#{idx+1}]"
1534
+ end
1535
+ end
1536
+ rv
1537
+ end
1538
+
1539
+ # A private helper method
1540
+ def each_with_something( test, max=0, name=nil )
1541
+ num = 0
1542
+ @elements.each( name ){ |child|
1543
+ yield child if test.call(child) and num += 1
1544
+ return if max>0 and num == max
1545
+ }
1546
+ end
1547
+ end
1548
+
1549
+ ########################################################################
1550
+ # ELEMENTS #
1551
+ ########################################################################
1552
+
1553
+ # A class which provides filtering of children for Elements, and
1554
+ # XPath search support. You are expected to only encounter this class as
1555
+ # the <tt>element.elements</tt> object. Therefore, you are
1556
+ # _not_ expected to instantiate this yourself.
1557
+ #
1558
+ # xml_string = <<-EOT
1559
+ # <?xml version="1.0" encoding="UTF-8"?>
1560
+ # <bookstore>
1561
+ # <book category="cooking">
1562
+ # <title lang="en">Everyday Italian</title>
1563
+ # <author>Giada De Laurentiis</author>
1564
+ # <year>2005</year>
1565
+ # <price>30.00</price>
1566
+ # </book>
1567
+ # <book category="children">
1568
+ # <title lang="en">Harry Potter</title>
1569
+ # <author>J K. Rowling</author>
1570
+ # <year>2005</year>
1571
+ # <price>29.99</price>
1572
+ # </book>
1573
+ # <book category="web">
1574
+ # <title lang="en">XQuery Kick Start</title>
1575
+ # <author>James McGovern</author>
1576
+ # <author>Per Bothner</author>
1577
+ # <author>Kurt Cagle</author>
1578
+ # <author>James Linn</author>
1579
+ # <author>Vaidyanathan Nagarajan</author>
1580
+ # <year>2003</year>
1581
+ # <price>49.99</price>
1582
+ # </book>
1583
+ # <book category="web" cover="paperback">
1584
+ # <title lang="en">Learning XML</title>
1585
+ # <author>Erik T. Ray</author>
1586
+ # <year>2003</year>
1587
+ # <price>39.95</price>
1588
+ # </book>
1589
+ # </bookstore>
1590
+ # EOT
1591
+ # d = REXML::Document.new(xml_string)
1592
+ # elements = d.root.elements
1593
+ # elements # => #<REXML::Elements @element=<bookstore> ... </>>
1594
+ #
1595
+ class Elements
1596
+ include Enumerable
1597
+ # :call-seq:
1598
+ # new(parent) -> new_elements_object
1599
+ #
1600
+ # Returns a new \Elements object with the given +parent+.
1601
+ # Does _not_ assign <tt>parent.elements = self</tt>:
1602
+ #
1603
+ # d = REXML::Document.new(xml_string)
1604
+ # eles = REXML::Elements.new(d.root)
1605
+ # eles # => #<REXML::Elements @element=<bookstore> ... </>>
1606
+ # eles == d.root.elements # => false
1607
+ #
1608
+ def initialize parent
1609
+ @element = parent
1610
+ end
1611
+
1612
+ # :call-seq:
1613
+ # parent
1614
+ #
1615
+ # Returns the parent element cited in creating the \Elements object.
1616
+ # This element is also the default starting point for searching
1617
+ # in the \Elements object.
1618
+ #
1619
+ # d = REXML::Document.new(xml_string)
1620
+ # elements = REXML::Elements.new(d.root)
1621
+ # elements.parent == d.root # => true
1622
+ #
1623
+ def parent
1624
+ @element
1625
+ end
1626
+
1627
+ # :call-seq:
1628
+ # elements[index] -> element or nil
1629
+ # elements[xpath] -> element or nil
1630
+ # elements[n, name] -> element or nil
1631
+ #
1632
+ # Returns the first \Element object selected by the arguments,
1633
+ # if any found, or +nil+ if none found.
1634
+ #
1635
+ # Notes:
1636
+ # - The +index+ is 1-based, not 0-based, so that:
1637
+ # - The first element has index <tt>1</tt>
1638
+ # - The _nth_ element has index +n+.
1639
+ # - The selection ignores non-\Element nodes.
1640
+ #
1641
+ # When the single argument +index+ is given,
1642
+ # returns the element given by the index, if any; otherwise, +nil+:
1643
+ #
1644
+ # d = REXML::Document.new(xml_string)
1645
+ # eles = d.root.elements
1646
+ # eles # => #<REXML::Elements @element=<bookstore> ... </>>
1647
+ # eles[1] # => <book category='cooking'> ... </>
1648
+ # eles.size # => 4
1649
+ # eles[4] # => <book category='web' cover='paperback'> ... </>
1650
+ # eles[5] # => nil
1651
+ #
1652
+ # The node at this index is not an \Element, and so is not returned:
1653
+ #
1654
+ # eles = d.root.first.first # => <title lang='en'> ... </>
1655
+ # eles.to_a # => ["Everyday Italian"]
1656
+ # eles[1] # => nil
1657
+ #
1658
+ # When the single argument +xpath+ is given,
1659
+ # returns the first element found via that +xpath+, if any; otherwise, +nil+:
1660
+ #
1661
+ # eles = d.root.elements # => #<REXML::Elements @element=<bookstore> ... </>>
1662
+ # eles['/bookstore'] # => <bookstore> ... </>
1663
+ # eles['//book'] # => <book category='cooking'> ... </>
1664
+ # eles['//book [@category="children"]'] # => <book category='children'> ... </>
1665
+ # eles['/nosuch'] # => nil
1666
+ # eles['//nosuch'] # => nil
1667
+ # eles['//book [@category="nosuch"]'] # => nil
1668
+ # eles['.'] # => <bookstore> ... </>
1669
+ # eles['..'].class # => REXML::Document
1670
+ #
1671
+ # With arguments +n+ and +name+ given,
1672
+ # returns the _nth_ found element that has the given +name+,
1673
+ # or +nil+ if there is no such _nth_ element:
1674
+ #
1675
+ # eles = d.root.elements # => #<REXML::Elements @element=<bookstore> ... </>>
1676
+ # eles[1, 'book'] # => <book category='cooking'> ... </>
1677
+ # eles[4, 'book'] # => <book category='web' cover='paperback'> ... </>
1678
+ # eles[5, 'book'] # => nil
1679
+ #
1680
+ def []( index, name=nil)
1681
+ if index.kind_of? Integer
1682
+ raise "index (#{index}) must be >= 1" if index < 1
1683
+ name = literalize(name) if name
1684
+ num = 0
1685
+ @element.find { |child|
1686
+ child.kind_of? Element and
1687
+ (name.nil? ? true : child.has_name?( name )) and
1688
+ (num += 1) == index
1689
+ }
1690
+ else
1691
+ return XPath::first( @element, index )
1692
+ #{ |element|
1693
+ # return element if element.kind_of? Element
1694
+ #}
1695
+ #return nil
1696
+ end
1697
+ end
1698
+
1699
+ # :call-seq:
1700
+ # elements[] = index, replacement_element -> replacement_element or nil
1701
+ #
1702
+ # Replaces or adds an element.
1703
+ #
1704
+ # When <tt>eles[index]</tt> exists, replaces it with +replacement_element+
1705
+ # and returns +replacement_element+:
1706
+ #
1707
+ # d = REXML::Document.new(xml_string)
1708
+ # eles = d.root.elements # => #<REXML::Elements @element=<bookstore> ... </>>
1709
+ # eles[1] # => <book category='cooking'> ... </>
1710
+ # eles[1] = REXML::Element.new('foo')
1711
+ # eles[1] # => <foo/>
1712
+ #
1713
+ # Does nothing (or raises an exception)
1714
+ # if +replacement_element+ is not an \Element:
1715
+ # eles[2] # => <book category='web' cover='paperback'> ... </>
1716
+ # eles[2] = REXML::Text.new('bar')
1717
+ # eles[2] # => <book category='web' cover='paperback'> ... </>
1718
+ #
1719
+ # When <tt>eles[index]</tt> does not exist,
1720
+ # adds +replacement_element+ to the element and returns
1721
+ #
1722
+ # d = REXML::Document.new(xml_string)
1723
+ # eles = d.root.elements # => #<REXML::Elements @element=<bookstore> ... </>>
1724
+ # eles.size # => 4
1725
+ # eles[50] = REXML::Element.new('foo') # => <foo/>
1726
+ # eles.size # => 5
1727
+ # eles[5] # => <foo/>
1728
+ #
1729
+ # Does nothing (or raises an exception)
1730
+ # if +replacement_element+ is not an \Element:
1731
+ #
1732
+ # eles[50] = REXML::Text.new('bar') # => "bar"
1733
+ # eles.size # => 5
1734
+ #
1735
+ def []=( index, element )
1736
+ previous = self[index]
1737
+ if previous.nil?
1738
+ @element.add element
1739
+ else
1740
+ previous.replace_with element
1741
+ end
1742
+ return previous
1743
+ end
1744
+
1745
+ # :call-seq:
1746
+ # empty? -> true or false
1747
+ #
1748
+ # Returns +true+ if there are no children, +false+ otherwise.
1749
+ #
1750
+ # d = REXML::Document.new('')
1751
+ # d.elements.empty? # => true
1752
+ # d = REXML::Document.new(xml_string)
1753
+ # d.elements.empty? # => false
1754
+ #
1755
+ def empty?
1756
+ @element.find{ |child| child.kind_of? Element}.nil?
1757
+ end
1758
+
1759
+ # :call-seq:
1760
+ # index(element)
1761
+ #
1762
+ # Returns the 1-based index of the given +element+, if found;
1763
+ # otherwise, returns -1:
1764
+ #
1765
+ # d = REXML::Document.new(xml_string)
1766
+ # elements = d.root.elements
1767
+ # ele_1, ele_2, ele_3, ele_4 = *elements
1768
+ # elements.index(ele_4) # => 4
1769
+ # elements.delete(ele_3)
1770
+ # elements.index(ele_4) # => 3
1771
+ # elements.index(ele_3) # => -1
1772
+ #
1773
+ def index element
1774
+ rv = 0
1775
+ found = @element.find do |child|
1776
+ child.kind_of? Element and
1777
+ (rv += 1) and
1778
+ child == element
1779
+ end
1780
+ return rv if found == element
1781
+ return -1
1782
+ end
1783
+
1784
+ # :call-seq:
1785
+ # delete(index) -> removed_element or nil
1786
+ # delete(element) -> removed_element or nil
1787
+ # delete(xpath) -> removed_element or nil
1788
+ #
1789
+ # Removes an element; returns the removed element, or +nil+ if none removed.
1790
+ #
1791
+ # With integer argument +index+ given,
1792
+ # removes the child element at that offset:
1793
+ #
1794
+ # d = REXML::Document.new(xml_string)
1795
+ # elements = d.root.elements
1796
+ # elements.size # => 4
1797
+ # elements[2] # => <book category='children'> ... </>
1798
+ # elements.delete(2) # => <book category='children'> ... </>
1799
+ # elements.size # => 3
1800
+ # elements[2] # => <book category='web'> ... </>
1801
+ # elements.delete(50) # => nil
1802
+ #
1803
+ # With element argument +element+ given,
1804
+ # removes that child element:
1805
+ #
1806
+ # d = REXML::Document.new(xml_string)
1807
+ # elements = d.root.elements
1808
+ # ele_1, ele_2, ele_3, ele_4 = *elements
1809
+ # elements.size # => 4
1810
+ # elements[2] # => <book category='children'> ... </>
1811
+ # elements.delete(ele_2) # => <book category='children'> ... </>
1812
+ # elements.size # => 3
1813
+ # elements[2] # => <book category='web'> ... </>
1814
+ # elements.delete(ele_2) # => nil
1815
+ #
1816
+ # With string argument +xpath+ given,
1817
+ # removes the first element found via that xpath:
1818
+ #
1819
+ # d = REXML::Document.new(xml_string)
1820
+ # elements = d.root.elements
1821
+ # elements.delete('//book') # => <book category='cooking'> ... </>
1822
+ # elements.delete('//book [@category="children"]') # => <book category='children'> ... </>
1823
+ # elements.delete('//nosuch') # => nil
1824
+ #
1825
+ def delete element
1826
+ if element.kind_of? Element
1827
+ @element.delete element
1828
+ else
1829
+ el = self[element]
1830
+ el.remove if el
1831
+ end
1832
+ end
1833
+
1834
+ # :call-seq:
1835
+ # delete_all(xpath)
1836
+ #
1837
+ # Removes all elements found via the given +xpath+;
1838
+ # returns the array of removed elements, if any, else +nil+.
1839
+ #
1840
+ # d = REXML::Document.new(xml_string)
1841
+ # elements = d.root.elements
1842
+ # elements.size # => 4
1843
+ # deleted_elements = elements.delete_all('//book [@category="web"]')
1844
+ # deleted_elements.size # => 2
1845
+ # elements.size # => 2
1846
+ # deleted_elements = elements.delete_all('//book')
1847
+ # deleted_elements.size # => 2
1848
+ # elements.size # => 0
1849
+ # elements.delete_all('//book') # => []
1850
+ #
1851
+ def delete_all( xpath )
1852
+ rv = []
1853
+ XPath::each( @element, xpath) {|element|
1854
+ rv << element if element.kind_of? Element
1855
+ }
1856
+ rv.each do |element|
1857
+ @element.delete element
1858
+ element.remove
1859
+ end
1860
+ return rv
1861
+ end
1862
+
1863
+ # :call-seq:
1864
+ # add -> new_element
1865
+ # add(name) -> new_element
1866
+ # add(element) -> element
1867
+ #
1868
+ # Adds an element; returns the element added.
1869
+ #
1870
+ # With no argument, creates and adds a new element.
1871
+ # The new element has:
1872
+ #
1873
+ # - No name.
1874
+ # - \Parent from the \Elements object.
1875
+ # - Context from the that parent.
1876
+ #
1877
+ # Example:
1878
+ #
1879
+ # d = REXML::Document.new(xml_string)
1880
+ # elements = d.root.elements
1881
+ # parent = elements.parent # => <bookstore> ... </>
1882
+ # parent.context = {raw: :all}
1883
+ # elements.size # => 4
1884
+ # new_element = elements.add # => </>
1885
+ # elements.size # => 5
1886
+ # new_element.name # => nil
1887
+ # new_element.parent # => <bookstore> ... </>
1888
+ # new_element.context # => {:raw=>:all}
1889
+ #
1890
+ # With string argument +name+, creates and adds a new element.
1891
+ # The new element has:
1892
+ #
1893
+ # - Name +name+.
1894
+ # - \Parent from the \Elements object.
1895
+ # - Context from the that parent.
1896
+ #
1897
+ # Example:
1898
+ #
1899
+ # d = REXML::Document.new(xml_string)
1900
+ # elements = d.root.elements
1901
+ # parent = elements.parent # => <bookstore> ... </>
1902
+ # parent.context = {raw: :all}
1903
+ # elements.size # => 4
1904
+ # new_element = elements.add('foo') # => <foo/>
1905
+ # elements.size # => 5
1906
+ # new_element.name # => "foo"
1907
+ # new_element.parent # => <bookstore> ... </>
1908
+ # new_element.context # => {:raw=>:all}
1909
+ #
1910
+ # With argument +element+,
1911
+ # creates and adds a clone of the given +element+.
1912
+ # The new element has name, parent, and context from the given +element+.
1913
+ #
1914
+ # d = REXML::Document.new(xml_string)
1915
+ # elements = d.root.elements
1916
+ # elements.size # => 4
1917
+ # e0 = REXML::Element.new('foo')
1918
+ # e1 = REXML::Element.new('bar', e0, {raw: :all})
1919
+ # element = elements.add(e1) # => <bar/>
1920
+ # elements.size # => 5
1921
+ # element.name # => "bar"
1922
+ # element.parent # => <bookstore> ... </>
1923
+ # element.context # => {:raw=>:all}
1924
+ #
1925
+ def add element=nil
1926
+ if element.nil?
1927
+ Element.new("", self, @element.context)
1928
+ elsif not element.kind_of?(Element)
1929
+ Element.new(element, self, @element.context)
1930
+ else
1931
+ @element << element
1932
+ element.context = @element.context
1933
+ element
1934
+ end
1935
+ end
1936
+
1937
+ alias :<< :add
1938
+
1939
+ # :call-seq:
1940
+ # each(xpath = nil) {|element| ... } -> self
1941
+ #
1942
+ # Iterates over the elements.
1943
+ #
1944
+ # With no argument, calls the block with each element:
1945
+ #
1946
+ # d = REXML::Document.new(xml_string)
1947
+ # elements = d.root.elements
1948
+ # elements.each {|element| p element }
1949
+ #
1950
+ # Output:
1951
+ #
1952
+ # <book category='cooking'> ... </>
1953
+ # <book category='children'> ... </>
1954
+ # <book category='web'> ... </>
1955
+ # <book category='web' cover='paperback'> ... </>
1956
+ #
1957
+ # With argument +xpath+, calls the block with each element
1958
+ # that matches the given +xpath+:
1959
+ #
1960
+ # elements.each('//book [@category="web"]') {|element| p element }
1961
+ #
1962
+ # Output:
1963
+ #
1964
+ # <book category='web'> ... </>
1965
+ # <book category='web' cover='paperback'> ... </>
1966
+ #
1967
+ def each( xpath=nil )
1968
+ XPath::each( @element, xpath ) {|e| yield e if e.kind_of? Element }
1969
+ end
1970
+
1971
+ # :call-seq:
1972
+ # collect(xpath = nil) {|element| ... } -> array
1973
+ #
1974
+ # Iterates over the elements; returns the array of block return values.
1975
+ #
1976
+ # With no argument, iterates over all elements:
1977
+ #
1978
+ # d = REXML::Document.new(xml_string)
1979
+ # elements = d.root.elements
1980
+ # elements.collect {|element| element.size } # => [9, 9, 17, 9]
1981
+ #
1982
+ # With argument +xpath+, iterates over elements that match
1983
+ # the given +xpath+:
1984
+ #
1985
+ # xpath = '//book [@category="web"]'
1986
+ # elements.collect(xpath) {|element| element.size } # => [17, 9]
1987
+ #
1988
+ def collect( xpath=nil )
1989
+ collection = []
1990
+ XPath::each( @element, xpath ) {|e|
1991
+ collection << yield(e) if e.kind_of?(Element)
1992
+ }
1993
+ collection
1994
+ end
1995
+
1996
+ # :call-seq:
1997
+ # inject(xpath = nil, initial = nil) -> object
1998
+ #
1999
+ # Calls the block with elements; returns the last block return value.
2000
+ #
2001
+ # With no argument, iterates over the elements, calling the block
2002
+ # <tt>elements.size - 1</tt> times.
2003
+ #
2004
+ # - The first call passes the first and second elements.
2005
+ # - The second call passes the first block return value and the third element.
2006
+ # - The third call passes the second block return value and the fourth element.
2007
+ # - And so on.
2008
+ #
2009
+ # In this example, the block returns the passed element,
2010
+ # which is then the object argument to the next call:
2011
+ #
2012
+ # d = REXML::Document.new(xml_string)
2013
+ # elements = d.root.elements
2014
+ # elements.inject do |object, element|
2015
+ # p [elements.index(object), elements.index(element)]
2016
+ # element
2017
+ # end
2018
+ #
2019
+ # Output:
2020
+ #
2021
+ # [1, 2]
2022
+ # [2, 3]
2023
+ # [3, 4]
2024
+ #
2025
+ # With the single argument +xpath+, calls the block only with
2026
+ # elements matching that xpath:
2027
+ #
2028
+ # elements.inject('//book [@category="web"]') do |object, element|
2029
+ # p [elements.index(object), elements.index(element)]
2030
+ # element
2031
+ # end
2032
+ #
2033
+ # Output:
2034
+ #
2035
+ # [3, 4]
2036
+ #
2037
+ # With argument +xpath+ given as +nil+
2038
+ # and argument +initial+ also given,
2039
+ # calls the block once for each element.
2040
+ #
2041
+ # - The first call passes the +initial+ and the first element.
2042
+ # - The second call passes the first block return value and the second element.
2043
+ # - The third call passes the second block return value and the third element.
2044
+ # - And so on.
2045
+ #
2046
+ # In this example, the first object index is <tt>-1</tt>
2047
+ #
2048
+ # elements.inject(nil, 'Initial') do |object, element|
2049
+ # p [elements.index(object), elements.index(element)]
2050
+ # element
2051
+ # end
2052
+ #
2053
+ # Output:
2054
+ #
2055
+ # [-1, 1]
2056
+ # [1, 2]
2057
+ # [2, 3]
2058
+ # [3, 4]
2059
+ #
2060
+ # In this form the passed object can be used as an accumulator:
2061
+ #
2062
+ # elements.inject(nil, 0) do |total, element|
2063
+ # total += element.size
2064
+ # end # => 44
2065
+ #
2066
+ # With both arguments +xpath+ and +initial+ are given,
2067
+ # calls the block only with elements matching that xpath:
2068
+ #
2069
+ # elements.inject('//book [@category="web"]', 0) do |total, element|
2070
+ # total += element.size
2071
+ # end # => 26
2072
+ #
2073
+ def inject( xpath=nil, initial=nil )
2074
+ first = true
2075
+ XPath::each( @element, xpath ) {|e|
2076
+ if (e.kind_of? Element)
2077
+ if (first and initial == nil)
2078
+ initial = e
2079
+ first = false
2080
+ else
2081
+ initial = yield( initial, e ) if e.kind_of? Element
2082
+ end
2083
+ end
2084
+ }
2085
+ initial
2086
+ end
2087
+
2088
+ # :call-seq:
2089
+ # size -> integer
2090
+ #
2091
+ # Returns the count of \Element children:
2092
+ #
2093
+ # d = REXML::Document.new '<a>sean<b/>elliott<b/>russell<b/></a>'
2094
+ # d.root.elements.size # => 3 # Three elements.
2095
+ # d.root.size # => 6 # Three elements plus three text nodes..
2096
+ #
2097
+ def size
2098
+ count = 0
2099
+ @element.each {|child| count+=1 if child.kind_of? Element }
2100
+ count
2101
+ end
2102
+
2103
+ # :call-seq:
2104
+ # to_a(xpath = nil) -> array_of_elements
2105
+ #
2106
+ # Returns an array of element children (not including non-element children).
2107
+ #
2108
+ # With no argument, returns an array of all element children:
2109
+ #
2110
+ # d = REXML::Document.new '<a>sean<b/>elliott<c/></a>'
2111
+ # elements = d.root.elements
2112
+ # elements.to_a # => [<b/>, <c/>] # Omits non-element children.
2113
+ # children = d.root.children
2114
+ # children # => ["sean", <b/>, "elliott", <c/>] # Includes non-element children.
2115
+ #
2116
+ # With argument +xpath+, returns an array of element children
2117
+ # that match the xpath:
2118
+ #
2119
+ # elements.to_a('//c') # => [<c/>]
2120
+ #
2121
+ def to_a( xpath=nil )
2122
+ rv = XPath.match( @element, xpath )
2123
+ return rv.find_all{|e| e.kind_of? Element} if xpath
2124
+ rv
2125
+ end
2126
+
2127
+ private
2128
+ # Private helper class. Removes quotes from quoted strings
2129
+ def literalize name
2130
+ name = name[1..-2] if name[0] == ?' or name[0] == ?" #'
2131
+ name
2132
+ end
2133
+ end
2134
+
2135
+ ########################################################################
2136
+ # ATTRIBUTES #
2137
+ ########################################################################
2138
+
2139
+ # A class that defines the set of Attributes of an Element and provides
2140
+ # operations for accessing elements in that set.
2141
+ class Attributes < Hash
2142
+
2143
+ # :call-seq:
2144
+ # new(element)
2145
+ #
2146
+ # Creates and returns a new \REXML::Attributes object.
2147
+ # The element given by argument +element+ is stored,
2148
+ # but its own attributes are not modified:
2149
+ #
2150
+ # ele = REXML::Element.new('foo')
2151
+ # attrs = REXML::Attributes.new(ele)
2152
+ # attrs.object_id == ele.attributes.object_id # => false
2153
+ #
2154
+ # Other instance methods in class \REXML::Attributes may refer to:
2155
+ #
2156
+ # - +element.document+.
2157
+ # - +element.prefix+.
2158
+ # - +element.expanded_name+.
2159
+ #
2160
+ def initialize element
2161
+ @element = element
2162
+ end
2163
+
2164
+ # :call-seq:
2165
+ # [name] -> attribute_value or nil
2166
+ #
2167
+ # Returns the value for the attribute given by +name+,
2168
+ # if it exists; otherwise +nil+.
2169
+ # The value returned is the unnormalized attribute value,
2170
+ # with entities expanded:
2171
+ #
2172
+ # xml_string = <<-EOT
2173
+ # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
2174
+ # <ele foo:att='1' bar:att='2' att='&lt;'/>
2175
+ # </root>
2176
+ # EOT
2177
+ # d = REXML::Document.new(xml_string)
2178
+ # ele = d.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
2179
+ # ele.attributes['att'] # => "<"
2180
+ # ele.attributes['bar:att'] # => "2"
2181
+ # ele.attributes['nosuch'] # => nil
2182
+ #
2183
+ # Related: get_attribute (returns an \Attribute object).
2184
+ #
2185
+ def [](name)
2186
+ attr = get_attribute(name)
2187
+ return attr.value unless attr.nil?
2188
+ return nil
2189
+ end
2190
+
2191
+ # :call-seq:
2192
+ # to_a -> array_of_attribute_objects
2193
+ #
2194
+ # Returns an array of \REXML::Attribute objects representing
2195
+ # the attributes:
2196
+ #
2197
+ # xml_string = <<-EOT
2198
+ # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
2199
+ # <ele foo:att='1' bar:att='2' att='&lt;'/>
2200
+ # </root>
2201
+ # EOT
2202
+ # d = REXML::Document.new(xml_string)
2203
+ # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
2204
+ # attrs = ele.attributes.to_a # => [foo:att='1', bar:att='2', att='&lt;']
2205
+ # attrs.first.class # => REXML::Attribute
2206
+ #
2207
+ def to_a
2208
+ enum_for(:each_attribute).to_a
2209
+ end
2210
+
2211
+ # :call-seq:
2212
+ # length
2213
+ #
2214
+ # Returns the count of attributes:
2215
+ #
2216
+ # xml_string = <<-EOT
2217
+ # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
2218
+ # <ele foo:att='1' bar:att='2' att='&lt;'/>
2219
+ # </root>
2220
+ # EOT
2221
+ # d = REXML::Document.new(xml_string)
2222
+ # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
2223
+ # ele.attributes.length # => 3
2224
+ #
2225
+ def length
2226
+ c = 0
2227
+ each_attribute { c+=1 }
2228
+ c
2229
+ end
2230
+ alias :size :length
2231
+
2232
+ # :call-seq:
2233
+ # each_attribute {|attr| ... }
2234
+ #
2235
+ # Calls the given block with each \REXML::Attribute object:
2236
+ #
2237
+ # xml_string = <<-EOT
2238
+ # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
2239
+ # <ele foo:att='1' bar:att='2' att='&lt;'/>
2240
+ # </root>
2241
+ # EOT
2242
+ # d = REXML::Document.new(xml_string)
2243
+ # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
2244
+ # ele.attributes.each_attribute do |attr|
2245
+ # p [attr.class, attr]
2246
+ # end
2247
+ #
2248
+ # Output:
2249
+ #
2250
+ # [REXML::Attribute, foo:att='1']
2251
+ # [REXML::Attribute, bar:att='2']
2252
+ # [REXML::Attribute, att='&lt;']
2253
+ #
2254
+ def each_attribute # :yields: attribute
2255
+ return to_enum(__method__) unless block_given?
2256
+ each_value do |val|
2257
+ if val.kind_of? Attribute
2258
+ yield val
2259
+ else
2260
+ val.each_value { |atr| yield atr }
2261
+ end
2262
+ end
2263
+ end
2264
+
2265
+ # :call-seq:
2266
+ # each {|expanded_name, value| ... }
2267
+ #
2268
+ # Calls the given block with each expanded-name/value pair:
2269
+ #
2270
+ # xml_string = <<-EOT
2271
+ # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
2272
+ # <ele foo:att='1' bar:att='2' att='&lt;'/>
2273
+ # </root>
2274
+ # EOT
2275
+ # d = REXML::Document.new(xml_string)
2276
+ # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
2277
+ # ele.attributes.each do |expanded_name, value|
2278
+ # p [expanded_name, value]
2279
+ # end
2280
+ #
2281
+ # Output:
2282
+ #
2283
+ # ["foo:att", "1"]
2284
+ # ["bar:att", "2"]
2285
+ # ["att", "<"]
2286
+ #
2287
+ def each
2288
+ return to_enum(__method__) unless block_given?
2289
+ each_attribute do |attr|
2290
+ yield [attr.expanded_name, attr.value]
2291
+ end
2292
+ end
2293
+
2294
+ # :call-seq:
2295
+ # get_attribute(name) -> attribute_object or nil
2296
+ #
2297
+ # Returns the \REXML::Attribute object for the given +name+:
2298
+ #
2299
+ # xml_string = <<-EOT
2300
+ # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
2301
+ # <ele foo:att='1' bar:att='2' att='&lt;'/>
2302
+ # </root>
2303
+ # EOT
2304
+ # d = REXML::Document.new(xml_string)
2305
+ # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
2306
+ # attrs = ele.attributes
2307
+ # attrs.get_attribute('foo:att') # => foo:att='1'
2308
+ # attrs.get_attribute('foo:att').class # => REXML::Attribute
2309
+ # attrs.get_attribute('bar:att') # => bar:att='2'
2310
+ # attrs.get_attribute('att') # => att='&lt;'
2311
+ # attrs.get_attribute('nosuch') # => nil
2312
+ #
2313
+ def get_attribute( name )
2314
+ attr = fetch( name, nil )
2315
+ if attr.nil?
2316
+ return nil if name.nil?
2317
+ # Look for prefix
2318
+ name =~ Namespace::NAMESPLIT
2319
+ prefix, n = $1, $2
2320
+ if prefix
2321
+ attr = fetch( n, nil )
2322
+ # check prefix
2323
+ if attr == nil
2324
+ elsif attr.kind_of? Attribute
2325
+ return attr if prefix == attr.prefix
2326
+ else
2327
+ attr = attr[ prefix ]
2328
+ return attr
2329
+ end
2330
+ end
2331
+ element_document = @element.document
2332
+ if element_document and element_document.doctype
2333
+ expn = @element.expanded_name
2334
+ expn = element_document.doctype.name if expn.size == 0
2335
+ attr_val = element_document.doctype.attribute_of(expn, name)
2336
+ return Attribute.new( name, attr_val ) if attr_val
2337
+ end
2338
+ return nil
2339
+ end
2340
+ if attr.kind_of? Hash
2341
+ attr = attr[ @element.prefix ]
2342
+ end
2343
+ return attr
2344
+ end
2345
+
2346
+ # :call-seq:
2347
+ # [name] = value -> value
2348
+ #
2349
+ # When +value+ is non-+nil+,
2350
+ # assigns that to the attribute for the given +name+,
2351
+ # overwriting the previous value if it exists:
2352
+ #
2353
+ # xml_string = <<-EOT
2354
+ # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
2355
+ # <ele foo:att='1' bar:att='2' att='&lt;'/>
2356
+ # </root>
2357
+ # EOT
2358
+ # d = REXML::Document.new(xml_string)
2359
+ # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
2360
+ # attrs = ele.attributes
2361
+ # attrs['foo:att'] = '2' # => "2"
2362
+ # attrs['baz:att'] = '3' # => "3"
2363
+ #
2364
+ # When +value+ is +nil+, deletes the attribute if it exists:
2365
+ #
2366
+ # attrs['baz:att'] = nil
2367
+ # attrs.include?('baz:att') # => false
2368
+ #
2369
+ def []=( name, value )
2370
+ if value.nil? # Delete the named attribute
2371
+ attr = get_attribute(name)
2372
+ delete attr
2373
+ return
2374
+ end
2375
+
2376
+ unless value.kind_of? Attribute
2377
+ if @element.document and @element.document.doctype
2378
+ value = Text::normalize( value, @element.document.doctype )
2379
+ else
2380
+ value = Text::normalize( value, nil )
2381
+ end
2382
+ value = Attribute.new(name, value)
2383
+ end
2384
+ value.element = @element
2385
+ old_attr = fetch(value.name, nil)
2386
+ if old_attr.nil?
2387
+ store(value.name, value)
2388
+ elsif old_attr.kind_of? Hash
2389
+ old_attr[value.prefix] = value
2390
+ elsif old_attr.prefix != value.prefix
2391
+ # Check for conflicting namespaces
2392
+ if value.prefix != "xmlns" and old_attr.prefix != "xmlns"
2393
+ old_namespace = old_attr.namespace
2394
+ new_namespace = value.namespace
2395
+ if old_namespace == new_namespace
2396
+ raise ParseException.new(
2397
+ "Namespace conflict in adding attribute \"#{value.name}\": "+
2398
+ "Prefix \"#{old_attr.prefix}\" = \"#{old_namespace}\" and "+
2399
+ "prefix \"#{value.prefix}\" = \"#{new_namespace}\"")
2400
+ end
2401
+ end
2402
+ store value.name, {old_attr.prefix => old_attr,
2403
+ value.prefix => value}
2404
+ else
2405
+ store value.name, value
2406
+ end
2407
+ return @element
2408
+ end
2409
+
2410
+ # :call-seq:
2411
+ # prefixes -> array_of_prefix_strings
2412
+ #
2413
+ # Returns an array of prefix strings in the attributes.
2414
+ # The array does not include the default
2415
+ # namespace declaration, if one exists.
2416
+ #
2417
+ # xml_string = '<a xmlns="foo" xmlns:x="bar" xmlns:y="twee" z="glorp"/>'
2418
+ # d = REXML::Document.new(xml_string)
2419
+ # d.root.attributes.prefixes # => ["x", "y"]
2420
+ #
2421
+ def prefixes
2422
+ ns = []
2423
+ each_attribute do |attribute|
2424
+ ns << attribute.name if attribute.prefix == 'xmlns'
2425
+ end
2426
+ if @element.document and @element.document.doctype
2427
+ expn = @element.expanded_name
2428
+ expn = @element.document.doctype.name if expn.size == 0
2429
+ @element.document.doctype.attributes_of(expn).each {
2430
+ |attribute|
2431
+ ns << attribute.name if attribute.prefix == 'xmlns'
2432
+ }
2433
+ end
2434
+ ns
2435
+ end
2436
+
2437
+ # :call-seq:
2438
+ # namespaces
2439
+ #
2440
+ # Returns a hash of name/value pairs for the namespaces:
2441
+ #
2442
+ # xml_string = '<a xmlns="foo" xmlns:x="bar" xmlns:y="twee" z="glorp"/>'
2443
+ # d = REXML::Document.new(xml_string)
2444
+ # d.root.attributes.namespaces # => {"xmlns"=>"foo", "x"=>"bar", "y"=>"twee"}
2445
+ #
2446
+ def namespaces
2447
+ namespaces = {}
2448
+ each_attribute do |attribute|
2449
+ namespaces[attribute.name] = attribute.value if attribute.prefix == 'xmlns' or attribute.name == 'xmlns'
2450
+ end
2451
+ if @element.document and @element.document.doctype
2452
+ expn = @element.expanded_name
2453
+ expn = @element.document.doctype.name if expn.size == 0
2454
+ @element.document.doctype.attributes_of(expn).each {
2455
+ |attribute|
2456
+ namespaces[attribute.name] = attribute.value if attribute.prefix == 'xmlns' or attribute.name == 'xmlns'
2457
+ }
2458
+ end
2459
+ namespaces
2460
+ end
2461
+
2462
+ # :call-seq:
2463
+ # delete(name) -> element
2464
+ # delete(attribute) -> element
2465
+ #
2466
+ # Removes a specified attribute if it exists;
2467
+ # returns the attributes' element.
2468
+ #
2469
+ # When string argument +name+ is given,
2470
+ # removes the attribute of that name if it exists:
2471
+ #
2472
+ # xml_string = <<-EOT
2473
+ # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
2474
+ # <ele foo:att='1' bar:att='2' att='&lt;'/>
2475
+ # </root>
2476
+ # EOT
2477
+ # d = REXML::Document.new(xml_string)
2478
+ # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
2479
+ # attrs = ele.attributes
2480
+ # attrs.delete('foo:att') # => <ele bar:att='2' att='&lt;'/>
2481
+ # attrs.delete('foo:att') # => <ele bar:att='2' att='&lt;'/>
2482
+ #
2483
+ # When attribute argument +attribute+ is given,
2484
+ # removes that attribute if it exists:
2485
+ #
2486
+ # attr = REXML::Attribute.new('bar:att', '2')
2487
+ # attrs.delete(attr) # => <ele att='&lt;'/> # => <ele att='&lt;'/>
2488
+ # attrs.delete(attr) # => <ele att='&lt;'/> # => <ele/>
2489
+ #
2490
+ def delete( attribute )
2491
+ name = nil
2492
+ prefix = nil
2493
+ if attribute.kind_of? Attribute
2494
+ name = attribute.name
2495
+ prefix = attribute.prefix
2496
+ else
2497
+ attribute =~ Namespace::NAMESPLIT
2498
+ prefix, name = $1, $2
2499
+ prefix = '' unless prefix
2500
+ end
2501
+ old = fetch(name, nil)
2502
+ if old.kind_of? Hash # the supplied attribute is one of many
2503
+ old.delete(prefix)
2504
+ if old.size == 1
2505
+ repl = nil
2506
+ old.each_value{|v| repl = v}
2507
+ store name, repl
2508
+ end
2509
+ elsif old.nil?
2510
+ return @element
2511
+ else # the supplied attribute is a top-level one
2512
+ super(name)
2513
+ end
2514
+ @element
2515
+ end
2516
+
2517
+ # :call-seq:
2518
+ # add(attribute) -> attribute
2519
+ #
2520
+ # Adds attribute +attribute+, replacing the previous
2521
+ # attribute of the same name if it exists;
2522
+ # returns +attribute+:
2523
+ #
2524
+ # xml_string = <<-EOT
2525
+ # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
2526
+ # <ele foo:att='1' bar:att='2' att='&lt;'/>
2527
+ # </root>
2528
+ # EOT
2529
+ # d = REXML::Document.new(xml_string)
2530
+ # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
2531
+ # attrs = ele.attributes
2532
+ # attrs # => {"att"=>{"foo"=>foo:att='1', "bar"=>bar:att='2', ""=>att='&lt;'}}
2533
+ # attrs.add(REXML::Attribute.new('foo:att', '2')) # => foo:att='2'
2534
+ # attrs.add(REXML::Attribute.new('baz', '3')) # => baz='3'
2535
+ # attrs.include?('baz') # => true
2536
+ #
2537
+ def add( attribute )
2538
+ self[attribute.name] = attribute
2539
+ end
2540
+
2541
+ alias :<< :add
2542
+
2543
+ # :call-seq:
2544
+ # delete_all(name) -> array_of_removed_attributes
2545
+ #
2546
+ # Removes all attributes matching the given +name+;
2547
+ # returns an array of the removed attributes:
2548
+ #
2549
+ # xml_string = <<-EOT
2550
+ # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
2551
+ # <ele foo:att='1' bar:att='2' att='&lt;'/>
2552
+ # </root>
2553
+ # EOT
2554
+ # d = REXML::Document.new(xml_string)
2555
+ # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
2556
+ # attrs = ele.attributes
2557
+ # attrs.delete_all('att') # => [att='&lt;']
2558
+ #
2559
+ def delete_all( name )
2560
+ rv = []
2561
+ each_attribute { |attribute|
2562
+ rv << attribute if attribute.expanded_name == name
2563
+ }
2564
+ rv.each{ |attr| attr.remove }
2565
+ return rv
2566
+ end
2567
+
2568
+ # :call-seq:
2569
+ # get_attribute_ns(namespace, name)
2570
+ #
2571
+ # Returns the \REXML::Attribute object among the attributes
2572
+ # that matches the given +namespace+ and +name+:
2573
+ #
2574
+ # xml_string = <<-EOT
2575
+ # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
2576
+ # <ele foo:att='1' bar:att='2' att='&lt;'/>
2577
+ # </root>
2578
+ # EOT
2579
+ # d = REXML::Document.new(xml_string)
2580
+ # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
2581
+ # attrs = ele.attributes
2582
+ # attrs.get_attribute_ns('http://foo', 'att') # => foo:att='1'
2583
+ # attrs.get_attribute_ns('http://foo', 'nosuch') # => nil
2584
+ #
2585
+ def get_attribute_ns(namespace, name)
2586
+ result = nil
2587
+ each_attribute() { |attribute|
2588
+ if name == attribute.name &&
2589
+ namespace == attribute.namespace() &&
2590
+ ( !namespace.empty? || !attribute.fully_expanded_name.index(':') )
2591
+ # foo will match xmlns:foo, but only if foo isn't also an attribute
2592
+ result = attribute if !result or !namespace.empty? or
2593
+ !attribute.fully_expanded_name.index(':')
2594
+ end
2595
+ }
2596
+ result
2597
+ end
2598
+ end
2599
+ end