cloudsmith-api 0.52.121 → 0.54.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (593) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +15 -17
  3. data/README.md +23 -17
  4. data/build.json +1 -1
  5. data/docs/AlpinePackageUpload.md +6 -1
  6. data/docs/BadgesApi.md +1 -6
  7. data/docs/ConanPackageUpload.md +6 -1
  8. data/docs/DistrosApi.md +2 -12
  9. data/docs/EntitlementUsageMetric.md +8 -0
  10. data/docs/EntitlementsApi.md +10 -60
  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 +5 -30
  15. data/docs/FormatsApi.md +2 -12
  16. data/docs/MavenPackageUpload.md +6 -1
  17. data/docs/MetricsApi.md +72 -15
  18. data/docs/NamespacesApi.md +2 -12
  19. data/docs/OrgsApi.md +2 -12
  20. data/docs/Package.md +6 -1
  21. data/docs/PackageCopy.md +6 -1
  22. data/docs/PackageMove.md +6 -1
  23. data/docs/PackagesApi.md +122 -303
  24. data/docs/PackagesCopy.md +1 -0
  25. data/docs/PackagesMove.md +1 -0
  26. data/docs/PackagesResync.md +8 -0
  27. data/docs/PackagesScan.md +8 -0
  28. data/docs/PackagesTag.md +1 -0
  29. data/docs/PackagesUploadAlpine.md +1 -0
  30. data/docs/PackagesUploadCargo.md +1 -0
  31. data/docs/PackagesUploadCocoapods.md +1 -0
  32. data/docs/PackagesUploadComposer.md +1 -0
  33. data/docs/PackagesUploadConan.md +1 -0
  34. data/docs/PackagesUploadCran.md +1 -0
  35. data/docs/PackagesUploadDart.md +1 -0
  36. data/docs/PackagesUploadDeb.md +1 -0
  37. data/docs/PackagesUploadDocker.md +1 -0
  38. data/docs/PackagesUploadGo.md +1 -0
  39. data/docs/PackagesUploadHelm.md +1 -0
  40. data/docs/PackagesUploadLuarocks.md +1 -0
  41. data/docs/PackagesUploadMaven.md +1 -0
  42. data/docs/PackagesUploadNpm.md +1 -0
  43. data/docs/PackagesUploadNuget.md +1 -0
  44. data/docs/PackagesUploadPython.md +1 -0
  45. data/docs/PackagesUploadRaw.md +1 -0
  46. data/docs/PackagesUploadRpm.md +1 -0
  47. data/docs/PackagesUploadRuby.md +1 -0
  48. data/docs/PackagesUploadTerraform.md +1 -0
  49. data/docs/PackagesUploadVagrant.md +1 -0
  50. data/docs/PackagesValidateuploadAlpine.md +1 -0
  51. data/docs/PackagesValidateuploadCargo.md +1 -0
  52. data/docs/PackagesValidateuploadCocoapods.md +1 -0
  53. data/docs/PackagesValidateuploadComposer.md +1 -0
  54. data/docs/PackagesValidateuploadConan.md +1 -0
  55. data/docs/PackagesValidateuploadCran.md +1 -0
  56. data/docs/PackagesValidateuploadDart.md +1 -0
  57. data/docs/PackagesValidateuploadDeb.md +1 -0
  58. data/docs/PackagesValidateuploadDocker.md +1 -0
  59. data/docs/PackagesValidateuploadGo.md +1 -0
  60. data/docs/PackagesValidateuploadHelm.md +1 -0
  61. data/docs/PackagesValidateuploadLuarocks.md +1 -0
  62. data/docs/PackagesValidateuploadMaven.md +1 -0
  63. data/docs/PackagesValidateuploadNpm.md +1 -0
  64. data/docs/PackagesValidateuploadNuget.md +1 -0
  65. data/docs/PackagesValidateuploadPython.md +1 -0
  66. data/docs/PackagesValidateuploadRaw.md +1 -0
  67. data/docs/PackagesValidateuploadRpm.md +1 -0
  68. data/docs/PackagesValidateuploadRuby.md +1 -0
  69. data/docs/PackagesValidateuploadTerraform.md +1 -0
  70. data/docs/PackagesValidateuploadVagrant.md +1 -0
  71. data/docs/Quota.md +8 -0
  72. data/docs/QuotaApi.md +228 -0
  73. data/docs/QuotaHistory.md +8 -0
  74. data/docs/QuotaHistoryHistory.md +13 -0
  75. data/docs/RatesApi.md +1 -6
  76. data/docs/RawPackageUpload.md +6 -1
  77. data/docs/ReposApi.md +6 -36
  78. data/docs/RepositoryToken.md +7 -0
  79. data/docs/RepositoryTokenRefresh.md +7 -0
  80. data/docs/RepositoryTokenSyncTokens.md +7 -0
  81. data/docs/StorageregionsApi.md +2 -12
  82. data/docs/UserApi.md +2 -12
  83. data/docs/UsersApi.md +1 -6
  84. data/docs/VagrantPackageUpload.md +6 -1
  85. data/docs/VulnerabilitiesApi.md +264 -0
  86. data/docs/VulnerabilityScanResults.md +15 -0
  87. data/docs/VulnerabilityScanResultsList.md +14 -0
  88. data/docs/WebhooksApi.md +5 -30
  89. data/lib/cloudsmith-api.rb +10 -1
  90. data/lib/cloudsmith-api/api/badges_api.rb +1 -1
  91. data/lib/cloudsmith-api/api/distros_api.rb +2 -2
  92. data/lib/cloudsmith-api/api/entitlements_api.rb +10 -10
  93. data/lib/cloudsmith-api/api/files_api.rb +5 -5
  94. data/lib/cloudsmith-api/api/formats_api.rb +2 -2
  95. data/lib/cloudsmith-api/api/metrics_api.rb +78 -12
  96. data/lib/cloudsmith-api/api/namespaces_api.rb +2 -2
  97. data/lib/cloudsmith-api/api/orgs_api.rb +2 -2
  98. data/lib/cloudsmith-api/api/packages_api.rb +122 -51
  99. data/lib/cloudsmith-api/api/quota_api.rb +227 -0
  100. data/lib/cloudsmith-api/api/rates_api.rb +1 -1
  101. data/lib/cloudsmith-api/api/repos_api.rb +6 -6
  102. data/lib/cloudsmith-api/api/storageregions_api.rb +2 -2
  103. data/lib/cloudsmith-api/api/user_api.rb +2 -2
  104. data/lib/cloudsmith-api/api/users_api.rb +1 -1
  105. data/lib/cloudsmith-api/api/vulnerabilities_api.rb +281 -0
  106. data/lib/cloudsmith-api/api/webhooks_api.rb +5 -5
  107. data/lib/cloudsmith-api/configuration.rb +0 -7
  108. data/lib/cloudsmith-api/models/alpine_package_upload.rb +55 -5
  109. data/lib/cloudsmith-api/models/conan_package_upload.rb +55 -5
  110. data/lib/cloudsmith-api/models/{entitlement_token_metric.rb → entitlement_usage_metric.rb} +11 -26
  111. data/lib/cloudsmith-api/models/entitlements_create.rb +41 -1
  112. data/lib/cloudsmith-api/models/entitlements_partial_update.rb +41 -1
  113. data/lib/cloudsmith-api/models/entitlements_refresh.rb +41 -1
  114. data/lib/cloudsmith-api/models/maven_package_upload.rb +55 -5
  115. data/lib/cloudsmith-api/models/package.rb +55 -5
  116. data/lib/cloudsmith-api/models/package_copy.rb +55 -5
  117. data/lib/cloudsmith-api/models/package_move.rb +55 -5
  118. data/lib/cloudsmith-api/models/packages_copy.rb +14 -4
  119. data/lib/cloudsmith-api/models/packages_move.rb +14 -4
  120. data/lib/cloudsmith-api/models/packages_resync.rb +189 -0
  121. data/lib/cloudsmith-api/models/packages_scan.rb +189 -0
  122. data/lib/cloudsmith-api/models/packages_tag.rb +11 -1
  123. data/lib/cloudsmith-api/models/packages_upload_alpine.rb +11 -1
  124. data/lib/cloudsmith-api/models/packages_upload_cargo.rb +11 -1
  125. data/lib/cloudsmith-api/models/packages_upload_cocoapods.rb +11 -1
  126. data/lib/cloudsmith-api/models/packages_upload_composer.rb +11 -1
  127. data/lib/cloudsmith-api/models/packages_upload_conan.rb +11 -1
  128. data/lib/cloudsmith-api/models/packages_upload_cran.rb +11 -1
  129. data/lib/cloudsmith-api/models/packages_upload_dart.rb +11 -1
  130. data/lib/cloudsmith-api/models/packages_upload_deb.rb +11 -1
  131. data/lib/cloudsmith-api/models/packages_upload_docker.rb +11 -1
  132. data/lib/cloudsmith-api/models/packages_upload_go.rb +11 -1
  133. data/lib/cloudsmith-api/models/packages_upload_helm.rb +11 -1
  134. data/lib/cloudsmith-api/models/packages_upload_luarocks.rb +11 -1
  135. data/lib/cloudsmith-api/models/packages_upload_maven.rb +11 -1
  136. data/lib/cloudsmith-api/models/packages_upload_npm.rb +11 -1
  137. data/lib/cloudsmith-api/models/packages_upload_nuget.rb +11 -1
  138. data/lib/cloudsmith-api/models/packages_upload_python.rb +11 -1
  139. data/lib/cloudsmith-api/models/packages_upload_raw.rb +11 -1
  140. data/lib/cloudsmith-api/models/packages_upload_rpm.rb +11 -1
  141. data/lib/cloudsmith-api/models/packages_upload_ruby.rb +11 -1
  142. data/lib/cloudsmith-api/models/packages_upload_terraform.rb +11 -1
  143. data/lib/cloudsmith-api/models/packages_upload_vagrant.rb +11 -1
  144. data/lib/cloudsmith-api/models/packages_validateupload_alpine.rb +11 -1
  145. data/lib/cloudsmith-api/models/packages_validateupload_cargo.rb +11 -1
  146. data/lib/cloudsmith-api/models/packages_validateupload_cocoapods.rb +11 -1
  147. data/lib/cloudsmith-api/models/packages_validateupload_composer.rb +11 -1
  148. data/lib/cloudsmith-api/models/packages_validateupload_conan.rb +11 -1
  149. data/lib/cloudsmith-api/models/packages_validateupload_cran.rb +11 -1
  150. data/lib/cloudsmith-api/models/packages_validateupload_dart.rb +11 -1
  151. data/lib/cloudsmith-api/models/packages_validateupload_deb.rb +11 -1
  152. data/lib/cloudsmith-api/models/packages_validateupload_docker.rb +11 -1
  153. data/lib/cloudsmith-api/models/packages_validateupload_go.rb +11 -1
  154. data/lib/cloudsmith-api/models/packages_validateupload_helm.rb +11 -1
  155. data/lib/cloudsmith-api/models/packages_validateupload_luarocks.rb +11 -1
  156. data/lib/cloudsmith-api/models/packages_validateupload_maven.rb +11 -1
  157. data/lib/cloudsmith-api/models/packages_validateupload_npm.rb +11 -1
  158. data/lib/cloudsmith-api/models/packages_validateupload_nuget.rb +11 -1
  159. data/lib/cloudsmith-api/models/packages_validateupload_python.rb +11 -1
  160. data/lib/cloudsmith-api/models/packages_validateupload_raw.rb +11 -1
  161. data/lib/cloudsmith-api/models/packages_validateupload_rpm.rb +11 -1
  162. data/lib/cloudsmith-api/models/packages_validateupload_ruby.rb +11 -1
  163. data/lib/cloudsmith-api/models/packages_validateupload_terraform.rb +11 -1
  164. data/lib/cloudsmith-api/models/packages_validateupload_vagrant.rb +11 -1
  165. data/lib/cloudsmith-api/models/quota.rb +194 -0
  166. data/lib/cloudsmith-api/models/quota_history.rb +196 -0
  167. data/lib/cloudsmith-api/models/quota_history_history.rb +239 -0
  168. data/lib/cloudsmith-api/models/raw_package_upload.rb +55 -5
  169. data/lib/cloudsmith-api/models/repository_token.rb +71 -1
  170. data/lib/cloudsmith-api/models/repository_token_refresh.rb +71 -1
  171. data/lib/cloudsmith-api/models/repository_token_sync_tokens.rb +71 -1
  172. data/lib/cloudsmith-api/models/vagrant_package_upload.rb +55 -5
  173. data/lib/cloudsmith-api/models/vulnerability_scan_results.rb +279 -0
  174. data/lib/cloudsmith-api/models/vulnerability_scan_results_list.rb +264 -0
  175. data/lib/cloudsmith-api/version.rb +1 -1
  176. data/spec/api/metrics_api_spec.rb +19 -2
  177. data/spec/api/packages_api_spec.rb +16 -0
  178. data/spec/api/quota_api_spec.rb +83 -0
  179. data/spec/api/vulnerabilities_api_spec.rb +95 -0
  180. data/spec/models/alpine_package_upload_spec.rb +30 -0
  181. data/spec/models/conan_package_upload_spec.rb +30 -0
  182. data/spec/models/{entitlement_token_metric_spec.rb → entitlement_usage_metric_spec.rb} +7 -13
  183. data/spec/models/entitlements_create_spec.rb +24 -0
  184. data/spec/models/entitlements_partial_update_spec.rb +24 -0
  185. data/spec/models/entitlements_refresh_spec.rb +24 -0
  186. data/spec/models/maven_package_upload_spec.rb +30 -0
  187. data/spec/models/package_copy_spec.rb +30 -0
  188. data/spec/models/package_move_spec.rb +30 -0
  189. data/spec/models/package_spec.rb +30 -0
  190. data/spec/models/packages_copy_spec.rb +6 -0
  191. data/spec/models/packages_move_spec.rb +6 -0
  192. data/spec/models/packages_resync_spec.rb +42 -0
  193. data/spec/models/packages_scan_spec.rb +42 -0
  194. data/spec/models/packages_tag_spec.rb +6 -0
  195. data/spec/models/packages_upload_alpine_spec.rb +6 -0
  196. data/spec/models/packages_upload_cargo_spec.rb +6 -0
  197. data/spec/models/packages_upload_cocoapods_spec.rb +6 -0
  198. data/spec/models/packages_upload_composer_spec.rb +6 -0
  199. data/spec/models/packages_upload_conan_spec.rb +6 -0
  200. data/spec/models/packages_upload_cran_spec.rb +6 -0
  201. data/spec/models/packages_upload_dart_spec.rb +6 -0
  202. data/spec/models/packages_upload_deb_spec.rb +6 -0
  203. data/spec/models/packages_upload_docker_spec.rb +6 -0
  204. data/spec/models/packages_upload_go_spec.rb +6 -0
  205. data/spec/models/packages_upload_helm_spec.rb +6 -0
  206. data/spec/models/packages_upload_luarocks_spec.rb +6 -0
  207. data/spec/models/packages_upload_maven_spec.rb +6 -0
  208. data/spec/models/packages_upload_npm_spec.rb +6 -0
  209. data/spec/models/packages_upload_nuget_spec.rb +6 -0
  210. data/spec/models/packages_upload_python_spec.rb +6 -0
  211. data/spec/models/packages_upload_raw_spec.rb +6 -0
  212. data/spec/models/packages_upload_rpm_spec.rb +6 -0
  213. data/spec/models/packages_upload_ruby_spec.rb +6 -0
  214. data/spec/models/packages_upload_terraform_spec.rb +6 -0
  215. data/spec/models/packages_upload_vagrant_spec.rb +6 -0
  216. data/spec/models/packages_validateupload_alpine_spec.rb +6 -0
  217. data/spec/models/packages_validateupload_cargo_spec.rb +6 -0
  218. data/spec/models/packages_validateupload_cocoapods_spec.rb +6 -0
  219. data/spec/models/packages_validateupload_composer_spec.rb +6 -0
  220. data/spec/models/packages_validateupload_conan_spec.rb +6 -0
  221. data/spec/models/packages_validateupload_cran_spec.rb +6 -0
  222. data/spec/models/packages_validateupload_dart_spec.rb +6 -0
  223. data/spec/models/packages_validateupload_deb_spec.rb +6 -0
  224. data/spec/models/packages_validateupload_docker_spec.rb +6 -0
  225. data/spec/models/packages_validateupload_go_spec.rb +6 -0
  226. data/spec/models/packages_validateupload_helm_spec.rb +6 -0
  227. data/spec/models/packages_validateupload_luarocks_spec.rb +6 -0
  228. data/spec/models/packages_validateupload_maven_spec.rb +6 -0
  229. data/spec/models/packages_validateupload_npm_spec.rb +6 -0
  230. data/spec/models/packages_validateupload_nuget_spec.rb +6 -0
  231. data/spec/models/packages_validateupload_python_spec.rb +6 -0
  232. data/spec/models/packages_validateupload_raw_spec.rb +6 -0
  233. data/spec/models/packages_validateupload_rpm_spec.rb +6 -0
  234. data/spec/models/packages_validateupload_ruby_spec.rb +6 -0
  235. data/spec/models/packages_validateupload_terraform_spec.rb +6 -0
  236. data/spec/models/packages_validateupload_vagrant_spec.rb +6 -0
  237. data/spec/models/quota_history_history_spec.rb +72 -0
  238. data/spec/models/quota_history_spec.rb +42 -0
  239. data/spec/models/quota_spec.rb +42 -0
  240. data/spec/models/raw_package_upload_spec.rb +30 -0
  241. data/spec/models/repository_token_refresh_spec.rb +42 -0
  242. data/spec/models/repository_token_spec.rb +42 -0
  243. data/spec/models/repository_token_sync_tokens_spec.rb +42 -0
  244. data/spec/models/vagrant_package_upload_spec.rb +30 -0
  245. data/spec/models/vulnerability_scan_results_list_spec.rb +78 -0
  246. data/spec/models/vulnerability_scan_results_spec.rb +84 -0
  247. data/vendor/bundle/ruby/2.6.0/cache/crack-0.4.4.gem +0 -0
  248. data/vendor/bundle/ruby/2.6.0/cache/rspec-3.10.0.gem +0 -0
  249. data/vendor/bundle/ruby/2.6.0/cache/rspec-core-3.10.0.gem +0 -0
  250. data/vendor/bundle/ruby/2.6.0/cache/rspec-expectations-3.10.0.gem +0 -0
  251. data/vendor/bundle/ruby/2.6.0/cache/rspec-mocks-3.10.0.gem +0 -0
  252. data/vendor/bundle/ruby/2.6.0/cache/rspec-support-3.10.0.gem +0 -0
  253. data/vendor/bundle/ruby/2.6.0/cache/sys-uname-1.2.2.gem +0 -0
  254. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/autotest-fsevent-0.2.17/gem_make.out +1 -1
  255. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/ffi-1.13.1/gem_make.out +2 -2
  256. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.3.1/gem_make.out +1 -1
  257. data/vendor/bundle/ruby/2.6.0/gems/{crack-0.4.3 → crack-0.4.4}/lib/crack.rb +0 -0
  258. data/vendor/bundle/ruby/2.6.0/gems/{crack-0.4.3 → crack-0.4.4}/lib/crack/json.rb +5 -18
  259. data/vendor/bundle/ruby/2.6.0/gems/{crack-0.4.3 → crack-0.4.4}/lib/crack/util.rb +0 -0
  260. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.4/lib/crack/version.rb +3 -0
  261. data/vendor/bundle/ruby/2.6.0/gems/{crack-0.4.3 → crack-0.4.4}/lib/crack/xml.rb +0 -0
  262. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.13.1/ext/ffi_c/Makefile +3 -3
  263. data/vendor/bundle/ruby/2.6.0/gems/{rspec-3.9.0 → rspec-3.10.0}/LICENSE.md +0 -0
  264. data/vendor/bundle/ruby/2.6.0/gems/{rspec-3.9.0 → rspec-3.10.0}/README.md +0 -0
  265. data/vendor/bundle/ruby/2.6.0/gems/{rspec-3.9.0 → rspec-3.10.0}/lib/rspec.rb +0 -0
  266. data/vendor/bundle/ruby/2.6.0/gems/{rspec-3.9.0 → rspec-3.10.0}/lib/rspec/version.rb +1 -1
  267. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/.document +0 -0
  268. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/.yardopts +0 -0
  269. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/Changelog.md +27 -0
  270. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/LICENSE.md +0 -0
  271. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/README.md +3 -3
  272. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/exe/rspec +0 -0
  273. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/autorun.rb +0 -0
  274. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core.rb +0 -0
  275. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/backtrace_formatter.rb +0 -0
  276. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/bisect/coordinator.rb +0 -0
  277. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/bisect/example_minimizer.rb +0 -0
  278. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/bisect/fork_runner.rb +6 -3
  279. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/bisect/server.rb +0 -0
  280. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/bisect/shell_command.rb +0 -0
  281. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/bisect/shell_runner.rb +0 -0
  282. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/bisect/utilities.rb +0 -0
  283. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/configuration.rb +16 -7
  284. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/configuration_options.rb +0 -0
  285. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/did_you_mean.rb +0 -0
  286. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/drb.rb +7 -0
  287. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/dsl.rb +0 -0
  288. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/example.rb +10 -3
  289. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/example_group.rb +2 -1
  290. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/example_status_persister.rb +0 -0
  291. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/filter_manager.rb +0 -0
  292. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/flat_map.rb +0 -0
  293. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters.rb +0 -0
  294. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/base_bisect_formatter.rb +0 -0
  295. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/base_formatter.rb +0 -0
  296. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/base_text_formatter.rb +0 -0
  297. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/bisect_drb_formatter.rb +0 -0
  298. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/bisect_progress_formatter.rb +0 -0
  299. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/console_codes.rb +0 -0
  300. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/deprecation_formatter.rb +0 -0
  301. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/documentation_formatter.rb +0 -0
  302. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/exception_presenter.rb +16 -6
  303. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/failure_list_formatter.rb +0 -0
  304. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/fallback_message_formatter.rb +0 -0
  305. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/helpers.rb +0 -0
  306. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/html_formatter.rb +0 -0
  307. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/html_printer.rb +0 -0
  308. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/html_snippet_extractor.rb +0 -0
  309. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/json_formatter.rb +0 -0
  310. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/profile_formatter.rb +0 -0
  311. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/progress_formatter.rb +0 -0
  312. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/protocol.rb +0 -0
  313. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/snippet_extractor.rb +0 -0
  314. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/formatters/syntax_highlighter.rb +0 -0
  315. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/hooks.rb +14 -9
  316. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/invocations.rb +1 -1
  317. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/memoized_helpers.rb +0 -0
  318. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/metadata.rb +0 -0
  319. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/metadata_filter.rb +0 -0
  320. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/minitest_assertions_adapter.rb +0 -0
  321. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/mocking_adapters/flexmock.rb +0 -0
  322. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/mocking_adapters/mocha.rb +0 -0
  323. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/mocking_adapters/null.rb +0 -0
  324. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/mocking_adapters/rr.rb +0 -0
  325. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/mocking_adapters/rspec.rb +0 -0
  326. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/notifications.rb +0 -0
  327. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/option_parser.rb +5 -0
  328. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/ordering.rb +0 -0
  329. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/output_wrapper.rb +0 -0
  330. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/pending.rb +0 -0
  331. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/profiler.rb +0 -0
  332. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/project_initializer.rb +0 -0
  333. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/project_initializer/.rspec +0 -0
  334. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/project_initializer/spec/spec_helper.rb +0 -0
  335. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/rake_task.rb +0 -0
  336. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/reporter.rb +0 -0
  337. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/ruby_project.rb +0 -0
  338. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/runner.rb +12 -4
  339. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/sandbox.rb +0 -0
  340. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/set.rb +0 -0
  341. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/shared_context.rb +0 -0
  342. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/shared_example_group.rb +0 -0
  343. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/shell_escape.rb +0 -0
  344. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/test_unit_assertions_adapter.rb +0 -0
  345. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/version.rb +1 -1
  346. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/warnings.rb +0 -0
  347. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.9.2 → rspec-core-3.10.0}/lib/rspec/core/world.rb +1 -0
  348. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/.document +0 -0
  349. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/.yardopts +0 -0
  350. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/Changelog.md +43 -2
  351. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/LICENSE.md +0 -0
  352. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/README.md +4 -4
  353. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/expectations.rb +0 -0
  354. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/expectations/block_snippet_extractor.rb +0 -0
  355. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/expectations/configuration.rb +15 -0
  356. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/expectations/expectation_target.rb +0 -0
  357. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/expectations/fail_with.rb +0 -0
  358. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/expectations/failure_aggregator.rb +19 -1
  359. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/expectations/handler.rb +18 -6
  360. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/expectations/minitest_integration.rb +0 -0
  361. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/expectations/syntax.rb +0 -0
  362. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/expectations/version.rb +1 -1
  363. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers.rb +43 -40
  364. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/aliased_matcher.rb +0 -0
  365. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in.rb +2 -1
  366. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/all.rb +0 -0
  367. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/base_matcher.rb +0 -0
  368. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/be.rb +10 -107
  369. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/be_between.rb +0 -0
  370. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/be_instance_of.rb +0 -0
  371. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/be_kind_of.rb +0 -0
  372. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/be_within.rb +2 -2
  373. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/change.rb +0 -0
  374. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/compound.rb +0 -0
  375. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/contain_exactly.rb +0 -0
  376. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.0/lib/rspec/matchers/built_in/count_expectation.rb +169 -0
  377. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/cover.rb +0 -0
  378. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/eq.rb +0 -0
  379. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/eql.rb +0 -0
  380. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/equal.rb +0 -0
  381. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/exist.rb +0 -0
  382. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.0/lib/rspec/matchers/built_in/has.rb +167 -0
  383. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/have_attributes.rb +0 -0
  384. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/include.rb +72 -15
  385. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/match.rb +0 -0
  386. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/operators.rb +0 -0
  387. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/output.rb +0 -0
  388. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/raise_error.rb +42 -13
  389. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/respond_to.rb +46 -45
  390. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/satisfy.rb +0 -0
  391. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/start_or_end_with.rb +0 -0
  392. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/throw_symbol.rb +0 -0
  393. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/built_in/yield.rb +6 -92
  394. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/composable.rb +0 -0
  395. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/dsl.rb +0 -0
  396. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/english_phrasing.rb +1 -1
  397. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +0 -0
  398. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/fail_matchers.rb +0 -0
  399. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/generated_descriptions.rb +0 -0
  400. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/matcher_delegator.rb +0 -0
  401. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.9.2 → rspec-expectations-3.10.0}/lib/rspec/matchers/matcher_protocol.rb +0 -0
  402. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/.document +0 -0
  403. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/.yardopts +0 -0
  404. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/Changelog.md +10 -0
  405. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/LICENSE.md +0 -0
  406. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/README.md +5 -5
  407. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks.rb +4 -1
  408. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/any_instance.rb +0 -0
  409. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/any_instance/chain.rb +0 -0
  410. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/any_instance/error_generator.rb +0 -0
  411. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/any_instance/expect_chain_chain.rb +0 -0
  412. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/any_instance/expectation_chain.rb +0 -0
  413. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/any_instance/message_chains.rb +0 -0
  414. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/any_instance/proxy.rb +0 -0
  415. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/any_instance/recorder.rb +0 -0
  416. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/any_instance/stub_chain.rb +0 -0
  417. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/any_instance/stub_chain_chain.rb +0 -0
  418. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/argument_list_matcher.rb +0 -0
  419. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/argument_matchers.rb +0 -0
  420. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/configuration.rb +0 -0
  421. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/error_generator.rb +0 -0
  422. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/example_methods.rb +0 -0
  423. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/instance_method_stasher.rb +0 -0
  424. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/marshal_extension.rb +0 -0
  425. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/matchers/expectation_customization.rb +0 -0
  426. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/matchers/have_received.rb +0 -0
  427. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/matchers/receive.rb +0 -0
  428. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/matchers/receive_message_chain.rb +0 -0
  429. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/matchers/receive_messages.rb +0 -0
  430. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/message_chain.rb +0 -0
  431. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/message_expectation.rb +2 -2
  432. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/method_double.rb +0 -0
  433. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/method_reference.rb +0 -0
  434. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/minitest_integration.rb +0 -0
  435. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/mutate_const.rb +0 -0
  436. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/object_reference.rb +0 -0
  437. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/order_group.rb +0 -0
  438. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/proxy.rb +0 -0
  439. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/space.rb +0 -0
  440. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/standalone.rb +0 -0
  441. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/syntax.rb +0 -0
  442. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/targets.rb +0 -0
  443. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/test_double.rb +0 -0
  444. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/verifying_double.rb +0 -0
  445. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/verifying_message_expectation.rb +0 -0
  446. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/verifying_proxy.rb +0 -0
  447. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.9.1 → rspec-mocks-3.10.0}/lib/rspec/mocks/version.rb +1 -1
  448. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/Changelog.md +12 -0
  449. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/LICENSE.md +0 -0
  450. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/README.md +2 -2
  451. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support.rb +0 -0
  452. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/caller_filter.rb +1 -1
  453. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/comparable_version.rb +1 -1
  454. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/differ.rb +0 -0
  455. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/directory_maker.rb +0 -0
  456. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/encoded_string.rb +0 -0
  457. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/fuzzy_matcher.rb +0 -0
  458. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/hunk_generator.rb +0 -0
  459. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/matcher_definition.rb +0 -0
  460. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/method_signature_verifier.rb +2 -2
  461. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/mutex.rb +0 -0
  462. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/object_formatter.rb +0 -0
  463. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/recursive_const_methods.rb +0 -0
  464. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/reentrant_mutex.rb +0 -0
  465. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/ruby_features.rb +4 -4
  466. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/source.rb +10 -0
  467. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/source/location.rb +0 -0
  468. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/source/node.rb +0 -0
  469. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/source/token.rb +0 -0
  470. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/spec.rb +1 -0
  471. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/spec/deprecation_helpers.rb +0 -0
  472. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.0/lib/rspec/support/spec/diff_helpers.rb +31 -0
  473. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/spec/formatting_support.rb +0 -0
  474. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/spec/in_sub_process.rb +1 -3
  475. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/spec/library_wide_checks.rb +0 -0
  476. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/spec/shell_out.rb +19 -8
  477. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/spec/stderr_splitter.rb +0 -0
  478. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/spec/string_matcher.rb +0 -1
  479. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/spec/with_isolated_directory.rb +0 -0
  480. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/spec/with_isolated_stderr.rb +0 -0
  481. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/version.rb +1 -1
  482. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/warnings.rb +0 -0
  483. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.9.3 → rspec-support-3.10.0}/lib/rspec/support/with_keywords_when_needed.rb +0 -0
  484. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1/CHANGES.rdoc → sys-uname-1.2.2/CHANGES.md} +41 -35
  485. data/vendor/bundle/ruby/2.6.0/gems/sys-uname-1.2.2/Gemfile +7 -0
  486. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/LICENSE +0 -0
  487. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1/MANIFEST.rdoc → sys-uname-1.2.2/MANIFEST.md} +2 -1
  488. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1/README.rdoc → sys-uname-1.2.2/README.md} +22 -20
  489. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/Rakefile +2 -2
  490. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/certs/djberg96_pub.pem +0 -0
  491. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/doc/uname.rdoc +1 -1
  492. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/examples/uname_test.rb +0 -0
  493. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/lib/sys-uname.rb +0 -0
  494. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/lib/sys/platform.rb +0 -0
  495. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/lib/sys/uname.rb +1 -1
  496. 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
  497. 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
  498. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/spec/sys_platform_spec.rb +1 -1
  499. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/spec/sys_uname_spec.rb +2 -2
  500. data/vendor/bundle/ruby/2.6.0/gems/{sys-uname-1.2.1 → sys-uname-1.2.2}/sys-uname.gemspec +5 -4
  501. data/vendor/bundle/ruby/2.6.0/specifications/{crack-0.4.3.gemspec → crack-0.4.4.gemspec} +3 -15
  502. data/vendor/bundle/ruby/2.6.0/specifications/{rspec-3.9.0.gemspec → rspec-3.10.0.gemspec} +13 -13
  503. data/vendor/bundle/ruby/2.6.0/specifications/{rspec-core-3.9.2.gemspec → rspec-core-3.10.0.gemspec} +8 -8
  504. data/vendor/bundle/ruby/2.6.0/specifications/{rspec-expectations-3.9.2.gemspec → rspec-expectations-3.10.0.gemspec} +8 -8
  505. data/vendor/bundle/ruby/2.6.0/specifications/{rspec-mocks-3.9.1.gemspec → rspec-mocks-3.10.0.gemspec} +11 -11
  506. data/vendor/bundle/ruby/2.6.0/specifications/{rspec-support-3.9.3.gemspec → rspec-support-3.10.0.gemspec} +5 -5
  507. data/vendor/bundle/ruby/2.6.0/specifications/{sys-uname-1.2.1.gemspec → sys-uname-1.2.2.gemspec} +12 -9
  508. metadata +388 -424
  509. data/docs/EntitlementTokenMetric.md +0 -9
  510. data/vendor/bundle/ruby/2.6.0/bin/safe_yaml +0 -27
  511. data/vendor/bundle/ruby/2.6.0/cache/crack-0.4.3.gem +0 -0
  512. data/vendor/bundle/ruby/2.6.0/cache/rspec-3.9.0.gem +0 -0
  513. data/vendor/bundle/ruby/2.6.0/cache/rspec-core-3.9.2.gem +0 -0
  514. data/vendor/bundle/ruby/2.6.0/cache/rspec-expectations-3.9.2.gem +0 -0
  515. data/vendor/bundle/ruby/2.6.0/cache/rspec-mocks-3.9.1.gem +0 -0
  516. data/vendor/bundle/ruby/2.6.0/cache/rspec-support-3.9.3.gem +0 -0
  517. data/vendor/bundle/ruby/2.6.0/cache/safe_yaml-1.0.5.gem +0 -0
  518. data/vendor/bundle/ruby/2.6.0/cache/sys-uname-1.2.1.gem +0 -0
  519. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/.gitignore +0 -8
  520. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/.travis.yml +0 -14
  521. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/Gemfile +0 -5
  522. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/History +0 -25
  523. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/LICENSE +0 -20
  524. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/README.md +0 -46
  525. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/crack.gemspec +0 -20
  526. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/lib/crack/version.rb +0 -3
  527. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/script/bootstrap +0 -21
  528. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/script/release +0 -42
  529. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/script/test +0 -25
  530. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/data/large_dataset.json +0 -139988
  531. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/data/twittersearch-firefox.json +0 -1
  532. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/data/twittersearch-ie.json +0 -1
  533. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/hash_test.rb +0 -26
  534. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/json_test.rb +0 -91
  535. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/parser_test.rb +0 -27
  536. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/string_test.rb +0 -31
  537. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/test_helper.rb +0 -3
  538. data/vendor/bundle/ruby/2.6.0/gems/crack-0.4.3/test/xml_test.rb +0 -514
  539. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/has.rb +0 -103
  540. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/.gitignore +0 -3
  541. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/.travis.yml +0 -48
  542. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/CHANGES.md +0 -154
  543. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/Gemfile +0 -11
  544. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/LICENSE.txt +0 -22
  545. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/README.md +0 -191
  546. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/Rakefile +0 -26
  547. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/bin/safe_yaml +0 -75
  548. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/bundle_install_all_ruby_versions.sh +0 -11
  549. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml.rb +0 -94
  550. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/deep.rb +0 -34
  551. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/libyaml_checker.rb +0 -36
  552. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/load.rb +0 -181
  553. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/date.rb +0 -37
  554. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/hexadecimal.rb +0 -12
  555. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb +0 -26
  556. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/psych_handler.rb +0 -99
  557. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/psych_resolver.rb +0 -52
  558. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/resolver.rb +0 -94
  559. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/safe_to_ruby_visitor.rb +0 -29
  560. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/store.rb +0 -39
  561. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_hack.rb +0 -36
  562. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_node_monkeypatch.rb +0 -43
  563. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_resolver.rb +0 -38
  564. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform.rb +0 -41
  565. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_boolean.rb +0 -21
  566. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_date.rb +0 -13
  567. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_float.rb +0 -33
  568. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_integer.rb +0 -26
  569. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_nil.rb +0 -18
  570. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_symbol.rb +0 -17
  571. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/transformation_map.rb +0 -47
  572. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/version.rb +0 -3
  573. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/run_specs_all_ruby_versions.sh +0 -38
  574. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/safe_yaml.gemspec +0 -19
  575. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/exploit.1.9.2.yaml +0 -2
  576. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/exploit.1.9.3.yaml +0 -2
  577. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/issue48.txt +0 -20
  578. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/issue49.yml +0 -0
  579. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/libyaml_checker_spec.rb +0 -69
  580. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/psych_resolver_spec.rb +0 -10
  581. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/resolver_specs.rb +0 -278
  582. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/safe_yaml_spec.rb +0 -731
  583. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/spec_helper.rb +0 -42
  584. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/store_spec.rb +0 -57
  585. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/support/exploitable_back_door.rb +0 -29
  586. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/syck_resolver_spec.rb +0 -10
  587. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/base64_spec.rb +0 -11
  588. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/to_date_spec.rb +0 -60
  589. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/to_float_spec.rb +0 -42
  590. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/to_integer_spec.rb +0 -64
  591. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/transform/to_symbol_spec.rb +0 -51
  592. data/vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/spec/yaml_spec.rb +0 -15
  593. data/vendor/bundle/ruby/2.6.0/specifications/safe_yaml-1.0.5.gemspec +0 -23
