restify 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/restify/adapter/base.rb +1 -1
  5. data/lib/restify/cache.rb +1 -1
  6. data/lib/restify/relation.rb +1 -9
  7. data/lib/restify/response.rb +2 -2
  8. data/lib/restify/version.rb +2 -2
  9. data/spec/restify/adapter/base_spec.rb +33 -0
  10. data/spec/restify/context_spec.rb +2 -2
  11. data/spec/restify/features/opentelemetry_spec.rb +1 -1
  12. data/spec/restify/global_spec.rb +50 -1
  13. data/spec/restify/link_spec.rb +13 -3
  14. data/spec/restify/relation_spec.rb +25 -6
  15. data/spec/restify/resource_spec.rb +6 -0
  16. data/spec/restify_spec.rb +1 -1
  17. data/spec/spec_helper.rb +0 -1
  18. data/vendor/bundle/ruby/4.0.0/gems/activesupport-8.1.3/CHANGELOG.md +561 -0
  19. data/vendor/bundle/ruby/{3.4.0/gems/activesupport-8.0.2 → 4.0.0/gems/activesupport-8.1.3}/README.rdoc +1 -1
  20. data/vendor/bundle/ruby/{3.4.0/gems/addressable-2.8.7 → 4.0.0/gems/addressable-2.9.0}/CHANGELOG.md +71 -46
  21. data/vendor/bundle/ruby/{3.4.0/gems/addressable-2.8.7 → 4.0.0/gems/addressable-2.9.0}/README.md +6 -6
  22. data/vendor/bundle/ruby/4.0.0/gems/ast-2.4.3/LICENSE.MIT +20 -0
  23. data/vendor/bundle/ruby/4.0.0/gems/ast-2.4.3/README.YARD.md +12 -0
  24. data/vendor/bundle/ruby/{3.4.0/gems/concurrent-ruby-1.3.5 → 4.0.0/gems/concurrent-ruby-1.3.7}/CHANGELOG.md +12 -0
  25. data/vendor/bundle/ruby/{3.4.0/gems/concurrent-ruby-1.3.5 → 4.0.0/gems/concurrent-ruby-1.3.7}/README.md +4 -2
  26. data/vendor/bundle/ruby/{3.4.0/gems/connection_pool-2.5.3 → 4.0.0/gems/connection_pool-3.0.2}/README.md +49 -34
  27. data/vendor/bundle/ruby/4.0.0/gems/crack-1.0.1/LICENSE +20 -0
  28. data/vendor/bundle/ruby/4.0.0/gems/crack-1.0.1/README.md +43 -0
  29. data/vendor/bundle/ruby/4.0.0/gems/diff-lcs-1.6.2/CHANGELOG.md +518 -0
  30. data/vendor/bundle/ruby/4.0.0/gems/diff-lcs-1.6.2/README.md +92 -0
  31. data/vendor/bundle/ruby/4.0.0/gems/docile-1.4.1/LICENSE +21 -0
  32. data/vendor/bundle/ruby/4.0.0/gems/docile-1.4.1/README.md +409 -0
  33. data/vendor/bundle/ruby/{3.4.0/gems/ethon-0.16.0 → 4.0.0/gems/ethon-0.18.0}/CHANGELOG.md +43 -1
  34. data/vendor/bundle/ruby/{3.4.0/gems/ethon-0.16.0 → 4.0.0/gems/ethon-0.18.0}/README.md +1 -1
  35. data/vendor/bundle/ruby/{3.4.0/gems/ffi-1.17.2-x86_64-linux-gnu → 4.0.0/gems/ffi-1.17.4-x86_64-linux-gnu}/CHANGELOG.md +34 -0
  36. data/vendor/bundle/ruby/{3.4.0/gems/ffi-1.17.2-x86_64-linux-gnu → 4.0.0/gems/ffi-1.17.4-x86_64-linux-gnu}/README.md +1 -0
  37. data/vendor/bundle/ruby/4.0.0/gems/hashdiff-1.2.1/LICENSE +19 -0
  38. data/vendor/bundle/ruby/4.0.0/gems/hashdiff-1.2.1/README.md +323 -0
  39. data/vendor/bundle/ruby/4.0.0/gems/hashdiff-1.2.1/changelog.md +127 -0
  40. data/vendor/bundle/ruby/{3.4.0/gems/hitimes-3.1.0 → 4.0.0/gems/hitimes-3.2.0}/README.md +1 -1
  41. data/vendor/bundle/ruby/{3.4.0/gems/i18n-1.14.7 → 4.0.0/gems/i18n-1.15.2}/README.md +13 -1
  42. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.9/README.md +310 -0
  43. data/vendor/bundle/ruby/4.0.0/gems/language_server-protocol-3.17.0.5/LICENSE.txt +21 -0
  44. data/vendor/bundle/ruby/4.0.0/gems/language_server-protocol-3.17.0.5/README.md +88 -0
  45. data/vendor/bundle/ruby/4.0.0/gems/lint_roller-1.1.0/CHANGELOG.md +15 -0
  46. data/vendor/bundle/ruby/4.0.0/gems/lint_roller-1.1.0/LICENSE.txt +21 -0
  47. data/vendor/bundle/ruby/4.0.0/gems/lint_roller-1.1.0/README.md +173 -0
  48. data/vendor/bundle/ruby/{3.4.0/gems/minitest-5.25.5 → 4.0.0/gems/minitest-6.0.6}/README.rdoc +21 -100
  49. data/vendor/bundle/ruby/{3.4.0/gems/msgpack-1.8.0 → 4.0.0/gems/msgpack-1.8.3}/ChangeLog +15 -0
  50. data/vendor/bundle/ruby/{3.4.0/gems/msgpack-1.8.0 → 4.0.0/gems/msgpack-1.8.3}/README.md +1 -1
  51. data/vendor/bundle/ruby/4.0.0/gems/multi_json-1.21.1/LICENSE.md +20 -0
  52. data/vendor/bundle/ruby/4.0.0/gems/multi_json-1.21.1/README.md +281 -0
  53. data/vendor/bundle/ruby/4.0.0/gems/nio4r-2.7.5/ext/libev/LICENSE +37 -0
  54. data/vendor/bundle/ruby/4.0.0/gems/nio4r-2.7.5/ext/libev/README +59 -0
  55. data/vendor/bundle/ruby/4.0.0/gems/nio4r-2.7.5/license.md +80 -0
  56. data/vendor/bundle/ruby/4.0.0/gems/nio4r-2.7.5/readme.md +91 -0
  57. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-api-1.10.0/CHANGELOG.md +219 -0
  58. data/vendor/bundle/ruby/{3.4.0/gems/opentelemetry-common-0.22.0 → 4.0.0/gems/opentelemetry-common-0.25.0}/CHANGELOG.md +12 -0
  59. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-instrumentation-base-0.26.1/CHANGELOG.md +97 -0
  60. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-instrumentation-base-0.26.1/LICENSE +201 -0
  61. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-instrumentation-base-0.26.1/README.md +155 -0
  62. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-instrumentation-ethon-0.29.0/CHANGELOG.md +192 -0
  63. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-instrumentation-ethon-0.29.0/LICENSE +201 -0
  64. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-instrumentation-ethon-0.29.0/README.md +66 -0
  65. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-registry-0.6.0/CHANGELOG.md +31 -0
  66. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-registry-0.6.0/LICENSE +201 -0
  67. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-registry-0.6.0/README.md +40 -0
  68. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-sdk-1.12.0/CHANGELOG.md +302 -0
  69. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-sdk-1.12.0/LICENSE +201 -0
  70. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-sdk-1.12.0/README.md +101 -0
  71. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-semantic_conventions-1.41.0/CHANGELOG.md +65 -0
  72. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-semantic_conventions-1.41.0/LICENSE +201 -0
  73. data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-semantic_conventions-1.41.0/README.md +115 -0
  74. data/vendor/bundle/ruby/4.0.0/gems/parallel-2.1.0/MIT-LICENSE.txt +20 -0
  75. data/vendor/bundle/ruby/4.0.0/gems/parser-3.3.11.1/LICENSE.txt +26 -0
  76. data/vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/CHANGELOG.md +786 -0
  77. data/vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/LICENSE.md +7 -0
  78. data/vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/README.md +143 -0
  79. data/vendor/bundle/ruby/4.0.0/gems/public_suffix-7.0.5/CHANGELOG.md +649 -0
  80. data/vendor/bundle/ruby/{3.4.0/gems/public_suffix-6.0.2 → 4.0.0/gems/public_suffix-7.0.5}/LICENSE.txt +1 -1
  81. data/vendor/bundle/ruby/{3.4.0/gems/public_suffix-6.0.2 → 4.0.0/gems/public_suffix-7.0.5}/README.md +38 -29
  82. data/vendor/bundle/ruby/4.0.0/gems/puma-8.0.2/LICENSE +29 -0
  83. data/vendor/bundle/ruby/4.0.0/gems/puma-8.0.2/README.md +484 -0
  84. data/vendor/bundle/ruby/4.0.0/gems/puma-8.0.2/docs/jungle/README.md +9 -0
  85. data/vendor/bundle/ruby/4.0.0/gems/puma-8.0.2/docs/jungle/rc.d/README.md +74 -0
  86. data/vendor/bundle/ruby/4.0.0/gems/racc-1.8.1/ChangeLog +846 -0
  87. data/vendor/bundle/ruby/4.0.0/gems/racc-1.8.1/README.ja.rdoc +58 -0
  88. data/vendor/bundle/ruby/4.0.0/gems/racc-1.8.1/README.rdoc +60 -0
  89. data/vendor/bundle/ruby/{3.4.0/gems/rack-3.1.15 → 4.0.0/gems/rack-3.2.6}/CHANGELOG.md +216 -16
  90. data/vendor/bundle/ruby/{3.4.0/gems/rack-3.1.15 → 4.0.0/gems/rack-3.2.6}/README.md +49 -20
  91. data/vendor/bundle/ruby/4.0.0/gems/rainbow-3.1.1/Changelog.md +101 -0
  92. data/vendor/bundle/ruby/4.0.0/gems/rainbow-3.1.1/LICENSE +20 -0
  93. data/vendor/bundle/ruby/4.0.0/gems/rainbow-3.1.1/README.markdown +227 -0
  94. data/vendor/bundle/ruby/{3.4.0/gems/rake-13.2.1 → 4.0.0/gems/rake-13.4.2}/README.rdoc +5 -5
  95. data/vendor/bundle/ruby/4.0.0/gems/regexp_parser-2.12.0/LICENSE +22 -0
  96. data/vendor/bundle/ruby/4.0.0/gems/rexml-3.4.4/README.md +57 -0
  97. data/vendor/bundle/ruby/4.0.0/gems/rspec-3.13.2/LICENSE.md +27 -0
  98. data/vendor/bundle/ruby/4.0.0/gems/rspec-3.13.2/README.md +47 -0
  99. data/vendor/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/Changelog.md +2447 -0
  100. data/vendor/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/LICENSE.md +26 -0
  101. data/vendor/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/README.md +389 -0
  102. data/vendor/bundle/ruby/4.0.0/gems/rspec-expectations-3.13.5/Changelog.md +1366 -0
  103. data/vendor/bundle/ruby/4.0.0/gems/rspec-expectations-3.13.5/LICENSE.md +25 -0
  104. data/vendor/bundle/ruby/4.0.0/gems/rspec-expectations-3.13.5/README.md +326 -0
  105. data/vendor/bundle/ruby/4.0.0/gems/rspec-mocks-3.13.8/Changelog.md +1351 -0
  106. data/vendor/bundle/ruby/4.0.0/gems/rspec-mocks-3.13.8/LICENSE.md +25 -0
  107. data/vendor/bundle/ruby/4.0.0/gems/rspec-mocks-3.13.8/README.md +465 -0
  108. data/vendor/bundle/ruby/4.0.0/gems/rspec-support-3.13.7/Changelog.md +444 -0
  109. data/vendor/bundle/ruby/{3.4.0/gems/multi_json-1.15.0 → 4.0.0/gems/rspec-support-3.13.7}/LICENSE.md +4 -1
  110. data/vendor/bundle/ruby/4.0.0/gems/rspec-support-3.13.7/README.md +40 -0
  111. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/LICENSE.txt +20 -0
  112. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/README.md +255 -0
  113. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.1/LICENSE.txt +20 -0
  114. data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.1/README.md +54 -0
  115. data/vendor/bundle/ruby/4.0.0/gems/rubocop-capybara-2.23.0/CHANGELOG.md +116 -0
  116. data/vendor/bundle/ruby/4.0.0/gems/rubocop-capybara-2.23.0/MIT-LICENSE.md +21 -0
  117. data/vendor/bundle/ruby/4.0.0/gems/rubocop-capybara-2.23.0/README.md +91 -0
  118. data/vendor/bundle/ruby/4.0.0/gems/rubocop-factory_bot-2.28.0/CHANGELOG.md +135 -0
  119. data/vendor/bundle/ruby/4.0.0/gems/rubocop-factory_bot-2.28.0/MIT-LICENSE.md +21 -0
  120. data/vendor/bundle/ruby/4.0.0/gems/rubocop-factory_bot-2.28.0/README.md +91 -0
  121. data/vendor/bundle/ruby/4.0.0/gems/rubocop-performance-1.26.1/LICENSE.txt +20 -0
  122. data/vendor/bundle/ruby/4.0.0/gems/rubocop-performance-1.26.1/README.md +100 -0
  123. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/CHANGELOG.md +1136 -0
  124. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/MIT-LICENSE.md +21 -0
  125. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/README.md +112 -0
  126. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec_rails-2.32.0/CHANGELOG.md +98 -0
  127. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec_rails-2.32.0/MIT-LICENSE.md +21 -0
  128. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec_rails-2.32.0/README.md +93 -0
  129. data/vendor/bundle/ruby/4.0.0/gems/ruby-progressbar-1.13.0/LICENSE.txt +19 -0
  130. data/vendor/bundle/ruby/4.0.0/gems/ruby-progressbar-1.13.0/README.md +131 -0
  131. data/vendor/bundle/ruby/4.0.0/gems/simplecov-0.22.0/CHANGELOG.md +191 -0
  132. data/vendor/bundle/ruby/4.0.0/gems/simplecov-0.22.0/LICENSE +20 -0
  133. data/vendor/bundle/ruby/4.0.0/gems/simplecov-0.22.0/README.md +974 -0
  134. data/vendor/bundle/ruby/4.0.0/gems/simplecov-cobertura-3.2.0/LICENSE +202 -0
  135. data/vendor/bundle/ruby/4.0.0/gems/simplecov-cobertura-3.2.0/README.md +65 -0
  136. data/vendor/bundle/ruby/4.0.0/gems/simplecov-html-0.13.2/CHANGELOG.md +114 -0
  137. data/vendor/bundle/ruby/4.0.0/gems/simplecov-html-0.13.2/LICENSE +20 -0
  138. data/vendor/bundle/ruby/4.0.0/gems/simplecov-html-0.13.2/README.md +30 -0
  139. data/vendor/bundle/ruby/4.0.0/gems/simplecov_json_formatter-0.1.4/CHANGELOG.md +13 -0
  140. data/vendor/bundle/ruby/4.0.0/gems/simplecov_json_formatter-0.1.4/README.md +29 -0
  141. data/vendor/bundle/ruby/{3.4.0/gems/typhoeus-1.4.1 → 4.0.0/gems/typhoeus-1.6.0}/CHANGELOG.md +56 -1
  142. data/vendor/bundle/ruby/{3.4.0/gems/typhoeus-1.4.1 → 4.0.0/gems/typhoeus-1.6.0}/README.md +2 -2
  143. data/vendor/bundle/ruby/4.0.0/gems/unicode-display_width-3.2.0/CHANGELOG.md +299 -0
  144. data/vendor/bundle/ruby/4.0.0/gems/unicode-display_width-3.2.0/MIT-LICENSE.txt +22 -0
  145. data/vendor/bundle/ruby/4.0.0/gems/unicode-display_width-3.2.0/README.md +194 -0
  146. data/vendor/bundle/ruby/4.0.0/gems/unicode-emoji-4.2.0/CHANGELOG.md +202 -0
  147. data/vendor/bundle/ruby/4.0.0/gems/unicode-emoji-4.2.0/MIT-LICENSE.txt +20 -0
  148. data/vendor/bundle/ruby/4.0.0/gems/unicode-emoji-4.2.0/README.md +205 -0
  149. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.2/CHANGELOG.md +2148 -0
  150. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.2/LICENSE +20 -0
  151. data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.2/README.md +1229 -0
  152. metadata +170 -65
  153. data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.2/CHANGELOG.md +0 -255
  154. data/vendor/bundle/ruby/3.4.0/gems/benchmark-0.4.0/README.md +0 -138
  155. data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/CHANGELOG.md +0 -275
  156. data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/README.md +0 -121
  157. data/vendor/bundle/ruby/3.4.0/gems/opentelemetry-api-1.5.0/CHANGELOG.md +0 -193
  158. data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.2/CHANGELOG.md +0 -498
  159. /data/vendor/bundle/ruby/{3.4.0/bundler/gems/my-rubocop-3bcd2110ca87 → 4.0.0/bundler/gems/my-rubocop-2b861962124a}/LICENSE +0 -0
  160. /data/vendor/bundle/ruby/{3.4.0/bundler/gems/my-rubocop-3bcd2110ca87 → 4.0.0/bundler/gems/my-rubocop-2b861962124a}/README.md +0 -0
  161. /data/vendor/bundle/ruby/{3.4.0/gems/activesupport-8.0.2 → 4.0.0/gems/activesupport-8.1.3}/MIT-LICENSE +0 -0
  162. /data/vendor/bundle/ruby/{3.4.0/gems/addressable-2.8.7 → 4.0.0/gems/addressable-2.9.0}/LICENSE.txt +0 -0
  163. /data/vendor/bundle/ruby/{3.4.0/gems/base64-0.2.0 → 4.0.0/gems/base64-0.3.0}/README.md +0 -0
  164. /data/vendor/bundle/ruby/{3.4.0/gems/bigdecimal-3.1.9 → 4.0.0/gems/bigdecimal-4.1.2}/LICENSE +0 -0
  165. /data/vendor/bundle/ruby/{3.4.0/gems/concurrent-ruby-1.3.5 → 4.0.0/gems/concurrent-ruby-1.3.7}/LICENSE.txt +0 -0
  166. /data/vendor/bundle/ruby/{3.4.0/gems/connection_pool-2.5.3 → 4.0.0/gems/connection_pool-3.0.2}/LICENSE +0 -0
  167. /data/vendor/bundle/ruby/{3.4.0/gems/base64-0.2.0 → 4.0.0/gems/drb-2.2.3}/LICENSE.txt +0 -0
  168. /data/vendor/bundle/ruby/{3.4.0/gems/ethon-0.16.0 → 4.0.0/gems/ethon-0.18.0}/LICENSE +0 -0
  169. /data/vendor/bundle/ruby/{3.4.0/gems/ffi-1.17.2-x86_64-linux-gnu → 4.0.0/gems/ffi-1.17.4-x86_64-linux-gnu}/LICENSE +0 -0
  170. /data/vendor/bundle/ruby/{3.4.0/gems/ffi-1.17.2-x86_64-linux-gnu → 4.0.0/gems/ffi-1.17.4-x86_64-linux-gnu}/LICENSE.SPECS +0 -0
  171. /data/vendor/bundle/ruby/{3.4.0/gems/hitimes-3.1.0 → 4.0.0/gems/hitimes-3.2.0}/LICENSE.txt +0 -0
  172. /data/vendor/bundle/ruby/{3.4.0/gems/i18n-1.14.7 → 4.0.0/gems/i18n-1.15.2}/MIT-LICENSE +0 -0
  173. /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/little-plugger-1.1.4/README.rdoc +0 -0
  174. /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/logger-1.7.0/README.md +0 -0
  175. /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/logging-2.4.0/LICENSE +0 -0
  176. /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/logging-2.4.0/README.md +0 -0
  177. /data/vendor/bundle/ruby/{3.4.0/gems/msgpack-1.8.0 → 4.0.0/gems/msgpack-1.8.3}/LICENSE +0 -0
  178. /data/vendor/bundle/ruby/{3.4.0/gems/opentelemetry-api-1.5.0 → 4.0.0/gems/opentelemetry-api-1.10.0}/LICENSE +0 -0
  179. /data/vendor/bundle/ruby/{3.4.0/gems/opentelemetry-api-1.5.0 → 4.0.0/gems/opentelemetry-api-1.10.0}/README.md +0 -0
  180. /data/vendor/bundle/ruby/{3.4.0/gems/opentelemetry-common-0.22.0 → 4.0.0/gems/opentelemetry-common-0.25.0}/LICENSE +0 -0
  181. /data/vendor/bundle/ruby/{3.4.0/gems/opentelemetry-common-0.22.0 → 4.0.0/gems/opentelemetry-common-0.25.0}/README.md +0 -0
  182. /data/vendor/bundle/ruby/{3.4.0/gems/rack-3.1.15 → 4.0.0/gems/rack-3.2.6}/MIT-LICENSE +0 -0
  183. /data/vendor/bundle/ruby/{3.4.0/gems/rake-13.2.1 → 4.0.0/gems/rake-13.4.2}/MIT-LICENSE +0 -0
  184. /data/vendor/bundle/ruby/{3.4.0/gems/rake-release-1.3.0 → 4.0.0/gems/rake-release-1.4.0}/LICENSE +0 -0
  185. /data/vendor/bundle/ruby/{3.4.0/gems/rake-release-1.3.0 → 4.0.0/gems/rake-release-1.4.0}/README.md +0 -0
  186. /data/vendor/bundle/ruby/{3.4.0/gems/drb-2.2.1 → 4.0.0/gems/rexml-3.4.4}/LICENSE.txt +0 -0
  187. /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/securerandom-0.4.1/README.md +0 -0
  188. /data/vendor/bundle/ruby/{3.4.0/gems/typhoeus-1.4.1 → 4.0.0/gems/typhoeus-1.6.0}/LICENSE +0 -0
  189. /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/tzinfo-2.0.6/LICENSE +0 -0
  190. /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/tzinfo-2.0.6/README.md +0 -0
  191. /data/vendor/bundle/ruby/{3.4.0/gems/uri-1.0.3 → 4.0.0/gems/uri-1.1.1}/README.md +0 -0
