cloudsmith-api 1.120.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1373) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +19 -19
  3. data/README.md +139 -103
  4. data/build.json +1 -1
  5. data/cloudsmith-api.gemspec +1 -1
  6. data/docs/AllocatedLimit.md +11 -0
  7. data/docs/AlpinePackageUpload.md +15 -13
  8. data/docs/AlpinePackageUploadRequest.md +11 -0
  9. data/docs/Architecture.md +9 -0
  10. data/docs/AuditLogApi.md +14 -14
  11. data/docs/BadgesApi.md +26 -26
  12. data/docs/CargoPackageUpload.md +75 -0
  13. data/docs/CargoPackageUploadRequest.md +10 -0
  14. data/docs/CocoapodsPackageUpload.md +75 -0
  15. data/docs/CocoapodsPackageUploadRequest.md +10 -0
  16. data/docs/CommonBandwidthMetrics.md +11 -0
  17. data/docs/CommonBandwidthMetricsValue.md +10 -0
  18. data/docs/CommonDownloadsMetrics.md +11 -0
  19. data/docs/CommonDownloadsMetricsValue.md +8 -0
  20. data/docs/CommonMetrics.md +12 -0
  21. data/docs/ComposerPackageUpload.md +75 -0
  22. data/docs/ComposerPackageUploadRequest.md +10 -0
  23. data/docs/ConanPackageUpload.md +15 -13
  24. data/docs/ConanPackageUploadRequest.md +17 -0
  25. data/docs/CondaPackageUpload.md +75 -0
  26. data/docs/CondaPackageUploadRequest.md +10 -0
  27. data/docs/CranPackageUpload.md +75 -0
  28. data/docs/CranPackageUploadRequest.md +10 -0
  29. data/docs/DartPackageUpload.md +75 -0
  30. data/docs/DartPackageUploadRequest.md +10 -0
  31. data/docs/DebPackageUpload.md +75 -0
  32. data/docs/DebPackageUploadRequest.md +13 -0
  33. data/docs/Distribution.md +0 -3
  34. data/docs/DistributionFull.md +14 -0
  35. data/docs/DistributionVersion.md +9 -0
  36. data/docs/DistrosApi.md +8 -8
  37. data/docs/DockerPackageUpload.md +75 -0
  38. data/docs/DockerPackageUploadRequest.md +10 -0
  39. data/docs/EntitlementUsageMetrics.md +1 -1
  40. data/docs/EntitlementsApi.md +44 -38
  41. data/docs/ErrorDetail.md +8 -0
  42. data/docs/Eula.md +9 -0
  43. data/docs/FilesApi.md +14 -14
  44. data/docs/Format.md +2 -2
  45. data/docs/FormatSupport.md +12 -0
  46. data/docs/FormatsApi.md +4 -4
  47. data/docs/GeoIpLocation.md +14 -0
  48. data/docs/GoPackageUpload.md +75 -0
  49. data/docs/GoPackageUploadRequest.md +10 -0
  50. data/docs/HelmPackageUpload.md +75 -0
  51. data/docs/HelmPackageUploadRequest.md +10 -0
  52. data/docs/History.md +13 -0
  53. data/docs/HistoryFieldset.md +10 -0
  54. data/docs/LuarocksPackageUpload.md +75 -0
  55. data/docs/LuarocksPackageUploadRequest.md +10 -0
  56. data/docs/MavenPackageUpload.md +15 -13
  57. data/docs/MavenPackageUploadRequest.md +18 -0
  58. data/docs/MetricsApi.md +16 -16
  59. data/docs/NamespaceAuditLog.md +2 -2
  60. data/docs/NamespacesApi.md +4 -4
  61. data/docs/NpmPackageUpload.md +75 -0
  62. data/docs/NpmPackageUploadRequest.md +11 -0
  63. data/docs/NugetPackageUpload.md +75 -0
  64. data/docs/NugetPackageUploadRequest.md +11 -0
  65. data/docs/Organization.md +1 -1
  66. data/docs/OrganizationGroupSync.md +1 -1
  67. data/docs/OrganizationGroupSyncRequest.md +12 -0
  68. data/docs/OrganizationInvite.md +4 -4
  69. data/docs/OrganizationInviteExtend.md +16 -0
  70. data/docs/OrganizationInviteRequest.md +10 -0
  71. data/docs/OrganizationInviteUpdate.md +8 -0
  72. data/docs/OrganizationInviteUpdateRequestPatch.md +8 -0
  73. data/docs/OrganizationMembership.md +5 -4
  74. data/docs/OrganizationTeam.md +1 -1
  75. data/docs/OrganizationTeamMembers.md +8 -0
  76. data/docs/OrganizationTeamMembership.md +9 -0
  77. data/docs/OrganizationTeamRequest.md +11 -0
  78. data/docs/OrganizationTeamRequestPatch.md +11 -0
  79. data/docs/OrgsApi.md +805 -100
  80. data/docs/P2PackageUpload.md +75 -0
  81. data/docs/P2PackageUploadRequest.md +10 -0
  82. data/docs/Package.md +16 -14
  83. data/docs/PackageCopy.md +16 -14
  84. data/docs/PackageCopyRequest.md +9 -0
  85. data/docs/PackageDependencies.md +1 -1
  86. data/docs/PackageDependency.md +11 -0
  87. data/docs/PackageFile.md +21 -0
  88. data/docs/PackageFileUploadRequest.md +11 -0
  89. data/docs/PackageMove.md +16 -14
  90. data/docs/PackageMoveRequest.md +8 -0
  91. data/docs/PackageQuarantine.md +76 -0
  92. data/docs/PackageQuarantineRequest.md +8 -0
  93. data/docs/PackageResync.md +76 -0
  94. data/docs/PackageStatus.md +3 -3
  95. data/docs/PackageTag.md +76 -0
  96. data/docs/PackageTagRequest.md +10 -0
  97. data/docs/PackageUsageMetrics.md +1 -1
  98. data/docs/PackageVersionBadge.md +7 -0
  99. data/docs/PackageVulnerability.md +11 -0
  100. data/docs/PackagesApi.md +208 -208
  101. data/docs/PythonPackageUpload.md +75 -0
  102. data/docs/PythonPackageUploadRequest.md +10 -0
  103. data/docs/Quota.md +1 -1
  104. data/docs/QuotaApi.md +8 -8
  105. data/docs/QuotaHistory.md +1 -1
  106. data/docs/RateCheck.md +13 -0
  107. data/docs/RatesApi.md +2 -2
  108. data/docs/RawPackageUpload.md +15 -13
  109. data/docs/RawPackageUploadRequest.md +15 -0
  110. data/docs/ReposApi.md +121 -165
  111. data/docs/Repository.md +16 -14
  112. data/docs/RepositoryAuditLog.md +2 -2
  113. data/docs/RepositoryCreate.md +16 -14
  114. data/docs/RepositoryCreateRequest.md +43 -0
  115. data/docs/RepositoryGpgKey.md +1 -1
  116. data/docs/RepositoryGpgKeyCreate.md +9 -0
  117. data/docs/RepositoryPrivilegeDict.md +11 -0
  118. data/docs/RepositoryPrivilegeInput.md +8 -0
  119. data/docs/RepositoryPrivilegeInputRequest.md +8 -0
  120. data/docs/RepositoryPrivilegeInputRequestPatch.md +8 -0
  121. data/docs/RepositoryRequestPatch.md +42 -0
  122. data/docs/RepositoryRsaKey.md +1 -1
  123. data/docs/RepositoryRsaKeyCreate.md +9 -0
  124. data/docs/RepositoryToken.md +9 -9
  125. data/docs/RepositoryTokenAction.md +7 -0
  126. data/docs/RepositoryTokenRefresh.md +9 -9
  127. data/docs/RepositoryTokenRefreshRequest.md +21 -0
  128. data/docs/RepositoryTokenRequest.md +22 -0
  129. data/docs/RepositoryTokenRequestPatch.md +22 -0
  130. data/docs/RepositoryTokenSync.md +1 -1
  131. data/docs/RepositoryTokenSyncRequest.md +8 -0
  132. data/docs/RepositoryWebhook.md +4 -4
  133. data/docs/RepositoryWebhookRequest.md +19 -0
  134. data/docs/RepositoryWebhookRequestPatch.md +19 -0
  135. data/docs/ResourcesRateCheck.md +1 -1
  136. data/docs/RpmPackageUpload.md +75 -0
  137. data/docs/RpmPackageUploadRequest.md +11 -0
  138. data/docs/RubyPackageUpload.md +75 -0
  139. data/docs/RubyPackageUploadRequest.md +10 -0
  140. data/docs/Service.md +13 -0
  141. data/docs/ServiceRequest.md +11 -0
  142. data/docs/ServiceRequestPatch.md +11 -0
  143. data/docs/ServiceTeams.md +9 -0
  144. data/docs/StatusApi.md +2 -2
  145. data/docs/StatusBasic.md +2 -2
  146. data/docs/StorageRegionsApi.md +4 -4
  147. data/docs/Tags.md +7 -0
  148. data/docs/TerraformPackageUpload.md +75 -0
  149. data/docs/TerraformPackageUploadRequest.md +10 -0
  150. data/docs/Usage.md +10 -0
  151. data/docs/UsageFieldset.md +9 -0
  152. data/docs/UsageLimits.md +9 -0
  153. data/docs/UserApi.md +5 -5
  154. data/docs/UserAuthTokenRequest.md +9 -0
  155. data/docs/UserProfile.md +1 -1
  156. data/docs/UsersApi.md +2 -2
  157. data/docs/VagrantPackageUpload.md +15 -13
  158. data/docs/VagrantPackageUploadRequest.md +13 -0
  159. data/docs/VulnerabilitiesApi.md +50 -50
  160. data/docs/Vulnerability.md +16 -0
  161. data/docs/VulnerabilityScan.md +10 -0
  162. data/docs/VulnerabilityScanResults.md +4 -4
  163. data/docs/VulnerabilityScanResultsList.md +3 -3
  164. data/docs/VulnerabilityScanVersion.md +13 -0
  165. data/docs/WebhookTemplate.md +9 -0
  166. data/docs/WebhooksApi.md +12 -12
  167. data/lib/cloudsmith-api/api/audit_log_api.rb +22 -14
  168. data/lib/cloudsmith-api/api/badges_api.rb +19 -15
  169. data/lib/cloudsmith-api/api/distros_api.rb +15 -7
  170. data/lib/cloudsmith-api/api/entitlements_api.rb +57 -16
  171. data/lib/cloudsmith-api/api/files_api.rb +21 -9
  172. data/lib/cloudsmith-api/api/formats_api.rb +9 -1
  173. data/lib/cloudsmith-api/api/metrics_api.rb +26 -14
  174. data/lib/cloudsmith-api/api/namespaces_api.rb +9 -1
  175. data/lib/cloudsmith-api/api/orgs_api.rb +880 -105
  176. data/lib/cloudsmith-api/api/packages_api.rb +291 -163
  177. data/lib/cloudsmith-api/api/quota_api.rb +17 -1
  178. data/lib/cloudsmith-api/api/rates_api.rb +5 -1
  179. data/lib/cloudsmith-api/api/repos_api.rb +141 -135
  180. data/lib/cloudsmith-api/api/status_api.rb +5 -1
  181. data/lib/cloudsmith-api/api/storage_regions_api.rb +9 -1
  182. data/lib/cloudsmith-api/api/user_api.rb +9 -3
  183. data/lib/cloudsmith-api/api/users_api.rb +5 -1
  184. data/lib/cloudsmith-api/api/vulnerabilities_api.rb +84 -68
  185. data/lib/cloudsmith-api/api/webhooks_api.rb +21 -5
  186. data/lib/cloudsmith-api/api_client.rb +1 -1
  187. data/lib/cloudsmith-api/api_error.rb +1 -1
  188. data/lib/cloudsmith-api/configuration.rb +1 -1
  189. data/lib/cloudsmith-api/models/allocated_limit.rb +211 -0
  190. data/lib/cloudsmith-api/models/alpine_package_upload.rb +582 -605
  191. data/lib/cloudsmith-api/models/alpine_package_upload_request.rb +225 -0
  192. data/lib/cloudsmith-api/models/architecture.rb +198 -0
  193. data/lib/cloudsmith-api/models/cargo_package_upload.rb +850 -0
  194. data/lib/cloudsmith-api/models/cargo_package_upload_request.rb +210 -0
  195. data/lib/cloudsmith-api/models/cocoapods_package_upload.rb +850 -0
  196. data/lib/cloudsmith-api/models/cocoapods_package_upload_request.rb +210 -0
  197. data/lib/cloudsmith-api/models/common_bandwidth_metrics.rb +231 -0
  198. data/lib/cloudsmith-api/models/common_bandwidth_metrics_value.rb +214 -0
  199. data/lib/cloudsmith-api/models/common_downloads_metrics.rb +231 -0
  200. data/lib/cloudsmith-api/models/common_downloads_metrics_value.rb +189 -0
  201. data/lib/cloudsmith-api/models/common_metrics.rb +230 -0
  202. data/lib/cloudsmith-api/models/composer_package_upload.rb +850 -0
  203. data/lib/cloudsmith-api/models/composer_package_upload_request.rb +210 -0
  204. data/lib/cloudsmith-api/models/conan_package_upload.rb +598 -621
  205. data/lib/cloudsmith-api/models/conan_package_upload_request.rb +295 -0
  206. data/lib/cloudsmith-api/models/conda_package_upload.rb +850 -0
  207. data/lib/cloudsmith-api/models/conda_package_upload_request.rb +210 -0
  208. data/lib/cloudsmith-api/models/cran_package_upload.rb +850 -0
  209. data/lib/cloudsmith-api/models/cran_package_upload_request.rb +210 -0
  210. data/lib/cloudsmith-api/models/dart_package_upload.rb +850 -0
  211. data/lib/cloudsmith-api/models/dart_package_upload_request.rb +210 -0
  212. data/lib/cloudsmith-api/models/deb_package_upload.rb +850 -0
  213. data/lib/cloudsmith-api/models/deb_package_upload_request.rb +245 -0
  214. data/lib/cloudsmith-api/models/distribution.rb +80 -114
  215. data/lib/cloudsmith-api/models/distribution_full.rb +247 -0
  216. data/lib/cloudsmith-api/models/distribution_version.rb +196 -0
  217. data/lib/cloudsmith-api/models/docker_package_upload.rb +850 -0
  218. data/lib/cloudsmith-api/models/docker_package_upload_request.rb +210 -0
  219. data/lib/cloudsmith-api/models/entitlement_usage_metrics.rb +58 -59
  220. data/lib/cloudsmith-api/models/error_detail.rb +190 -0
  221. data/lib/cloudsmith-api/models/eula.rb +200 -0
  222. data/lib/cloudsmith-api/models/format.rb +152 -153
  223. data/lib/cloudsmith-api/models/format_support.rb +251 -0
  224. data/lib/cloudsmith-api/models/geo_ip_location.rb +258 -0
  225. data/lib/cloudsmith-api/models/go_package_upload.rb +850 -0
  226. data/lib/cloudsmith-api/models/go_package_upload_request.rb +210 -0
  227. data/lib/cloudsmith-api/models/helm_package_upload.rb +850 -0
  228. data/lib/cloudsmith-api/models/helm_package_upload_request.rb +210 -0
  229. data/lib/cloudsmith-api/models/history.rb +254 -0
  230. data/lib/cloudsmith-api/models/history_fieldset.rb +217 -0
  231. data/lib/cloudsmith-api/models/luarocks_package_upload.rb +850 -0
  232. data/lib/cloudsmith-api/models/luarocks_package_upload_request.rb +210 -0
  233. data/lib/cloudsmith-api/models/maven_package_upload.rb +606 -629
  234. data/lib/cloudsmith-api/models/maven_package_upload_request.rb +290 -0
  235. data/lib/cloudsmith-api/models/namespace.rb +75 -79
  236. data/lib/cloudsmith-api/models/namespace_audit_log.rb +227 -243
  237. data/lib/cloudsmith-api/models/npm_package_upload.rb +850 -0
  238. data/lib/cloudsmith-api/models/npm_package_upload_request.rb +222 -0
  239. data/lib/cloudsmith-api/models/nuget_package_upload.rb +850 -0
  240. data/lib/cloudsmith-api/models/nuget_package_upload_request.rb +220 -0
  241. data/lib/cloudsmith-api/models/organization.rb +100 -104
  242. data/lib/cloudsmith-api/models/organization_group_sync.rb +97 -99
  243. data/lib/cloudsmith-api/models/organization_group_sync_request.rb +243 -0
  244. data/lib/cloudsmith-api/models/organization_invite.rb +139 -143
  245. data/lib/cloudsmith-api/models/organization_invite_extend.rb +296 -0
  246. data/lib/cloudsmith-api/models/organization_invite_request.rb +241 -0
  247. data/lib/cloudsmith-api/models/organization_invite_update.rb +221 -0
  248. data/lib/cloudsmith-api/models/organization_invite_update_request_patch.rb +221 -0
  249. data/lib/cloudsmith-api/models/organization_membership.rb +176 -159
  250. data/lib/cloudsmith-api/models/organization_team.rb +117 -120
  251. data/lib/cloudsmith-api/models/organization_team_members.rb +192 -0
  252. data/lib/cloudsmith-api/models/organization_team_membership.rb +238 -0
  253. data/lib/cloudsmith-api/models/organization_team_request.rb +252 -0
  254. data/lib/cloudsmith-api/models/organization_team_request_patch.rb +247 -0
  255. data/lib/cloudsmith-api/models/p2_package_upload.rb +850 -0
  256. data/lib/cloudsmith-api/models/p2_package_upload_request.rb +210 -0
  257. data/lib/cloudsmith-api/models/package.rb +589 -613
  258. data/lib/cloudsmith-api/models/package_copy.rb +590 -613
  259. data/lib/cloudsmith-api/models/package_copy_request.rb +199 -0
  260. data/lib/cloudsmith-api/models/package_dependencies.rb +59 -60
  261. data/lib/cloudsmith-api/models/package_dependency.rb +268 -0
  262. data/lib/cloudsmith-api/models/package_file.rb +303 -0
  263. data/lib/cloudsmith-api/models/package_file_parts_upload.rb +73 -73
  264. data/lib/cloudsmith-api/models/package_file_upload.rb +91 -91
  265. data/lib/cloudsmith-api/models/package_file_upload_request.rb +256 -0
  266. data/lib/cloudsmith-api/models/package_move.rb +590 -613
  267. data/lib/cloudsmith-api/models/package_move_request.rb +189 -0
  268. data/lib/cloudsmith-api/models/package_quarantine.rb +859 -0
  269. data/lib/cloudsmith-api/models/package_quarantine_request.rb +185 -0
  270. data/lib/cloudsmith-api/models/package_resync.rb +859 -0
  271. data/lib/cloudsmith-api/models/package_status.rb +184 -194
  272. data/lib/cloudsmith-api/models/package_tag.rb +862 -0
  273. data/lib/cloudsmith-api/models/package_tag_request.rb +208 -0
  274. data/lib/cloudsmith-api/models/package_usage_metrics.rb +58 -59
  275. data/lib/cloudsmith-api/models/package_version_badge.rb +175 -0
  276. data/lib/cloudsmith-api/models/package_vulnerability.rb +218 -0
  277. data/lib/cloudsmith-api/models/python_package_upload.rb +850 -0
  278. data/lib/cloudsmith-api/models/python_package_upload_request.rb +210 -0
  279. data/lib/cloudsmith-api/models/quota.rb +58 -59
  280. data/lib/cloudsmith-api/models/quota_history.rb +59 -60
  281. data/lib/cloudsmith-api/models/rate_check.rb +235 -0
  282. data/lib/cloudsmith-api/models/raw_package_upload.rb +582 -605
  283. data/lib/cloudsmith-api/models/raw_package_upload_request.rb +260 -0
  284. data/lib/cloudsmith-api/models/repository.rb +629 -579
  285. data/lib/cloudsmith-api/models/repository_audit_log.rb +185 -198
  286. data/lib/cloudsmith-api/models/repository_create.rb +631 -569
  287. data/lib/cloudsmith-api/models/repository_create_request.rb +706 -0
  288. data/lib/cloudsmith-api/models/repository_gpg_key.rb +105 -108
  289. data/lib/cloudsmith-api/models/repository_gpg_key_create.rb +200 -0
  290. data/lib/cloudsmith-api/models/repository_privilege_dict.rb +254 -0
  291. data/lib/cloudsmith-api/models/repository_privilege_input.rb +192 -0
  292. data/lib/cloudsmith-api/models/repository_privilege_input_request.rb +192 -0
  293. data/lib/cloudsmith-api/models/repository_privilege_input_request_patch.rb +187 -0
  294. data/lib/cloudsmith-api/models/repository_request_patch.rb +689 -0
  295. data/lib/cloudsmith-api/models/repository_rsa_key.rb +93 -95
  296. data/lib/cloudsmith-api/models/repository_rsa_key_create.rb +200 -0
  297. data/lib/cloudsmith-api/models/repository_token.rb +380 -401
  298. data/lib/cloudsmith-api/models/repository_token_action.rb +175 -0
  299. data/lib/cloudsmith-api/models/repository_token_refresh.rb +376 -397
  300. data/lib/cloudsmith-api/models/repository_token_refresh_request.rb +361 -0
  301. data/lib/cloudsmith-api/models/repository_token_request.rb +375 -0
  302. data/lib/cloudsmith-api/models/repository_token_request_patch.rb +370 -0
  303. data/lib/cloudsmith-api/models/repository_token_sync.rb +56 -56
  304. data/lib/cloudsmith-api/models/repository_token_sync_request.rb +190 -0
  305. data/lib/cloudsmith-api/models/repository_webhook.rb +304 -301
  306. data/lib/cloudsmith-api/models/repository_webhook_request.rb +334 -0
  307. data/lib/cloudsmith-api/models/repository_webhook_request_patch.rb +319 -0
  308. data/lib/cloudsmith-api/models/resources_rate_check.rb +56 -54
  309. data/lib/cloudsmith-api/models/rpm_package_upload.rb +850 -0
  310. data/lib/cloudsmith-api/models/rpm_package_upload_request.rb +225 -0
  311. data/lib/cloudsmith-api/models/ruby_package_upload.rb +850 -0
  312. data/lib/cloudsmith-api/models/ruby_package_upload_request.rb +210 -0
  313. data/lib/cloudsmith-api/models/service.rb +277 -0
  314. data/lib/cloudsmith-api/models/service_request.rb +257 -0
  315. data/lib/cloudsmith-api/models/service_request_patch.rb +252 -0
  316. data/lib/cloudsmith-api/models/service_teams.rb +231 -0
  317. data/lib/cloudsmith-api/models/status_basic.rb +68 -64
  318. data/lib/cloudsmith-api/models/storage_region.rb +72 -72
  319. data/lib/cloudsmith-api/models/tags.rb +176 -0
  320. data/lib/cloudsmith-api/models/terraform_package_upload.rb +850 -0
  321. data/lib/cloudsmith-api/models/terraform_package_upload_request.rb +210 -0
  322. data/lib/cloudsmith-api/models/usage.rb +202 -0
  323. data/lib/cloudsmith-api/models/usage_fieldset.rb +203 -0
  324. data/lib/cloudsmith-api/models/usage_limits.rb +203 -0
  325. data/lib/cloudsmith-api/models/user_auth_token.rb +55 -55
  326. data/lib/cloudsmith-api/models/user_auth_token_request.rb +195 -0
  327. data/lib/cloudsmith-api/models/user_brief.rb +101 -104
  328. data/lib/cloudsmith-api/models/user_profile.rb +130 -139
  329. data/lib/cloudsmith-api/models/vagrant_package_upload.rb +602 -625
  330. data/lib/cloudsmith-api/models/vagrant_package_upload_request.rb +255 -0
  331. data/lib/cloudsmith-api/models/vulnerability.rb +334 -0
  332. data/lib/cloudsmith-api/models/vulnerability_scan.rb +219 -0
  333. data/lib/cloudsmith-api/models/vulnerability_scan_results.rb +147 -151
  334. data/lib/cloudsmith-api/models/vulnerability_scan_results_list.rb +136 -139
  335. data/lib/cloudsmith-api/models/vulnerability_scan_version.rb +250 -0
  336. data/lib/cloudsmith-api/models/webhook_template.rb +198 -0
  337. data/lib/cloudsmith-api/version.rb +2 -2
  338. data/lib/cloudsmith-api.rb +107 -82
  339. data/spec/api/audit_log_api_spec.rb +5 -5
  340. data/spec/api/badges_api_spec.rb +2 -2
  341. data/spec/api/distros_api_spec.rb +3 -3
  342. data/spec/api/entitlements_api_spec.rb +8 -5
  343. data/spec/api/files_api_spec.rb +5 -5
  344. data/spec/api/formats_api_spec.rb +1 -1
  345. data/spec/api/metrics_api_spec.rb +5 -5
  346. data/spec/api/namespaces_api_spec.rb +1 -1
  347. data/spec/api/orgs_api_spec.rb +174 -15
  348. data/spec/api/packages_api_spec.rb +71 -71
  349. data/spec/api/quota_api_spec.rb +1 -1
  350. data/spec/api/rates_api_spec.rb +1 -1
  351. data/spec/api/repos_api_spec.rb +28 -37
  352. data/spec/api/status_api_spec.rb +1 -1
  353. data/spec/api/storage_regions_api_spec.rb +1 -1
  354. data/spec/api/user_api_spec.rb +2 -2
  355. data/spec/api/users_api_spec.rb +1 -1
  356. data/spec/api/vulnerabilities_api_spec.rb +20 -20
  357. data/spec/api/webhooks_api_spec.rb +3 -3
  358. data/spec/api_client_spec.rb +1 -1
  359. data/spec/configuration_spec.rb +1 -1
  360. data/spec/models/allocated_limit_spec.rb +59 -0
  361. data/spec/models/alpine_package_upload_request_spec.rb +59 -0
  362. data/spec/models/alpine_package_upload_spec.rb +13 -1
  363. data/spec/models/architecture_spec.rb +47 -0
  364. data/spec/models/cargo_package_upload_request_spec.rb +53 -0
  365. data/spec/models/cargo_package_upload_spec.rb +447 -0
  366. data/spec/models/cocoapods_package_upload_request_spec.rb +53 -0
  367. data/spec/models/cocoapods_package_upload_spec.rb +447 -0
  368. data/spec/models/common_bandwidth_metrics_spec.rb +59 -0
  369. data/spec/models/common_bandwidth_metrics_value_spec.rb +53 -0
  370. data/spec/models/common_downloads_metrics_spec.rb +59 -0
  371. data/spec/models/common_downloads_metrics_value_spec.rb +41 -0
  372. data/spec/models/common_metrics_spec.rb +65 -0
  373. data/spec/models/composer_package_upload_request_spec.rb +53 -0
  374. data/spec/models/composer_package_upload_spec.rb +447 -0
  375. data/spec/models/conan_package_upload_request_spec.rb +95 -0
  376. data/spec/models/conan_package_upload_spec.rb +13 -1
  377. data/spec/models/conda_package_upload_request_spec.rb +53 -0
  378. data/spec/models/conda_package_upload_spec.rb +447 -0
  379. data/spec/models/cran_package_upload_request_spec.rb +53 -0
  380. data/spec/models/cran_package_upload_spec.rb +447 -0
  381. data/spec/models/dart_package_upload_request_spec.rb +53 -0
  382. data/spec/models/dart_package_upload_spec.rb +447 -0
  383. data/spec/models/deb_package_upload_request_spec.rb +71 -0
  384. data/spec/models/deb_package_upload_spec.rb +447 -0
  385. data/spec/models/distribution_full_spec.rb +77 -0
  386. data/spec/models/distribution_spec.rb +1 -19
  387. data/spec/models/distribution_version_spec.rb +47 -0
  388. data/spec/models/docker_package_upload_request_spec.rb +53 -0
  389. data/spec/models/docker_package_upload_spec.rb +447 -0
  390. data/spec/models/entitlement_usage_metrics_spec.rb +1 -1
  391. data/spec/models/error_detail_spec.rb +41 -0
  392. data/spec/models/eula_spec.rb +47 -0
  393. data/spec/models/format_spec.rb +1 -1
  394. data/spec/models/format_support_spec.rb +65 -0
  395. data/spec/models/geo_ip_location_spec.rb +77 -0
  396. data/spec/models/go_package_upload_request_spec.rb +53 -0
  397. data/spec/models/go_package_upload_spec.rb +447 -0
  398. data/spec/models/helm_package_upload_request_spec.rb +53 -0
  399. data/spec/models/helm_package_upload_spec.rb +447 -0
  400. data/spec/models/history_fieldset_spec.rb +53 -0
  401. data/spec/models/history_spec.rb +71 -0
  402. data/spec/models/luarocks_package_upload_request_spec.rb +53 -0
  403. data/spec/models/luarocks_package_upload_spec.rb +447 -0
  404. data/spec/models/maven_package_upload_request_spec.rb +101 -0
  405. data/spec/models/maven_package_upload_spec.rb +13 -1
  406. data/spec/models/namespace_audit_log_spec.rb +1 -1
  407. data/spec/models/namespace_spec.rb +1 -1
  408. data/spec/models/npm_package_upload_request_spec.rb +59 -0
  409. data/spec/models/npm_package_upload_spec.rb +447 -0
  410. data/spec/models/nuget_package_upload_request_spec.rb +59 -0
  411. data/spec/models/nuget_package_upload_spec.rb +447 -0
  412. data/spec/models/organization_group_sync_request_spec.rb +65 -0
  413. data/spec/models/organization_group_sync_spec.rb +1 -1
  414. data/spec/models/organization_invite_extend_spec.rb +93 -0
  415. data/spec/models/organization_invite_request_spec.rb +57 -0
  416. data/spec/models/organization_invite_spec.rb +1 -1
  417. data/spec/models/organization_invite_update_request_patch_spec.rb +45 -0
  418. data/spec/models/organization_invite_update_spec.rb +45 -0
  419. data/spec/models/organization_membership_spec.rb +11 -1
  420. data/spec/models/organization_spec.rb +1 -1
  421. data/spec/models/organization_team_members_spec.rb +41 -0
  422. data/spec/models/organization_team_membership_spec.rb +51 -0
  423. data/spec/models/organization_team_request_patch_spec.rb +63 -0
  424. data/spec/models/organization_team_request_spec.rb +63 -0
  425. data/spec/models/organization_team_spec.rb +1 -1
  426. data/spec/models/p2_package_upload_request_spec.rb +53 -0
  427. data/spec/models/p2_package_upload_spec.rb +447 -0
  428. data/spec/models/package_copy_request_spec.rb +47 -0
  429. data/spec/models/package_copy_spec.rb +13 -1
  430. data/spec/models/package_dependencies_spec.rb +1 -1
  431. data/spec/models/package_dependency_spec.rb +67 -0
  432. data/spec/models/package_file_parts_upload_spec.rb +1 -1
  433. data/spec/models/package_file_spec.rb +119 -0
  434. data/spec/models/package_file_upload_request_spec.rb +63 -0
  435. data/spec/models/package_file_upload_spec.rb +1 -1
  436. data/spec/models/package_move_request_spec.rb +41 -0
  437. data/spec/models/package_move_spec.rb +13 -1
  438. data/spec/models/package_quarantine_request_spec.rb +41 -0
  439. data/spec/models/package_quarantine_spec.rb +453 -0
  440. data/spec/models/package_resync_spec.rb +453 -0
  441. data/spec/models/package_spec.rb +13 -1
  442. data/spec/models/package_status_spec.rb +1 -1
  443. data/spec/models/package_tag_request_spec.rb +53 -0
  444. data/spec/models/package_tag_spec.rb +453 -0
  445. data/spec/models/package_usage_metrics_spec.rb +1 -1
  446. data/spec/models/package_version_badge_spec.rb +35 -0
  447. data/spec/models/package_vulnerability_spec.rb +59 -0
  448. data/spec/models/python_package_upload_request_spec.rb +53 -0
  449. data/spec/models/python_package_upload_spec.rb +447 -0
  450. data/spec/models/quota_history_spec.rb +1 -1
  451. data/spec/models/quota_spec.rb +1 -1
  452. data/spec/models/rate_check_spec.rb +71 -0
  453. data/spec/models/raw_package_upload_request_spec.rb +83 -0
  454. data/spec/models/raw_package_upload_spec.rb +13 -1
  455. data/spec/models/repository_audit_log_spec.rb +1 -1
  456. data/spec/models/repository_create_request_spec.rb +291 -0
  457. data/spec/models/repository_create_spec.rb +21 -1
  458. data/spec/models/repository_gpg_key_create_spec.rb +47 -0
  459. data/spec/models/repository_gpg_key_spec.rb +1 -1
  460. data/spec/models/repository_privilege_dict_spec.rb +63 -0
  461. data/spec/models/repository_privilege_input_request_patch_spec.rb +41 -0
  462. data/spec/models/repository_privilege_input_request_spec.rb +41 -0
  463. data/spec/models/repository_privilege_input_spec.rb +41 -0
  464. data/spec/models/repository_request_patch_spec.rb +285 -0
  465. data/spec/models/repository_rsa_key_create_spec.rb +47 -0
  466. data/spec/models/repository_rsa_key_spec.rb +1 -1
  467. data/spec/models/repository_spec.rb +18 -2
  468. data/spec/models/repository_token_action_spec.rb +35 -0
  469. data/spec/models/repository_token_refresh_request_spec.rb +127 -0
  470. data/spec/models/repository_token_refresh_spec.rb +1 -1
  471. data/spec/models/repository_token_request_patch_spec.rb +133 -0
  472. data/spec/models/repository_token_request_spec.rb +133 -0
  473. data/spec/models/repository_token_spec.rb +1 -1
  474. data/spec/models/repository_token_sync_request_spec.rb +41 -0
  475. data/spec/models/repository_token_sync_spec.rb +1 -1
  476. data/spec/models/repository_webhook_request_patch_spec.rb +111 -0
  477. data/spec/models/repository_webhook_request_spec.rb +111 -0
  478. data/spec/models/repository_webhook_spec.rb +5 -1
  479. data/spec/models/resources_rate_check_spec.rb +1 -1
  480. data/spec/models/rpm_package_upload_request_spec.rb +59 -0
  481. data/spec/models/rpm_package_upload_spec.rb +447 -0
  482. data/spec/models/ruby_package_upload_request_spec.rb +53 -0
  483. data/spec/models/ruby_package_upload_spec.rb +447 -0
  484. data/spec/models/service_request_patch_spec.rb +63 -0
  485. data/spec/models/service_request_spec.rb +63 -0
  486. data/spec/models/service_spec.rb +75 -0
  487. data/spec/models/service_teams_spec.rb +51 -0
  488. data/spec/models/status_basic_spec.rb +1 -1
  489. data/spec/models/storage_region_spec.rb +1 -1
  490. data/spec/models/tags_spec.rb +35 -0
  491. data/spec/models/terraform_package_upload_request_spec.rb +53 -0
  492. data/spec/models/terraform_package_upload_spec.rb +447 -0
  493. data/spec/models/usage_fieldset_spec.rb +47 -0
  494. data/spec/models/usage_limits_spec.rb +47 -0
  495. data/spec/models/usage_spec.rb +53 -0
  496. data/spec/models/user_auth_token_request_spec.rb +47 -0
  497. data/spec/models/user_auth_token_spec.rb +1 -1
  498. data/spec/models/user_brief_spec.rb +1 -1
  499. data/spec/models/user_profile_spec.rb +1 -1
  500. data/spec/models/vagrant_package_upload_request_spec.rb +71 -0
  501. data/spec/models/vagrant_package_upload_spec.rb +13 -1
  502. data/spec/models/vulnerability_scan_results_list_spec.rb +1 -1
  503. data/spec/models/vulnerability_scan_results_spec.rb +1 -1
  504. data/spec/models/vulnerability_scan_spec.rb +53 -0
  505. data/spec/models/vulnerability_scan_version_spec.rb +71 -0
  506. data/spec/models/vulnerability_spec.rb +93 -0
  507. data/spec/models/webhook_template_spec.rb +47 -0
  508. data/spec/spec_helper.rb +1 -1
  509. data/vendor/bundle/ruby/2.6.0/cache/addressable-2.8.1.gem +0 -0
  510. data/vendor/bundle/ruby/2.6.0/cache/autotest-fsevent-0.2.20.gem +0 -0
  511. data/vendor/bundle/ruby/2.6.0/cache/ethon-0.16.0.gem +0 -0
  512. data/vendor/bundle/ruby/2.6.0/cache/json-2.6.3.gem +0 -0
  513. data/vendor/bundle/ruby/2.6.0/cache/public_suffix-5.0.1.gem +0 -0
  514. data/vendor/bundle/ruby/2.6.0/cache/rspec-3.12.0.gem +0 -0
  515. data/vendor/bundle/ruby/2.6.0/cache/rspec-core-3.12.0.gem +0 -0
  516. data/vendor/bundle/ruby/2.6.0/cache/rspec-expectations-3.12.0.gem +0 -0
  517. data/vendor/bundle/ruby/2.6.0/cache/rspec-mocks-3.12.1.gem +0 -0
  518. data/vendor/bundle/ruby/2.6.0/cache/rspec-support-3.12.0.gem +0 -0
  519. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/gem.build_complete +0 -0
  520. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/autotest-fsevent-0.2.20/gem_make.out +14 -0
  521. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/ffi-1.15.5/gem_make.out +2 -2
  522. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/{json-2.6.2 → json-2.6.3}/gem.build_complete +0 -0
  523. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.3/gem_make.out +13 -0
  524. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.3/json/ext/generator.so +0 -0
  525. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.3/json/ext/parser.so +0 -0
  526. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.3/mkmf.log +128 -0
  527. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/CHANGELOG.md +262 -0
  528. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/Gemfile +30 -0
  529. data/vendor/bundle/ruby/2.6.0/gems/{addressable-2.8.0 → addressable-2.8.1}/LICENSE.txt +0 -0
  530. data/vendor/bundle/ruby/2.6.0/gems/{addressable-2.8.0 → addressable-2.8.1}/README.md +0 -0
  531. data/vendor/bundle/ruby/2.6.0/gems/{addressable-2.8.0 → addressable-2.8.1}/Rakefile +0 -0
  532. data/vendor/bundle/ruby/2.6.0/gems/{addressable-2.8.0 → addressable-2.8.1}/data/unicode.data +0 -0
  533. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/lib/addressable/idna/native.rb +60 -0
  534. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/lib/addressable/idna/pure.rb +677 -0
  535. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/lib/addressable/idna.rb +26 -0
  536. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/lib/addressable/template.rb +1030 -0
  537. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/lib/addressable/uri.rb +2560 -0
  538. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/lib/addressable/version.rb +31 -0
  539. data/vendor/bundle/ruby/2.6.0/gems/{addressable-2.8.0 → addressable-2.8.1}/lib/addressable.rb +0 -0
  540. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/spec/addressable/idna_spec.rb +301 -0
  541. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/spec/addressable/net_http_compat_spec.rb +29 -0
  542. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/spec/addressable/security_spec.rb +58 -0
  543. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/spec/addressable/template_spec.rb +1468 -0
  544. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/spec/addressable/uri_spec.rb +6745 -0
  545. data/vendor/bundle/ruby/2.6.0/gems/{addressable-2.8.0 → addressable-2.8.1}/spec/spec_helper.rb +0 -0
  546. data/vendor/bundle/ruby/2.6.0/gems/{addressable-2.8.0 → addressable-2.8.1}/tasks/clobber.rake +0 -0
  547. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.1/tasks/gem.rake +95 -0
  548. data/vendor/bundle/ruby/2.6.0/gems/{addressable-2.8.0 → addressable-2.8.1}/tasks/git.rake +0 -0
  549. data/vendor/bundle/ruby/2.6.0/gems/{addressable-2.8.0 → addressable-2.8.1}/tasks/metrics.rake +0 -0
  550. data/vendor/bundle/ruby/2.6.0/gems/{addressable-2.8.0 → addressable-2.8.1}/tasks/profile.rake +0 -0
  551. data/vendor/bundle/ruby/2.6.0/gems/{addressable-2.8.0 → addressable-2.8.1}/tasks/rspec.rake +0 -0
  552. data/vendor/bundle/ruby/2.6.0/gems/{addressable-2.8.0 → addressable-2.8.1}/tasks/yard.rake +0 -0
  553. data/vendor/bundle/ruby/2.6.0/gems/autotest-fsevent-0.2.20/CHANGELOG.md +144 -0
  554. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/LICENSE.txt +0 -0
  555. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/README.md +0 -0
  556. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/ext/fsevent/Makefile +0 -0
  557. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/ext/fsevent/extconf.rb +0 -0
  558. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/ext/fsevent/fsevent.dll +0 -0
  559. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/ext/fsevent/fsevent.so +0 -0
  560. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/ext/fsevent/fsevent_sleep.c +0 -0
  561. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/ext/fsevent/make +0 -0
  562. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/ext/fsevent/nmake.bat +0 -0
  563. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/lib/autotest/fsevent.rb +0 -0
  564. data/vendor/bundle/ruby/2.6.0/gems/autotest-fsevent-0.2.20/lib/autotest-fsevent/version.rb +5 -0
  565. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/lib/autotest-fsevent.rb +0 -0
  566. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/post-install.txt +0 -0
  567. data/vendor/bundle/ruby/2.6.0/gems/{autotest-fsevent-0.2.19 → autotest-fsevent-0.2.20}/prebuilt/fsevent_sleep +0 -0
  568. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.16.0/.github/workflows/ruby.yml +41 -0
  569. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/.gitignore +0 -0
  570. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/.rspec +0 -0
  571. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.16.0/CHANGELOG.md +375 -0
  572. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/Gemfile +0 -0
  573. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/Guardfile +0 -0
  574. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/LICENSE +0 -0
  575. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.16.0/README.md +118 -0
  576. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/Rakefile +0 -0
  577. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/ethon.gemspec +0 -0
  578. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/curl.rb +0 -0
  579. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.16.0/lib/ethon/curls/classes.rb +65 -0
  580. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/curls/codes.rb +0 -0
  581. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/curls/constants.rb +0 -0
  582. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/curls/form_options.rb +0 -0
  583. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/curls/functions.rb +0 -0
  584. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/curls/infos.rb +0 -0
  585. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/curls/messages.rb +0 -0
  586. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.16.0/lib/ethon/curls/options.rb +503 -0
  587. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/curls/settings.rb +0 -0
  588. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.16.0/lib/ethon/easy/callbacks.rb +149 -0
  589. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/debug_info.rb +0 -0
  590. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/features.rb +0 -0
  591. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/form.rb +0 -0
  592. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/header.rb +0 -0
  593. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/http/actionable.rb +0 -0
  594. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/http/custom.rb +0 -0
  595. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/http/delete.rb +0 -0
  596. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/http/get.rb +0 -0
  597. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/http/head.rb +0 -0
  598. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/http/options.rb +0 -0
  599. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/http/patch.rb +0 -0
  600. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/http/post.rb +0 -0
  601. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/http/postable.rb +0 -0
  602. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/http/put.rb +0 -0
  603. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/http/putable.rb +0 -0
  604. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/http.rb +0 -0
  605. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.16.0/lib/ethon/easy/informations.rb +116 -0
  606. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/mirror.rb +0 -0
  607. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/operations.rb +0 -0
  608. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/options.rb +0 -0
  609. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/params.rb +0 -0
  610. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/queryable.rb +0 -0
  611. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.16.0/lib/ethon/easy/response_callbacks.rb +136 -0
  612. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy/util.rb +0 -0
  613. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/easy.rb +0 -0
  614. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/errors/ethon_error.rb +0 -0
  615. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/errors/global_init.rb +0 -0
  616. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/errors/invalid_option.rb +0 -0
  617. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/errors/invalid_value.rb +0 -0
  618. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/errors/multi_add.rb +0 -0
  619. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/errors/multi_fdset.rb +0 -0
  620. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/errors/multi_remove.rb +0 -0
  621. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/errors/multi_timeout.rb +0 -0
  622. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/errors/select.rb +0 -0
  623. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/errors.rb +0 -0
  624. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/libc.rb +0 -0
  625. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/loggable.rb +0 -0
  626. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/multi/operations.rb +0 -0
  627. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/multi/options.rb +0 -0
  628. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/multi/stack.rb +0 -0
  629. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon/multi.rb +0 -0
  630. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.16.0/lib/ethon/version.rb +6 -0
  631. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/lib/ethon.rb +0 -0
  632. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/profile/benchmarks.rb +0 -0
  633. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/profile/memory_leaks.rb +0 -0
  634. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/profile/perf_spec_helper.rb +0 -0
  635. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/profile/support/memory_test_helpers.rb +0 -0
  636. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/profile/support/os_memory_leak_tracker.rb +0 -0
  637. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/profile/support/ruby_object_leak_tracker.rb +0 -0
  638. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/curl_spec.rb +0 -0
  639. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.16.0/spec/ethon/easy/callbacks_spec.rb +81 -0
  640. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/debug_info_spec.rb +0 -0
  641. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/features_spec.rb +0 -0
  642. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/form_spec.rb +0 -0
  643. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/header_spec.rb +0 -0
  644. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/http/custom_spec.rb +0 -0
  645. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/http/delete_spec.rb +0 -0
  646. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/http/get_spec.rb +0 -0
  647. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/http/head_spec.rb +0 -0
  648. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/http/options_spec.rb +0 -0
  649. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/http/patch_spec.rb +0 -0
  650. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/http/post_spec.rb +0 -0
  651. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/http/put_spec.rb +0 -0
  652. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/http_spec.rb +0 -0
  653. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.16.0/spec/ethon/easy/informations_spec.rb +126 -0
  654. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.16.0/spec/ethon/easy/mirror_spec.rb +47 -0
  655. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.16.0/spec/ethon/easy/operations_spec.rb +271 -0
  656. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/options_spec.rb +0 -0
  657. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/queryable_spec.rb +0 -0
  658. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/response_callbacks_spec.rb +0 -0
  659. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy/util_spec.rb +0 -0
  660. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/easy_spec.rb +0 -0
  661. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/libc_spec.rb +0 -0
  662. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/loggable_spec.rb +0 -0
  663. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/multi/operations_spec.rb +0 -0
  664. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/multi/options_spec.rb +0 -0
  665. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/multi/stack_spec.rb +0 -0
  666. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/ethon/multi_spec.rb +0 -0
  667. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/spec_helper.rb +0 -0
  668. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/support/localhost_server.rb +0 -0
  669. data/vendor/bundle/ruby/2.6.0/gems/{ethon-0.15.0 → ethon-0.16.0}/spec/support/server.rb +0 -0
  670. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.5/ext/ffi_c/Makefile +2 -2
  671. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/CHANGES.md +0 -0
  672. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/LICENSE +0 -0
  673. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/README.md +0 -0
  674. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/VERSION +1 -0
  675. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/Makefile +202 -0
  676. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/ext/json/ext/fbuffer/fbuffer.h +0 -0
  677. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/ext/json/ext/generator/.sitearchdir.-.json.-.ext.time +0 -0
  678. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/generator/Makefile +267 -0
  679. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/ext/json/ext/generator/depend +0 -0
  680. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/ext/json/ext/generator/extconf.rb +0 -0
  681. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/generator/generator.c +1608 -0
  682. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/ext/json/ext/generator/generator.h +0 -0
  683. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/generator/generator.o +0 -0
  684. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/generator/generator.so +0 -0
  685. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/ext/json/ext/parser/.sitearchdir.-.json.-.ext.time +0 -0
  686. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/parser/Makefile +267 -0
  687. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/ext/json/ext/parser/depend +0 -0
  688. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/ext/json/ext/parser/extconf.rb +0 -0
  689. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/parser/parser.c +3347 -0
  690. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/ext/json/ext/parser/parser.h +0 -0
  691. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/parser/parser.o +0 -0
  692. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/parser/parser.rl +986 -0
  693. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/parser/parser.so +0 -0
  694. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/ext/json/extconf.rb +0 -0
  695. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/json.gemspec +0 -0
  696. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/bigdecimal.rb +0 -0
  697. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/complex.rb +0 -0
  698. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/core.rb +0 -0
  699. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/date.rb +0 -0
  700. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/date_time.rb +0 -0
  701. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/exception.rb +0 -0
  702. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/ostruct.rb +0 -0
  703. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/range.rb +0 -0
  704. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/rational.rb +0 -0
  705. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/regexp.rb +0 -0
  706. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/set.rb +0 -0
  707. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/struct.rb +0 -0
  708. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/symbol.rb +0 -0
  709. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/add/time.rb +0 -0
  710. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/common.rb +0 -0
  711. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/lib/json/ext/generator.so +0 -0
  712. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/lib/json/ext/parser.so +0 -0
  713. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/ext.rb +0 -0
  714. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/generic_object.rb +0 -0
  715. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/pure/generator.rb +0 -0
  716. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/lib/json/pure/parser.rb +337 -0
  717. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json/pure.rb +0 -0
  718. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/lib/json/version.rb +9 -0
  719. data/vendor/bundle/ruby/2.6.0/gems/{json-2.6.2 → json-2.6.3}/lib/json.rb +0 -0
  720. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/.github/FUNDING.yml +0 -0
  721. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/.github/dependabot.yml +19 -0
  722. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/.github/workflows/psl-update.yml +38 -0
  723. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/.github/workflows/release.yml +18 -0
  724. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/.github/workflows/tests.yml +29 -0
  725. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/.gitignore +0 -0
  726. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/.rubocop.yml +37 -0
  727. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/.rubocop_opinionated.yml +135 -0
  728. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/.yardopts +0 -0
  729. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/2.0-Upgrade.md +0 -0
  730. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/CHANGELOG.md +432 -0
  731. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/Gemfile +14 -0
  732. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/LICENSE.txt +0 -0
  733. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/README.md +217 -0
  734. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/Rakefile +52 -0
  735. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/SECURITY.md +0 -0
  736. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/bin/console +0 -0
  737. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/data/list.txt +14189 -0
  738. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/lib/public_suffix/domain.rb +0 -0
  739. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/lib/public_suffix/errors.rb +0 -0
  740. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/lib/public_suffix/list.rb +247 -0
  741. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/lib/public_suffix/rule.rb +350 -0
  742. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/lib/public_suffix/version.rb +15 -0
  743. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/lib/public_suffix.rb +177 -0
  744. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/public_suffix.gemspec +29 -0
  745. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/.empty +0 -0
  746. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/test/acceptance_test.rb +131 -0
  747. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/benchmarks/bm_find.rb +0 -0
  748. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/benchmarks/bm_find_all.rb +0 -0
  749. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/benchmarks/bm_names.rb +0 -0
  750. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/benchmarks/bm_select.rb +0 -0
  751. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/benchmarks/bm_select_incremental.rb +0 -0
  752. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/benchmarks/bm_valid.rb +0 -0
  753. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/profilers/domain_profiler.rb +0 -0
  754. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/profilers/find_profiler.rb +0 -0
  755. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/profilers/find_profiler_jp.rb +0 -0
  756. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/profilers/initialization_profiler.rb +0 -0
  757. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/profilers/list_profsize.rb +0 -0
  758. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/profilers/object_binsize.rb +0 -0
  759. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/test/psl_test.rb +52 -0
  760. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/test_helper.rb +0 -0
  761. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/tests.txt +0 -0
  762. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/test/unit/domain_test.rb +106 -0
  763. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/unit/errors_test.rb +0 -0
  764. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/test/unit/list_test.rb +241 -0
  765. data/vendor/bundle/ruby/2.6.0/gems/{public_suffix-4.0.7 → public_suffix-5.0.1}/test/unit/public_suffix_test.rb +0 -0
  766. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-5.0.1/test/unit/rule_test.rb +222 -0
  767. data/vendor/bundle/ruby/2.6.0/gems/{rspec-3.11.0 → rspec-3.12.0}/LICENSE.md +0 -0
  768. data/vendor/bundle/ruby/2.6.0/gems/{rspec-3.11.0 → rspec-3.12.0}/README.md +0 -0
  769. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.12.0/lib/rspec/version.rb +5 -0
  770. data/vendor/bundle/ruby/2.6.0/gems/{rspec-3.11.0 → rspec-3.12.0}/lib/rspec.rb +0 -0
  771. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/.document +0 -0
  772. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/.yardopts +0 -0
  773. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/Changelog.md +2360 -0
  774. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/LICENSE.md +0 -0
  775. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/README.md +0 -0
  776. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/exe/rspec +0 -0
  777. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/autorun.rb +0 -0
  778. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/backtrace_formatter.rb +0 -0
  779. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/coordinator.rb +0 -0
  780. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/example_minimizer.rb +0 -0
  781. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/fork_runner.rb +0 -0
  782. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/server.rb +0 -0
  783. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/shell_command.rb +0 -0
  784. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/shell_runner.rb +0 -0
  785. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/bisect/utilities.rb +0 -0
  786. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/configuration.rb +2385 -0
  787. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/configuration_options.rb +0 -0
  788. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/did_you_mean.rb +0 -0
  789. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/drb.rb +0 -0
  790. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/dsl.rb +0 -0
  791. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/example.rb +0 -0
  792. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/example_group.rb +0 -0
  793. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/example_status_persister.rb +0 -0
  794. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/filter_manager.rb +0 -0
  795. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/flat_map.rb +0 -0
  796. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/base_bisect_formatter.rb +0 -0
  797. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/base_formatter.rb +0 -0
  798. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/base_text_formatter.rb +0 -0
  799. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/bisect_drb_formatter.rb +0 -0
  800. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/bisect_progress_formatter.rb +0 -0
  801. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/console_codes.rb +0 -0
  802. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/deprecation_formatter.rb +0 -0
  803. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/documentation_formatter.rb +0 -0
  804. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/exception_presenter.rb +525 -0
  805. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/failure_list_formatter.rb +0 -0
  806. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/fallback_message_formatter.rb +0 -0
  807. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/helpers.rb +0 -0
  808. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/html_formatter.rb +0 -0
  809. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/formatters/html_printer.rb +412 -0
  810. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/html_snippet_extractor.rb +0 -0
  811. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/json_formatter.rb +0 -0
  812. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/profile_formatter.rb +0 -0
  813. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/progress_formatter.rb +0 -0
  814. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/protocol.rb +0 -0
  815. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/snippet_extractor.rb +0 -0
  816. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters/syntax_highlighter.rb +0 -0
  817. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/formatters.rb +0 -0
  818. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/hooks.rb +0 -0
  819. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/invocations.rb +0 -0
  820. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/memoized_helpers.rb +0 -0
  821. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/metadata.rb +0 -0
  822. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/metadata_filter.rb +0 -0
  823. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/minitest_assertions_adapter.rb +0 -0
  824. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/mocking_adapters/flexmock.rb +0 -0
  825. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/mocking_adapters/mocha.rb +0 -0
  826. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/mocking_adapters/null.rb +0 -0
  827. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/mocking_adapters/rr.rb +0 -0
  828. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/mocking_adapters/rspec.rb +0 -0
  829. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/notifications.rb +0 -0
  830. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/option_parser.rb +323 -0
  831. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/ordering.rb +0 -0
  832. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/output_wrapper.rb +0 -0
  833. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/pending.rb +0 -0
  834. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/profiler.rb +0 -0
  835. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/project_initializer/.rspec +0 -0
  836. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/project_initializer/spec/spec_helper.rb +0 -0
  837. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/project_initializer.rb +0 -0
  838. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/rake_task.rb +0 -0
  839. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/reporter.rb +0 -0
  840. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/ruby_project.rb +0 -0
  841. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/runner.rb +0 -0
  842. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/sandbox.rb +0 -0
  843. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/set.rb +0 -0
  844. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/shared_context.rb +0 -0
  845. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/shared_example_group.rb +0 -0
  846. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/shell_escape.rb +0 -0
  847. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/test_unit_assertions_adapter.rb +0 -0
  848. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.12.0/lib/rspec/core/version.rb +9 -0
  849. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/warnings.rb +0 -0
  850. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core/world.rb +0 -0
  851. data/vendor/bundle/ruby/2.6.0/gems/{rspec-core-3.11.0 → rspec-core-3.12.0}/lib/rspec/core.rb +0 -0
  852. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/.document +0 -0
  853. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/.yardopts +0 -0
  854. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/Changelog.md +1285 -0
  855. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/LICENSE.md +0 -0
  856. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/README.md +0 -0
  857. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/block_snippet_extractor.rb +0 -0
  858. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/configuration.rb +0 -0
  859. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/expectation_target.rb +0 -0
  860. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/fail_with.rb +0 -0
  861. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/failure_aggregator.rb +0 -0
  862. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/handler.rb +0 -0
  863. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/minitest_integration.rb +0 -0
  864. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations/syntax.rb +0 -0
  865. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/expectations/version.rb +8 -0
  866. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/expectations.rb +0 -0
  867. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/aliased_matcher.rb +0 -0
  868. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/all.rb +0 -0
  869. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/base_matcher.rb +0 -0
  870. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/be.rb +0 -0
  871. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/be_between.rb +0 -0
  872. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/be_instance_of.rb +0 -0
  873. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/be_kind_of.rb +0 -0
  874. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/be_within.rb +0 -0
  875. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/change.rb +0 -0
  876. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/compound.rb +0 -0
  877. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/contain_exactly.rb +310 -0
  878. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/count_expectation.rb +169 -0
  879. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/cover.rb +0 -0
  880. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/eq.rb +0 -0
  881. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/eql.rb +0 -0
  882. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/equal.rb +0 -0
  883. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/exist.rb +90 -0
  884. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/has.rb +0 -0
  885. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/have_attributes.rb +0 -0
  886. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/include.rb +0 -0
  887. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/match.rb +0 -0
  888. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/operators.rb +0 -0
  889. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/output.rb +0 -0
  890. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/raise_error.rb +271 -0
  891. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/respond_to.rb +0 -0
  892. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/satisfy.rb +0 -0
  893. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/start_or_end_with.rb +0 -0
  894. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/built_in/throw_symbol.rb +138 -0
  895. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in/yield.rb +0 -0
  896. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/built_in.rb +0 -0
  897. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/composable.rb +0 -0
  898. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/dsl.rb +544 -0
  899. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/english_phrasing.rb +0 -0
  900. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +0 -0
  901. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/fail_matchers.rb +0 -0
  902. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/generated_descriptions.rb +0 -0
  903. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/matcher_delegator.rb +0 -0
  904. data/vendor/bundle/ruby/2.6.0/gems/{rspec-expectations-3.11.0 → rspec-expectations-3.12.0}/lib/rspec/matchers/matcher_protocol.rb +0 -0
  905. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers.rb +1044 -0
  906. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/.document +0 -0
  907. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/.yardopts +0 -0
  908. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/Changelog.md +1227 -0
  909. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/LICENSE.md +0 -0
  910. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/README.md +0 -0
  911. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/any_instance/chain.rb +0 -0
  912. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/any_instance/error_generator.rb +0 -0
  913. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/any_instance/expect_chain_chain.rb +0 -0
  914. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/any_instance/expectation_chain.rb +0 -0
  915. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  916. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/any_instance/proxy.rb +0 -0
  917. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/any_instance/recorder.rb +0 -0
  918. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/any_instance/stub_chain.rb +0 -0
  919. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/any_instance/stub_chain_chain.rb +0 -0
  920. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/any_instance.rb +0 -0
  921. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/argument_list_matcher.rb +0 -0
  922. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/argument_matchers.rb +0 -0
  923. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/configuration.rb +0 -0
  924. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/lib/rspec/mocks/error_generator.rb +390 -0
  925. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/example_methods.rb +0 -0
  926. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/instance_method_stasher.rb +0 -0
  927. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/marshal_extension.rb +0 -0
  928. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/matchers/expectation_customization.rb +0 -0
  929. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/lib/rspec/mocks/matchers/have_received.rb +134 -0
  930. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/lib/rspec/mocks/matchers/receive.rb +133 -0
  931. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  932. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  933. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/message_chain.rb +0 -0
  934. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb +820 -0
  935. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_double.rb +309 -0
  936. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_reference.rb +214 -0
  937. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/minitest_integration.rb +0 -0
  938. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/mutate_const.rb +0 -0
  939. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/object_reference.rb +0 -0
  940. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/order_group.rb +0 -0
  941. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/lib/rspec/mocks/proxy.rb +519 -0
  942. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/space.rb +0 -0
  943. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/standalone.rb +0 -0
  944. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/syntax.rb +0 -0
  945. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/lib/rspec/mocks/targets.rb +124 -0
  946. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/test_double.rb +0 -0
  947. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/verifying_double.rb +0 -0
  948. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/lib/rspec/mocks/verifying_message_expectation.rb +55 -0
  949. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks/verifying_proxy.rb +0 -0
  950. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.12.1/lib/rspec/mocks/version.rb +9 -0
  951. data/vendor/bundle/ruby/2.6.0/gems/{rspec-mocks-3.11.1 → rspec-mocks-3.12.1}/lib/rspec/mocks.rb +0 -0
  952. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/Changelog.md +364 -0
  953. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/LICENSE.md +0 -0
  954. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/README.md +0 -0
  955. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/caller_filter.rb +83 -0
  956. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/comparable_version.rb +46 -0
  957. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/differ.rb +215 -0
  958. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/directory_maker.rb +0 -0
  959. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/encoded_string.rb +161 -0
  960. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/fuzzy_matcher.rb +0 -0
  961. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/hunk_generator.rb +0 -0
  962. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/matcher_definition.rb +0 -0
  963. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/method_signature_verifier.rb +438 -0
  964. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/mutex.rb +73 -0
  965. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/object_formatter.rb +0 -0
  966. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/recursive_const_methods.rb +0 -0
  967. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/reentrant_mutex.rb +0 -0
  968. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/ruby_features.rb +198 -0
  969. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/source/location.rb +0 -0
  970. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/source/node.rb +0 -0
  971. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/source/token.rb +0 -0
  972. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/source.rb +0 -0
  973. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/deprecation_helpers.rb +0 -0
  974. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/diff_helpers.rb +0 -0
  975. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/formatting_support.rb +0 -0
  976. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/in_sub_process.rb +67 -0
  977. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/library_wide_checks.rb +0 -0
  978. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/shell_out.rb +0 -0
  979. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/spec/stderr_splitter.rb +75 -0
  980. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/string_matcher.rb +0 -0
  981. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/with_isolated_directory.rb +0 -0
  982. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec/with_isolated_stderr.rb +0 -0
  983. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/spec.rb +0 -0
  984. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/version.rb +7 -0
  985. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support/warnings.rb +0 -0
  986. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.12.0/lib/rspec/support/with_keywords_when_needed.rb +33 -0
  987. data/vendor/bundle/ruby/2.6.0/gems/{rspec-support-3.11.0 → rspec-support-3.12.0}/lib/rspec/support.rb +0 -0
  988. data/vendor/bundle/ruby/2.6.0/specifications/addressable-2.8.1.gemspec +37 -0
  989. data/vendor/bundle/ruby/2.6.0/specifications/autotest-fsevent-0.2.20.gemspec +44 -0
  990. data/vendor/bundle/ruby/2.6.0/specifications/ethon-0.16.0.gemspec +30 -0
  991. data/vendor/bundle/ruby/2.6.0/specifications/json-2.6.3.gemspec +0 -0
  992. data/vendor/bundle/ruby/2.6.0/specifications/public_suffix-5.0.1.gemspec +24 -0
  993. data/vendor/bundle/ruby/2.6.0/specifications/rspec-3.12.0.gemspec +39 -0
  994. data/vendor/bundle/ruby/2.6.0/specifications/rspec-core-3.12.0.gemspec +53 -0
  995. data/vendor/bundle/ruby/2.6.0/specifications/rspec-expectations-3.12.0.gemspec +44 -0
  996. data/vendor/bundle/ruby/2.6.0/specifications/rspec-mocks-3.12.1.gemspec +44 -0
  997. data/vendor/bundle/ruby/2.6.0/specifications/rspec-support-3.12.0.gemspec +36 -0
  998. metadata +913 -813
  999. data/docs/DistrosVersions.md +0 -9
  1000. data/docs/EntitlementsCreate.md +0 -22
  1001. data/docs/EntitlementsPartialUpdate.md +0 -22
  1002. data/docs/EntitlementsRefresh.md +0 -21
  1003. data/docs/EntitlementsSync.md +0 -8
  1004. data/docs/FilesAbort.md +0 -11
  1005. data/docs/FilesComplete.md +0 -11
  1006. data/docs/FilesCreate.md +0 -11
  1007. data/docs/FilesValidate.md +0 -11
  1008. data/docs/FormatsDistributions.md +0 -11
  1009. data/docs/OrgsInvitesCreate.md +0 -12
  1010. data/docs/OrgsInvitesExtend.md +0 -11
  1011. data/docs/OrgsSamlgroupsyncCreate.md +0 -12
  1012. data/docs/OrgsTeamsCreate.md +0 -11
  1013. data/docs/OrgsTeamsPartialUpdate.md +0 -11
  1014. data/docs/PackageDependenciesDependencies.md +0 -11
  1015. data/docs/PackagesCopy.md +0 -9
  1016. data/docs/PackagesMove.md +0 -8
  1017. data/docs/PackagesQuarantine.md +0 -8
  1018. data/docs/PackagesTag.md +0 -10
  1019. data/docs/PackagesUploadAlpine.md +0 -11
  1020. data/docs/PackagesUploadCargo.md +0 -10
  1021. data/docs/PackagesUploadCocoapods.md +0 -10
  1022. data/docs/PackagesUploadComposer.md +0 -10
  1023. data/docs/PackagesUploadConan.md +0 -17
  1024. data/docs/PackagesUploadConda.md +0 -10
  1025. data/docs/PackagesUploadCran.md +0 -10
  1026. data/docs/PackagesUploadDart.md +0 -10
  1027. data/docs/PackagesUploadDeb.md +0 -13
  1028. data/docs/PackagesUploadDocker.md +0 -10
  1029. data/docs/PackagesUploadGo.md +0 -10
  1030. data/docs/PackagesUploadHelm.md +0 -10
  1031. data/docs/PackagesUploadLuarocks.md +0 -10
  1032. data/docs/PackagesUploadMaven.md +0 -18
  1033. data/docs/PackagesUploadNpm.md +0 -11
  1034. data/docs/PackagesUploadNuget.md +0 -11
  1035. data/docs/PackagesUploadP2.md +0 -10
  1036. data/docs/PackagesUploadPython.md +0 -10
  1037. data/docs/PackagesUploadRaw.md +0 -15
  1038. data/docs/PackagesUploadRpm.md +0 -11
  1039. data/docs/PackagesUploadRuby.md +0 -10
  1040. data/docs/PackagesUploadTerraform.md +0 -10
  1041. data/docs/PackagesUploadVagrant.md +0 -13
  1042. data/docs/PackagesValidateuploadAlpine.md +0 -11
  1043. data/docs/PackagesValidateuploadCargo.md +0 -10
  1044. data/docs/PackagesValidateuploadCocoapods.md +0 -10
  1045. data/docs/PackagesValidateuploadComposer.md +0 -10
  1046. data/docs/PackagesValidateuploadConan.md +0 -17
  1047. data/docs/PackagesValidateuploadConda.md +0 -10
  1048. data/docs/PackagesValidateuploadCran.md +0 -10
  1049. data/docs/PackagesValidateuploadDart.md +0 -10
  1050. data/docs/PackagesValidateuploadDeb.md +0 -13
  1051. data/docs/PackagesValidateuploadDocker.md +0 -10
  1052. data/docs/PackagesValidateuploadGo.md +0 -10
  1053. data/docs/PackagesValidateuploadHelm.md +0 -10
  1054. data/docs/PackagesValidateuploadLuarocks.md +0 -10
  1055. data/docs/PackagesValidateuploadMaven.md +0 -18
  1056. data/docs/PackagesValidateuploadNpm.md +0 -11
  1057. data/docs/PackagesValidateuploadNuget.md +0 -11
  1058. data/docs/PackagesValidateuploadP2.md +0 -10
  1059. data/docs/PackagesValidateuploadPython.md +0 -10
  1060. data/docs/PackagesValidateuploadRaw.md +0 -15
  1061. data/docs/PackagesValidateuploadRpm.md +0 -11
  1062. data/docs/PackagesValidateuploadRuby.md +0 -10
  1063. data/docs/PackagesValidateuploadTerraform.md +0 -10
  1064. data/docs/PackagesValidateuploadVagrant.md +0 -13
  1065. data/docs/PackagesownerrepoArchitectures.md +0 -9
  1066. data/docs/PackagesownerrepoFiles.md +0 -21
  1067. data/docs/QuotaHistoryHistory.md +0 -13
  1068. data/docs/ReposCreate.md +0 -41
  1069. data/docs/ReposGpgCreate.md +0 -9
  1070. data/docs/ReposGpgKeys.md +0 -14
  1071. data/docs/ReposPartialUpdate.md +0 -40
  1072. data/docs/ReposRsaCreate.md +0 -9
  1073. data/docs/RepositoryPrivilegeList.md +0 -8
  1074. data/docs/RepositoryTokenSyncTokens.md +0 -46
  1075. data/docs/Status.md +0 -8
  1076. data/docs/UserTokenCreate.md +0 -9
  1077. data/docs/WebhooksCreate.md +0 -19
  1078. data/docs/WebhooksPartialUpdate.md +0 -19
  1079. data/docs/WebhooksownerrepoTemplates.md +0 -9
  1080. data/lib/cloudsmith-api/models/distros_versions.rb +0 -195
  1081. data/lib/cloudsmith-api/models/entitlements_create.rb +0 -376
  1082. data/lib/cloudsmith-api/models/entitlements_partial_update.rb +0 -371
  1083. data/lib/cloudsmith-api/models/entitlements_refresh.rb +0 -361
  1084. data/lib/cloudsmith-api/models/entitlements_sync.rb +0 -190
  1085. data/lib/cloudsmith-api/models/files_abort.rb +0 -254
  1086. data/lib/cloudsmith-api/models/files_complete.rb +0 -254
  1087. data/lib/cloudsmith-api/models/files_create.rb +0 -254
  1088. data/lib/cloudsmith-api/models/files_validate.rb +0 -254
  1089. data/lib/cloudsmith-api/models/formats_distributions.rb +0 -215
  1090. data/lib/cloudsmith-api/models/orgs_invites_create.rb +0 -259
  1091. data/lib/cloudsmith-api/models/orgs_invites_extend.rb +0 -249
  1092. data/lib/cloudsmith-api/models/orgs_samlgroupsync_create.rb +0 -245
  1093. data/lib/cloudsmith-api/models/orgs_teams_create.rb +0 -254
  1094. data/lib/cloudsmith-api/models/orgs_teams_partial_update.rb +0 -249
  1095. data/lib/cloudsmith-api/models/package_dependencies_dependencies.rb +0 -215
  1096. data/lib/cloudsmith-api/models/packages_copy.rb +0 -200
  1097. data/lib/cloudsmith-api/models/packages_move.rb +0 -190
  1098. data/lib/cloudsmith-api/models/packages_quarantine.rb +0 -185
  1099. data/lib/cloudsmith-api/models/packages_tag.rb +0 -241
  1100. data/lib/cloudsmith-api/models/packages_upload_alpine.rb +0 -225
  1101. data/lib/cloudsmith-api/models/packages_upload_cargo.rb +0 -210
  1102. data/lib/cloudsmith-api/models/packages_upload_cocoapods.rb +0 -210
  1103. data/lib/cloudsmith-api/models/packages_upload_composer.rb +0 -210
  1104. data/lib/cloudsmith-api/models/packages_upload_conan.rb +0 -295
  1105. data/lib/cloudsmith-api/models/packages_upload_conda.rb +0 -210
  1106. data/lib/cloudsmith-api/models/packages_upload_cran.rb +0 -210
  1107. data/lib/cloudsmith-api/models/packages_upload_dart.rb +0 -210
  1108. data/lib/cloudsmith-api/models/packages_upload_deb.rb +0 -245
  1109. data/lib/cloudsmith-api/models/packages_upload_docker.rb +0 -210
  1110. data/lib/cloudsmith-api/models/packages_upload_go.rb +0 -210
  1111. data/lib/cloudsmith-api/models/packages_upload_helm.rb +0 -210
  1112. data/lib/cloudsmith-api/models/packages_upload_luarocks.rb +0 -210
  1113. data/lib/cloudsmith-api/models/packages_upload_maven.rb +0 -290
  1114. data/lib/cloudsmith-api/models/packages_upload_npm.rb +0 -220
  1115. data/lib/cloudsmith-api/models/packages_upload_nuget.rb +0 -220
  1116. data/lib/cloudsmith-api/models/packages_upload_p2.rb +0 -210
  1117. data/lib/cloudsmith-api/models/packages_upload_python.rb +0 -210
  1118. data/lib/cloudsmith-api/models/packages_upload_raw.rb +0 -260
  1119. data/lib/cloudsmith-api/models/packages_upload_rpm.rb +0 -225
  1120. data/lib/cloudsmith-api/models/packages_upload_ruby.rb +0 -210
  1121. data/lib/cloudsmith-api/models/packages_upload_terraform.rb +0 -210
  1122. data/lib/cloudsmith-api/models/packages_upload_vagrant.rb +0 -255
  1123. data/lib/cloudsmith-api/models/packages_validateupload_alpine.rb +0 -225
  1124. data/lib/cloudsmith-api/models/packages_validateupload_cargo.rb +0 -210
  1125. data/lib/cloudsmith-api/models/packages_validateupload_cocoapods.rb +0 -210
  1126. data/lib/cloudsmith-api/models/packages_validateupload_composer.rb +0 -210
  1127. data/lib/cloudsmith-api/models/packages_validateupload_conan.rb +0 -295
  1128. data/lib/cloudsmith-api/models/packages_validateupload_conda.rb +0 -210
  1129. data/lib/cloudsmith-api/models/packages_validateupload_cran.rb +0 -210
  1130. data/lib/cloudsmith-api/models/packages_validateupload_dart.rb +0 -210
  1131. data/lib/cloudsmith-api/models/packages_validateupload_deb.rb +0 -245
  1132. data/lib/cloudsmith-api/models/packages_validateupload_docker.rb +0 -210
  1133. data/lib/cloudsmith-api/models/packages_validateupload_go.rb +0 -210
  1134. data/lib/cloudsmith-api/models/packages_validateupload_helm.rb +0 -210
  1135. data/lib/cloudsmith-api/models/packages_validateupload_luarocks.rb +0 -210
  1136. data/lib/cloudsmith-api/models/packages_validateupload_maven.rb +0 -290
  1137. data/lib/cloudsmith-api/models/packages_validateupload_npm.rb +0 -220
  1138. data/lib/cloudsmith-api/models/packages_validateupload_nuget.rb +0 -220
  1139. data/lib/cloudsmith-api/models/packages_validateupload_p2.rb +0 -210
  1140. data/lib/cloudsmith-api/models/packages_validateupload_python.rb +0 -210
  1141. data/lib/cloudsmith-api/models/packages_validateupload_raw.rb +0 -260
  1142. data/lib/cloudsmith-api/models/packages_validateupload_rpm.rb +0 -225
  1143. data/lib/cloudsmith-api/models/packages_validateupload_ruby.rb +0 -210
  1144. data/lib/cloudsmith-api/models/packages_validateupload_terraform.rb +0 -210
  1145. data/lib/cloudsmith-api/models/packages_validateupload_vagrant.rb +0 -255
  1146. data/lib/cloudsmith-api/models/packagesownerrepo_architectures.rb +0 -195
  1147. data/lib/cloudsmith-api/models/packagesownerrepo_files.rb +0 -315
  1148. data/lib/cloudsmith-api/models/quota_history_history.rb +0 -235
  1149. data/lib/cloudsmith-api/models/repos_create.rb +0 -638
  1150. data/lib/cloudsmith-api/models/repos_gpg_create.rb +0 -200
  1151. data/lib/cloudsmith-api/models/repos_gpg_keys.rb +0 -245
  1152. data/lib/cloudsmith-api/models/repos_partial_update.rb +0 -635
  1153. data/lib/cloudsmith-api/models/repos_rsa_create.rb +0 -200
  1154. data/lib/cloudsmith-api/models/repository_privilege_list.rb +0 -185
  1155. data/lib/cloudsmith-api/models/repository_token_sync_tokens.rb +0 -565
  1156. data/lib/cloudsmith-api/models/status.rb +0 -190
  1157. data/lib/cloudsmith-api/models/user_token_create.rb +0 -195
  1158. data/lib/cloudsmith-api/models/webhooks_create.rb +0 -314
  1159. data/lib/cloudsmith-api/models/webhooks_partial_update.rb +0 -299
  1160. data/lib/cloudsmith-api/models/webhooksownerrepo_templates.rb +0 -195
  1161. data/spec/models/distros_versions_spec.rb +0 -47
  1162. data/spec/models/entitlements_create_spec.rb +0 -133
  1163. data/spec/models/entitlements_partial_update_spec.rb +0 -133
  1164. data/spec/models/entitlements_refresh_spec.rb +0 -127
  1165. data/spec/models/entitlements_sync_spec.rb +0 -41
  1166. data/spec/models/files_abort_spec.rb +0 -63
  1167. data/spec/models/files_complete_spec.rb +0 -63
  1168. data/spec/models/files_create_spec.rb +0 -63
  1169. data/spec/models/files_validate_spec.rb +0 -63
  1170. data/spec/models/formats_distributions_spec.rb +0 -59
  1171. data/spec/models/orgs_invites_create_spec.rb +0 -69
  1172. data/spec/models/orgs_invites_extend_spec.rb +0 -63
  1173. data/spec/models/orgs_samlgroupsync_create_spec.rb +0 -65
  1174. data/spec/models/orgs_teams_create_spec.rb +0 -63
  1175. data/spec/models/orgs_teams_partial_update_spec.rb +0 -63
  1176. data/spec/models/package_dependencies_dependencies_spec.rb +0 -59
  1177. data/spec/models/packages_copy_spec.rb +0 -47
  1178. data/spec/models/packages_move_spec.rb +0 -41
  1179. data/spec/models/packages_quarantine_spec.rb +0 -41
  1180. data/spec/models/packages_tag_spec.rb +0 -57
  1181. data/spec/models/packages_upload_alpine_spec.rb +0 -59
  1182. data/spec/models/packages_upload_cargo_spec.rb +0 -53
  1183. data/spec/models/packages_upload_cocoapods_spec.rb +0 -53
  1184. data/spec/models/packages_upload_composer_spec.rb +0 -53
  1185. data/spec/models/packages_upload_conan_spec.rb +0 -95
  1186. data/spec/models/packages_upload_conda_spec.rb +0 -53
  1187. data/spec/models/packages_upload_cran_spec.rb +0 -53
  1188. data/spec/models/packages_upload_dart_spec.rb +0 -53
  1189. data/spec/models/packages_upload_deb_spec.rb +0 -71
  1190. data/spec/models/packages_upload_docker_spec.rb +0 -53
  1191. data/spec/models/packages_upload_go_spec.rb +0 -53
  1192. data/spec/models/packages_upload_helm_spec.rb +0 -53
  1193. data/spec/models/packages_upload_luarocks_spec.rb +0 -53
  1194. data/spec/models/packages_upload_maven_spec.rb +0 -101
  1195. data/spec/models/packages_upload_npm_spec.rb +0 -59
  1196. data/spec/models/packages_upload_nuget_spec.rb +0 -59
  1197. data/spec/models/packages_upload_p2_spec.rb +0 -53
  1198. data/spec/models/packages_upload_python_spec.rb +0 -53
  1199. data/spec/models/packages_upload_raw_spec.rb +0 -83
  1200. data/spec/models/packages_upload_rpm_spec.rb +0 -59
  1201. data/spec/models/packages_upload_ruby_spec.rb +0 -53
  1202. data/spec/models/packages_upload_terraform_spec.rb +0 -53
  1203. data/spec/models/packages_upload_vagrant_spec.rb +0 -71
  1204. data/spec/models/packages_validateupload_alpine_spec.rb +0 -59
  1205. data/spec/models/packages_validateupload_cargo_spec.rb +0 -53
  1206. data/spec/models/packages_validateupload_cocoapods_spec.rb +0 -53
  1207. data/spec/models/packages_validateupload_composer_spec.rb +0 -53
  1208. data/spec/models/packages_validateupload_conan_spec.rb +0 -95
  1209. data/spec/models/packages_validateupload_conda_spec.rb +0 -53
  1210. data/spec/models/packages_validateupload_cran_spec.rb +0 -53
  1211. data/spec/models/packages_validateupload_dart_spec.rb +0 -53
  1212. data/spec/models/packages_validateupload_deb_spec.rb +0 -71
  1213. data/spec/models/packages_validateupload_docker_spec.rb +0 -53
  1214. data/spec/models/packages_validateupload_go_spec.rb +0 -53
  1215. data/spec/models/packages_validateupload_helm_spec.rb +0 -53
  1216. data/spec/models/packages_validateupload_luarocks_spec.rb +0 -53
  1217. data/spec/models/packages_validateupload_maven_spec.rb +0 -101
  1218. data/spec/models/packages_validateupload_npm_spec.rb +0 -59
  1219. data/spec/models/packages_validateupload_nuget_spec.rb +0 -59
  1220. data/spec/models/packages_validateupload_p2_spec.rb +0 -53
  1221. data/spec/models/packages_validateupload_python_spec.rb +0 -53
  1222. data/spec/models/packages_validateupload_raw_spec.rb +0 -83
  1223. data/spec/models/packages_validateupload_rpm_spec.rb +0 -59
  1224. data/spec/models/packages_validateupload_ruby_spec.rb +0 -53
  1225. data/spec/models/packages_validateupload_terraform_spec.rb +0 -53
  1226. data/spec/models/packages_validateupload_vagrant_spec.rb +0 -71
  1227. data/spec/models/packagesownerrepo_architectures_spec.rb +0 -47
  1228. data/spec/models/packagesownerrepo_files_spec.rb +0 -119
  1229. data/spec/models/quota_history_history_spec.rb +0 -71
  1230. data/spec/models/repos_create_spec.rb +0 -271
  1231. data/spec/models/repos_gpg_create_spec.rb +0 -47
  1232. data/spec/models/repos_gpg_keys_spec.rb +0 -77
  1233. data/spec/models/repos_partial_update_spec.rb +0 -269
  1234. data/spec/models/repos_rsa_create_spec.rb +0 -47
  1235. data/spec/models/repository_privilege_list_spec.rb +0 -41
  1236. data/spec/models/repository_token_sync_tokens_spec.rb +0 -269
  1237. data/spec/models/status_spec.rb +0 -41
  1238. data/spec/models/user_token_create_spec.rb +0 -47
  1239. data/spec/models/webhooks_create_spec.rb +0 -107
  1240. data/spec/models/webhooks_partial_update_spec.rb +0 -107
  1241. data/spec/models/webhooksownerrepo_templates_spec.rb +0 -47
  1242. data/vendor/bundle/ruby/2.6.0/cache/addressable-2.8.0.gem +0 -0
  1243. data/vendor/bundle/ruby/2.6.0/cache/autotest-fsevent-0.2.19.gem +0 -0
  1244. data/vendor/bundle/ruby/2.6.0/cache/ethon-0.15.0.gem +0 -0
  1245. data/vendor/bundle/ruby/2.6.0/cache/json-2.6.2.gem +0 -0
  1246. data/vendor/bundle/ruby/2.6.0/cache/public_suffix-4.0.7.gem +0 -0
  1247. data/vendor/bundle/ruby/2.6.0/cache/rspec-3.11.0.gem +0 -0
  1248. data/vendor/bundle/ruby/2.6.0/cache/rspec-core-3.11.0.gem +0 -0
  1249. data/vendor/bundle/ruby/2.6.0/cache/rspec-expectations-3.11.0.gem +0 -0
  1250. data/vendor/bundle/ruby/2.6.0/cache/rspec-mocks-3.11.1.gem +0 -0
  1251. data/vendor/bundle/ruby/2.6.0/cache/rspec-support-3.11.0.gem +0 -0
  1252. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/autotest-fsevent-0.2.19/gem_make.out +0 -14
  1253. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.2/gem_make.out +0 -13
  1254. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.2/json/ext/generator.so +0 -0
  1255. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.2/json/ext/parser.so +0 -0
  1256. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.2/mkmf.log +0 -128
  1257. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/CHANGELOG.md +0 -246
  1258. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/Gemfile +0 -28
  1259. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/addressable.gemspec +0 -37
  1260. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/lib/addressable/idna/native.rb +0 -61
  1261. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/lib/addressable/idna/pure.rb +0 -678
  1262. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/lib/addressable/idna.rb +0 -27
  1263. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/lib/addressable/template.rb +0 -1031
  1264. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/lib/addressable/uri.rb +0 -2556
  1265. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/lib/addressable/version.rb +0 -32
  1266. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/spec/addressable/idna_spec.rb +0 -302
  1267. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/spec/addressable/net_http_compat_spec.rb +0 -30
  1268. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/spec/addressable/security_spec.rb +0 -59
  1269. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/spec/addressable/template_spec.rb +0 -1460
  1270. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/spec/addressable/uri_spec.rb +0 -6665
  1271. data/vendor/bundle/ruby/2.6.0/gems/addressable-2.8.0/tasks/gem.rake +0 -92
  1272. data/vendor/bundle/ruby/2.6.0/gems/autotest-fsevent-0.2.19/CHANGELOG.md +0 -135
  1273. data/vendor/bundle/ruby/2.6.0/gems/autotest-fsevent-0.2.19/lib/autotest-fsevent/version.rb +0 -5
  1274. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.15.0/.github/workflows/ruby.yml +0 -41
  1275. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.15.0/CHANGELOG.md +0 -372
  1276. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.15.0/README.md +0 -95
  1277. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.15.0/lib/ethon/curls/classes.rb +0 -55
  1278. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.15.0/lib/ethon/curls/options.rb +0 -502
  1279. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.15.0/lib/ethon/easy/callbacks.rb +0 -148
  1280. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.15.0/lib/ethon/easy/informations.rb +0 -113
  1281. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.15.0/lib/ethon/easy/response_callbacks.rb +0 -131
  1282. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.15.0/lib/ethon/version.rb +0 -6
  1283. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.15.0/spec/ethon/easy/callbacks_spec.rb +0 -59
  1284. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.15.0/spec/ethon/easy/informations_spec.rb +0 -120
  1285. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.15.0/spec/ethon/easy/mirror_spec.rb +0 -47
  1286. data/vendor/bundle/ruby/2.6.0/gems/ethon-0.15.0/spec/ethon/easy/operations_spec.rb +0 -268
  1287. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/VERSION +0 -1
  1288. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/ext/json/Makefile +0 -202
  1289. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/ext/json/ext/generator/Makefile +0 -267
  1290. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/ext/json/ext/generator/generator.c +0 -1608
  1291. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/ext/json/ext/generator/generator.o +0 -0
  1292. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/ext/json/ext/generator/generator.so +0 -0
  1293. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/ext/json/ext/parser/Makefile +0 -267
  1294. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/ext/json/ext/parser/parser.c +0 -3347
  1295. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/ext/json/ext/parser/parser.o +0 -0
  1296. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/ext/json/ext/parser/parser.rl +0 -986
  1297. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/ext/json/ext/parser/parser.so +0 -0
  1298. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/lib/json/ext/generator.so +0 -0
  1299. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/lib/json/ext/parser.so +0 -0
  1300. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/lib/json/pure/parser.rb +0 -337
  1301. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.2/lib/json/version.rb +0 -9
  1302. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/.github/dependabot.yml +0 -8
  1303. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/.github/workflows/release.yml +0 -16
  1304. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/.github/workflows/tests.yml +0 -28
  1305. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/.rubocop.yml +0 -36
  1306. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/.rubocop_opinionated.yml +0 -163
  1307. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/CHANGELOG.md +0 -417
  1308. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/Gemfile +0 -14
  1309. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/README.md +0 -217
  1310. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/Rakefile +0 -52
  1311. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/data/list.txt +0 -14035
  1312. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/lib/public_suffix/list.rb +0 -247
  1313. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/lib/public_suffix/rule.rb +0 -350
  1314. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/lib/public_suffix/version.rb +0 -15
  1315. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/lib/public_suffix.rb +0 -177
  1316. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/public_suffix.gemspec +0 -29
  1317. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/test/acceptance_test.rb +0 -131
  1318. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/test/psl_test.rb +0 -52
  1319. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/test/unit/domain_test.rb +0 -106
  1320. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/test/unit/list_test.rb +0 -241
  1321. data/vendor/bundle/ruby/2.6.0/gems/public_suffix-4.0.7/test/unit/rule_test.rb +0 -222
  1322. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.11.0/lib/rspec/version.rb +0 -5
  1323. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.11.0/Changelog.md +0 -2355
  1324. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.11.0/lib/rspec/core/configuration.rb +0 -2383
  1325. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.11.0/lib/rspec/core/formatters/exception_presenter.rb +0 -521
  1326. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.11.0/lib/rspec/core/formatters/html_printer.rb +0 -414
  1327. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.11.0/lib/rspec/core/option_parser.rb +0 -325
  1328. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.11.0/lib/rspec/core/version.rb +0 -9
  1329. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.11.0/Changelog.md +0 -1267
  1330. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.11.0/lib/rspec/expectations/version.rb +0 -8
  1331. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers/built_in/contain_exactly.rb +0 -302
  1332. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers/built_in/count_expectation.rb +0 -169
  1333. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers/built_in/exist.rb +0 -90
  1334. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers/built_in/raise_error.rb +0 -271
  1335. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers/built_in/throw_symbol.rb +0 -138
  1336. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers/dsl.rb +0 -544
  1337. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.11.0/lib/rspec/matchers.rb +0 -1041
  1338. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/Changelog.md +0 -1193
  1339. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/any_instance/message_chains.rb +0 -83
  1340. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/error_generator.rb +0 -369
  1341. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/matchers/have_received.rb +0 -134
  1342. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/matchers/receive.rb +0 -133
  1343. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/matchers/receive_message_chain.rb +0 -82
  1344. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/matchers/receive_messages.rb +0 -77
  1345. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/message_expectation.rb +0 -822
  1346. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/method_double.rb +0 -291
  1347. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/method_reference.rb +0 -202
  1348. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/proxy.rb +0 -525
  1349. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/targets.rb +0 -124
  1350. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/verifying_message_expectation.rb +0 -54
  1351. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.11.1/lib/rspec/mocks/version.rb +0 -9
  1352. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.11.0/Changelog.md +0 -350
  1353. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.11.0/lib/rspec/support/caller_filter.rb +0 -83
  1354. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.11.0/lib/rspec/support/comparable_version.rb +0 -46
  1355. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.11.0/lib/rspec/support/differ.rb +0 -215
  1356. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.11.0/lib/rspec/support/encoded_string.rb +0 -161
  1357. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.11.0/lib/rspec/support/method_signature_verifier.rb +0 -438
  1358. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.11.0/lib/rspec/support/mutex.rb +0 -73
  1359. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.11.0/lib/rspec/support/ruby_features.rb +0 -191
  1360. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.11.0/lib/rspec/support/spec/in_sub_process.rb +0 -67
  1361. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.11.0/lib/rspec/support/spec/stderr_splitter.rb +0 -75
  1362. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.11.0/lib/rspec/support/version.rb +0 -7
  1363. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.11.0/lib/rspec/support/with_keywords_when_needed.rb +0 -33
  1364. data/vendor/bundle/ruby/2.6.0/specifications/addressable-2.8.0.gemspec +0 -36
  1365. data/vendor/bundle/ruby/2.6.0/specifications/autotest-fsevent-0.2.19.gemspec +0 -44
  1366. data/vendor/bundle/ruby/2.6.0/specifications/ethon-0.15.0.gemspec +0 -30
  1367. data/vendor/bundle/ruby/2.6.0/specifications/json-2.6.2.gemspec +0 -0
  1368. data/vendor/bundle/ruby/2.6.0/specifications/public_suffix-4.0.7.gemspec +0 -24
  1369. data/vendor/bundle/ruby/2.6.0/specifications/rspec-3.11.0.gemspec +0 -39
  1370. data/vendor/bundle/ruby/2.6.0/specifications/rspec-core-3.11.0.gemspec +0 -53
  1371. data/vendor/bundle/ruby/2.6.0/specifications/rspec-expectations-3.11.0.gemspec +0 -44
  1372. data/vendor/bundle/ruby/2.6.0/specifications/rspec-mocks-3.11.1.gemspec +0 -44
  1373. data/vendor/bundle/ruby/2.6.0/specifications/rspec-support-3.11.0.gemspec +0 -36