@@ -1,278 +0,0 @@
1
- module ResolverSpecs
2
- def self.included(base)
3
- base.module_eval do
4
- let(:resolver) { nil }
5
- let(:result) { @result }
6
-
7
- before :each do
8
- # See the comment in the first before :each block in safe_yaml_spec.rb.
9
- require "safe_yaml"
10
- end
11
-
12
- def parse(yaml)
13
- tree = YAML.parse(yaml.unindent)
14
- @result = resolver.resolve_node(tree)
15
- end
16
-
17
- # Isn't this how I should've been doing it all along?
18
- def parse_and_test(yaml)
19
- safe_result = parse(yaml)
20
-
21
- exception_thrown = nil
22
-
23
- unsafe_result = begin
24
- YAML.unsafe_load(yaml)
25
- rescue Exception => e
26
- exception_thrown = e
27
- end
28
-
29
- if exception_thrown
30
- # If the underlying YAML parser (e.g. Psych) threw an exception, I'm
31
- # honestly not sure what the right thing to do is. For now I'll just
32
- # print a warning. Should SafeYAML fail when Psych fails?
33
- Kernel.warn "\n"
34
- Kernel.warn "Discrepancy between SafeYAML and #{SafeYAML::YAML_ENGINE} on input:\n"
35
- Kernel.warn "#{yaml.unindent}\n"
36
- Kernel.warn "SafeYAML result:"
37
- Kernel.warn "#{safe_result.inspect}\n"
38
- Kernel.warn "#{SafeYAML::YAML_ENGINE} result:"
39
- Kernel.warn "#{exception_thrown.inspect}\n"
40
-
41
- else
42
- expect(safe_result).to eq(unsafe_result)
43
- end
44
- end
45
-
46
- context "by default" do
47
- it "translates maps to hashes" do
48
- parse <<-YAML
49
- potayto: potahto
50
- tomayto: tomahto
51
- YAML
52
-
53
- expect(result).to eq({
54
- "potayto" => "potahto",
55
- "tomayto" => "tomahto"
56
- })
57
- end
58
-
59
- it "translates sequences to arrays" do
60
- parse <<-YAML
61
- - foo
62
- - bar
63
- - baz
64
- YAML
65
-
66
- expect(result).to eq(["foo", "bar", "baz"])
67
- end
68
-
69
- it "translates most values to strings" do
70
- parse "string: value"
71
- expect(result).to eq({ "string" => "value" })
72
- end
73
-
74
- it "does not deserialize symbols" do
75
- parse ":symbol: value"
76
- expect(result).to eq({ ":symbol" => "value" })
77
- end
78
-
79
- it "translates valid integral numbers to integers" do
80
- parse "integer: 1"
81
- expect(result).to eq({ "integer" => 1 })
82
- end
83
-
84
- it "translates valid decimal numbers to floats" do
85
- parse "float: 3.14"
86
- expect(result).to eq({ "float" => 3.14 })
87
- end
88
-
89
- it "translates valid dates" do
90
- parse "date: 2013-01-24"
91
- expect(result).to eq({ "date" => Date.parse("2013-01-24") })
92
- end
93
-
94
- it "translates valid true/false values to booleans" do
95
- parse <<-YAML
96
- - yes
97
- - true
98
- - no
99
- - false
100
- YAML
101
-
102
- expect(result).to eq([true, true, false, false])
103
- end
104
-
105
- it "translates valid nulls to nil" do
106
- parse <<-YAML
107
- -
108
- - ~
109
- - null
110
- YAML
111
-
112
- expect(result).to eq([nil] * 3)
113
- end
114
-
115
- it "matches the behavior of the underlying YAML engine w/ respect to capitalization of boolean values" do
116
- parse_and_test <<-YAML
117
- - true
118
- - True
119
- - TRUE
120
- - tRue
121
- - TRue
122
- - False
123
- - FALSE
124
- - fAlse
125
- - FALse
126
- YAML
127
-
128
- # using Syck: [true, true, true, "tRue", "TRue", false, false, "fAlse", "FALse"]
129
- # using Psych: all booleans
130
- end
131
-
132
- it "matches the behavior of the underlying YAML engine w/ respect to capitalization of nil values" do
133
- parse_and_test <<-YAML
134
- - Null
135
- - NULL
136
- - nUll
137
- - NUll
138
- YAML
139
-
140
- # using Syck: [nil, nil, "nUll", "NUll"]
141
- # using Psych: all nils
142
- end
143
-
144
- it "translates quoted empty strings to strings (not nil)" do
145
- parse "foo: ''"
146
- expect(result).to eq({ "foo" => "" })
147
- end
148
-
149
- it "correctly reverse-translates strings encoded via #to_yaml" do
150
- parse "5.10".to_yaml
151
- expect(result).to eq("5.10")
152
- end
153
-
154
- it "does not specially parse any double-quoted strings" do
155
- parse <<-YAML
156
- - "1"
157
- - "3.14"
158
- - "true"
159
- - "false"
160
- - "2013-02-03"
161
- - "2013-02-03 16:27:00 -0600"
162
- YAML
163
-
164
- expect(result).to eq(["1", "3.14", "true", "false", "2013-02-03", "2013-02-03 16:27:00 -0600"])
165
- end
166
-
167
- it "does not specially parse any single-quoted strings" do
168
- parse <<-YAML
169
- - '1'
170
- - '3.14'
171
- - 'true'
172
- - 'false'
173
- - '2013-02-03'
174
- - '2013-02-03 16:27:00 -0600'
175
- YAML
176
-
177
- expect(result).to eq(["1", "3.14", "true", "false", "2013-02-03", "2013-02-03 16:27:00 -0600"])
178
- end
179
-
180
- it "deals just fine with nested maps" do
181
- parse <<-YAML
182
- foo:
183
- bar:
184
- marco: polo
185
- YAML
186
-
187
- expect(result).to eq({ "foo" => { "bar" => { "marco" => "polo" } } })
188
- end
189
-
190
- it "deals just fine with nested sequences" do
191
- parse <<-YAML
192
- - foo
193
- -
194
- - bar1
195
- - bar2
196
- -
197
- - baz1
198
- - baz2
199
- YAML
200
-
201
- expect(result).to eq(["foo", ["bar1", "bar2", ["baz1", "baz2"]]])
202
- end
203
-
204
- it "applies the same transformations to keys as to values" do
205
- parse <<-YAML
206
- foo: string
207
- :bar: symbol
208
- 1: integer
209
- 3.14: float
210
- 2013-01-24: date
211
- YAML
212
-
213
- expect(result).to eq({
214
- "foo" => "string",
215
- ":bar" => "symbol",
216
- 1 => "integer",
217
- 3.14 => "float",
218
- Date.parse("2013-01-24") => "date",
219
- })
220
- end
221
-
222
- it "applies the same transformations to elements in sequences as to all values" do
223
- parse <<-YAML
224
- - foo
225
- - :bar
226
- - 1
227
- - 3.14
228
- - 2013-01-24
229
- YAML
230
-
231
- expect(result).to eq(["foo", ":bar", 1, 3.14, Date.parse("2013-01-24")])
232
- end
233
- end
234
-
235
- context "for Ruby version #{RUBY_VERSION}" do
236
- it "translates valid time values" do
237
- parse "time: 2013-01-29 05:58:00 -0800"
238
- expect(result).to eq({ "time" => Time.utc(2013, 1, 29, 13, 58, 0) })
239
- end
240
-
241
- it "applies the same transformation to elements in sequences" do
242
- parse "- 2013-01-29 05:58:00 -0800"
243
- expect(result).to eq([Time.utc(2013, 1, 29, 13, 58, 0)])
244
- end
245
-
246
- it "applies the same transformation to keys" do
247
- parse "2013-01-29 05:58:00 -0800: time"
248
- expect(result).to eq({ Time.utc(2013, 1, 29, 13, 58, 0) => "time" })
249
- end
250
- end
251
-
252
- context "with symbol deserialization enabled" do
253
- before :each do
254
- SafeYAML::OPTIONS[:deserialize_symbols] = true
255
- end
256
-
257
- after :each do
258
- SafeYAML.restore_defaults!
259
- end
260
-
261
- it "translates values starting with ':' to symbols" do
262
- parse "symbol: :value"
263
- expect(result).to eq({ "symbol" => :value })
264
- end
265
-
266
- it "applies the same transformation to keys" do
267
- parse ":bar: symbol"
268
- expect(result).to eq({ :bar => "symbol" })
269
- end
270
-
271
- it "applies the same transformation to elements in sequences" do
272
- parse "- :bar"
273
- expect(result).to eq([:bar])
274
- end
275
- end
276
- end
277
- end
278
- end
@@ -1,731 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe YAML do
4
- def safe_load_round_trip(object, options={})
5
- yaml = object.to_yaml
6
- if SafeYAML::YAML_ENGINE == "psych"
7
- YAML.safe_load(yaml, nil, options)
8
- else
9
- YAML.safe_load(yaml, options)
10
- end
11
- end
12
-
13
- before :each do
14
- # Need to require this here (as opposed to somewhere up higher in the file)
15
- # to ensure that safe_yaml isn't loaded and therefore YAML isn't monkey-
16
- # patched, for tests that require only safe_yaml/load.
17
- require "safe_yaml"
18
- require "exploitable_back_door"
19
-
20
- SafeYAML.restore_defaults!
21
- end
22
-
23
- after :each do
24
- SafeYAML.restore_defaults!
25
- end
26
-
27
- describe "unsafe_load" do
28
- if SafeYAML::YAML_ENGINE == "psych" && RUBY_VERSION >= "1.9.3"
29
- it "allows exploits through objects defined in YAML w/ !ruby/hash via custom :[]= methods" do
30
- backdoor = YAML.unsafe_load("--- !ruby/hash:ExploitableBackDoor\nfoo: bar\n")
31
- expect(backdoor).to be_exploited_through_setter
32
- end
33
-
34
- it "allows exploits through objects defined in YAML w/ !ruby/object via the :init_with method" do
35
- backdoor = YAML.unsafe_load("--- !ruby/object:ExploitableBackDoor\nfoo: bar\n")
36
- expect(backdoor).to be_exploited_through_init_with
37
- end
38
- end
39
-
40
- it "allows exploits through objects w/ sensitive instance variables defined in YAML w/ !ruby/object" do
41
- backdoor = YAML.unsafe_load("--- !ruby/object:ExploitableBackDoor\nfoo: bar\n")
42
- expect(backdoor).to be_exploited_through_ivars
43
- end
44
-
45
- context "with special whitelisted tags defined" do
46
- before :each do
47
- SafeYAML::whitelist!(OpenStruct)
48
- end
49
-
50
- it "effectively ignores the whitelist (since everything is whitelisted)" do
51
- result = YAML.unsafe_load <<-YAML.unindent
52
- --- !ruby/object:OpenStruct
53
- table:
54
- :backdoor: !ruby/object:ExploitableBackDoor
55
- foo: bar
56
- YAML
57
-
58
- expect(result).to be_a(OpenStruct)
59
- expect(result.backdoor).to be_exploited_through_ivars
60
- end
61
- end
62
- end
63
-
64
- describe "safe_load" do
65
- it "does NOT allow exploits through objects defined in YAML w/ !ruby/hash" do
66
- object = YAML.safe_load("--- !ruby/hash:ExploitableBackDoor\nfoo: bar\n")
67
- expect(object).not_to be_a(ExploitableBackDoor)
68
- end
69
-
70
- it "does NOT allow exploits through objects defined in YAML w/ !ruby/object" do
71
- object = YAML.safe_load("--- !ruby/object:ExploitableBackDoor\nfoo: bar\n")
72
- expect(object).not_to be_a(ExploitableBackDoor)
73
- end
74
-
75
- context "for YAML engine #{SafeYAML::YAML_ENGINE}" do
76
- if SafeYAML::YAML_ENGINE == "psych"
77
- let(:options) { nil }
78
- let(:arguments) { ["foo: bar", nil, options] }
79
-
80
- context "when no tags are whitelisted" do
81
- it "constructs a SafeYAML::PsychHandler to resolve nodes as they're parsed, for optimal performance" do
82
- expect(Psych::Parser).to receive(:new).with an_instance_of(SafeYAML::PsychHandler)
83
- # This won't work now; we just want to ensure Psych::Parser#parse was in fact called.
84
- YAML.safe_load(*arguments) rescue nil
85
- end
86
- end
87
-
88
- context "when whitelisted tags are specified" do
89
- let(:options) {
90
- { :whitelisted_tags => ["foo"] }
91
- }
92
-
93
- it "instead uses Psych to construct a full tree before examining the nodes" do
94
- expect(Psych).to receive(:parse)
95
- # This won't work now; we just want to ensure Psych::Parser#parse was in fact called.
96
- YAML.safe_load(*arguments) rescue nil
97
- end
98
- end
99
- end
100
-
101
- if SafeYAML::YAML_ENGINE == "syck"
102
- it "uses Syck internally to parse YAML" do
103
- expect(YAML).to receive(:parse).with("foo: bar")
104
- # This won't work now; we just want to ensure YAML::parse was in fact called.
105
- YAML.safe_load("foo: bar") rescue nil
106
- end
107
- end
108
- end
109
-
110
- it "loads a plain ol' YAML document just fine" do
111
- result = YAML.safe_load <<-YAML.unindent
112
- foo:
113
- number: 1
114
- boolean: true
115
- nil: ~
116
- string: Hello, there!
117
- symbol: :blah
118
- sequence:
119
- - hi
120
- - bye
121
- YAML
122
-
123
- expect(result).to eq({
124
- "foo" => {
125
- "number" => 1,
126
- "boolean" => true,
127
- "nil" => nil,
128
- "string" => "Hello, there!",
129
- "symbol" => ":blah",
130
- "sequence" => ["hi", "bye"]
131
- }
132
- })
133
- end
134
-
135
- it "works for YAML documents with anchors and aliases" do
136
- result = YAML.safe_load <<-YAML
137
- - &id001 {}
138
- - *id001
139
- - *id001
140
- YAML
141
-
142
- expect(result).to eq([{}, {}, {}])
143
- end
144
-
145
- it "works for YAML documents with binary tagged keys" do
146
- result = YAML.safe_load <<-YAML
147
- ? !!binary >
148
- Zm9v
149
- : "bar"
150
- ? !!binary >
151
- YmFy
152
- : "baz"
153
- YAML
154
-
155
- expect(result).to eq({"foo" => "bar", "bar" => "baz"})
156
- end
157
-
158
- it "works for YAML documents with binary tagged values" do
159
- result = YAML.safe_load <<-YAML
160
- "foo": !!binary >
161
- YmFy
162
- "bar": !!binary >
163
- YmF6
164
- YAML
165
-
166
- expect(result).to eq({"foo" => "bar", "bar" => "baz"})
167
- end
168
-
169
- it "works for YAML documents with binary tagged array values" do
170
- result = YAML.safe_load <<-YAML
171
- - !binary |-
172
- Zm9v
173
- - !binary |-
174
- YmFy
175
- YAML
176
-
177
- expect(result).to eq(["foo", "bar"])
178
- end
179
-
180
- it "works for YAML documents with sections" do
181
- result = YAML.safe_load <<-YAML
182
- mysql: &mysql
183
- adapter: mysql
184
- pool: 30
185
- login: &login
186
- username: user
187
- password: password123
188
- development: &development
189
- <<: *mysql
190
- <<: *login
191
- host: localhost
192
- YAML
193
-
194
- expect(result).to eq({
195
- "mysql" => {
196
- "adapter" => "mysql",
197
- "pool" => 30
198
- },
199
- "login" => {
200
- "username" => "user",
201
- "password" => "password123"
202
- },
203
- "development" => {
204
- "adapter" => "mysql",
205
- "pool" => 30,
206
- "username" => "user",
207
- "password" => "password123",
208
- "host" => "localhost"
209
- }
210
- })
211
- end
212
-
213
- it "correctly prefers explicitly defined values over default values from included sections" do
214
- # Repeating this test 100 times to increase the likelihood of running into an issue caused by
215
- # non-deterministic hash key enumeration.
216
- 100.times do
217
- result = YAML.safe_load <<-YAML
218
- defaults: &defaults
219
- foo: foo
220
- bar: bar
221
- baz: baz
222
- custom:
223
- <<: *defaults
224
- bar: custom_bar
225
- baz: custom_baz
226
- YAML
227
-
228
- expect(result["custom"]).to eq({
229
- "foo" => "foo",
230
- "bar" => "custom_bar",
231
- "baz" => "custom_baz"
232
- })
233
- end
234
- end
235
-
236
- it "works with multi-level inheritance" do
237
- result = YAML.safe_load <<-YAML
238
- defaults: &defaults
239
- foo: foo
240
- bar: bar
241
- baz: baz
242
- custom: &custom
243
- <<: *defaults
244
- bar: custom_bar
245
- baz: custom_baz
246
- grandcustom: &grandcustom
247
- <<: *custom
248
- YAML
249
-
250
- expect(result).to eq({
251
- "defaults" => { "foo" => "foo", "bar" => "bar", "baz" => "baz" },
252
- "custom" => { "foo" => "foo", "bar" => "custom_bar", "baz" => "custom_baz" },
253
- "grandcustom" => { "foo" => "foo", "bar" => "custom_bar", "baz" => "custom_baz" }
254
- })
255
- end
256
-
257
- it "returns false when parsing an empty document" do
258
- expect([
259
- YAML.safe_load(""),
260
- YAML.safe_load(" "),
261
- YAML.safe_load("\n")
262
- ]).to eq([false, false, false])
263
- end
264
-
265
- it "returns nil when parsing a single value representing nil" do
266
- expect([
267
- YAML.safe_load("~"),
268
- YAML.safe_load("null")
269
- ]).to eq([nil, nil])
270
- end
271
-
272
- context "with custom initializers defined" do
273
- before :each do
274
- if SafeYAML::YAML_ENGINE == "psych"
275
- SafeYAML::OPTIONS[:custom_initializers] = {
276
- "!set" => lambda { Set.new },
277
- "!hashiemash" => lambda { Hashie::Mash.new }
278
- }
279
- else
280
- SafeYAML::OPTIONS[:custom_initializers] = {
281
- "tag:yaml.org,2002:set" => lambda { Set.new },
282
- "tag:yaml.org,2002:hashiemash" => lambda { Hashie::Mash.new }
283
- }
284
- end
285
- end
286
-
287
- it "will use a custom initializer to instantiate an array-like class upon deserialization" do
288
- result = YAML.safe_load <<-YAML.unindent
289
- --- !set
290
- - 1
291
- - 2
292
- - 3
293
- YAML
294
-
295
- expect(result).to be_a(Set)
296
- expect(result.to_a).to match_array([1, 2, 3])
297
- end
298
-
299
- it "will use a custom initializer to instantiate a hash-like class upon deserialization" do
300
- result = YAML.safe_load <<-YAML.unindent
301
- --- !hashiemash
302
- foo: bar
303
- YAML
304
-
305
- expect(result).to be_a(Hashie::Mash)
306
- expect(result.to_hash).to eq({ "foo" => "bar" })
307
- end
308
- end
309
-
310
- context "with special whitelisted tags defined" do
311
- before :each do
312
- SafeYAML::whitelist!(OpenStruct)
313
-
314
- # Necessary for deserializing OpenStructs properly.
315
- SafeYAML::OPTIONS[:deserialize_symbols] = true
316
- end
317
-
318
- it "will allow objects to be deserialized for whitelisted tags" do
319
- result = YAML.safe_load("--- !ruby/object:OpenStruct\ntable:\n foo: bar\n")
320
- expect(result).to be_a(OpenStruct)
321
- expect(result.instance_variable_get(:@table)).to eq({ "foo" => "bar" })
322
- end
323
-
324
- it "will not deserialize objects without whitelisted tags" do
325
- result = YAML.safe_load("--- !ruby/hash:ExploitableBackDoor\nfoo: bar\n")
326
- expect(result).not_to be_a(ExploitableBackDoor)
327
- expect(result).to eq({ "foo" => "bar" })
328
- end
329
-
330
- it "will not allow non-whitelisted objects to be embedded within objects with whitelisted tags" do
331
- result = YAML.safe_load <<-YAML.unindent
332
- --- !ruby/object:OpenStruct
333
- table:
334
- :backdoor: !ruby/object:ExploitableBackDoor
335
- foo: bar
336
- YAML
337
-
338
- expect(result).to be_a(OpenStruct)
339
- expect(result.backdoor).not_to be_a(ExploitableBackDoor)
340
- expect(result.backdoor).to eq({ "foo" => "bar" })
341
- end
342
-
343
- context "with the :raise_on_unknown_tag option enabled" do
344
- before :each do
345
- SafeYAML::OPTIONS[:raise_on_unknown_tag] = true
346
- end
347
-
348
- after :each do
349
- SafeYAML.restore_defaults!
350
- end
351
-
352
- it "raises an exception if a non-nil, non-whitelisted tag is encountered" do
353
- expect {
354
- YAML.safe_load <<-YAML.unindent
355
- --- !ruby/object:Unknown
356
- foo: bar
357
- YAML
358
- }.to raise_error
359
- end
360
-
361
- it "checks all tags, even those within objects with trusted tags" do
362
- expect {
363
- YAML.safe_load <<-YAML.unindent
364
- --- !ruby/object:OpenStruct
365
- table:
366
- :backdoor: !ruby/object:Unknown
367
- foo: bar
368
- YAML
369
- }.to raise_error
370
- end
371
-
372
- it "does not raise an exception as long as all tags are whitelisted" do
373
- result = YAML.safe_load <<-YAML.unindent
374
- --- !ruby/object:OpenStruct
375
- table:
376
- :backdoor:
377
- string: foo
378
- integer: 1
379
- float: 3.14
380
- symbol: :bar
381
- date: 2013-02-20
382
- array: []
383
- hash: {}
384
- YAML
385
-
386
- expect(result).to be_a(OpenStruct)
387
- expect(result.backdoor).to eq({
388
- "string" => "foo",
389
- "integer" => 1,
390
- "float" => 3.14,
391
- "symbol" => :bar,
392
- "date" => Date.parse("2013-02-20"),
393
- "array" => [],
394
- "hash" => {}
395
- })
396
- end
397
-
398
- it "does not raise an exception on the non-specific '!' tag" do
399
- result = nil
400
- expect { result = YAML.safe_load "--- ! 'foo'" }.to_not raise_error
401
- expect(result).to eq("foo")
402
- end
403
-
404
- context "with whitelisted custom class" do
405
- class SomeClass
406
- attr_accessor :foo
407
- end
408
- let(:instance) { SomeClass.new }
409
-
410
- before do
411
- SafeYAML::whitelist!(SomeClass)
412
- instance.foo = 'with trailing whitespace: '
413
- end
414
-
415
- it "does not raise an exception on the non-specific '!' tag" do
416
- result = nil
417
- expect { result = YAML.safe_load(instance.to_yaml) }.to_not raise_error
418
- expect(result.foo).to eq('with trailing whitespace: ')
419
- end
420
- end
421
- end
422
- end
423
-
424
- context "when options are passed direclty to #load which differ from the defaults" do
425
- let(:default_options) { {} }
426
-
427
- before :each do
428
- SafeYAML::OPTIONS.merge!(default_options)
429
- end
430
-
431
- context "(for example, when symbol deserialization is enabled by default)" do
432
- let(:default_options) { { :deserialize_symbols => true } }
433
-
434
- it "goes with the default option when it is not overridden" do
435
- silence_warnings do
436
- expect(YAML.load(":foo: bar")).to eq({ :foo => "bar" })
437
- end
438
- end
439
-
440
- it "allows the default option to be overridden on a per-call basis" do
441
- silence_warnings do
442
- expect(YAML.load(":foo: bar", :deserialize_symbols => false)).to eq({ ":foo" => "bar" })
443
- expect(YAML.load(":foo: bar", :deserialize_symbols => true)).to eq({ :foo => "bar" })
444
- end
445
- end
446
- end
447
-
448
- context "(or, for example, when certain tags are whitelisted)" do
449
- let(:default_options) {
450
- {
451
- :deserialize_symbols => true,
452
- :whitelisted_tags => SafeYAML::YAML_ENGINE == "psych" ?
453
- ["!ruby/object:OpenStruct"] :
454
- ["tag:ruby.yaml.org,2002:object:OpenStruct"]
455
- }
456
- }
457
-
458
- it "goes with the default option when it is not overridden" do
459
- result = safe_load_round_trip(OpenStruct.new(:foo => "bar"))
460
- expect(result).to be_a(OpenStruct)
461
- expect(result.foo).to eq("bar")
462
- end
463
-
464
- it "allows the default option to be overridden on a per-call basis" do
465
- result = safe_load_round_trip(OpenStruct.new(:foo => "bar"), :whitelisted_tags => [])
466
- expect(result).to eq({ "table" => { :foo => "bar" } })
467
-
468
- result = safe_load_round_trip(OpenStruct.new(:foo => "bar"), :deserialize_symbols => false, :whitelisted_tags => [])
469
- expect(result).to eq({ "table" => { ":foo" => "bar" } })
470
- end
471
- end
472
- end
473
- end
474
-
475
- describe "unsafe_load_file" do
476
- if SafeYAML::YAML_ENGINE == "psych" && RUBY_VERSION >= "1.9.3"
477
- it "allows exploits through objects defined in YAML w/ !ruby/hash via custom :[]= methods" do
478
- backdoor = YAML.unsafe_load_file "spec/exploit.1.9.3.yaml"
479
- expect(backdoor).to be_exploited_through_setter
480
- end
481
- end
482
-
483
- if SafeYAML::YAML_ENGINE == "psych" && RUBY_VERSION >= "1.9.2"
484
- it "allows exploits through objects defined in YAML w/ !ruby/object via the :init_with method" do
485
- backdoor = YAML.unsafe_load_file "spec/exploit.1.9.2.yaml"
486
- expect(backdoor).to be_exploited_through_init_with
487
- end
488
- end
489
-
490
- it "allows exploits through objects w/ sensitive instance variables defined in YAML w/ !ruby/object" do
491
- backdoor = YAML.unsafe_load_file "spec/exploit.1.9.2.yaml"
492
- expect(backdoor).to be_exploited_through_ivars
493
- end
494
- end
495
-
496
- describe "safe_load_file" do
497
- it "does NOT allow exploits through objects defined in YAML w/ !ruby/hash" do
498
- object = YAML.safe_load_file "spec/exploit.1.9.3.yaml"
499
- expect(object).not_to be_a(ExploitableBackDoor)
500
- end
501
-
502
- it "does NOT allow exploits through objects defined in YAML w/ !ruby/object" do
503
- object = YAML.safe_load_file "spec/exploit.1.9.2.yaml"
504
- expect(object).not_to be_a(ExploitableBackDoor)
505
- end
506
-
507
- it "returns false when parsing an empty file" do
508
- expect(YAML.safe_load_file("spec/issue49.yml")).to eq(false)
509
- end
510
- end
511
-
512
- describe "load" do
513
- let(:options) { {} }
514
-
515
- let (:arguments) {
516
- if SafeYAML::MULTI_ARGUMENT_YAML_LOAD
517
- ["foo: bar", nil, options]
518
- else
519
- ["foo: bar", options]
520
- end
521
- }
522
-
523
- context "as long as a :default_mode has been specified" do
524
- it "doesn't issue a warning for safe mode, since an explicit mode has been set" do
525
- SafeYAML::OPTIONS[:default_mode] = :safe
526
- expect(Kernel).not_to receive(:warn)
527
- YAML.load(*arguments)
528
- end
529
-
530
- it "doesn't issue a warning for unsafe mode, since an explicit mode has been set" do
531
- SafeYAML::OPTIONS[:default_mode] = :unsafe
532
- expect(Kernel).not_to receive(:warn)
533
- YAML.load(*arguments)
534
- end
535
- end
536
-
537
- context "when the :safe options is specified" do
538
- let(:safe_mode) { true }
539
- let(:options) { { :safe => safe_mode } }
540
-
541
- it "doesn't issue a warning" do
542
- expect(Kernel).not_to receive(:warn)
543
- YAML.load(*arguments)
544
- end
545
-
546
- it "calls #safe_load if the :safe option is set to true" do
547
- expect(YAML).to receive(:safe_load)
548
- YAML.load(*arguments)
549
- end
550
-
551
- context "when the :safe option is set to false" do
552
- let(:safe_mode) { false }
553
-
554
- it "calls #unsafe_load if the :safe option is set to false" do
555
- expect(YAML).to receive(:unsafe_load)
556
- YAML.load(*arguments)
557
- end
558
- end
559
- end
560
-
561
- it "issues a warning when the :safe option is omitted" do
562
- silence_warnings do
563
- expect(Kernel).to receive(:warn)
564
- YAML.load(*arguments)
565
- end
566
- end
567
-
568
- it "only issues a warning once (to avoid spamming an app's output)" do
569
- silence_warnings do
570
- expect(Kernel).to receive(:warn).once
571
- 2.times { YAML.load(*arguments) }
572
- end
573
- end
574
-
575
- it "defaults to safe mode if the :safe option is omitted" do
576
- silence_warnings do
577
- expect(YAML).to receive(:safe_load)
578
- YAML.load(*arguments)
579
- end
580
- end
581
-
582
- context "with the default mode set to :unsafe" do
583
- before :each do
584
- SafeYAML::OPTIONS[:default_mode] = :unsafe
585
- end
586
-
587
- it "defaults to unsafe mode if the :safe option is omitted" do
588
- silence_warnings do
589
- expect(YAML).to receive(:unsafe_load)
590
- YAML.load(*arguments)
591
- end
592
- end
593
-
594
- it "calls #safe_load if the :safe option is set to true" do
595
- expect(YAML).to receive(:safe_load)
596
- YAML.load(*(arguments + [{ :safe => true }]))
597
- end
598
- end
599
- end
600
-
601
- describe "load_file" do
602
- let(:filename) { "spec/exploit.1.9.2.yaml" } # doesn't really matter
603
-
604
- it "issues a warning if the :safe option is omitted" do
605
- silence_warnings do
606
- expect(Kernel).to receive(:warn)
607
- YAML.load_file(filename)
608
- end
609
- end
610
-
611
- it "doesn't issue a warning as long as the :safe option is specified" do
612
- expect(Kernel).not_to receive(:warn)
613
- YAML.load_file(filename, :safe => true)
614
- end
615
-
616
- it "defaults to safe mode if the :safe option is omitted" do
617
- silence_warnings do
618
- expect(YAML).to receive(:safe_load_file)
619
- YAML.load_file(filename)
620
- end
621
- end
622
-
623
- it "calls #safe_load_file if the :safe option is set to true" do
624
- expect(YAML).to receive(:safe_load_file)
625
- YAML.load_file(filename, :safe => true)
626
- end
627
-
628
- it "calls #unsafe_load_file if the :safe option is set to false" do
629
- expect(YAML).to receive(:unsafe_load_file)
630
- YAML.load_file(filename, :safe => false)
631
- end
632
-
633
- context "with arbitrary object deserialization enabled by default" do
634
- before :each do
635
- SafeYAML::OPTIONS[:default_mode] = :unsafe
636
- end
637
-
638
- it "defaults to unsafe mode if the :safe option is omitted" do
639
- silence_warnings do
640
- expect(YAML).to receive(:unsafe_load_file)
641
- YAML.load_file(filename)
642
- end
643
- end
644
-
645
- it "calls #safe_load if the :safe option is set to true" do
646
- expect(YAML).to receive(:safe_load_file)
647
- YAML.load_file(filename, :safe => true)
648
- end
649
- end
650
-
651
- it "handles files starting with --- (see issue #48)" do
652
- expect(YAML.load_file("spec/issue48.txt", :safe => true)).to eq({
653
- "title" => "Blah",
654
- "key" => "value"
655
- })
656
- end
657
-
658
- it "handles content starting with --- (see issue #48)" do
659
- yaml = File.read("spec/issue48.txt")
660
- expect(YAML.load(yaml, :safe => true)).to eq({
661
- "title" => "Blah",
662
- "key" => "value"
663
- })
664
- end
665
- end
666
-
667
- describe "whitelist!" do
668
- context "not a class" do
669
- it "should raise" do
670
- expect { SafeYAML::whitelist! :foo }.to raise_error(/not a Class/)
671
- expect(SafeYAML::OPTIONS[:whitelisted_tags]).to be_empty
672
- end
673
- end
674
-
675
- context "anonymous class" do
676
- it "should raise" do
677
- expect { SafeYAML::whitelist! Class.new }.to raise_error(/cannot be anonymous/)
678
- expect(SafeYAML::OPTIONS[:whitelisted_tags]).to be_empty
679
- end
680
- end
681
-
682
- context "with a Class as its argument" do
683
- it "should configure correctly" do
684
- expect { SafeYAML::whitelist! OpenStruct }.to_not raise_error
685
- expect(SafeYAML::OPTIONS[:whitelisted_tags].grep(/OpenStruct\Z/)).not_to be_empty
686
- end
687
-
688
- it "successfully deserializes the specified class" do
689
- SafeYAML.whitelist!(OpenStruct)
690
-
691
- # necessary for properly assigning OpenStruct attributes
692
- SafeYAML::OPTIONS[:deserialize_symbols] = true
693
-
694
- result = safe_load_round_trip(OpenStruct.new(:foo => "bar"))
695
- expect(result).to be_a(OpenStruct)
696
- expect(result.foo).to eq("bar")
697
- end
698
-
699
- it "works for ranges" do
700
- SafeYAML.whitelist!(Range)
701
- expect(safe_load_round_trip(1..10)).to eq(1..10)
702
- end
703
-
704
- it "works for regular expressions" do
705
- SafeYAML.whitelist!(Regexp)
706
- expect(safe_load_round_trip(/foo/)).to eq(/foo/)
707
- end
708
-
709
- it "works for multiple classes" do
710
- SafeYAML.whitelist!(Range, Regexp)
711
- expect(safe_load_round_trip([(1..10), /bar/])).to eq([(1..10), /bar/])
712
- end
713
-
714
- it "works for arbitrary Exception subclasses" do
715
- class CustomException < Exception
716
- attr_reader :custom_message
717
-
718
- def initialize(custom_message)
719
- @custom_message = custom_message
720
- end
721
- end
722
-
723
- SafeYAML.whitelist!(CustomException)
724
-
725
- ex = safe_load_round_trip(CustomException.new("blah"))
726
- expect(ex).to be_a(CustomException)
727
- expect(ex.custom_message).to eq("blah")
728
- end
729
- end
730
- end
731
- end