@@ -1,14 +1,39 @@
1
- # Addressable 2.8.7 <a name="v2.8.7">
1
+ # Changelog
2
+
3
+ ## Addressable 2.9.0 <a name="v2.9.0">
4
+ - fixes ReDoS vulnerability in Addressable::Template#match (fixes incomplete
5
+ remediation in 2.8.10)
6
+
7
+ ## Addressable 2.8.10 <a name="v2.8.10">
8
+ - fixes ReDoS vulnerability in Addressable::Template#match
9
+
10
+ ## Addressable 2.8.9 <a name="v2.8.9">
11
+ - Reduce gem size by excluding test files ([#569])
12
+ - No need for bundler as development dependency ([#571], [5fc1d93](https://github.com/sporkmonger/addressable/commit/5fc1d93))
13
+ - idna/pure: stop building the useless `COMPOSITION_TABLE` (removes the `Addressable::IDNA::COMPOSITION_TABLE` constant) ([#564])
14
+
15
+ [#569]: https://github.com/sporkmonger/addressable/pull/569
16
+ [#571]: https://github.com/sporkmonger/addressable/pull/571
17
+ [#564]: https://github.com/sporkmonger/addressable/pull/564
18
+
19
+ ## Addressable 2.8.8 <a name="v2.8.8">
20
+ - Replace the `unicode.data` blob by a ruby constant ([#561])
21
+ - Allow `public_suffix` 7 ([#558])
22
+
23
+ [#561]: https://github.com/sporkmonger/addressable/pull/561
24
+ [#558]: https://github.com/sporkmonger/addressable/pull/558
25
+
26
+ ## Addressable 2.8.7 <a name="v2.8.7">
2
27
  - Allow `public_suffix` 6 ([#535])
3
28
 
4
29
  [#535]: https://github.com/sporkmonger/addressable/pull/535
5
30
 
6
- # Addressable 2.8.6 <a name="v2.8.6">
31
+ ## Addressable 2.8.6 <a name="v2.8.6">
7
32
  - Memoize regexps for common character classes ([#524])
8
33
 
9
34
  [#524]: https://github.com/sporkmonger/addressable/pull/524
10
35
 
11
- # Addressable 2.8.5 <a name="v2.8.5">
36
+ ## Addressable 2.8.5 <a name="v2.8.5">
12
37
  - Fix thread safety issue with encoding tables ([#515])
13
38
  - Define URI::NONE as a module to avoid serialization issues ([#509])
14
39
  - Fix YAML serialization ([#508])
@@ -17,18 +42,18 @@
17
42
  [#509]: https://github.com/sporkmonger/addressable/pull/509
18
43
  [#515]: https://github.com/sporkmonger/addressable/pull/515
19
44
 
20
- # Addressable 2.8.4 <a name="v2.8.4">
45
+ ## Addressable 2.8.4 <a name="v2.8.4">
21
46
  - Restore `Addressable::IDNA.unicode_normalize_kc` as a deprecated method ([#504])
22
47
 
23
48
  [#504]: https://github.com/sporkmonger/addressable/pull/504
24
49
 
25
- # Addressable 2.8.3 <a name="v2.8.3">
50
+ ## Addressable 2.8.3 <a name="v2.8.3">
26
51
  - Fix template expand level 2 hash support for non-string objects ([#499], [#498])
27
52
 
28
53
  [#499]: https://github.com/sporkmonger/addressable/pull/499
29
54
  [#498]: https://github.com/sporkmonger/addressable/pull/498
30
55
 
31
- # Addressable 2.8.2 <a name="v2.8.2">
56
+ ## Addressable 2.8.2 <a name="v2.8.2">
32
57
  - Improve cache hits and JIT friendliness ([#486](https://github.com/sporkmonger/addressable/pull/486))
33
58
  - Improve code style and test coverage ([#482](https://github.com/sporkmonger/addressable/pull/482))
34
59
  - Ensure reset of deferred validation ([#481](https://github.com/sporkmonger/addressable/pull/481))
@@ -37,7 +62,7 @@
37
62
 
38
63
  [#492]: https://github.com/sporkmonger/addressable/pull/492
39
64
 
40
- # Addressable 2.8.1 <a name="v2.8.1">
65
+ ## Addressable 2.8.1 <a name="v2.8.1">
41
66
  - refactor `Addressable::URI.normalize_path` to address linter offenses ([#430](https://github.com/sporkmonger/addressable/pull/430))
42
67
  - update gemspec to reflect supported Ruby versions ([#466], [#464], [#463])
43
68
  - compatibility w/ public_suffix 5.x ([#466], [#465], [#460])
@@ -53,7 +78,7 @@
53
78
  [#465]: https://github.com/sporkmonger/addressable/pull/465
54
79
  [#466]: https://github.com/sporkmonger/addressable/pull/466
55
80
 
56
- # Addressable 2.8.0 <a name="v2.8.0">
81
+ ## Addressable 2.8.0 <a name="v2.8.0">
57
82
  - fixes ReDoS vulnerability in Addressable::Template#match
58
83
  - no longer replaces `+` with spaces in queries for non-http(s) schemes
59
84
  - fixed encoding ipv6 literals
@@ -65,14 +90,14 @@
65
90
  - performance improvements
66
91
  - switch CI/CD to GitHub Actions
67
92
 
68
- # Addressable 2.7.0 <a name="v2.7.0">
93
+ ## Addressable 2.7.0 <a name="v2.7.0">
69
94
  - added `:compacted` flag to `normalized_query`
70
95
  - `heuristic_parse` handles `mailto:` more intuitively
71
96
  - dropped explicit support for JRuby 9.0.5.0
72
97
  - compatibility w/ public_suffix 4.x
73
98
  - performance improvements
74
99
 
75
- # Addressable 2.6.0 <a name="v2.6.0">
100
+ ## Addressable 2.6.0 <a name="v2.6.0">
76
101
  - added `tld=` method to allow assignment to the public suffix
77
102
  - most `heuristic_parse` patterns are now case-insensitive
78
103
  - `heuristic_parse` handles more `file://` URI variations
@@ -83,17 +108,17 @@
83
108
  - minor performance improvements in regexps
84
109
  - fixes to eliminate warnings
85
110
 
86
- # Addressable 2.5.2 <a name="v2.5.2">
111
+ ## Addressable 2.5.2 <a name="v2.5.2">
87
112
  - better support for frozen string literals
88
113
  - fixed bug w/ uppercase characters in scheme
89
114
  - IDNA errors w/ emoji URLs
90
115
  - compatibility w/ public_suffix 3.x
91
116
 
92
- # Addressable 2.5.1 <a name="v2.5.1">
117
+ ## Addressable 2.5.1 <a name="v2.5.1">
93
118
  - allow unicode normalization to be disabled for URI Template expansion
94
119
  - removed duplicate test
95
120
 
96
- # Addressable 2.5.0 <a name="v2.5.0">
121
+ ## Addressable 2.5.0 <a name="v2.5.0">
97
122
  - dropping support for Ruby 1.9
98
123
  - adding support for Ruby 2.4 preview
99
124
  - add support for public suffixes and tld; first runtime dependency
@@ -107,7 +132,7 @@
107
132
  - host parts longer than 63 bytes will be ignored and not passed to libidn
108
133
  - normalized values always encoded as UTF-8
109
134
 
110
- # Addressable 2.4.0 <a name="v2.4.0">
135
+ ## Addressable 2.4.0 <a name="v2.4.0">
111
136
  - support for 1.8.x dropped
112
137
  - double quotes in a host now raises an error
113
138
  - newlines in host will no longer get unescaped during normalization
@@ -119,17 +144,17 @@
119
144
  - fixed minor bug where an exception would be thrown for a missing ACE suffix
120
145
  - better partial expansion of URI templates
121
146
 
122
- # Addressable 2.3.8 <a name="v2.3.8">
147
+ ## Addressable 2.3.8 <a name="v2.3.8">
123
148
  - fix warnings
124
149
  - update dependency gems
125
150
  - support for 1.8.x officially deprecated
126
151
 
127
- # Addressable 2.3.7 <a name="v2.3.7">
152
+ ## Addressable 2.3.7 <a name="v2.3.7">
128
153
  - fix scenario in which invalid URIs don't get an exception until inspected
129
154
  - handle hostnames with two adjacent periods correctly
130
155
  - upgrade of RSpec
131
156
 
132
- # Addressable 2.3.6 <a name="v2.3.6">
157
+ ## Addressable 2.3.6 <a name="v2.3.6">
133
158
  - normalization drops empty query string
134
159
  - better handling in template extract for missing values
135
160
  - template modifier for `'?'` now treated as optional
@@ -138,19 +163,19 @@
138
163
  - added `:sorted` option to normalization of query strings
139
164
  - fixed issue with normalization of hosts given in `'example.com.'` form
140
165
 
141
- # Addressable 2.3.5 <a name="v2.3.5">
166
+ ## Addressable 2.3.5 <a name="v2.3.5">
142
167
  - added Addressable::URI#empty? method
143
168
  - Addressable::URI#hostname methods now strip square brackets from IPv6 hosts
144
169
  - compatibility with Net::HTTP in Ruby 2.0.0
145
170
  - Addressable::URI#route_from should always give relative URIs
146
171
 
147
- # Addressable 2.3.4 <a name="v2.3.4">
172
+ ## Addressable 2.3.4 <a name="v2.3.4">
148
173
  - fixed issue with encoding altering its inputs
149
174
  - query string normalization now leaves ';' characters alone
150
175
  - FakeFS is detected before attempting to load unicode tables
151
176
  - additional testing to ensure frozen objects don't cause problems
152
177
 
153
- # Addressable 2.3.3 <a name="v2.3.3">
178
+ ## Addressable 2.3.3 <a name="v2.3.3">
154
179
  - fixed issue with converting common primitives during template expansion
155
180
  - fixed port encoding issue
156
181
  - removed a few warnings
@@ -159,59 +184,59 @@
159
184
  - no template match should now result in nil instead of an empty MatchData
160
185
  - added license information to gemspec
161
186
 
162
- # Addressable 2.3.2 <a name="v2.3.2">
187
+ ## Addressable 2.3.2 <a name="v2.3.2">
163
188
  - added Addressable::URI#default_port method
164
189
  - fixed issue with Marshalling Unicode data on Windows
165
190
  - improved heuristic parsing to better handle IPv4 addresses
166
191
 
167
- # Addressable 2.3.1 <a name="v2.3.1">
192
+ ## Addressable 2.3.1 <a name="v2.3.1">
168
193
  - fixed missing unicode data file
169
194
 
170
- # Addressable 2.3.0 <a name="v2.3.0">
195
+ ## Addressable 2.3.0 <a name="v2.3.0">
171
196
  - updated Addressable::Template to use RFC 6570, level 4
172
197
  - fixed compatibility problems with some versions of Ruby
173
198
  - moved unicode tables into a data file for performance reasons
174
199
  - removing support for multiple query value notations
175
200
 
176
- # Addressable 2.2.8 <a name="v2.2.8">
201
+ ## Addressable 2.2.8 <a name="v2.2.8">
177
202
  - fixed issues with dot segment removal code
178
203
  - form encoding can now handle multiple values per key
179
204
  - updated development environment
180
205
 
181
- # Addressable 2.2.7 <a name="v2.2.7">
206
+ ## Addressable 2.2.7 <a name="v2.2.7">
182
207
  - fixed issues related to Addressable::URI#query_values=
183
208
  - the Addressable::URI.parse method is now polymorphic
184
209
 
185
- # Addressable 2.2.6 <a name="v2.2.6">
210
+ ## Addressable 2.2.6 <a name="v2.2.6">
186
211
  - changed the way ambiguous paths are handled
187
212
  - fixed bug with frozen URIs
188
213
  - https supported in heuristic parsing
189
214
 
190
- # Addressable 2.2.5 <a name="v2.2.5">
215
+ ## Addressable 2.2.5 <a name="v2.2.5">
191
216
  - 'parsing' a pre-parsed URI object is now a dup operation
192
217
  - introduced conditional support for libidn
193
218
  - fixed normalization issue on ampersands in query strings
194
219
  - added additional tests around handling of query strings
195
220
 
196
- # Addressable 2.2.4 <a name="v2.2.4">
221
+ ## Addressable 2.2.4 <a name="v2.2.4">
197
222
  - added origin support from draft-ietf-websec-origin-00
198
223
  - resolved issue with attempting to navigate below root
199
224
  - fixed bug with string splitting in query strings
200
225
 
201
- # Addressable 2.2.3 <a name="v2.2.3">
226
+ ## Addressable 2.2.3 <a name="v2.2.3">
202
227
  - added :flat_array notation for query strings
203
228
 
204
- # Addressable 2.2.2 <a name="v2.2.2">
229
+ ## Addressable 2.2.2 <a name="v2.2.2">
205
230
  - fixed issue with percent escaping of '+' character in query strings
206
231
 
207
- # Addressable 2.2.1 <a name="v2.2.1">
232
+ ## Addressable 2.2.1 <a name="v2.2.1">
208
233
  - added support for application/x-www-form-urlencoded.
209
234
 
210
- # Addressable 2.2.0 <a name="v2.2.0">
235
+ ## Addressable 2.2.0 <a name="v2.2.0">
211
236
  - added site methods
212
237
  - improved documentation
213
238
 
214
- # Addressable 2.1.2 <a name="v2.1.2">
239
+ ## Addressable 2.1.2 <a name="v2.1.2">
215
240
  - added HTTP request URI methods
216
241
  - better handling of Windows file paths
217
242
  - validation_deferred boolean replaced with defer_validation block
@@ -219,14 +244,14 @@
219
244
  - fixed issue with constructing URIs with relative paths
220
245
  - fixed warnings
221
246
 
222
- # Addressable 2.1.1 <a name="v2.1.1">
247
+ ## Addressable 2.1.1 <a name="v2.1.1">
223
248
  - more type checking changes
224
249
  - fixed issue with unicode normalization
225
250
  - added method to find template defaults
226
251
  - symbolic keys are now allowed in template mappings
227
252
  - numeric values and symbolic values are now allowed in template mappings
228
253
 
229
- # Addressable 2.1.0 <a name="v2.1.0">
254
+ ## Addressable 2.1.0 <a name="v2.1.0x">
230
255
  - refactored URI template support out into its own class
231
256
  - removed extract method due to being useless and unreliable
232
257
  - removed Addressable::URI.expand_template
@@ -240,15 +265,15 @@
240
265
  - worked around issue with freezing URIs
241
266
  - improved specs
242
267
 
243
- # Addressable 2.0.2 <a name="v2.0.2">
268
+ ## Addressable 2.0.2 <a name="v2.0.2">
244
269
  - fixed issue with URI template expansion
245
270
  - fixed issue with percent escaping characters 0-15
246
271
 
247
- # Addressable 2.0.1 <a name="v2.0.1">
272
+ ## Addressable 2.0.1 <a name="v2.0.1">
248
273
  - fixed issue with query string assignment
249
274
  - fixed issue with improperly encoded components
250
275
 
251
- # Addressable 2.0.0 <a name="v2.0.0">
276
+ ## Addressable 2.0.0 <a name="v2.0.0">
252
277
  - the initialize method now takes an options hash as its only parameter
253
278
  - added query_values method to URI class
254
279
  - completely replaced IDNA implementation with pure Ruby
@@ -263,20 +288,20 @@
263
288
  - updated URI Template code to match v 03 of the draft spec
264
289
  - added a bunch of new specifications
265
290
 
266
- # Addressable 1.0.4 <a name="v1.0.4">
291
+ ## Addressable 1.0.4 <a name="v1.0.4">
267
292
  - switched to using RSpec's pending system for specs that rely on IDN
268
293
  - fixed issue with creating URIs with paths that are not prefixed with '/'
269
294
 
270
- # Addressable 1.0.3 <a name="v1.0.3">
295
+ ## Addressable 1.0.3 <a name="v1.0.3">
271
296
  - implemented a hash method
272
297
 
273
- # Addressable 1.0.2 <a name="v1.0.2">
298
+ ## Addressable 1.0.2 <a name="v1.0.2">
274
299
  - fixed minor bug with the extract_mapping method
275
300
 
276
- # Addressable 1.0.1 <a name="v1.0.1">
301
+ ## Addressable 1.0.1 <a name="v1.0.1">
277
302
  - fixed minor bug with the extract_mapping method
278
303
 
279
- # Addressable 1.0.0 <a name="v1.0.0">
304
+ ## Addressable 1.0.0 <a name="v1.0.0">
280
305
  - heuristic parse method added
281
306
  - parsing is slightly more strict
282
307
  - replaced to_h with to_hash
@@ -285,16 +310,16 @@
285
310
  - improved heckle rake task
286
311
  - no surviving heckle mutations
287
312
 
288
- # Addressable 0.1.2 <a name="v0.1.2">
313
+ ## Addressable 0.1.2 <a name="v0.1.2">
289
314
  - improved normalization
290
315
  - fixed bug in joining algorithm
291
316
  - updated specifications
292
317
 
293
- # Addressable 0.1.1 <a name="v0.1.1">
318
+ ## Addressable 0.1.1 <a name="v0.1.1">
294
319
  - updated documentation
295
320
  - added URI Template variable extraction
296
321
 
297
- # Addressable 0.1.0 <a name="v0.1.0">
322
+ ## Addressable 0.1.0 <a name="v0.1.0">
298
323
  - initial release
299
324
  - implementation based on RFC 3986, 3987
300
325
  - support for IRIs via libidn
@@ -17,7 +17,7 @@
17
17
  [coveralls]: https://coveralls.io/r/sporkmonger/addressable
18
18
  [inch]: https://inch-ci.org/github/sporkmonger/addressable
19
19
 
20
- # Description
20
+ ## Description
21
21
 
22
22
  Addressable is an alternative implementation to the URI implementation
23
23
  that is part of Ruby's standard library. It is flexible, offers heuristic
@@ -25,12 +25,12 @@ parsing, and additionally provides extensive support for IRIs and URI templates.
25
25
 
26
26
  Addressable closely conforms to RFC 3986, RFC 3987, and RFC 6570 (level 4).
27
27
 
28
- # Reference
28
+ ## Reference
29
29
 
30
30
  - {Addressable::URI}
31
31
  - {Addressable::Template}
32
32
 
33
- # Example usage
33
+ ## Example usage
34
34
 
35
35
  ```ruby
36
36
  require "addressable/uri"
@@ -49,7 +49,7 @@ uri.normalize
49
49
  ```
50
50
 
51
51
 
52
- # URI Templates
52
+ ## URI Templates
53
53
 
54
54
  For more details, see [RFC 6570](https://www.rfc-editor.org/rfc/rfc6570.txt).
55
55
 
@@ -88,7 +88,7 @@ template.extract(uri)
88
88
  # }
89
89
  ```
90
90
 
91
- # Install
91
+ ## Install
92
92
 
93
93
  ```console
94
94
  $ gem install addressable
@@ -103,7 +103,7 @@ $ brew install libidn # OS X
103
103
  $ gem install idn-ruby
104
104
  ```
105
105
 
106
- # Semantic Versioning
106
+ ## Semantic Versioning
107
107
 
108
108
  This project uses [Semantic Versioning](https://semver.org/). You can (and should) specify your
109
109
  dependency using a pessimistic version constraint covering the major and minor
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011-2013 Peter Zotov <whitequark@whitequark.org>
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a
4
+ copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included
12
+ in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,12 @@
1
+ {AST} is a library for manipulating abstract syntax trees.
2
+
3
+ It embraces immutability; each AST node is inherently frozen at
4
+ creation, and updating a child node requires recreating that node
5
+ and its every parent, recursively.
6
+
7
+ This is a design choice. It does create some pressure on
8
+ garbage collector, but completely eliminates all concurrency
9
+ and aliasing problems.
10
+
11
+ See also {AST::Node}, {AST::Processor::Mixin} and {AST::Sexp} for
12
+ additional recommendations and design patterns.
@@ -1,5 +1,17 @@
1
1
  ## Current
2
2
 
3
+ ## Release v1.3.7 (16 June 2026)
4
+
5
+ concurrent-ruby:
6
+
7
+ * See the [release notes on GitHub](https://github.com/ruby-concurrency/concurrent-ruby/releases/tag/v1.3.7).
8
+
9
+ ## Release v1.3.6 (13 December 2025)
10
+
11
+ concurrent-ruby:
12
+
13
+ * See the [release notes on GitHub](https://github.com/ruby-concurrency/concurrent-ruby/releases/tag/v1.3.6).
14
+
3
15
  ## Release v1.3.5, edge v0.7.2 (15 January 2025)
4
16
 
5
17
  concurrent-ruby:
@@ -207,7 +207,7 @@ Deprecated features are still available and bugs are being fixed, but new featur
207
207
  These are available in the `concurrent-ruby-edge` companion gem.
208
208
 
209
209
  These features are under active development and may change frequently. They are expected not to
210
- keep backward compatibility (there may also lack tests and documentation). Semantic versions will
210
+ keep backward compatibility (they may also lack tests and documentation). Semantic versions will
211
211
  be obeyed though. Features developed in `concurrent-ruby-edge` are expected to move to
212
212
  `concurrent-ruby` when final.
213
213
 
@@ -358,7 +358,8 @@ best practice is to depend on `concurrent-ruby` and let users to decide if they
358
358
  * Recent CRuby
359
359
  * JRuby, `rbenv install jruby-9.2.17.0`
360
360
  * Set env variable `CONCURRENT_JRUBY_HOME` to point to it, e.g. `/usr/local/opt/rbenv/versions/jruby-9.2.17.0`
361
- * Install Docker, required for Windows builds
361
+ * Install Docker or Podman, required for Windows builds
362
+ * If `bundle config get path` is set, use `bundle config set --local path.system true` otherwise the `gem name, path: '.'` gems won't be found (Bundler limitation).
362
363
 
363
364
  ### Publishing the Gem
364
365
 
@@ -378,6 +379,7 @@ best practice is to depend on `concurrent-ruby` and let users to decide if they
378
379
  * [Charles Oliver Nutter](https://github.com/headius)
379
380
  * [Ben Sheldon](https://github.com/bensheldon)
380
381
  * [Samuel Williams](https://github.com/ioquatix)
382
+ * [Joshua Young](https://github.com/joshuay03)
381
383
 
382
384
  ### Special Thanks to
383
385
 
@@ -38,7 +38,7 @@ connection pool and a raw client.
38
38
  $redis.then { |r| r.set 'foo' 'bar' }
39
39
  ```
40
40
 
41
- Optionally, you can specify a timeout override using the with-block semantics:
41
+ Optionally, you can specify a timeout override:
42
42
 
43
43
  ``` ruby
44
44
  $memcached.with(timeout: 2.0) do |conn|
@@ -46,11 +46,9 @@ $memcached.with(timeout: 2.0) do |conn|
46
46
  end
47
47
  ```
48
48
 
49
- This will only modify the resource-get timeout for this particular
50
- invocation.
49
+ This will only modify the timeout for this particular invocation.
51
50
  This is useful if you want to fail-fast on certain non-critical
52
51
  sections when a resource is not available, or conversely if you are comfortable blocking longer on a particular resource.
53
- This is not implemented in the `ConnectionPool::Wrapper` class.
54
52
 
55
53
  ## Migrating to a Connection Pool
56
54
 
@@ -72,7 +70,7 @@ $redis.with do |conn|
72
70
  end
73
71
  ```
74
72
 
75
- Once you've ported your entire system to use `with`, you can simply remove `Wrapper` and use the simpler and faster `ConnectionPool`.
73
+ Once you've ported your entire system to use `with`, you can remove `::Wrapper` and use `ConnectionPool` directly.
76
74
 
77
75
 
78
76
  ## Shutdown
@@ -90,41 +88,50 @@ Shutting down a connection pool will block until all connections are checked in
90
88
 
91
89
  ## Reload
92
90
 
93
- You can reload a ConnectionPool instance in the case it is desired to close all connections to the pool and, unlike `shutdown`, afterwards recreate connections so the pool may continue to be used.
94
- Reloading may be useful after forking the process.
91
+ You can reload a ConnectionPool instance if it is necessary to close all existing connections and continue to use the pool.
92
+ ConnectionPool will automatically reload if the process is forked.
93
+ Use `auto_reload_after_fork: false` if you don't want this behavior.
95
94
 
96
95
  ```ruby
97
- cp = ConnectionPool.new { Redis.new }
98
- cp.reload { |conn| conn.quit }
96
+ cp = ConnectionPool.new(auto_reload_after_fork: false) { Redis.new }
97
+ cp.reload { |conn| conn.quit } # reload manually
99
98
  cp.with { |conn| conn.get('some-count') }
100
99
  ```
101
100
 
102
- Like `shutdown`, this will block until all connections are checked in and closed.
101
+ Like `shutdown`, `reload` will block until all connections are checked in and closed.
103
102
 
104
103
  ## Reap
105
104
 
106
- You can reap idle connections in the ConnectionPool instance to close connections that were created but have not been used for a certain amount of time. This can be useful to run periodically in a separate thread especially if keeping the connection open is resource intensive.
105
+ You can call `reap` periodically on the ConnectionPool instance to close connections that were created but have not been used for a certain amount of time. This can be useful in environments where connections are expensive.
107
106
 
108
- You can specify how many seconds the connections have to be idle for them to be reaped.
109
- Defaults to 60 seconds.
107
+ You can specify how many seconds the connections have to be idle for them to be reaped, defaulting to 60 seconds.
110
108
 
111
109
  ```ruby
112
110
  cp = ConnectionPool.new { Redis.new }
113
- cp.reap(300) { |conn| conn.close } # Reaps connections that have been idle for 300 seconds (5 minutes).
111
+
112
+ # Start a reaper thread to reap connections that have been
113
+ # idle more than 300 seconds (5 minutes)
114
+ Thread.new do
115
+ loop do
116
+ cp.reap(idle_seconds: 300, &:close)
117
+ sleep 30
118
+ end
119
+ end
114
120
  ```
115
121
 
116
- ### Reaper Thread
122
+ ## Discarding Connections
117
123
 
118
- You can start your own reaper thread to reap idle connections in the ConnectionPool instance on a regular interval.
124
+ You can discard connections in the ConnectionPool instance to remove connections that are broken and can't be repaired.
125
+ It can only be done inside the block passed to `with`.
126
+ Takes an optional block that will be executed with the connection.
119
127
 
120
128
  ```ruby
121
- cp = ConnectionPool.new { Redis.new }
122
-
123
- # Start a reaper thread to reap connections that have been idle for 300 seconds (5 minutes).
124
- Thread.new do
125
- loop do
126
- cp.reap(300) { |conn| conn.close }
127
- sleep 300
129
+ pool.with do |conn|
130
+ begin
131
+ conn.execute("SELECT 1")
132
+ rescue SomeConnectionError
133
+ pool.discard_current_connection(&:close) # remove the connection from the pool
134
+ raise
128
135
  end
129
136
  end
130
137
  ```
@@ -148,20 +155,28 @@ end
148
155
  cp.idle # => 1
149
156
  ```
150
157
 
151
- Notes
152
- -----
158
+ ## Upgrading from ConnectionPool 2
159
+
160
+ * Support for Ruby <3.2 has been removed.
161
+ * ConnectionPool's APIs now consistently use keyword arguments everywhere.
162
+ Positional arguments must be converted to keywords:
163
+ ```ruby
164
+ pool = ConnectionPool.new(size: 5, timeout: 5)
165
+ pool.checkout(1) # 2.x
166
+ pool.reap(30) # 2.x
167
+ pool.checkout(timeout: 1) # 3.x
168
+ pool.reap(idle_seconds: 30) # 3.x
169
+ ```
170
+
171
+ ## Notes
153
172
 
154
173
  - Connections are lazily created as needed.
155
- - There is no provision for repairing or checking the health of a connection;
156
- connections should be self-repairing. This is true of the Dalli and Redis
157
- clients.
158
- - **WARNING**: Don't ever use `Timeout.timeout` in your Ruby code or you will see
174
+ - **WARNING**: Avoid `Timeout.timeout` in your Ruby code or you can see
159
175
  occasional silent corruption and mysterious errors. The Timeout API is unsafe
160
- and cannot be used correctly, ever. Use proper socket timeout options as
161
- exposed by Net::HTTP, Redis, Dalli, etc.
176
+ and dangerous to use. Use proper socket timeout options as exposed by
177
+ Net::HTTP, Redis, Dalli, etc.
162
178
 
163
179
 
164
- Author
165
- ------
180
+ ## Author
166
181
 
167
- Mike Perham, [@getajobmike](https://twitter.com/getajobmike), <https://www.mikeperham.com>
182
+ Mike Perham, [@getajobmike](https://ruby.social/@getajobmike), <https://www.mikeperham.com>
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 John Nunemaker
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,43 @@
1
+ # crack
2
+
3
+ [![Test](https://github.com/jnunemaker/crack/actions/workflows/test.yml/badge.svg)](https://github.com/jnunemaker/crack/actions/workflows/test.yml)
4
+ [![Gem Version](https://badge.fury.io/rb/crack.svg)](https://badge.fury.io/rb/crack)
5
+ ![downloads](https://img.shields.io/gem/dt/crack?label=downloads)
6
+
7
+ Really simple JSON and XML parsing, ripped from Merb and Rails. The XML parser is ripped from Merb and the JSON parser is ripped from Rails. I take no credit, just packaged them for all to enjoy and easily use.
8
+
9
+ ## compatibility
10
+
11
+ * Ruby 2.x
12
+ * Ruby 3.x
13
+
14
+ ## note on patches/pull requests
15
+
16
+ * Fork the project.
17
+ * Make your feature addition or bug fix.
18
+ * Add tests for it. This is important so I don't break it in a future version unintentionally.
19
+ * Run the tests with `rake test`
20
+ * Open a Pull Request with the changes
21
+
22
+ ## usage
23
+
24
+ ```ruby
25
+ gem 'crack' # in Gemfile
26
+ require 'crack' # for xml and json
27
+ require 'crack/json' # for just json
28
+ require 'crack/xml' # for just xml
29
+ ```
30
+
31
+ ## examples
32
+
33
+ ```ruby
34
+ Crack::XML.parse("<tag>This is the contents</tag>")
35
+ # => {'tag' => 'This is the contents'}
36
+
37
+ Crack::JSON.parse('{"tag":"This is the contents"}')
38
+ # => {'tag' => 'This is the contents'}
39
+ ```
40
+
41
+ ## Copyright
42
+
43
+ Copyright (c) 2009 John Nunemaker. See LICENSE for details.