@@ -1,2556 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # encoding:utf-8
4
- #--
5
- # Copyright (C) Bob Aman
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #++
19
-
20
-
21
- require "addressable/version"
22
- require "addressable/idna"
23
- require "public_suffix"
24
-
25
- ##
26
- # Addressable is a library for processing links and URIs.
27
- module Addressable
28
- ##
29
- # This is an implementation of a URI parser based on
30
- # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
31
- # <a href="http://www.ietf.org/rfc/rfc3987.txt">RFC 3987</a>.
32
- class URI
33
- ##
34
- # Raised if something other than a uri is supplied.
35
- class InvalidURIError < StandardError
36
- end
37
-
38
- ##
39
- # Container for the character classes specified in
40
- # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
41
- module CharacterClasses
42
- ALPHA = "a-zA-Z"
43
- DIGIT = "0-9"
44
- GEN_DELIMS = "\\:\\/\\?\\#\\[\\]\\@"
45
- SUB_DELIMS = "\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\="
46
- RESERVED = GEN_DELIMS + SUB_DELIMS
47
- UNRESERVED = ALPHA + DIGIT + "\\-\\.\\_\\~"
48
- PCHAR = UNRESERVED + SUB_DELIMS + "\\:\\@"
49
- SCHEME = ALPHA + DIGIT + "\\-\\+\\."
50
- HOST = UNRESERVED + SUB_DELIMS + "\\[\\:\\]"
51
- AUTHORITY = PCHAR + "\\[\\:\\]"
52
- PATH = PCHAR + "\\/"
53
- QUERY = PCHAR + "\\/\\?"
54
- FRAGMENT = PCHAR + "\\/\\?"
55
- end
56
-
57
- module NormalizeCharacterClasses
58
- HOST = /[^#{CharacterClasses::HOST}]/
59
- UNRESERVED = /[^#{CharacterClasses::UNRESERVED}]/
60
- PCHAR = /[^#{CharacterClasses::PCHAR}]/
61
- SCHEME = /[^#{CharacterClasses::SCHEME}]/
62
- FRAGMENT = /[^#{CharacterClasses::FRAGMENT}]/
63
- QUERY = %r{[^a-zA-Z0-9\-\.\_\~\!\$\'\(\)\*\+\,\=\:\@\/\?%]|%(?!2B|2b)}
64
- end
65
-
66
- SLASH = '/'
67
- EMPTY_STR = ''
68
-
69
- URIREGEX = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/
70
-
71
- PORT_MAPPING = {
72
- "http" => 80,
73
- "https" => 443,
74
- "ftp" => 21,
75
- "tftp" => 69,
76
- "sftp" => 22,
77
- "ssh" => 22,
78
- "svn+ssh" => 22,
79
- "telnet" => 23,
80
- "nntp" => 119,
81
- "gopher" => 70,
82
- "wais" => 210,
83
- "ldap" => 389,
84
- "prospero" => 1525
85
- }.freeze
86
-
87
- ##
88
- # Returns a URI object based on the parsed string.
89
- #
90
- # @param [String, Addressable::URI, #to_str] uri
91
- # The URI string to parse.
92
- # No parsing is performed if the object is already an
93
- # <code>Addressable::URI</code>.
94
- #
95
- # @return [Addressable::URI] The parsed URI.
96
- def self.parse(uri)
97
- # If we were given nil, return nil.
98
- return nil unless uri
99
- # If a URI object is passed, just return itself.
100
- return uri.dup if uri.kind_of?(self)
101
-
102
- # If a URI object of the Ruby standard library variety is passed,
103
- # convert it to a string, then parse the string.
104
- # We do the check this way because we don't want to accidentally
105
- # cause a missing constant exception to be thrown.
106
- if uri.class.name =~ /^URI\b/
107
- uri = uri.to_s
108
- end
109
-
110
- # Otherwise, convert to a String
111
- begin
112
- uri = uri.to_str
113
- rescue TypeError, NoMethodError
114
- raise TypeError, "Can't convert #{uri.class} into String."
115
- end if not uri.is_a? String
116
-
117
- # This Regexp supplied as an example in RFC 3986, and it works great.
118
- scan = uri.scan(URIREGEX)
119
- fragments = scan[0]
120
- scheme = fragments[1]
121
- authority = fragments[3]
122
- path = fragments[4]
123
- query = fragments[6]
124
- fragment = fragments[8]
125
- user = nil
126
- password = nil
127
- host = nil
128
- port = nil
129
- if authority != nil
130
- # The Regexp above doesn't split apart the authority.
131
- userinfo = authority[/^([^\[\]]*)@/, 1]
132
- if userinfo != nil
133
- user = userinfo.strip[/^([^:]*):?/, 1]
134
- password = userinfo.strip[/:(.*)$/, 1]
135
- end
136
- host = authority.sub(
137
- /^([^\[\]]*)@/, EMPTY_STR
138
- ).sub(
139
- /:([^:@\[\]]*?)$/, EMPTY_STR
140
- )
141
- port = authority[/:([^:@\[\]]*?)$/, 1]
142
- end
143
- if port == EMPTY_STR
144
- port = nil
145
- end
146
-
147
- return new(
148
- :scheme => scheme,
149
- :user => user,
150
- :password => password,
151
- :host => host,
152
- :port => port,
153
- :path => path,
154
- :query => query,
155
- :fragment => fragment
156
- )
157
- end
158
-
159
- ##
160
- # Converts an input to a URI. The input does not have to be a valid
161
- # URI — the method will use heuristics to guess what URI was intended.
162
- # This is not standards-compliant, merely user-friendly.
163
- #
164
- # @param [String, Addressable::URI, #to_str] uri
165
- # The URI string to parse.
166
- # No parsing is performed if the object is already an
167
- # <code>Addressable::URI</code>.
168
- # @param [Hash] hints
169
- # A <code>Hash</code> of hints to the heuristic parser.
170
- # Defaults to <code>{:scheme => "http"}</code>.
171
- #
172
- # @return [Addressable::URI] The parsed URI.
173
- def self.heuristic_parse(uri, hints={})
174
- # If we were given nil, return nil.
175
- return nil unless uri
176
- # If a URI object is passed, just return itself.
177
- return uri.dup if uri.kind_of?(self)
178
-
179
- # If a URI object of the Ruby standard library variety is passed,
180
- # convert it to a string, then parse the string.
181
- # We do the check this way because we don't want to accidentally
182
- # cause a missing constant exception to be thrown.
183
- if uri.class.name =~ /^URI\b/
184
- uri = uri.to_s
185
- end
186
-
187
- if !uri.respond_to?(:to_str)
188
- raise TypeError, "Can't convert #{uri.class} into String."
189
- end
190
- # Otherwise, convert to a String
191
- uri = uri.to_str.dup.strip
192
- hints = {
193
- :scheme => "http"
194
- }.merge(hints)
195
- case uri
196
- when /^http:\//i
197
- uri.sub!(/^http:\/+/i, "http://")
198
- when /^https:\//i
199
- uri.sub!(/^https:\/+/i, "https://")
200
- when /^feed:\/+http:\//i
201
- uri.sub!(/^feed:\/+http:\/+/i, "feed:http://")
202
- when /^feed:\//i
203
- uri.sub!(/^feed:\/+/i, "feed://")
204
- when %r[^file:/{4}]i
205
- uri.sub!(%r[^file:/+]i, "file:////")
206
- when %r[^file://localhost/]i
207
- uri.sub!(%r[^file://localhost/+]i, "file:///")
208
- when %r[^file:/+]i
209
- uri.sub!(%r[^file:/+]i, "file:///")
210
- when /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
211
- uri.sub!(/^/, hints[:scheme] + "://")
212
- when /\A\d+\..*:\d+\z/
213
- uri = "#{hints[:scheme]}://#{uri}"
214
- end
215
- match = uri.match(URIREGEX)
216
- fragments = match.captures
217
- authority = fragments[3]
218
- if authority && authority.length > 0
219
- new_authority = authority.tr("\\", "/").gsub(" ", "%20")
220
- # NOTE: We want offset 4, not 3!
221
- offset = match.offset(4)
222
- uri = uri.dup
223
- uri[offset[0]...offset[1]] = new_authority
224
- end
225
- parsed = self.parse(uri)
226
- if parsed.scheme =~ /^[^\/?#\.]+\.[^\/?#]+$/
227
- parsed = self.parse(hints[:scheme] + "://" + uri)
228
- end
229
- if parsed.path.include?(".")
230
- if parsed.path[/\b@\b/]
231
- parsed.scheme = "mailto" unless parsed.scheme
232
- elsif new_host = parsed.path[/^([^\/]+\.[^\/]*)/, 1]
233
- parsed.defer_validation do
234
- new_path = parsed.path.sub(
235
- Regexp.new("^" + Regexp.escape(new_host)), EMPTY_STR)
236
- parsed.host = new_host
237
- parsed.path = new_path
238
- parsed.scheme = hints[:scheme] unless parsed.scheme
239
- end
240
- end
241
- end
242
- return parsed
243
- end
244
-
245
- ##
246
- # Converts a path to a file scheme URI. If the path supplied is
247
- # relative, it will be returned as a relative URI. If the path supplied
248
- # is actually a non-file URI, it will parse the URI as if it had been
249
- # parsed with <code>Addressable::URI.parse</code>. Handles all of the
250
- # various Microsoft-specific formats for specifying paths.
251
- #
252
- # @param [String, Addressable::URI, #to_str] path
253
- # Typically a <code>String</code> path to a file or directory, but
254
- # will return a sensible return value if an absolute URI is supplied
255
- # instead.
256
- #
257
- # @return [Addressable::URI]
258
- # The parsed file scheme URI or the original URI if some other URI
259
- # scheme was provided.
260
- #
261
- # @example
262
- # base = Addressable::URI.convert_path("/absolute/path/")
263
- # uri = Addressable::URI.convert_path("relative/path")
264
- # (base + uri).to_s
265
- # #=> "file:///absolute/path/relative/path"
266
- #
267
- # Addressable::URI.convert_path(
268
- # "c:\\windows\\My Documents 100%20\\foo.txt"
269
- # ).to_s
270
- # #=> "file:///c:/windows/My%20Documents%20100%20/foo.txt"
271
- #
272
- # Addressable::URI.convert_path("http://example.com/").to_s
273
- # #=> "http://example.com/"
274
- def self.convert_path(path)
275
- # If we were given nil, return nil.
276
- return nil unless path
277
- # If a URI object is passed, just return itself.
278
- return path if path.kind_of?(self)
279
- if !path.respond_to?(:to_str)
280
- raise TypeError, "Can't convert #{path.class} into String."
281
- end
282
- # Otherwise, convert to a String
283
- path = path.to_str.strip
284
-
285
- path.sub!(/^file:\/?\/?/, EMPTY_STR) if path =~ /^file:\/?\/?/
286
- path = SLASH + path if path =~ /^([a-zA-Z])[\|:]/
287
- uri = self.parse(path)
288
-
289
- if uri.scheme == nil
290
- # Adjust windows-style uris
291
- uri.path.sub!(/^\/?([a-zA-Z])[\|:][\\\/]/) do
292
- "/#{$1.downcase}:/"
293
- end
294
- uri.path.tr!("\\", SLASH)
295
- if File.exist?(uri.path) &&
296
- File.stat(uri.path).directory?
297
- uri.path.chomp!(SLASH)
298
- uri.path = uri.path + '/'
299
- end
300
-
301
- # If the path is absolute, set the scheme and host.
302
- if uri.path.start_with?(SLASH)
303
- uri.scheme = "file"
304
- uri.host = EMPTY_STR
305
- end
306
- uri.normalize!
307
- end
308
-
309
- return uri
310
- end
311
-
312
- ##
313
- # Joins several URIs together.
314
- #
315
- # @param [String, Addressable::URI, #to_str] *uris
316
- # The URIs to join.
317
- #
318
- # @return [Addressable::URI] The joined URI.
319
- #
320
- # @example
321
- # base = "http://example.com/"
322
- # uri = Addressable::URI.parse("relative/path")
323
- # Addressable::URI.join(base, uri)
324
- # #=> #<Addressable::URI:0xcab390 URI:http://example.com/relative/path>
325
- def self.join(*uris)
326
- uri_objects = uris.collect do |uri|
327
- if !uri.respond_to?(:to_str)
328
- raise TypeError, "Can't convert #{uri.class} into String."
329
- end
330
- uri.kind_of?(self) ? uri : self.parse(uri.to_str)
331
- end
332
- result = uri_objects.shift.dup
333
- for uri in uri_objects
334
- result.join!(uri)
335
- end
336
- return result
337
- end
338
-
339
- ##
340
- # Tables used to optimize encoding operations in `self.encode_component`
341
- # and `self.normalize_component`
342
- SEQUENCE_ENCODING_TABLE = Hash.new do |hash, sequence|
343
- hash[sequence] = sequence.unpack("C*").map do |c|
344
- format("%02x", c)
345
- end.join
346
- end
347
-
348
- SEQUENCE_UPCASED_PERCENT_ENCODING_TABLE = Hash.new do |hash, sequence|
349
- hash[sequence] = sequence.unpack("C*").map do |c|
350
- format("%%%02X", c)
351
- end.join
352
- end
353
-
354
- ##
355
- # Percent encodes a URI component.
356
- #
357
- # @param [String, #to_str] component The URI component to encode.
358
- #
359
- # @param [String, Regexp] character_class
360
- # The characters which are not percent encoded. If a <code>String</code>
361
- # is passed, the <code>String</code> must be formatted as a regular
362
- # expression character class. (Do not include the surrounding square
363
- # brackets.) For example, <code>"b-zB-Z0-9"</code> would cause
364
- # everything but the letters 'b' through 'z' and the numbers '0' through
365
- # '9' to be percent encoded. If a <code>Regexp</code> is passed, the
366
- # value <code>/[^b-zB-Z0-9]/</code> would have the same effect. A set of
367
- # useful <code>String</code> values may be found in the
368
- # <code>Addressable::URI::CharacterClasses</code> module. The default
369
- # value is the reserved plus unreserved character classes specified in
370
- # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
371
- #
372
- # @param [Regexp] upcase_encoded
373
- # A string of characters that may already be percent encoded, and whose
374
- # encodings should be upcased. This allows normalization of percent
375
- # encodings for characters not included in the
376
- # <code>character_class</code>.
377
- #
378
- # @return [String] The encoded component.
379
- #
380
- # @example
381
- # Addressable::URI.encode_component("simple/example", "b-zB-Z0-9")
382
- # => "simple%2Fex%61mple"
383
- # Addressable::URI.encode_component("simple/example", /[^b-zB-Z0-9]/)
384
- # => "simple%2Fex%61mple"
385
- # Addressable::URI.encode_component(
386
- # "simple/example", Addressable::URI::CharacterClasses::UNRESERVED
387
- # )
388
- # => "simple%2Fexample"
389
- def self.encode_component(component, character_class=
390
- CharacterClasses::RESERVED + CharacterClasses::UNRESERVED,
391
- upcase_encoded='')
392
- return nil if component.nil?
393
-
394
- begin
395
- if component.kind_of?(Symbol) ||
396
- component.kind_of?(Numeric) ||
397
- component.kind_of?(TrueClass) ||
398
- component.kind_of?(FalseClass)
399
- component = component.to_s
400
- else
401
- component = component.to_str
402
- end
403
- rescue TypeError, NoMethodError
404
- raise TypeError, "Can't convert #{component.class} into String."
405
- end if !component.is_a? String
406
-
407
- if ![String, Regexp].include?(character_class.class)
408
- raise TypeError,
409
- "Expected String or Regexp, got #{character_class.inspect}"
410
- end
411
- if character_class.kind_of?(String)
412
- character_class = /[^#{character_class}]/
413
- end
414
- # We can't perform regexps on invalid UTF sequences, but
415
- # here we need to, so switch to ASCII.
416
- component = component.dup
417
- component.force_encoding(Encoding::ASCII_8BIT)
418
- # Avoiding gsub! because there are edge cases with frozen strings
419
- component = component.gsub(character_class) do |sequence|
420
- SEQUENCE_UPCASED_PERCENT_ENCODING_TABLE[sequence]
421
- end
422
- if upcase_encoded.length > 0
423
- upcase_encoded_chars = upcase_encoded.chars.map do |char|
424
- SEQUENCE_ENCODING_TABLE[char]
425
- end
426
- component = component.gsub(/%(#{upcase_encoded_chars.join('|')})/,
427
- &:upcase)
428
- end
429
- return component
430
- end
431
-
432
- class << self
433
- alias_method :escape_component, :encode_component
434
- end
435
-
436
- ##
437
- # Unencodes any percent encoded characters within a URI component.
438
- # This method may be used for unencoding either components or full URIs,
439
- # however, it is recommended to use the <code>unencode_component</code>
440
- # alias when unencoding components.
441
- #
442
- # @param [String, Addressable::URI, #to_str] uri
443
- # The URI or component to unencode.
444
- #
445
- # @param [Class] return_type
446
- # The type of object to return.
447
- # This value may only be set to <code>String</code> or
448
- # <code>Addressable::URI</code>. All other values are invalid. Defaults
449
- # to <code>String</code>.
450
- #
451
- # @param [String] leave_encoded
452
- # A string of characters to leave encoded. If a percent encoded character
453
- # in this list is encountered then it will remain percent encoded.
454
- #
455
- # @return [String, Addressable::URI]
456
- # The unencoded component or URI.
457
- # The return type is determined by the <code>return_type</code>
458
- # parameter.
459
- def self.unencode(uri, return_type=String, leave_encoded='')
460
- return nil if uri.nil?
461
-
462
- begin
463
- uri = uri.to_str
464
- rescue NoMethodError, TypeError
465
- raise TypeError, "Can't convert #{uri.class} into String."
466
- end if !uri.is_a? String
467
- if ![String, ::Addressable::URI].include?(return_type)
468
- raise TypeError,
469
- "Expected Class (String or Addressable::URI), " +
470
- "got #{return_type.inspect}"
471
- end
472
- uri = uri.dup
473
- # Seriously, only use UTF-8. I'm really not kidding!
474
- uri.force_encoding("utf-8")
475
-
476
- unless leave_encoded.empty?
477
- leave_encoded = leave_encoded.dup.force_encoding("utf-8")
478
- end
479
-
480
- result = uri.gsub(/%[0-9a-f]{2}/iu) do |sequence|
481
- c = sequence[1..3].to_i(16).chr
482
- c.force_encoding("utf-8")
483
- leave_encoded.include?(c) ? sequence : c
484
- end
485
- result.force_encoding("utf-8")
486
- if return_type == String
487
- return result
488
- elsif return_type == ::Addressable::URI
489
- return ::Addressable::URI.parse(result)
490
- end
491
- end
492
-
493
- class << self
494
- alias_method :unescape, :unencode
495
- alias_method :unencode_component, :unencode
496
- alias_method :unescape_component, :unencode
497
- end
498
-
499
-
500
- ##
501
- # Normalizes the encoding of a URI component.
502
- #
503
- # @param [String, #to_str] component The URI component to encode.
504
- #
505
- # @param [String, Regexp] character_class
506
- # The characters which are not percent encoded. If a <code>String</code>
507
- # is passed, the <code>String</code> must be formatted as a regular
508
- # expression character class. (Do not include the surrounding square
509
- # brackets.) For example, <code>"b-zB-Z0-9"</code> would cause
510
- # everything but the letters 'b' through 'z' and the numbers '0'
511
- # through '9' to be percent encoded. If a <code>Regexp</code> is passed,
512
- # the value <code>/[^b-zB-Z0-9]/</code> would have the same effect. A
513
- # set of useful <code>String</code> values may be found in the
514
- # <code>Addressable::URI::CharacterClasses</code> module. The default
515
- # value is the reserved plus unreserved character classes specified in
516
- # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
517
- #
518
- # @param [String] leave_encoded
519
- # When <code>character_class</code> is a <code>String</code> then
520
- # <code>leave_encoded</code> is a string of characters that should remain
521
- # percent encoded while normalizing the component; if they appear percent
522
- # encoded in the original component, then they will be upcased ("%2f"
523
- # normalized to "%2F") but otherwise left alone.
524
- #
525
- # @return [String] The normalized component.
526
- #
527
- # @example
528
- # Addressable::URI.normalize_component("simpl%65/%65xampl%65", "b-zB-Z")
529
- # => "simple%2Fex%61mple"
530
- # Addressable::URI.normalize_component(
531
- # "simpl%65/%65xampl%65", /[^b-zB-Z]/
532
- # )
533
- # => "simple%2Fex%61mple"
534
- # Addressable::URI.normalize_component(
535
- # "simpl%65/%65xampl%65",
536
- # Addressable::URI::CharacterClasses::UNRESERVED
537
- # )
538
- # => "simple%2Fexample"
539
- # Addressable::URI.normalize_component(
540
- # "one%20two%2fthree%26four",
541
- # "0-9a-zA-Z &/",
542
- # "/"
543
- # )
544
- # => "one two%2Fthree&four"
545
- def self.normalize_component(component, character_class=
546
- CharacterClasses::RESERVED + CharacterClasses::UNRESERVED,
547
- leave_encoded='')
548
- return nil if component.nil?
549
-
550
- begin
551
- component = component.to_str
552
- rescue NoMethodError, TypeError
553
- raise TypeError, "Can't convert #{component.class} into String."
554
- end if !component.is_a? String
555
-
556
- if ![String, Regexp].include?(character_class.class)
557
- raise TypeError,
558
- "Expected String or Regexp, got #{character_class.inspect}"
559
- end
560
- if character_class.kind_of?(String)
561
- leave_re = if leave_encoded.length > 0
562
- character_class = "#{character_class}%" unless character_class.include?('%')
563
-
564
- "|%(?!#{leave_encoded.chars.map do |char|
565
- seq = SEQUENCE_ENCODING_TABLE[char]
566
- [seq.upcase, seq.downcase]
567
- end.flatten.join('|')})"
568
- end
569
-
570
- character_class = if leave_re
571
- /[^#{character_class}]#{leave_re}/
572
- else
573
- /[^#{character_class}]/
574
- end
575
- end
576
- # We can't perform regexps on invalid UTF sequences, but
577
- # here we need to, so switch to ASCII.
578
- component = component.dup
579
- component.force_encoding(Encoding::ASCII_8BIT)
580
- unencoded = self.unencode_component(component, String, leave_encoded)
581
- begin
582
- encoded = self.encode_component(
583
- Addressable::IDNA.unicode_normalize_kc(unencoded),
584
- character_class,
585
- leave_encoded
586
- )
587
- rescue ArgumentError
588
- encoded = self.encode_component(unencoded)
589
- end
590
- encoded.force_encoding(Encoding::UTF_8)
591
- return encoded
592
- end
593
-
594
- ##
595
- # Percent encodes any special characters in the URI.
596
- #
597
- # @param [String, Addressable::URI, #to_str] uri
598
- # The URI to encode.
599
- #
600
- # @param [Class] return_type
601
- # The type of object to return.
602
- # This value may only be set to <code>String</code> or
603
- # <code>Addressable::URI</code>. All other values are invalid. Defaults
604
- # to <code>String</code>.
605
- #
606
- # @return [String, Addressable::URI]
607
- # The encoded URI.
608
- # The return type is determined by the <code>return_type</code>
609
- # parameter.
610
- def self.encode(uri, return_type=String)
611
- return nil if uri.nil?
612
-
613
- begin
614
- uri = uri.to_str
615
- rescue NoMethodError, TypeError
616
- raise TypeError, "Can't convert #{uri.class} into String."
617
- end if !uri.is_a? String
618
-
619
- if ![String, ::Addressable::URI].include?(return_type)
620
- raise TypeError,
621
- "Expected Class (String or Addressable::URI), " +
622
- "got #{return_type.inspect}"
623
- end
624
- uri_object = uri.kind_of?(self) ? uri : self.parse(uri)
625
- encoded_uri = Addressable::URI.new(
626
- :scheme => self.encode_component(uri_object.scheme,
627
- Addressable::URI::CharacterClasses::SCHEME),
628
- :authority => self.encode_component(uri_object.authority,
629
- Addressable::URI::CharacterClasses::AUTHORITY),
630
- :path => self.encode_component(uri_object.path,
631
- Addressable::URI::CharacterClasses::PATH),
632
- :query => self.encode_component(uri_object.query,
633
- Addressable::URI::CharacterClasses::QUERY),
634
- :fragment => self.encode_component(uri_object.fragment,
635
- Addressable::URI::CharacterClasses::FRAGMENT)
636
- )
637
- if return_type == String
638
- return encoded_uri.to_s
639
- elsif return_type == ::Addressable::URI
640
- return encoded_uri
641
- end
642
- end
643
-
644
- class << self
645
- alias_method :escape, :encode
646
- end
647
-
648
- ##
649
- # Normalizes the encoding of a URI. Characters within a hostname are
650
- # not percent encoded to allow for internationalized domain names.
651
- #
652
- # @param [String, Addressable::URI, #to_str] uri
653
- # The URI to encode.
654
- #
655
- # @param [Class] return_type
656
- # The type of object to return.
657
- # This value may only be set to <code>String</code> or
658
- # <code>Addressable::URI</code>. All other values are invalid. Defaults
659
- # to <code>String</code>.
660
- #
661
- # @return [String, Addressable::URI]
662
- # The encoded URI.
663
- # The return type is determined by the <code>return_type</code>
664
- # parameter.
665
- def self.normalized_encode(uri, return_type=String)
666
- begin
667
- uri = uri.to_str
668
- rescue NoMethodError, TypeError
669
- raise TypeError, "Can't convert #{uri.class} into String."
670
- end if !uri.is_a? String
671
-
672
- if ![String, ::Addressable::URI].include?(return_type)
673
- raise TypeError,
674
- "Expected Class (String or Addressable::URI), " +
675
- "got #{return_type.inspect}"
676
- end
677
- uri_object = uri.kind_of?(self) ? uri : self.parse(uri)
678
- components = {
679
- :scheme => self.unencode_component(uri_object.scheme),
680
- :user => self.unencode_component(uri_object.user),
681
- :password => self.unencode_component(uri_object.password),
682
- :host => self.unencode_component(uri_object.host),
683
- :port => (uri_object.port.nil? ? nil : uri_object.port.to_s),
684
- :path => self.unencode_component(uri_object.path),
685
- :query => self.unencode_component(uri_object.query),
686
- :fragment => self.unencode_component(uri_object.fragment)
687
- }
688
- components.each do |key, value|
689
- if value != nil
690
- begin
691
- components[key] =
692
- Addressable::IDNA.unicode_normalize_kc(value.to_str)
693
- rescue ArgumentError
694
- # Likely a malformed UTF-8 character, skip unicode normalization
695
- components[key] = value.to_str
696
- end
697
- end
698
- end
699
- encoded_uri = Addressable::URI.new(
700
- :scheme => self.encode_component(components[:scheme],
701
- Addressable::URI::CharacterClasses::SCHEME),
702
- :user => self.encode_component(components[:user],
703
- Addressable::URI::CharacterClasses::UNRESERVED),
704
- :password => self.encode_component(components[:password],
705
- Addressable::URI::CharacterClasses::UNRESERVED),
706
- :host => components[:host],
707
- :port => components[:port],
708
- :path => self.encode_component(components[:path],
709
- Addressable::URI::CharacterClasses::PATH),
710
- :query => self.encode_component(components[:query],
711
- Addressable::URI::CharacterClasses::QUERY),
712
- :fragment => self.encode_component(components[:fragment],
713
- Addressable::URI::CharacterClasses::FRAGMENT)
714
- )
715
- if return_type == String
716
- return encoded_uri.to_s
717
- elsif return_type == ::Addressable::URI
718
- return encoded_uri
719
- end
720
- end
721
-
722
- ##
723
- # Encodes a set of key/value pairs according to the rules for the
724
- # <code>application/x-www-form-urlencoded</code> MIME type.
725
- #
726
- # @param [#to_hash, #to_ary] form_values
727
- # The form values to encode.
728
- #
729
- # @param [TrueClass, FalseClass] sort
730
- # Sort the key/value pairs prior to encoding.
731
- # Defaults to <code>false</code>.
732
- #
733
- # @return [String]
734
- # The encoded value.
735
- def self.form_encode(form_values, sort=false)
736
- if form_values.respond_to?(:to_hash)
737
- form_values = form_values.to_hash.to_a
738
- elsif form_values.respond_to?(:to_ary)
739
- form_values = form_values.to_ary
740
- else
741
- raise TypeError, "Can't convert #{form_values.class} into Array."
742
- end
743
-
744
- form_values = form_values.inject([]) do |accu, (key, value)|
745
- if value.kind_of?(Array)
746
- value.each do |v|
747
- accu << [key.to_s, v.to_s]
748
- end
749
- else
750
- accu << [key.to_s, value.to_s]
751
- end
752
- accu
753
- end
754
-
755
- if sort
756
- # Useful for OAuth and optimizing caching systems
757
- form_values = form_values.sort
758
- end
759
- escaped_form_values = form_values.map do |(key, value)|
760
- # Line breaks are CRLF pairs
761
- [
762
- self.encode_component(
763
- key.gsub(/(\r\n|\n|\r)/, "\r\n"),
764
- CharacterClasses::UNRESERVED
765
- ).gsub("%20", "+"),
766
- self.encode_component(
767
- value.gsub(/(\r\n|\n|\r)/, "\r\n"),
768
- CharacterClasses::UNRESERVED
769
- ).gsub("%20", "+")
770
- ]
771
- end
772
- return escaped_form_values.map do |(key, value)|
773
- "#{key}=#{value}"
774
- end.join("&")
775
- end
776
-
777
- ##
778
- # Decodes a <code>String</code> according to the rules for the
779
- # <code>application/x-www-form-urlencoded</code> MIME type.
780
- #
781
- # @param [String, #to_str] encoded_value
782
- # The form values to decode.
783
- #
784
- # @return [Array]
785
- # The decoded values.
786
- # This is not a <code>Hash</code> because of the possibility for
787
- # duplicate keys.
788
- def self.form_unencode(encoded_value)
789
- if !encoded_value.respond_to?(:to_str)
790
- raise TypeError, "Can't convert #{encoded_value.class} into String."
791
- end
792
- encoded_value = encoded_value.to_str
793
- split_values = encoded_value.split("&").map do |pair|
794
- pair.split("=", 2)
795
- end
796
- return split_values.map do |(key, value)|
797
- [
798
- key ? self.unencode_component(
799
- key.gsub("+", "%20")).gsub(/(\r\n|\n|\r)/, "\n") : nil,
800
- value ? (self.unencode_component(
801
- value.gsub("+", "%20")).gsub(/(\r\n|\n|\r)/, "\n")) : nil
802
- ]
803
- end
804
- end
805
-
806
- ##
807
- # Creates a new uri object from component parts.
808
- #
809
- # @option [String, #to_str] scheme The scheme component.
810
- # @option [String, #to_str] user The user component.
811
- # @option [String, #to_str] password The password component.
812
- # @option [String, #to_str] userinfo
813
- # The userinfo component. If this is supplied, the user and password
814
- # components must be omitted.
815
- # @option [String, #to_str] host The host component.
816
- # @option [String, #to_str] port The port component.
817
- # @option [String, #to_str] authority
818
- # The authority component. If this is supplied, the user, password,
819
- # userinfo, host, and port components must be omitted.
820
- # @option [String, #to_str] path The path component.
821
- # @option [String, #to_str] query The query component.
822
- # @option [String, #to_str] fragment The fragment component.
823
- #
824
- # @return [Addressable::URI] The constructed URI object.
825
- def initialize(options={})
826
- if options.has_key?(:authority)
827
- if (options.keys & [:userinfo, :user, :password, :host, :port]).any?
828
- raise ArgumentError,
829
- "Cannot specify both an authority and any of the components " +
830
- "within the authority."
831
- end
832
- end
833
- if options.has_key?(:userinfo)
834
- if (options.keys & [:user, :password]).any?
835
- raise ArgumentError,
836
- "Cannot specify both a userinfo and either the user or password."
837
- end
838
- end
839
-
840
- self.defer_validation do
841
- # Bunch of crazy logic required because of the composite components
842
- # like userinfo and authority.
843
- self.scheme = options[:scheme] if options[:scheme]
844
- self.user = options[:user] if options[:user]
845
- self.password = options[:password] if options[:password]
846
- self.userinfo = options[:userinfo] if options[:userinfo]
847
- self.host = options[:host] if options[:host]
848
- self.port = options[:port] if options[:port]
849
- self.authority = options[:authority] if options[:authority]
850
- self.path = options[:path] if options[:path]
851
- self.query = options[:query] if options[:query]
852
- self.query_values = options[:query_values] if options[:query_values]
853
- self.fragment = options[:fragment] if options[:fragment]
854
- end
855
- self.to_s
856
- end
857
-
858
- ##
859
- # Freeze URI, initializing instance variables.
860
- #
861
- # @return [Addressable::URI] The frozen URI object.
862
- def freeze
863
- self.normalized_scheme
864
- self.normalized_user
865
- self.normalized_password
866
- self.normalized_userinfo
867
- self.normalized_host
868
- self.normalized_port
869
- self.normalized_authority
870
- self.normalized_site
871
- self.normalized_path
872
- self.normalized_query
873
- self.normalized_fragment
874
- self.hash
875
- super
876
- end
877
-
878
- ##
879
- # The scheme component for this URI.
880
- #
881
- # @return [String] The scheme component.
882
- def scheme
883
- return defined?(@scheme) ? @scheme : nil
884
- end
885
-
886
- ##
887
- # The scheme component for this URI, normalized.
888
- #
889
- # @return [String] The scheme component, normalized.
890
- def normalized_scheme
891
- return nil unless self.scheme
892
- @normalized_scheme ||= begin
893
- if self.scheme =~ /^\s*ssh\+svn\s*$/i
894
- "svn+ssh".dup
895
- else
896
- Addressable::URI.normalize_component(
897
- self.scheme.strip.downcase,
898
- Addressable::URI::NormalizeCharacterClasses::SCHEME
899
- )
900
- end
901
- end
902
- # All normalized values should be UTF-8
903
- @normalized_scheme.force_encoding(Encoding::UTF_8) if @normalized_scheme
904
- @normalized_scheme
905
- end
906
-
907
- ##
908
- # Sets the scheme component for this URI.
909
- #
910
- # @param [String, #to_str] new_scheme The new scheme component.
911
- def scheme=(new_scheme)
912
- if new_scheme && !new_scheme.respond_to?(:to_str)
913
- raise TypeError, "Can't convert #{new_scheme.class} into String."
914
- elsif new_scheme
915
- new_scheme = new_scheme.to_str
916
- end
917
- if new_scheme && new_scheme !~ /\A[a-z][a-z0-9\.\+\-]*\z/i
918
- raise InvalidURIError, "Invalid scheme format: '#{new_scheme}'"
919
- end
920
- @scheme = new_scheme
921
- @scheme = nil if @scheme.to_s.strip.empty?
922
-
923
- # Reset dependent values
924
- remove_instance_variable(:@normalized_scheme) if defined?(@normalized_scheme)
925
- remove_composite_values
926
-
927
- # Ensure we haven't created an invalid URI
928
- validate()
929
- end
930
-
931
- ##
932
- # The user component for this URI.
933
- #
934
- # @return [String] The user component.
935
- def user
936
- return defined?(@user) ? @user : nil
937
- end
938
-
939
- ##
940
- # The user component for this URI, normalized.
941
- #
942
- # @return [String] The user component, normalized.
943
- def normalized_user
944
- return nil unless self.user
945
- return @normalized_user if defined?(@normalized_user)
946
- @normalized_user ||= begin
947
- if normalized_scheme =~ /https?/ && self.user.strip.empty? &&
948
- (!self.password || self.password.strip.empty?)
949
- nil
950
- else
951
- Addressable::URI.normalize_component(
952
- self.user.strip,
953
- Addressable::URI::NormalizeCharacterClasses::UNRESERVED
954
- )
955
- end
956
- end
957
- # All normalized values should be UTF-8
958
- @normalized_user.force_encoding(Encoding::UTF_8) if @normalized_user
959
- @normalized_user
960
- end
961
-
962
- ##
963
- # Sets the user component for this URI.
964
- #
965
- # @param [String, #to_str] new_user The new user component.
966
- def user=(new_user)
967
- if new_user && !new_user.respond_to?(:to_str)
968
- raise TypeError, "Can't convert #{new_user.class} into String."
969
- end
970
- @user = new_user ? new_user.to_str : nil
971
-
972
- # You can't have a nil user with a non-nil password
973
- if password != nil
974
- @user = EMPTY_STR if @user.nil?
975
- end
976
-
977
- # Reset dependent values
978
- remove_instance_variable(:@userinfo) if defined?(@userinfo)
979
- remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
980
- remove_instance_variable(:@authority) if defined?(@authority)
981
- remove_instance_variable(:@normalized_user) if defined?(@normalized_user)
982
- remove_composite_values
983
-
984
- # Ensure we haven't created an invalid URI
985
- validate()
986
- end
987
-
988
- ##
989
- # The password component for this URI.
990
- #
991
- # @return [String] The password component.
992
- def password
993
- return defined?(@password) ? @password : nil
994
- end
995
-
996
- ##
997
- # The password component for this URI, normalized.
998
- #
999
- # @return [String] The password component, normalized.
1000
- def normalized_password
1001
- return nil unless self.password
1002
- return @normalized_password if defined?(@normalized_password)
1003
- @normalized_password ||= begin
1004
- if self.normalized_scheme =~ /https?/ && self.password.strip.empty? &&
1005
- (!self.user || self.user.strip.empty?)
1006
- nil
1007
- else
1008
- Addressable::URI.normalize_component(
1009
- self.password.strip,
1010
- Addressable::URI::NormalizeCharacterClasses::UNRESERVED
1011
- )
1012
- end
1013
- end
1014
- # All normalized values should be UTF-8
1015
- if @normalized_password
1016
- @normalized_password.force_encoding(Encoding::UTF_8)
1017
- end
1018
- @normalized_password
1019
- end
1020
-
1021
- ##
1022
- # Sets the password component for this URI.
1023
- #
1024
- # @param [String, #to_str] new_password The new password component.
1025
- def password=(new_password)
1026
- if new_password && !new_password.respond_to?(:to_str)
1027
- raise TypeError, "Can't convert #{new_password.class} into String."
1028
- end
1029
- @password = new_password ? new_password.to_str : nil
1030
-
1031
- # You can't have a nil user with a non-nil password
1032
- @password ||= nil
1033
- @user ||= nil
1034
- if @password != nil
1035
- @user = EMPTY_STR if @user.nil?
1036
- end
1037
-
1038
- # Reset dependent values
1039
- remove_instance_variable(:@userinfo) if defined?(@userinfo)
1040
- remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
1041
- remove_instance_variable(:@authority) if defined?(@authority)
1042
- remove_instance_variable(:@normalized_password) if defined?(@normalized_password)
1043
- remove_composite_values
1044
-
1045
- # Ensure we haven't created an invalid URI
1046
- validate()
1047
- end
1048
-
1049
- ##
1050
- # The userinfo component for this URI.
1051
- # Combines the user and password components.
1052
- #
1053
- # @return [String] The userinfo component.
1054
- def userinfo
1055
- current_user = self.user
1056
- current_password = self.password
1057
- (current_user || current_password) && @userinfo ||= begin
1058
- if current_user && current_password
1059
- "#{current_user}:#{current_password}"
1060
- elsif current_user && !current_password
1061
- "#{current_user}"
1062
- end
1063
- end
1064
- end
1065
-
1066
- ##
1067
- # The userinfo component for this URI, normalized.
1068
- #
1069
- # @return [String] The userinfo component, normalized.
1070
- def normalized_userinfo
1071
- return nil unless self.userinfo
1072
- return @normalized_userinfo if defined?(@normalized_userinfo)
1073
- @normalized_userinfo ||= begin
1074
- current_user = self.normalized_user
1075
- current_password = self.normalized_password
1076
- if !current_user && !current_password
1077
- nil
1078
- elsif current_user && current_password
1079
- "#{current_user}:#{current_password}".dup
1080
- elsif current_user && !current_password
1081
- "#{current_user}".dup
1082
- end
1083
- end
1084
- # All normalized values should be UTF-8
1085
- if @normalized_userinfo
1086
- @normalized_userinfo.force_encoding(Encoding::UTF_8)
1087
- end
1088
- @normalized_userinfo
1089
- end
1090
-
1091
- ##
1092
- # Sets the userinfo component for this URI.
1093
- #
1094
- # @param [String, #to_str] new_userinfo The new userinfo component.
1095
- def userinfo=(new_userinfo)
1096
- if new_userinfo && !new_userinfo.respond_to?(:to_str)
1097
- raise TypeError, "Can't convert #{new_userinfo.class} into String."
1098
- end
1099
- new_user, new_password = if new_userinfo
1100
- [
1101
- new_userinfo.to_str.strip[/^(.*):/, 1],
1102
- new_userinfo.to_str.strip[/:(.*)$/, 1]
1103
- ]
1104
- else
1105
- [nil, nil]
1106
- end
1107
-
1108
- # Password assigned first to ensure validity in case of nil
1109
- self.password = new_password
1110
- self.user = new_user
1111
-
1112
- # Reset dependent values
1113
- remove_instance_variable(:@authority) if defined?(@authority)
1114
- remove_composite_values
1115
-
1116
- # Ensure we haven't created an invalid URI
1117
- validate()
1118
- end
1119
-
1120
- ##
1121
- # The host component for this URI.
1122
- #
1123
- # @return [String] The host component.
1124
- def host
1125
- return defined?(@host) ? @host : nil
1126
- end
1127
-
1128
- ##
1129
- # The host component for this URI, normalized.
1130
- #
1131
- # @return [String] The host component, normalized.
1132
- def normalized_host
1133
- return nil unless self.host
1134
-
1135
- @normalized_host ||= begin
1136
- if !self.host.strip.empty?
1137
- result = ::Addressable::IDNA.to_ascii(
1138
- URI.unencode_component(self.host.strip.downcase)
1139
- )
1140
- if result =~ /[^\.]\.$/
1141
- # Single trailing dots are unnecessary.
1142
- result = result[0...-1]
1143
- end
1144
- result = Addressable::URI.normalize_component(
1145
- result,
1146
- NormalizeCharacterClasses::HOST
1147
- )
1148
- result
1149
- else
1150
- EMPTY_STR.dup
1151
- end
1152
- end
1153
- # All normalized values should be UTF-8
1154
- if @normalized_host && !@normalized_host.empty?
1155
- @normalized_host.force_encoding(Encoding::UTF_8)
1156
- end
1157
- @normalized_host
1158
- end
1159
-
1160
- ##
1161
- # Sets the host component for this URI.
1162
- #
1163
- # @param [String, #to_str] new_host The new host component.
1164
- def host=(new_host)
1165
- if new_host && !new_host.respond_to?(:to_str)
1166
- raise TypeError, "Can't convert #{new_host.class} into String."
1167
- end
1168
- @host = new_host ? new_host.to_str : nil
1169
-
1170
- # Reset dependent values
1171
- remove_instance_variable(:@authority) if defined?(@authority)
1172
- remove_instance_variable(:@normalized_host) if defined?(@normalized_host)
1173
- remove_composite_values
1174
-
1175
- # Ensure we haven't created an invalid URI
1176
- validate()
1177
- end
1178
-
1179
- ##
1180
- # This method is same as URI::Generic#host except
1181
- # brackets for IPv6 (and 'IPvFuture') addresses are removed.
1182
- #
1183
- # @see Addressable::URI#host
1184
- #
1185
- # @return [String] The hostname for this URI.
1186
- def hostname
1187
- v = self.host
1188
- /\A\[(.*)\]\z/ =~ v ? $1 : v
1189
- end
1190
-
1191
- ##
1192
- # This method is same as URI::Generic#host= except
1193
- # the argument can be a bare IPv6 address (or 'IPvFuture').
1194
- #
1195
- # @see Addressable::URI#host=
1196
- #
1197
- # @param [String, #to_str] new_hostname The new hostname for this URI.
1198
- def hostname=(new_hostname)
1199
- if new_hostname &&
1200
- (new_hostname.respond_to?(:ipv4?) || new_hostname.respond_to?(:ipv6?))
1201
- new_hostname = new_hostname.to_s
1202
- elsif new_hostname && !new_hostname.respond_to?(:to_str)
1203
- raise TypeError, "Can't convert #{new_hostname.class} into String."
1204
- end
1205
- v = new_hostname ? new_hostname.to_str : nil
1206
- v = "[#{v}]" if /\A\[.*\]\z/ !~ v && /:/ =~ v
1207
- self.host = v
1208
- end
1209
-
1210
- ##
1211
- # Returns the top-level domain for this host.
1212
- #
1213
- # @example
1214
- # Addressable::URI.parse("http://www.example.co.uk").tld # => "co.uk"
1215
- def tld
1216
- PublicSuffix.parse(self.host, ignore_private: true).tld
1217
- end
1218
-
1219
- ##
1220
- # Sets the top-level domain for this URI.
1221
- #
1222
- # @param [String, #to_str] new_tld The new top-level domain.
1223
- def tld=(new_tld)
1224
- replaced_tld = host.sub(/#{tld}\z/, new_tld)
1225
- self.host = PublicSuffix::Domain.new(replaced_tld).to_s
1226
- end
1227
-
1228
- ##
1229
- # Returns the public suffix domain for this host.
1230
- #
1231
- # @example
1232
- # Addressable::URI.parse("http://www.example.co.uk").domain # => "example.co.uk"
1233
- def domain
1234
- PublicSuffix.domain(self.host, ignore_private: true)
1235
- end
1236
-
1237
- ##
1238
- # The authority component for this URI.
1239
- # Combines the user, password, host, and port components.
1240
- #
1241
- # @return [String] The authority component.
1242
- def authority
1243
- self.host && @authority ||= begin
1244
- authority = String.new
1245
- if self.userinfo != nil
1246
- authority << "#{self.userinfo}@"
1247
- end
1248
- authority << self.host
1249
- if self.port != nil
1250
- authority << ":#{self.port}"
1251
- end
1252
- authority
1253
- end
1254
- end
1255
-
1256
- ##
1257
- # The authority component for this URI, normalized.
1258
- #
1259
- # @return [String] The authority component, normalized.
1260
- def normalized_authority
1261
- return nil unless self.authority
1262
- @normalized_authority ||= begin
1263
- authority = String.new
1264
- if self.normalized_userinfo != nil
1265
- authority << "#{self.normalized_userinfo}@"
1266
- end
1267
- authority << self.normalized_host
1268
- if self.normalized_port != nil
1269
- authority << ":#{self.normalized_port}"
1270
- end
1271
- authority
1272
- end
1273
- # All normalized values should be UTF-8
1274
- if @normalized_authority
1275
- @normalized_authority.force_encoding(Encoding::UTF_8)
1276
- end
1277
- @normalized_authority
1278
- end
1279
-
1280
- ##
1281
- # Sets the authority component for this URI.
1282
- #
1283
- # @param [String, #to_str] new_authority The new authority component.
1284
- def authority=(new_authority)
1285
- if new_authority
1286
- if !new_authority.respond_to?(:to_str)
1287
- raise TypeError, "Can't convert #{new_authority.class} into String."
1288
- end
1289
- new_authority = new_authority.to_str
1290
- new_userinfo = new_authority[/^([^\[\]]*)@/, 1]
1291
- if new_userinfo
1292
- new_user = new_userinfo.strip[/^([^:]*):?/, 1]
1293
- new_password = new_userinfo.strip[/:(.*)$/, 1]
1294
- end
1295
- new_host = new_authority.sub(
1296
- /^([^\[\]]*)@/, EMPTY_STR
1297
- ).sub(
1298
- /:([^:@\[\]]*?)$/, EMPTY_STR
1299
- )
1300
- new_port =
1301
- new_authority[/:([^:@\[\]]*?)$/, 1]
1302
- end
1303
-
1304
- # Password assigned first to ensure validity in case of nil
1305
- self.password = defined?(new_password) ? new_password : nil
1306
- self.user = defined?(new_user) ? new_user : nil
1307
- self.host = defined?(new_host) ? new_host : nil
1308
- self.port = defined?(new_port) ? new_port : nil
1309
-
1310
- # Reset dependent values
1311
- remove_instance_variable(:@userinfo) if defined?(@userinfo)
1312
- remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
1313
- remove_composite_values
1314
-
1315
- # Ensure we haven't created an invalid URI
1316
- validate()
1317
- end
1318
-
1319
- ##
1320
- # The origin for this URI, serialized to ASCII, as per
1321
- # RFC 6454, section 6.2.
1322
- #
1323
- # @return [String] The serialized origin.
1324
- def origin
1325
- if self.scheme && self.authority
1326
- if self.normalized_port
1327
- "#{self.normalized_scheme}://#{self.normalized_host}" +
1328
- ":#{self.normalized_port}"
1329
- else
1330
- "#{self.normalized_scheme}://#{self.normalized_host}"
1331
- end
1332
- else
1333
- "null"
1334
- end
1335
- end
1336
-
1337
- ##
1338
- # Sets the origin for this URI, serialized to ASCII, as per
1339
- # RFC 6454, section 6.2. This assignment will reset the `userinfo`
1340
- # component.
1341
- #
1342
- # @param [String, #to_str] new_origin The new origin component.
1343
- def origin=(new_origin)
1344
- if new_origin
1345
- if !new_origin.respond_to?(:to_str)
1346
- raise TypeError, "Can't convert #{new_origin.class} into String."
1347
- end
1348
- new_origin = new_origin.to_str
1349
- new_scheme = new_origin[/^([^:\/?#]+):\/\//, 1]
1350
- unless new_scheme
1351
- raise InvalidURIError, 'An origin cannot omit the scheme.'
1352
- end
1353
- new_host = new_origin[/:\/\/([^\/?#:]+)/, 1]
1354
- unless new_host
1355
- raise InvalidURIError, 'An origin cannot omit the host.'
1356
- end
1357
- new_port = new_origin[/:([^:@\[\]\/]*?)$/, 1]
1358
- end
1359
-
1360
- self.scheme = defined?(new_scheme) ? new_scheme : nil
1361
- self.host = defined?(new_host) ? new_host : nil
1362
- self.port = defined?(new_port) ? new_port : nil
1363
- self.userinfo = nil
1364
-
1365
- # Reset dependent values
1366
- remove_instance_variable(:@userinfo) if defined?(@userinfo)
1367
- remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
1368
- remove_instance_variable(:@authority) if defined?(@authority)
1369
- remove_instance_variable(:@normalized_authority) if defined?(@normalized_authority)
1370
- remove_composite_values
1371
-
1372
- # Ensure we haven't created an invalid URI
1373
- validate()
1374
- end
1375
-
1376
- # Returns an array of known ip-based schemes. These schemes typically
1377
- # use a similar URI form:
1378
- # <code>//<user>:<password>@<host>:<port>/<url-path></code>
1379
- def self.ip_based_schemes
1380
- return self.port_mapping.keys
1381
- end
1382
-
1383
- # Returns a hash of common IP-based schemes and their default port
1384
- # numbers. Adding new schemes to this hash, as necessary, will allow
1385
- # for better URI normalization.
1386
- def self.port_mapping
1387
- PORT_MAPPING
1388
- end
1389
-
1390
- ##
1391
- # The port component for this URI.
1392
- # This is the port number actually given in the URI. This does not
1393
- # infer port numbers from default values.
1394
- #
1395
- # @return [Integer] The port component.
1396
- def port
1397
- return defined?(@port) ? @port : nil
1398
- end
1399
-
1400
- ##
1401
- # The port component for this URI, normalized.
1402
- #
1403
- # @return [Integer] The port component, normalized.
1404
- def normalized_port
1405
- return nil unless self.port
1406
- return @normalized_port if defined?(@normalized_port)
1407
- @normalized_port ||= begin
1408
- if URI.port_mapping[self.normalized_scheme] == self.port
1409
- nil
1410
- else
1411
- self.port
1412
- end
1413
- end
1414
- end
1415
-
1416
- ##
1417
- # Sets the port component for this URI.
1418
- #
1419
- # @param [String, Integer, #to_s] new_port The new port component.
1420
- def port=(new_port)
1421
- if new_port != nil && new_port.respond_to?(:to_str)
1422
- new_port = Addressable::URI.unencode_component(new_port.to_str)
1423
- end
1424
-
1425
- if new_port.respond_to?(:valid_encoding?) && !new_port.valid_encoding?
1426
- raise InvalidURIError, "Invalid encoding in port"
1427
- end
1428
-
1429
- if new_port != nil && !(new_port.to_s =~ /^\d+$/)
1430
- raise InvalidURIError,
1431
- "Invalid port number: #{new_port.inspect}"
1432
- end
1433
-
1434
- @port = new_port.to_s.to_i
1435
- @port = nil if @port == 0
1436
-
1437
- # Reset dependent values
1438
- remove_instance_variable(:@authority) if defined?(@authority)
1439
- remove_instance_variable(:@normalized_port) if defined?(@normalized_port)
1440
- remove_composite_values
1441
-
1442
- # Ensure we haven't created an invalid URI
1443
- validate()
1444
- end
1445
-
1446
- ##
1447
- # The inferred port component for this URI.
1448
- # This method will normalize to the default port for the URI's scheme if
1449
- # the port isn't explicitly specified in the URI.
1450
- #
1451
- # @return [Integer] The inferred port component.
1452
- def inferred_port
1453
- if self.port.to_i == 0
1454
- self.default_port
1455
- else
1456
- self.port.to_i
1457
- end
1458
- end
1459
-
1460
- ##
1461
- # The default port for this URI's scheme.
1462
- # This method will always returns the default port for the URI's scheme
1463
- # regardless of the presence of an explicit port in the URI.
1464
- #
1465
- # @return [Integer] The default port.
1466
- def default_port
1467
- URI.port_mapping[self.scheme.strip.downcase] if self.scheme
1468
- end
1469
-
1470
- ##
1471
- # The combination of components that represent a site.
1472
- # Combines the scheme, user, password, host, and port components.
1473
- # Primarily useful for HTTP and HTTPS.
1474
- #
1475
- # For example, <code>"http://example.com/path?query"</code> would have a
1476
- # <code>site</code> value of <code>"http://example.com"</code>.
1477
- #
1478
- # @return [String] The components that identify a site.
1479
- def site
1480
- (self.scheme || self.authority) && @site ||= begin
1481
- site_string = "".dup
1482
- site_string << "#{self.scheme}:" if self.scheme != nil
1483
- site_string << "//#{self.authority}" if self.authority != nil
1484
- site_string
1485
- end
1486
- end
1487
-
1488
- ##
1489
- # The normalized combination of components that represent a site.
1490
- # Combines the scheme, user, password, host, and port components.
1491
- # Primarily useful for HTTP and HTTPS.
1492
- #
1493
- # For example, <code>"http://example.com/path?query"</code> would have a
1494
- # <code>site</code> value of <code>"http://example.com"</code>.
1495
- #
1496
- # @return [String] The normalized components that identify a site.
1497
- def normalized_site
1498
- return nil unless self.site
1499
- @normalized_site ||= begin
1500
- site_string = "".dup
1501
- if self.normalized_scheme != nil
1502
- site_string << "#{self.normalized_scheme}:"
1503
- end
1504
- if self.normalized_authority != nil
1505
- site_string << "//#{self.normalized_authority}"
1506
- end
1507
- site_string
1508
- end
1509
- # All normalized values should be UTF-8
1510
- @normalized_site.force_encoding(Encoding::UTF_8) if @normalized_site
1511
- @normalized_site
1512
- end
1513
-
1514
- ##
1515
- # Sets the site value for this URI.
1516
- #
1517
- # @param [String, #to_str] new_site The new site value.
1518
- def site=(new_site)
1519
- if new_site
1520
- if !new_site.respond_to?(:to_str)
1521
- raise TypeError, "Can't convert #{new_site.class} into String."
1522
- end
1523
- new_site = new_site.to_str
1524
- # These two regular expressions derived from the primary parsing
1525
- # expression
1526
- self.scheme = new_site[/^(?:([^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?$/, 1]
1527
- self.authority = new_site[
1528
- /^(?:(?:[^:\/?#]+):)?(?:\/\/([^\/?#]*))?$/, 1
1529
- ]
1530
- else
1531
- self.scheme = nil
1532
- self.authority = nil
1533
- end
1534
- end
1535
-
1536
- ##
1537
- # The path component for this URI.
1538
- #
1539
- # @return [String] The path component.
1540
- def path
1541
- return defined?(@path) ? @path : EMPTY_STR
1542
- end
1543
-
1544
- NORMPATH = /^(?!\/)[^\/:]*:.*$/
1545
- ##
1546
- # The path component for this URI, normalized.
1547
- #
1548
- # @return [String] The path component, normalized.
1549
- def normalized_path
1550
- @normalized_path ||= begin
1551
- path = self.path.to_s
1552
- if self.scheme == nil && path =~ NORMPATH
1553
- # Relative paths with colons in the first segment are ambiguous.
1554
- path = path.sub(":", "%2F")
1555
- end
1556
- # String#split(delimeter, -1) uses the more strict splitting behavior
1557
- # found by default in Python.
1558
- result = path.strip.split(SLASH, -1).map do |segment|
1559
- Addressable::URI.normalize_component(
1560
- segment,
1561
- Addressable::URI::NormalizeCharacterClasses::PCHAR
1562
- )
1563
- end.join(SLASH)
1564
-
1565
- result = URI.normalize_path(result)
1566
- if result.empty? &&
1567
- ["http", "https", "ftp", "tftp"].include?(self.normalized_scheme)
1568
- result = SLASH.dup
1569
- end
1570
- result
1571
- end
1572
- # All normalized values should be UTF-8
1573
- @normalized_path.force_encoding(Encoding::UTF_8) if @normalized_path
1574
- @normalized_path
1575
- end
1576
-
1577
- ##
1578
- # Sets the path component for this URI.
1579
- #
1580
- # @param [String, #to_str] new_path The new path component.
1581
- def path=(new_path)
1582
- if new_path && !new_path.respond_to?(:to_str)
1583
- raise TypeError, "Can't convert #{new_path.class} into String."
1584
- end
1585
- @path = (new_path || EMPTY_STR).to_str
1586
- if !@path.empty? && @path[0..0] != SLASH && host != nil
1587
- @path = "/#{@path}"
1588
- end
1589
-
1590
- # Reset dependent values
1591
- remove_instance_variable(:@normalized_path) if defined?(@normalized_path)
1592
- remove_composite_values
1593
-
1594
- # Ensure we haven't created an invalid URI
1595
- validate()
1596
- end
1597
-
1598
- ##
1599
- # The basename, if any, of the file in the path component.
1600
- #
1601
- # @return [String] The path's basename.
1602
- def basename
1603
- # Path cannot be nil
1604
- return File.basename(self.path).sub(/;[^\/]*$/, EMPTY_STR)
1605
- end
1606
-
1607
- ##
1608
- # The extname, if any, of the file in the path component.
1609
- # Empty string if there is no extension.
1610
- #
1611
- # @return [String] The path's extname.
1612
- def extname
1613
- return nil unless self.path
1614
- return File.extname(self.basename)
1615
- end
1616
-
1617
- ##
1618
- # The query component for this URI.
1619
- #
1620
- # @return [String] The query component.
1621
- def query
1622
- return defined?(@query) ? @query : nil
1623
- end
1624
-
1625
- ##
1626
- # The query component for this URI, normalized.
1627
- #
1628
- # @return [String] The query component, normalized.
1629
- def normalized_query(*flags)
1630
- return nil unless self.query
1631
- return @normalized_query if defined?(@normalized_query)
1632
- @normalized_query ||= begin
1633
- modified_query_class = Addressable::URI::CharacterClasses::QUERY.dup
1634
- # Make sure possible key-value pair delimiters are escaped.
1635
- modified_query_class.sub!("\\&", "").sub!("\\;", "")
1636
- pairs = (query || "").split("&", -1)
1637
- pairs.delete_if(&:empty?).uniq! if flags.include?(:compacted)
1638
- pairs.sort! if flags.include?(:sorted)
1639
- component = pairs.map do |pair|
1640
- Addressable::URI.normalize_component(
1641
- pair,
1642
- Addressable::URI::NormalizeCharacterClasses::QUERY,
1643
- "+"
1644
- )
1645
- end.join("&")
1646
- component == "" ? nil : component
1647
- end
1648
- # All normalized values should be UTF-8
1649
- @normalized_query.force_encoding(Encoding::UTF_8) if @normalized_query
1650
- @normalized_query
1651
- end
1652
-
1653
- ##
1654
- # Sets the query component for this URI.
1655
- #
1656
- # @param [String, #to_str] new_query The new query component.
1657
- def query=(new_query)
1658
- if new_query && !new_query.respond_to?(:to_str)
1659
- raise TypeError, "Can't convert #{new_query.class} into String."
1660
- end
1661
- @query = new_query ? new_query.to_str : nil
1662
-
1663
- # Reset dependent values
1664
- remove_instance_variable(:@normalized_query) if defined?(@normalized_query)
1665
- remove_composite_values
1666
- end
1667
-
1668
- ##
1669
- # Converts the query component to a Hash value.
1670
- #
1671
- # @param [Class] return_type The return type desired. Value must be either
1672
- # `Hash` or `Array`.
1673
- #
1674
- # @return [Hash, Array, nil] The query string parsed as a Hash or Array
1675
- # or nil if the query string is blank.
1676
- #
1677
- # @example
1678
- # Addressable::URI.parse("?one=1&two=2&three=3").query_values
1679
- # #=> {"one" => "1", "two" => "2", "three" => "3"}
1680
- # Addressable::URI.parse("?one=two&one=three").query_values(Array)
1681
- # #=> [["one", "two"], ["one", "three"]]
1682
- # Addressable::URI.parse("?one=two&one=three").query_values(Hash)
1683
- # #=> {"one" => "three"}
1684
- # Addressable::URI.parse("?").query_values
1685
- # #=> {}
1686
- # Addressable::URI.parse("").query_values
1687
- # #=> nil
1688
- def query_values(return_type=Hash)
1689
- empty_accumulator = Array == return_type ? [] : {}
1690
- if return_type != Hash && return_type != Array
1691
- raise ArgumentError, "Invalid return type. Must be Hash or Array."
1692
- end
1693
- return nil if self.query == nil
1694
- split_query = self.query.split("&").map do |pair|
1695
- pair.split("=", 2) if pair && !pair.empty?
1696
- end.compact
1697
- return split_query.inject(empty_accumulator.dup) do |accu, pair|
1698
- # I'd rather use key/value identifiers instead of array lookups,
1699
- # but in this case I really want to maintain the exact pair structure,
1700
- # so it's best to make all changes in-place.
1701
- pair[0] = URI.unencode_component(pair[0])
1702
- if pair[1].respond_to?(:to_str)
1703
- value = pair[1].to_str
1704
- # I loathe the fact that I have to do this. Stupid HTML 4.01.
1705
- # Treating '+' as a space was just an unbelievably bad idea.
1706
- # There was nothing wrong with '%20'!
1707
- # If it ain't broke, don't fix it!
1708
- value = value.tr("+", " ") if ["http", "https", nil].include?(scheme)
1709
- pair[1] = URI.unencode_component(value)
1710
- end
1711
- if return_type == Hash
1712
- accu[pair[0]] = pair[1]
1713
- else
1714
- accu << pair
1715
- end
1716
- accu
1717
- end
1718
- end
1719
-
1720
- ##
1721
- # Sets the query component for this URI from a Hash object.
1722
- # An empty Hash or Array will result in an empty query string.
1723
- #
1724
- # @param [Hash, #to_hash, Array] new_query_values The new query values.
1725
- #
1726
- # @example
1727
- # uri.query_values = {:a => "a", :b => ["c", "d", "e"]}
1728
- # uri.query
1729
- # # => "a=a&b=c&b=d&b=e"
1730
- # uri.query_values = [['a', 'a'], ['b', 'c'], ['b', 'd'], ['b', 'e']]
1731
- # uri.query
1732
- # # => "a=a&b=c&b=d&b=e"
1733
- # uri.query_values = [['a', 'a'], ['b', ['c', 'd', 'e']]]
1734
- # uri.query
1735
- # # => "a=a&b=c&b=d&b=e"
1736
- # uri.query_values = [['flag'], ['key', 'value']]
1737
- # uri.query
1738
- # # => "flag&key=value"
1739
- def query_values=(new_query_values)
1740
- if new_query_values == nil
1741
- self.query = nil
1742
- return nil
1743
- end
1744
-
1745
- if !new_query_values.is_a?(Array)
1746
- if !new_query_values.respond_to?(:to_hash)
1747
- raise TypeError,
1748
- "Can't convert #{new_query_values.class} into Hash."
1749
- end
1750
- new_query_values = new_query_values.to_hash
1751
- new_query_values = new_query_values.map do |key, value|
1752
- key = key.to_s if key.kind_of?(Symbol)
1753
- [key, value]
1754
- end
1755
- # Useful default for OAuth and caching.
1756
- # Only to be used for non-Array inputs. Arrays should preserve order.
1757
- new_query_values.sort!
1758
- end
1759
-
1760
- # new_query_values have form [['key1', 'value1'], ['key2', 'value2']]
1761
- buffer = "".dup
1762
- new_query_values.each do |key, value|
1763
- encoded_key = URI.encode_component(
1764
- key, CharacterClasses::UNRESERVED
1765
- )
1766
- if value == nil
1767
- buffer << "#{encoded_key}&"
1768
- elsif value.kind_of?(Array)
1769
- value.each do |sub_value|
1770
- encoded_value = URI.encode_component(
1771
- sub_value, CharacterClasses::UNRESERVED
1772
- )
1773
- buffer << "#{encoded_key}=#{encoded_value}&"
1774
- end
1775
- else
1776
- encoded_value = URI.encode_component(
1777
- value, CharacterClasses::UNRESERVED
1778
- )
1779
- buffer << "#{encoded_key}=#{encoded_value}&"
1780
- end
1781
- end
1782
- self.query = buffer.chop
1783
- end
1784
-
1785
- ##
1786
- # The HTTP request URI for this URI. This is the path and the
1787
- # query string.
1788
- #
1789
- # @return [String] The request URI required for an HTTP request.
1790
- def request_uri
1791
- return nil if self.absolute? && self.scheme !~ /^https?$/i
1792
- return (
1793
- (!self.path.empty? ? self.path : SLASH) +
1794
- (self.query ? "?#{self.query}" : EMPTY_STR)
1795
- )
1796
- end
1797
-
1798
- ##
1799
- # Sets the HTTP request URI for this URI.
1800
- #
1801
- # @param [String, #to_str] new_request_uri The new HTTP request URI.
1802
- def request_uri=(new_request_uri)
1803
- if !new_request_uri.respond_to?(:to_str)
1804
- raise TypeError, "Can't convert #{new_request_uri.class} into String."
1805
- end
1806
- if self.absolute? && self.scheme !~ /^https?$/i
1807
- raise InvalidURIError,
1808
- "Cannot set an HTTP request URI for a non-HTTP URI."
1809
- end
1810
- new_request_uri = new_request_uri.to_str
1811
- path_component = new_request_uri[/^([^\?]*)\??(?:.*)$/, 1]
1812
- query_component = new_request_uri[/^(?:[^\?]*)\?(.*)$/, 1]
1813
- path_component = path_component.to_s
1814
- path_component = (!path_component.empty? ? path_component : SLASH)
1815
- self.path = path_component
1816
- self.query = query_component
1817
-
1818
- # Reset dependent values
1819
- remove_composite_values
1820
- end
1821
-
1822
- ##
1823
- # The fragment component for this URI.
1824
- #
1825
- # @return [String] The fragment component.
1826
- def fragment
1827
- return defined?(@fragment) ? @fragment : nil
1828
- end
1829
-
1830
- ##
1831
- # The fragment component for this URI, normalized.
1832
- #
1833
- # @return [String] The fragment component, normalized.
1834
- def normalized_fragment
1835
- return nil unless self.fragment
1836
- return @normalized_fragment if defined?(@normalized_fragment)
1837
- @normalized_fragment ||= begin
1838
- component = Addressable::URI.normalize_component(
1839
- self.fragment,
1840
- Addressable::URI::NormalizeCharacterClasses::FRAGMENT
1841
- )
1842
- component == "" ? nil : component
1843
- end
1844
- # All normalized values should be UTF-8
1845
- if @normalized_fragment
1846
- @normalized_fragment.force_encoding(Encoding::UTF_8)
1847
- end
1848
- @normalized_fragment
1849
- end
1850
-
1851
- ##
1852
- # Sets the fragment component for this URI.
1853
- #
1854
- # @param [String, #to_str] new_fragment The new fragment component.
1855
- def fragment=(new_fragment)
1856
- if new_fragment && !new_fragment.respond_to?(:to_str)
1857
- raise TypeError, "Can't convert #{new_fragment.class} into String."
1858
- end
1859
- @fragment = new_fragment ? new_fragment.to_str : nil
1860
-
1861
- # Reset dependent values
1862
- remove_instance_variable(:@normalized_fragment) if defined?(@normalized_fragment)
1863
- remove_composite_values
1864
-
1865
- # Ensure we haven't created an invalid URI
1866
- validate()
1867
- end
1868
-
1869
- ##
1870
- # Determines if the scheme indicates an IP-based protocol.
1871
- #
1872
- # @return [TrueClass, FalseClass]
1873
- # <code>true</code> if the scheme indicates an IP-based protocol.
1874
- # <code>false</code> otherwise.
1875
- def ip_based?
1876
- if self.scheme
1877
- return URI.ip_based_schemes.include?(
1878
- self.scheme.strip.downcase)
1879
- end
1880
- return false
1881
- end
1882
-
1883
- ##
1884
- # Determines if the URI is relative.
1885
- #
1886
- # @return [TrueClass, FalseClass]
1887
- # <code>true</code> if the URI is relative. <code>false</code>
1888
- # otherwise.
1889
- def relative?
1890
- return self.scheme.nil?
1891
- end
1892
-
1893
- ##
1894
- # Determines if the URI is absolute.
1895
- #
1896
- # @return [TrueClass, FalseClass]
1897
- # <code>true</code> if the URI is absolute. <code>false</code>
1898
- # otherwise.
1899
- def absolute?
1900
- return !relative?
1901
- end
1902
-
1903
- ##
1904
- # Joins two URIs together.
1905
- #
1906
- # @param [String, Addressable::URI, #to_str] The URI to join with.
1907
- #
1908
- # @return [Addressable::URI] The joined URI.
1909
- def join(uri)
1910
- if !uri.respond_to?(:to_str)
1911
- raise TypeError, "Can't convert #{uri.class} into String."
1912
- end
1913
- if !uri.kind_of?(URI)
1914
- # Otherwise, convert to a String, then parse.
1915
- uri = URI.parse(uri.to_str)
1916
- end
1917
- if uri.to_s.empty?
1918
- return self.dup
1919
- end
1920
-
1921
- joined_scheme = nil
1922
- joined_user = nil
1923
- joined_password = nil
1924
- joined_host = nil
1925
- joined_port = nil
1926
- joined_path = nil
1927
- joined_query = nil
1928
- joined_fragment = nil
1929
-
1930
- # Section 5.2.2 of RFC 3986
1931
- if uri.scheme != nil
1932
- joined_scheme = uri.scheme
1933
- joined_user = uri.user
1934
- joined_password = uri.password
1935
- joined_host = uri.host
1936
- joined_port = uri.port
1937
- joined_path = URI.normalize_path(uri.path)
1938
- joined_query = uri.query
1939
- else
1940
- if uri.authority != nil
1941
- joined_user = uri.user
1942
- joined_password = uri.password
1943
- joined_host = uri.host
1944
- joined_port = uri.port
1945
- joined_path = URI.normalize_path(uri.path)
1946
- joined_query = uri.query
1947
- else
1948
- if uri.path == nil || uri.path.empty?
1949
- joined_path = self.path
1950
- if uri.query != nil
1951
- joined_query = uri.query
1952
- else
1953
- joined_query = self.query
1954
- end
1955
- else
1956
- if uri.path[0..0] == SLASH
1957
- joined_path = URI.normalize_path(uri.path)
1958
- else
1959
- base_path = self.path.dup
1960
- base_path = EMPTY_STR if base_path == nil
1961
- base_path = URI.normalize_path(base_path)
1962
-
1963
- # Section 5.2.3 of RFC 3986
1964
- #
1965
- # Removes the right-most path segment from the base path.
1966
- if base_path.include?(SLASH)
1967
- base_path.sub!(/\/[^\/]+$/, SLASH)
1968
- else
1969
- base_path = EMPTY_STR
1970
- end
1971
-
1972
- # If the base path is empty and an authority segment has been
1973
- # defined, use a base path of SLASH
1974
- if base_path.empty? && self.authority != nil
1975
- base_path = SLASH
1976
- end
1977
-
1978
- joined_path = URI.normalize_path(base_path + uri.path)
1979
- end
1980
- joined_query = uri.query
1981
- end
1982
- joined_user = self.user
1983
- joined_password = self.password
1984
- joined_host = self.host
1985
- joined_port = self.port
1986
- end
1987
- joined_scheme = self.scheme
1988
- end
1989
- joined_fragment = uri.fragment
1990
-
1991
- return self.class.new(
1992
- :scheme => joined_scheme,
1993
- :user => joined_user,
1994
- :password => joined_password,
1995
- :host => joined_host,
1996
- :port => joined_port,
1997
- :path => joined_path,
1998
- :query => joined_query,
1999
- :fragment => joined_fragment
2000
- )
2001
- end
2002
- alias_method :+, :join
2003
-
2004
- ##
2005
- # Destructive form of <code>join</code>.
2006
- #
2007
- # @param [String, Addressable::URI, #to_str] The URI to join with.
2008
- #
2009
- # @return [Addressable::URI] The joined URI.
2010
- #
2011
- # @see Addressable::URI#join
2012
- def join!(uri)
2013
- replace_self(self.join(uri))
2014
- end
2015
-
2016
- ##
2017
- # Merges a URI with a <code>Hash</code> of components.
2018
- # This method has different behavior from <code>join</code>. Any
2019
- # components present in the <code>hash</code> parameter will override the
2020
- # original components. The path component is not treated specially.
2021
- #
2022
- # @param [Hash, Addressable::URI, #to_hash] The components to merge with.
2023
- #
2024
- # @return [Addressable::URI] The merged URI.
2025
- #
2026
- # @see Hash#merge
2027
- def merge(hash)
2028
- if !hash.respond_to?(:to_hash)
2029
- raise TypeError, "Can't convert #{hash.class} into Hash."
2030
- end
2031
- hash = hash.to_hash
2032
-
2033
- if hash.has_key?(:authority)
2034
- if (hash.keys & [:userinfo, :user, :password, :host, :port]).any?
2035
- raise ArgumentError,
2036
- "Cannot specify both an authority and any of the components " +
2037
- "within the authority."
2038
- end
2039
- end
2040
- if hash.has_key?(:userinfo)
2041
- if (hash.keys & [:user, :password]).any?
2042
- raise ArgumentError,
2043
- "Cannot specify both a userinfo and either the user or password."
2044
- end
2045
- end
2046
-
2047
- uri = self.class.new
2048
- uri.defer_validation do
2049
- # Bunch of crazy logic required because of the composite components
2050
- # like userinfo and authority.
2051
- uri.scheme =
2052
- hash.has_key?(:scheme) ? hash[:scheme] : self.scheme
2053
- if hash.has_key?(:authority)
2054
- uri.authority =
2055
- hash.has_key?(:authority) ? hash[:authority] : self.authority
2056
- end
2057
- if hash.has_key?(:userinfo)
2058
- uri.userinfo =
2059
- hash.has_key?(:userinfo) ? hash[:userinfo] : self.userinfo
2060
- end
2061
- if !hash.has_key?(:userinfo) && !hash.has_key?(:authority)
2062
- uri.user =
2063
- hash.has_key?(:user) ? hash[:user] : self.user
2064
- uri.password =
2065
- hash.has_key?(:password) ? hash[:password] : self.password
2066
- end
2067
- if !hash.has_key?(:authority)
2068
- uri.host =
2069
- hash.has_key?(:host) ? hash[:host] : self.host
2070
- uri.port =
2071
- hash.has_key?(:port) ? hash[:port] : self.port
2072
- end
2073
- uri.path =
2074
- hash.has_key?(:path) ? hash[:path] : self.path
2075
- uri.query =
2076
- hash.has_key?(:query) ? hash[:query] : self.query
2077
- uri.fragment =
2078
- hash.has_key?(:fragment) ? hash[:fragment] : self.fragment
2079
- end
2080
-
2081
- return uri
2082
- end
2083
-
2084
- ##
2085
- # Destructive form of <code>merge</code>.
2086
- #
2087
- # @param [Hash, Addressable::URI, #to_hash] The components to merge with.
2088
- #
2089
- # @return [Addressable::URI] The merged URI.
2090
- #
2091
- # @see Addressable::URI#merge
2092
- def merge!(uri)
2093
- replace_self(self.merge(uri))
2094
- end
2095
-
2096
- ##
2097
- # Returns the shortest normalized relative form of this URI that uses the
2098
- # supplied URI as a base for resolution. Returns an absolute URI if
2099
- # necessary. This is effectively the opposite of <code>route_to</code>.
2100
- #
2101
- # @param [String, Addressable::URI, #to_str] uri The URI to route from.
2102
- #
2103
- # @return [Addressable::URI]
2104
- # The normalized relative URI that is equivalent to the original URI.
2105
- def route_from(uri)
2106
- uri = URI.parse(uri).normalize
2107
- normalized_self = self.normalize
2108
- if normalized_self.relative?
2109
- raise ArgumentError, "Expected absolute URI, got: #{self.to_s}"
2110
- end
2111
- if uri.relative?
2112
- raise ArgumentError, "Expected absolute URI, got: #{uri.to_s}"
2113
- end
2114
- if normalized_self == uri
2115
- return Addressable::URI.parse("##{normalized_self.fragment}")
2116
- end
2117
- components = normalized_self.to_hash
2118
- if normalized_self.scheme == uri.scheme
2119
- components[:scheme] = nil
2120
- if normalized_self.authority == uri.authority
2121
- components[:user] = nil
2122
- components[:password] = nil
2123
- components[:host] = nil
2124
- components[:port] = nil
2125
- if normalized_self.path == uri.path
2126
- components[:path] = nil
2127
- if normalized_self.query == uri.query
2128
- components[:query] = nil
2129
- end
2130
- else
2131
- if uri.path != SLASH and components[:path]
2132
- self_splitted_path = split_path(components[:path])
2133
- uri_splitted_path = split_path(uri.path)
2134
- self_dir = self_splitted_path.shift
2135
- uri_dir = uri_splitted_path.shift
2136
- while !self_splitted_path.empty? && !uri_splitted_path.empty? and self_dir == uri_dir
2137
- self_dir = self_splitted_path.shift
2138
- uri_dir = uri_splitted_path.shift
2139
- end
2140
- components[:path] = (uri_splitted_path.fill('..') + [self_dir] + self_splitted_path).join(SLASH)
2141
- end
2142
- end
2143
- end
2144
- end
2145
- # Avoid network-path references.
2146
- if components[:host] != nil
2147
- components[:scheme] = normalized_self.scheme
2148
- end
2149
- return Addressable::URI.new(
2150
- :scheme => components[:scheme],
2151
- :user => components[:user],
2152
- :password => components[:password],
2153
- :host => components[:host],
2154
- :port => components[:port],
2155
- :path => components[:path],
2156
- :query => components[:query],
2157
- :fragment => components[:fragment]
2158
- )
2159
- end
2160
-
2161
- ##
2162
- # Returns the shortest normalized relative form of the supplied URI that
2163
- # uses this URI as a base for resolution. Returns an absolute URI if
2164
- # necessary. This is effectively the opposite of <code>route_from</code>.
2165
- #
2166
- # @param [String, Addressable::URI, #to_str] uri The URI to route to.
2167
- #
2168
- # @return [Addressable::URI]
2169
- # The normalized relative URI that is equivalent to the supplied URI.
2170
- def route_to(uri)
2171
- return URI.parse(uri).route_from(self)
2172
- end
2173
-
2174
- ##
2175
- # Returns a normalized URI object.
2176
- #
2177
- # NOTE: This method does not attempt to fully conform to specifications.
2178
- # It exists largely to correct other people's failures to read the
2179
- # specifications, and also to deal with caching issues since several
2180
- # different URIs may represent the same resource and should not be
2181
- # cached multiple times.
2182
- #
2183
- # @return [Addressable::URI] The normalized URI.
2184
- def normalize
2185
- # This is a special exception for the frequently misused feed
2186
- # URI scheme.
2187
- if normalized_scheme == "feed"
2188
- if self.to_s =~ /^feed:\/*http:\/*/
2189
- return URI.parse(
2190
- self.to_s[/^feed:\/*(http:\/*.*)/, 1]
2191
- ).normalize
2192
- end
2193
- end
2194
-
2195
- return self.class.new(
2196
- :scheme => normalized_scheme,
2197
- :authority => normalized_authority,
2198
- :path => normalized_path,
2199
- :query => normalized_query,
2200
- :fragment => normalized_fragment
2201
- )
2202
- end
2203
-
2204
- ##
2205
- # Destructively normalizes this URI object.
2206
- #
2207
- # @return [Addressable::URI] The normalized URI.
2208
- #
2209
- # @see Addressable::URI#normalize
2210
- def normalize!
2211
- replace_self(self.normalize)
2212
- end
2213
-
2214
- ##
2215
- # Creates a URI suitable for display to users. If semantic attacks are
2216
- # likely, the application should try to detect these and warn the user.
2217
- # See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
2218
- # section 7.6 for more information.
2219
- #
2220
- # @return [Addressable::URI] A URI suitable for display purposes.
2221
- def display_uri
2222
- display_uri = self.normalize
2223
- display_uri.host = ::Addressable::IDNA.to_unicode(display_uri.host)
2224
- return display_uri
2225
- end
2226
-
2227
- ##
2228
- # Returns <code>true</code> if the URI objects are equal. This method
2229
- # normalizes both URIs before doing the comparison, and allows comparison
2230
- # against <code>Strings</code>.
2231
- #
2232
- # @param [Object] uri The URI to compare.
2233
- #
2234
- # @return [TrueClass, FalseClass]
2235
- # <code>true</code> if the URIs are equivalent, <code>false</code>
2236
- # otherwise.
2237
- def ===(uri)
2238
- if uri.respond_to?(:normalize)
2239
- uri_string = uri.normalize.to_s
2240
- else
2241
- begin
2242
- uri_string = ::Addressable::URI.parse(uri).normalize.to_s
2243
- rescue InvalidURIError, TypeError
2244
- return false
2245
- end
2246
- end
2247
- return self.normalize.to_s == uri_string
2248
- end
2249
-
2250
- ##
2251
- # Returns <code>true</code> if the URI objects are equal. This method
2252
- # normalizes both URIs before doing the comparison.
2253
- #
2254
- # @param [Object] uri The URI to compare.
2255
- #
2256
- # @return [TrueClass, FalseClass]
2257
- # <code>true</code> if the URIs are equivalent, <code>false</code>
2258
- # otherwise.
2259
- def ==(uri)
2260
- return false unless uri.kind_of?(URI)
2261
- return self.normalize.to_s == uri.normalize.to_s
2262
- end
2263
-
2264
- ##
2265
- # Returns <code>true</code> if the URI objects are equal. This method
2266
- # does NOT normalize either URI before doing the comparison.
2267
- #
2268
- # @param [Object] uri The URI to compare.
2269
- #
2270
- # @return [TrueClass, FalseClass]
2271
- # <code>true</code> if the URIs are equivalent, <code>false</code>
2272
- # otherwise.
2273
- def eql?(uri)
2274
- return false unless uri.kind_of?(URI)
2275
- return self.to_s == uri.to_s
2276
- end
2277
-
2278
- ##
2279
- # A hash value that will make a URI equivalent to its normalized
2280
- # form.
2281
- #
2282
- # @return [Integer] A hash of the URI.
2283
- def hash
2284
- @hash ||= self.to_s.hash * -1
2285
- end
2286
-
2287
- ##
2288
- # Clones the URI object.
2289
- #
2290
- # @return [Addressable::URI] The cloned URI.
2291
- def dup
2292
- duplicated_uri = self.class.new(
2293
- :scheme => self.scheme ? self.scheme.dup : nil,
2294
- :user => self.user ? self.user.dup : nil,
2295
- :password => self.password ? self.password.dup : nil,
2296
- :host => self.host ? self.host.dup : nil,
2297
- :port => self.port,
2298
- :path => self.path ? self.path.dup : nil,
2299
- :query => self.query ? self.query.dup : nil,
2300
- :fragment => self.fragment ? self.fragment.dup : nil
2301
- )
2302
- return duplicated_uri
2303
- end
2304
-
2305
- ##
2306
- # Omits components from a URI.
2307
- #
2308
- # @param [Symbol] *components The components to be omitted.
2309
- #
2310
- # @return [Addressable::URI] The URI with components omitted.
2311
- #
2312
- # @example
2313
- # uri = Addressable::URI.parse("http://example.com/path?query")
2314
- # #=> #<Addressable::URI:0xcc5e7a URI:http://example.com/path?query>
2315
- # uri.omit(:scheme, :authority)
2316
- # #=> #<Addressable::URI:0xcc4d86 URI:/path?query>
2317
- def omit(*components)
2318
- invalid_components = components - [
2319
- :scheme, :user, :password, :userinfo, :host, :port, :authority,
2320
- :path, :query, :fragment
2321
- ]
2322
- unless invalid_components.empty?
2323
- raise ArgumentError,
2324
- "Invalid component names: #{invalid_components.inspect}."
2325
- end
2326
- duplicated_uri = self.dup
2327
- duplicated_uri.defer_validation do
2328
- components.each do |component|
2329
- duplicated_uri.send((component.to_s + "=").to_sym, nil)
2330
- end
2331
- duplicated_uri.user = duplicated_uri.normalized_user
2332
- end
2333
- duplicated_uri
2334
- end
2335
-
2336
- ##
2337
- # Destructive form of omit.
2338
- #
2339
- # @param [Symbol] *components The components to be omitted.
2340
- #
2341
- # @return [Addressable::URI] The URI with components omitted.
2342
- #
2343
- # @see Addressable::URI#omit
2344
- def omit!(*components)
2345
- replace_self(self.omit(*components))
2346
- end
2347
-
2348
- ##
2349
- # Determines if the URI is an empty string.
2350
- #
2351
- # @return [TrueClass, FalseClass]
2352
- # Returns <code>true</code> if empty, <code>false</code> otherwise.
2353
- def empty?
2354
- return self.to_s.empty?
2355
- end
2356
-
2357
- ##
2358
- # Converts the URI to a <code>String</code>.
2359
- #
2360
- # @return [String] The URI's <code>String</code> representation.
2361
- def to_s
2362
- if self.scheme == nil && self.path != nil && !self.path.empty? &&
2363
- self.path =~ NORMPATH
2364
- raise InvalidURIError,
2365
- "Cannot assemble URI string with ambiguous path: '#{self.path}'"
2366
- end
2367
- @uri_string ||= begin
2368
- uri_string = String.new
2369
- uri_string << "#{self.scheme}:" if self.scheme != nil
2370
- uri_string << "//#{self.authority}" if self.authority != nil
2371
- uri_string << self.path.to_s
2372
- uri_string << "?#{self.query}" if self.query != nil
2373
- uri_string << "##{self.fragment}" if self.fragment != nil
2374
- uri_string.force_encoding(Encoding::UTF_8)
2375
- uri_string
2376
- end
2377
- end
2378
-
2379
- ##
2380
- # URI's are glorified <code>Strings</code>. Allow implicit conversion.
2381
- alias_method :to_str, :to_s
2382
-
2383
- ##
2384
- # Returns a Hash of the URI components.
2385
- #
2386
- # @return [Hash] The URI as a <code>Hash</code> of components.
2387
- def to_hash
2388
- return {
2389
- :scheme => self.scheme,
2390
- :user => self.user,
2391
- :password => self.password,
2392
- :host => self.host,
2393
- :port => self.port,
2394
- :path => self.path,
2395
- :query => self.query,
2396
- :fragment => self.fragment
2397
- }
2398
- end
2399
-
2400
- ##
2401
- # Returns a <code>String</code> representation of the URI object's state.
2402
- #
2403
- # @return [String] The URI object's state, as a <code>String</code>.
2404
- def inspect
2405
- sprintf("#<%s:%#0x URI:%s>", URI.to_s, self.object_id, self.to_s)
2406
- end
2407
-
2408
- ##
2409
- # This method allows you to make several changes to a URI simultaneously,
2410
- # which separately would cause validation errors, but in conjunction,
2411
- # are valid. The URI will be revalidated as soon as the entire block has
2412
- # been executed.
2413
- #
2414
- # @param [Proc] block
2415
- # A set of operations to perform on a given URI.
2416
- def defer_validation
2417
- raise LocalJumpError, "No block given." unless block_given?
2418
- @validation_deferred = true
2419
- yield
2420
- @validation_deferred = false
2421
- validate
2422
- return nil
2423
- end
2424
-
2425
- protected
2426
- SELF_REF = '.'
2427
- PARENT = '..'
2428
-
2429
- RULE_2A = /\/\.\/|\/\.$/
2430
- RULE_2B_2C = /\/([^\/]*)\/\.\.\/|\/([^\/]*)\/\.\.$/
2431
- RULE_2D = /^\.\.?\/?/
2432
- RULE_PREFIXED_PARENT = /^\/\.\.?\/|^(\/\.\.?)+\/?$/
2433
-
2434
- ##
2435
- # Resolves paths to their simplest form.
2436
- #
2437
- # @param [String] path The path to normalize.
2438
- #
2439
- # @return [String] The normalized path.
2440
- def self.normalize_path(path)
2441
- # Section 5.2.4 of RFC 3986
2442
-
2443
- return nil if path.nil?
2444
- normalized_path = path.dup
2445
- begin
2446
- mod = nil
2447
- mod ||= normalized_path.gsub!(RULE_2A, SLASH)
2448
-
2449
- pair = normalized_path.match(RULE_2B_2C)
2450
- parent, current = pair[1], pair[2] if pair
2451
- if pair && ((parent != SELF_REF && parent != PARENT) ||
2452
- (current != SELF_REF && current != PARENT))
2453
- mod ||= normalized_path.gsub!(
2454
- Regexp.new(
2455
- "/#{Regexp.escape(parent.to_s)}/\\.\\./|" +
2456
- "(/#{Regexp.escape(current.to_s)}/\\.\\.$)"
2457
- ), SLASH
2458
- )
2459
- end
2460
-
2461
- mod ||= normalized_path.gsub!(RULE_2D, EMPTY_STR)
2462
- # Non-standard, removes prefixed dotted segments from path.
2463
- mod ||= normalized_path.gsub!(RULE_PREFIXED_PARENT, SLASH)
2464
- end until mod.nil?
2465
-
2466
- return normalized_path
2467
- end
2468
-
2469
- ##
2470
- # Ensures that the URI is valid.
2471
- def validate
2472
- return if !!@validation_deferred
2473
- if self.scheme != nil && self.ip_based? &&
2474
- (self.host == nil || self.host.empty?) &&
2475
- (self.path == nil || self.path.empty?)
2476
- raise InvalidURIError,
2477
- "Absolute URI missing hierarchical segment: '#{self.to_s}'"
2478
- end
2479
- if self.host == nil
2480
- if self.port != nil ||
2481
- self.user != nil ||
2482
- self.password != nil
2483
- raise InvalidURIError, "Hostname not supplied: '#{self.to_s}'"
2484
- end
2485
- end
2486
- if self.path != nil && !self.path.empty? && self.path[0..0] != SLASH &&
2487
- self.authority != nil
2488
- raise InvalidURIError,
2489
- "Cannot have a relative path with an authority set: '#{self.to_s}'"
2490
- end
2491
- if self.path != nil && !self.path.empty? &&
2492
- self.path[0..1] == SLASH + SLASH && self.authority == nil
2493
- raise InvalidURIError,
2494
- "Cannot have a path with two leading slashes " +
2495
- "without an authority set: '#{self.to_s}'"
2496
- end
2497
- unreserved = CharacterClasses::UNRESERVED
2498
- sub_delims = CharacterClasses::SUB_DELIMS
2499
- if !self.host.nil? && (self.host =~ /[<>{}\/\\\?\#\@"[[:space:]]]/ ||
2500
- (self.host[/^\[(.*)\]$/, 1] != nil && self.host[/^\[(.*)\]$/, 1] !~
2501
- Regexp.new("^[#{unreserved}#{sub_delims}:]*$")))
2502
- raise InvalidURIError, "Invalid character in host: '#{self.host.to_s}'"
2503
- end
2504
- return nil
2505
- end
2506
-
2507
- ##
2508
- # Replaces the internal state of self with the specified URI's state.
2509
- # Used in destructive operations to avoid massive code repetition.
2510
- #
2511
- # @param [Addressable::URI] uri The URI to replace <code>self</code> with.
2512
- #
2513
- # @return [Addressable::URI] <code>self</code>.
2514
- def replace_self(uri)
2515
- # Reset dependent values
2516
- instance_variables.each do |var|
2517
- if instance_variable_defined?(var) && var != :@validation_deferred
2518
- remove_instance_variable(var)
2519
- end
2520
- end
2521
-
2522
- @scheme = uri.scheme
2523
- @user = uri.user
2524
- @password = uri.password
2525
- @host = uri.host
2526
- @port = uri.port
2527
- @path = uri.path
2528
- @query = uri.query
2529
- @fragment = uri.fragment
2530
- return self
2531
- end
2532
-
2533
- ##
2534
- # Splits path string with "/" (slash).
2535
- # It is considered that there is empty string after last slash when
2536
- # path ends with slash.
2537
- #
2538
- # @param [String] path The path to split.
2539
- #
2540
- # @return [Array<String>] An array of parts of path.
2541
- def split_path(path)
2542
- splitted = path.split(SLASH)
2543
- splitted << EMPTY_STR if path.end_with? SLASH
2544
- splitted
2545
- end
2546
-
2547
- ##
2548
- # Resets composite values for the entire URI
2549
- #
2550
- # @api private
2551
- def remove_composite_values
2552
- remove_instance_variable(:@uri_string) if defined?(@uri_string)
2553
- remove_instance_variable(:@hash) if defined?(@hash)
2554
- end
2555
- end
2556
- end