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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +1 -1
- data/lib/restify/adapter/base.rb +1 -1
- data/lib/restify/cache.rb +1 -1
- data/lib/restify/relation.rb +1 -9
- data/lib/restify/response.rb +2 -2
- data/lib/restify/version.rb +2 -2
- data/spec/restify/adapter/base_spec.rb +33 -0
- data/spec/restify/context_spec.rb +2 -2
- data/spec/restify/features/opentelemetry_spec.rb +1 -1
- data/spec/restify/global_spec.rb +50 -1
- data/spec/restify/link_spec.rb +13 -3
- data/spec/restify/relation_spec.rb +25 -6
- data/spec/restify/resource_spec.rb +6 -0
- data/spec/restify_spec.rb +1 -1
- data/spec/spec_helper.rb +0 -1
- data/vendor/bundle/ruby/4.0.0/gems/activesupport-8.1.3/CHANGELOG.md +561 -0
- data/vendor/bundle/ruby/{3.4.0/gems/activesupport-8.0.2 → 4.0.0/gems/activesupport-8.1.3}/README.rdoc +1 -1
- data/vendor/bundle/ruby/{3.4.0/gems/addressable-2.8.7 → 4.0.0/gems/addressable-2.9.0}/CHANGELOG.md +71 -46
- data/vendor/bundle/ruby/{3.4.0/gems/addressable-2.8.7 → 4.0.0/gems/addressable-2.9.0}/README.md +6 -6
- data/vendor/bundle/ruby/4.0.0/gems/ast-2.4.3/LICENSE.MIT +20 -0
- data/vendor/bundle/ruby/4.0.0/gems/ast-2.4.3/README.YARD.md +12 -0
- 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
- 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
- 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
- data/vendor/bundle/ruby/4.0.0/gems/crack-1.0.1/LICENSE +20 -0
- data/vendor/bundle/ruby/4.0.0/gems/crack-1.0.1/README.md +43 -0
- data/vendor/bundle/ruby/4.0.0/gems/diff-lcs-1.6.2/CHANGELOG.md +518 -0
- data/vendor/bundle/ruby/4.0.0/gems/diff-lcs-1.6.2/README.md +92 -0
- data/vendor/bundle/ruby/4.0.0/gems/docile-1.4.1/LICENSE +21 -0
- data/vendor/bundle/ruby/4.0.0/gems/docile-1.4.1/README.md +409 -0
- data/vendor/bundle/ruby/{3.4.0/gems/ethon-0.16.0 → 4.0.0/gems/ethon-0.18.0}/CHANGELOG.md +43 -1
- data/vendor/bundle/ruby/{3.4.0/gems/ethon-0.16.0 → 4.0.0/gems/ethon-0.18.0}/README.md +1 -1
- 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
- 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
- data/vendor/bundle/ruby/4.0.0/gems/hashdiff-1.2.1/LICENSE +19 -0
- data/vendor/bundle/ruby/4.0.0/gems/hashdiff-1.2.1/README.md +323 -0
- data/vendor/bundle/ruby/4.0.0/gems/hashdiff-1.2.1/changelog.md +127 -0
- data/vendor/bundle/ruby/{3.4.0/gems/hitimes-3.1.0 → 4.0.0/gems/hitimes-3.2.0}/README.md +1 -1
- data/vendor/bundle/ruby/{3.4.0/gems/i18n-1.14.7 → 4.0.0/gems/i18n-1.15.2}/README.md +13 -1
- data/vendor/bundle/ruby/4.0.0/gems/json-2.19.9/README.md +310 -0
- data/vendor/bundle/ruby/4.0.0/gems/language_server-protocol-3.17.0.5/LICENSE.txt +21 -0
- data/vendor/bundle/ruby/4.0.0/gems/language_server-protocol-3.17.0.5/README.md +88 -0
- data/vendor/bundle/ruby/4.0.0/gems/lint_roller-1.1.0/CHANGELOG.md +15 -0
- data/vendor/bundle/ruby/4.0.0/gems/lint_roller-1.1.0/LICENSE.txt +21 -0
- data/vendor/bundle/ruby/4.0.0/gems/lint_roller-1.1.0/README.md +173 -0
- data/vendor/bundle/ruby/{3.4.0/gems/minitest-5.25.5 → 4.0.0/gems/minitest-6.0.6}/README.rdoc +21 -100
- data/vendor/bundle/ruby/{3.4.0/gems/msgpack-1.8.0 → 4.0.0/gems/msgpack-1.8.3}/ChangeLog +15 -0
- data/vendor/bundle/ruby/{3.4.0/gems/msgpack-1.8.0 → 4.0.0/gems/msgpack-1.8.3}/README.md +1 -1
- data/vendor/bundle/ruby/4.0.0/gems/multi_json-1.21.1/LICENSE.md +20 -0
- data/vendor/bundle/ruby/4.0.0/gems/multi_json-1.21.1/README.md +281 -0
- data/vendor/bundle/ruby/4.0.0/gems/nio4r-2.7.5/ext/libev/LICENSE +37 -0
- data/vendor/bundle/ruby/4.0.0/gems/nio4r-2.7.5/ext/libev/README +59 -0
- data/vendor/bundle/ruby/4.0.0/gems/nio4r-2.7.5/license.md +80 -0
- data/vendor/bundle/ruby/4.0.0/gems/nio4r-2.7.5/readme.md +91 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-api-1.10.0/CHANGELOG.md +219 -0
- 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
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-instrumentation-base-0.26.1/CHANGELOG.md +97 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-instrumentation-base-0.26.1/LICENSE +201 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-instrumentation-base-0.26.1/README.md +155 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-instrumentation-ethon-0.29.0/CHANGELOG.md +192 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-instrumentation-ethon-0.29.0/LICENSE +201 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-instrumentation-ethon-0.29.0/README.md +66 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-registry-0.6.0/CHANGELOG.md +31 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-registry-0.6.0/LICENSE +201 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-registry-0.6.0/README.md +40 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-sdk-1.12.0/CHANGELOG.md +302 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-sdk-1.12.0/LICENSE +201 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-sdk-1.12.0/README.md +101 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-semantic_conventions-1.41.0/CHANGELOG.md +65 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-semantic_conventions-1.41.0/LICENSE +201 -0
- data/vendor/bundle/ruby/4.0.0/gems/opentelemetry-semantic_conventions-1.41.0/README.md +115 -0
- data/vendor/bundle/ruby/4.0.0/gems/parallel-2.1.0/MIT-LICENSE.txt +20 -0
- data/vendor/bundle/ruby/4.0.0/gems/parser-3.3.11.1/LICENSE.txt +26 -0
- data/vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/CHANGELOG.md +786 -0
- data/vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/LICENSE.md +7 -0
- data/vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/README.md +143 -0
- data/vendor/bundle/ruby/4.0.0/gems/public_suffix-7.0.5/CHANGELOG.md +649 -0
- 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
- 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
- data/vendor/bundle/ruby/4.0.0/gems/puma-8.0.2/LICENSE +29 -0
- data/vendor/bundle/ruby/4.0.0/gems/puma-8.0.2/README.md +484 -0
- data/vendor/bundle/ruby/4.0.0/gems/puma-8.0.2/docs/jungle/README.md +9 -0
- data/vendor/bundle/ruby/4.0.0/gems/puma-8.0.2/docs/jungle/rc.d/README.md +74 -0
- data/vendor/bundle/ruby/4.0.0/gems/racc-1.8.1/ChangeLog +846 -0
- data/vendor/bundle/ruby/4.0.0/gems/racc-1.8.1/README.ja.rdoc +58 -0
- data/vendor/bundle/ruby/4.0.0/gems/racc-1.8.1/README.rdoc +60 -0
- data/vendor/bundle/ruby/{3.4.0/gems/rack-3.1.15 → 4.0.0/gems/rack-3.2.6}/CHANGELOG.md +216 -16
- data/vendor/bundle/ruby/{3.4.0/gems/rack-3.1.15 → 4.0.0/gems/rack-3.2.6}/README.md +49 -20
- data/vendor/bundle/ruby/4.0.0/gems/rainbow-3.1.1/Changelog.md +101 -0
- data/vendor/bundle/ruby/4.0.0/gems/rainbow-3.1.1/LICENSE +20 -0
- data/vendor/bundle/ruby/4.0.0/gems/rainbow-3.1.1/README.markdown +227 -0
- data/vendor/bundle/ruby/{3.4.0/gems/rake-13.2.1 → 4.0.0/gems/rake-13.4.2}/README.rdoc +5 -5
- data/vendor/bundle/ruby/4.0.0/gems/regexp_parser-2.12.0/LICENSE +22 -0
- data/vendor/bundle/ruby/4.0.0/gems/rexml-3.4.4/README.md +57 -0
- data/vendor/bundle/ruby/4.0.0/gems/rspec-3.13.2/LICENSE.md +27 -0
- data/vendor/bundle/ruby/4.0.0/gems/rspec-3.13.2/README.md +47 -0
- data/vendor/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/Changelog.md +2447 -0
- data/vendor/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/LICENSE.md +26 -0
- data/vendor/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/README.md +389 -0
- data/vendor/bundle/ruby/4.0.0/gems/rspec-expectations-3.13.5/Changelog.md +1366 -0
- data/vendor/bundle/ruby/4.0.0/gems/rspec-expectations-3.13.5/LICENSE.md +25 -0
- data/vendor/bundle/ruby/4.0.0/gems/rspec-expectations-3.13.5/README.md +326 -0
- data/vendor/bundle/ruby/4.0.0/gems/rspec-mocks-3.13.8/Changelog.md +1351 -0
- data/vendor/bundle/ruby/4.0.0/gems/rspec-mocks-3.13.8/LICENSE.md +25 -0
- data/vendor/bundle/ruby/4.0.0/gems/rspec-mocks-3.13.8/README.md +465 -0
- data/vendor/bundle/ruby/4.0.0/gems/rspec-support-3.13.7/Changelog.md +444 -0
- 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
- data/vendor/bundle/ruby/4.0.0/gems/rspec-support-3.13.7/README.md +40 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/README.md +255 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.1/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-ast-1.49.1/README.md +54 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-capybara-2.23.0/CHANGELOG.md +116 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-capybara-2.23.0/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-capybara-2.23.0/README.md +91 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-factory_bot-2.28.0/CHANGELOG.md +135 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-factory_bot-2.28.0/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-factory_bot-2.28.0/README.md +91 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-performance-1.26.1/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-performance-1.26.1/README.md +100 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/CHANGELOG.md +1136 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/README.md +112 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec_rails-2.32.0/CHANGELOG.md +98 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec_rails-2.32.0/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec_rails-2.32.0/README.md +93 -0
- data/vendor/bundle/ruby/4.0.0/gems/ruby-progressbar-1.13.0/LICENSE.txt +19 -0
- data/vendor/bundle/ruby/4.0.0/gems/ruby-progressbar-1.13.0/README.md +131 -0
- data/vendor/bundle/ruby/4.0.0/gems/simplecov-0.22.0/CHANGELOG.md +191 -0
- data/vendor/bundle/ruby/4.0.0/gems/simplecov-0.22.0/LICENSE +20 -0
- data/vendor/bundle/ruby/4.0.0/gems/simplecov-0.22.0/README.md +974 -0
- data/vendor/bundle/ruby/4.0.0/gems/simplecov-cobertura-3.2.0/LICENSE +202 -0
- data/vendor/bundle/ruby/4.0.0/gems/simplecov-cobertura-3.2.0/README.md +65 -0
- data/vendor/bundle/ruby/4.0.0/gems/simplecov-html-0.13.2/CHANGELOG.md +114 -0
- data/vendor/bundle/ruby/4.0.0/gems/simplecov-html-0.13.2/LICENSE +20 -0
- data/vendor/bundle/ruby/4.0.0/gems/simplecov-html-0.13.2/README.md +30 -0
- data/vendor/bundle/ruby/4.0.0/gems/simplecov_json_formatter-0.1.4/CHANGELOG.md +13 -0
- data/vendor/bundle/ruby/4.0.0/gems/simplecov_json_formatter-0.1.4/README.md +29 -0
- data/vendor/bundle/ruby/{3.4.0/gems/typhoeus-1.4.1 → 4.0.0/gems/typhoeus-1.6.0}/CHANGELOG.md +56 -1
- data/vendor/bundle/ruby/{3.4.0/gems/typhoeus-1.4.1 → 4.0.0/gems/typhoeus-1.6.0}/README.md +2 -2
- data/vendor/bundle/ruby/4.0.0/gems/unicode-display_width-3.2.0/CHANGELOG.md +299 -0
- data/vendor/bundle/ruby/4.0.0/gems/unicode-display_width-3.2.0/MIT-LICENSE.txt +22 -0
- data/vendor/bundle/ruby/4.0.0/gems/unicode-display_width-3.2.0/README.md +194 -0
- data/vendor/bundle/ruby/4.0.0/gems/unicode-emoji-4.2.0/CHANGELOG.md +202 -0
- data/vendor/bundle/ruby/4.0.0/gems/unicode-emoji-4.2.0/MIT-LICENSE.txt +20 -0
- data/vendor/bundle/ruby/4.0.0/gems/unicode-emoji-4.2.0/README.md +205 -0
- data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.2/CHANGELOG.md +2148 -0
- data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.2/LICENSE +20 -0
- data/vendor/bundle/ruby/4.0.0/gems/webmock-3.26.2/README.md +1229 -0
- metadata +170 -65
- data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.2/CHANGELOG.md +0 -255
- data/vendor/bundle/ruby/3.4.0/gems/benchmark-0.4.0/README.md +0 -138
- data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/CHANGELOG.md +0 -275
- data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/README.md +0 -121
- data/vendor/bundle/ruby/3.4.0/gems/opentelemetry-api-1.5.0/CHANGELOG.md +0 -193
- data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.2/CHANGELOG.md +0 -498
- /data/vendor/bundle/ruby/{3.4.0/bundler/gems/my-rubocop-3bcd2110ca87 → 4.0.0/bundler/gems/my-rubocop-2b861962124a}/LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.4.0/bundler/gems/my-rubocop-3bcd2110ca87 → 4.0.0/bundler/gems/my-rubocop-2b861962124a}/README.md +0 -0
- /data/vendor/bundle/ruby/{3.4.0/gems/activesupport-8.0.2 → 4.0.0/gems/activesupport-8.1.3}/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.4.0/gems/addressable-2.8.7 → 4.0.0/gems/addressable-2.9.0}/LICENSE.txt +0 -0
- /data/vendor/bundle/ruby/{3.4.0/gems/base64-0.2.0 → 4.0.0/gems/base64-0.3.0}/README.md +0 -0
- /data/vendor/bundle/ruby/{3.4.0/gems/bigdecimal-3.1.9 → 4.0.0/gems/bigdecimal-4.1.2}/LICENSE +0 -0
- /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
- /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
- /data/vendor/bundle/ruby/{3.4.0/gems/base64-0.2.0 → 4.0.0/gems/drb-2.2.3}/LICENSE.txt +0 -0
- /data/vendor/bundle/ruby/{3.4.0/gems/ethon-0.16.0 → 4.0.0/gems/ethon-0.18.0}/LICENSE +0 -0
- /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
- /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
- /data/vendor/bundle/ruby/{3.4.0/gems/hitimes-3.1.0 → 4.0.0/gems/hitimes-3.2.0}/LICENSE.txt +0 -0
- /data/vendor/bundle/ruby/{3.4.0/gems/i18n-1.14.7 → 4.0.0/gems/i18n-1.15.2}/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/little-plugger-1.1.4/README.rdoc +0 -0
- /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/logger-1.7.0/README.md +0 -0
- /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/logging-2.4.0/LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/logging-2.4.0/README.md +0 -0
- /data/vendor/bundle/ruby/{3.4.0/gems/msgpack-1.8.0 → 4.0.0/gems/msgpack-1.8.3}/LICENSE +0 -0
- /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
- /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
- /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
- /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
- /data/vendor/bundle/ruby/{3.4.0/gems/rack-3.1.15 → 4.0.0/gems/rack-3.2.6}/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.4.0/gems/rake-13.2.1 → 4.0.0/gems/rake-13.4.2}/MIT-LICENSE +0 -0
- /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
- /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
- /data/vendor/bundle/ruby/{3.4.0/gems/drb-2.2.1 → 4.0.0/gems/rexml-3.4.4}/LICENSE.txt +0 -0
- /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/securerandom-0.4.1/README.md +0 -0
- /data/vendor/bundle/ruby/{3.4.0/gems/typhoeus-1.4.1 → 4.0.0/gems/typhoeus-1.6.0}/LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/tzinfo-2.0.6/LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.4.0 → 4.0.0}/gems/tzinfo-2.0.6/README.md +0 -0
- /data/vendor/bundle/ruby/{3.4.0/gems/uri-1.0.3 → 4.0.0/gems/uri-1.1.1}/README.md +0 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
= Racc
|
|
2
|
+
|
|
3
|
+
* https://github.com/ruby/racc
|
|
4
|
+
|
|
5
|
+
== DESCRIPTION:
|
|
6
|
+
|
|
7
|
+
Racc は LALR(1) パーサジェネレータです。
|
|
8
|
+
yacc の Ruby 版に相当します。
|
|
9
|
+
|
|
10
|
+
== 必要環境
|
|
11
|
+
|
|
12
|
+
* Ruby 2.5 以降
|
|
13
|
+
|
|
14
|
+
== インストール
|
|
15
|
+
|
|
16
|
+
gem インストール:
|
|
17
|
+
|
|
18
|
+
$ gem install racc
|
|
19
|
+
|
|
20
|
+
== テスト
|
|
21
|
+
|
|
22
|
+
sample/ 以下にいくつか Racc の文法ファイルのサンプルが用意
|
|
23
|
+
してあります。動くのも動かないのもありますが、少なくとも
|
|
24
|
+
calc-ja.y は動くのでこれを処理してみましょう。Racc をインス
|
|
25
|
+
トールしたあと
|
|
26
|
+
|
|
27
|
+
$ racc -ocalc.rb calc-ja.y
|
|
28
|
+
|
|
29
|
+
として下さい。処理は一瞬から数秒で終わるので、
|
|
30
|
+
|
|
31
|
+
$ ruby calc.rb
|
|
32
|
+
|
|
33
|
+
を実行してください。ちゃんと動いてますか?
|
|
34
|
+
|
|
35
|
+
Racc の文法など詳しいことは doc.ja/ ディレクトリ以下の HTML を
|
|
36
|
+
見てください。
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
== ライセンス
|
|
40
|
+
|
|
41
|
+
このパッケージに付属するファイルの著作権は青木峰郎が保持します。
|
|
42
|
+
ライセンスは Ruby ライセンスです。ただしユーザが書いた規則
|
|
43
|
+
ファイルや、Racc がそこから生成した Ruby スクリプトはその対象
|
|
44
|
+
外です。好きなライセンスで配布してください。
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
== バグなど
|
|
48
|
+
|
|
49
|
+
Racc を使っていてバグらしき現象に遭遇したら、下記のアドレスまで
|
|
50
|
+
メールをください。作者にはバグを修正する義務はありませんがその
|
|
51
|
+
意思はあります。また、そのときはできるだけバグを再現できる文法
|
|
52
|
+
ファイルを付けてください。
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
青木峰郎(あおきみねろう)
|
|
56
|
+
aamine@loveruby.net
|
|
57
|
+
http://i.loveruby.net
|
|
58
|
+
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
= Racc
|
|
2
|
+
|
|
3
|
+
* https://github.com/ruby/racc
|
|
4
|
+
|
|
5
|
+
== DESCRIPTION:
|
|
6
|
+
|
|
7
|
+
Racc is an LALR(1) parser generator.
|
|
8
|
+
It is written in Ruby itself, and generates Ruby program.
|
|
9
|
+
|
|
10
|
+
== Requirement
|
|
11
|
+
|
|
12
|
+
* Ruby 2.5 or later.
|
|
13
|
+
|
|
14
|
+
== Installation
|
|
15
|
+
|
|
16
|
+
gem install:
|
|
17
|
+
|
|
18
|
+
$ gem install racc
|
|
19
|
+
|
|
20
|
+
== Testing Racc
|
|
21
|
+
|
|
22
|
+
Racc comes with simple calculator. To compile this, on shell:
|
|
23
|
+
|
|
24
|
+
$ racc -o calc calc.y
|
|
25
|
+
|
|
26
|
+
This process costs few seconds (or less). Then type:
|
|
27
|
+
|
|
28
|
+
$ ruby calc
|
|
29
|
+
|
|
30
|
+
... Does it work?
|
|
31
|
+
For details of Racc, see HTML documents placed under 'doc/en/'
|
|
32
|
+
and sample grammar files under 'sample/'.
|
|
33
|
+
|
|
34
|
+
== Release flow
|
|
35
|
+
|
|
36
|
+
* Update VERSION number of these files
|
|
37
|
+
* <code>RACC_VERSION</code> in "ext/racc/com/headius/racc/Cparse.java"
|
|
38
|
+
* <code>VERSION</code> in "lib/racc/info.rb"
|
|
39
|
+
* Release as a gem by <code>rake release</code> with CRuby and JRuby because Racc gem provides 2 packages
|
|
40
|
+
* Create new release on {GitHub}[https://github.com/ruby/racc/releases]
|
|
41
|
+
|
|
42
|
+
== License
|
|
43
|
+
|
|
44
|
+
Racc is distributed under the same terms of ruby.
|
|
45
|
+
(see the file COPYING). Note that you do NOT need to follow
|
|
46
|
+
ruby license for your own parser (racc outputs).
|
|
47
|
+
You can distribute those files under any licenses you want.
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
== Bug Reports
|
|
51
|
+
|
|
52
|
+
Any kind of bug report is welcome.
|
|
53
|
+
If you find a bug of Racc, please report an issue at
|
|
54
|
+
https://github.com/ruby/racc/issues. Your grammar file,
|
|
55
|
+
debug output generated by "racc -g", are helpful.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
Minero Aoki
|
|
59
|
+
aamine@loveruby.net
|
|
60
|
+
http://i.loveruby.net
|
|
@@ -2,15 +2,158 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. For info on how to format all future additions to this file please reference [Keep A Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
+
## [3.2.6] - 2026-04-01
|
|
6
|
+
|
|
7
|
+
### Security
|
|
8
|
+
|
|
9
|
+
- [CVE-2026-34763](https://github.com/advisories/GHSA-7mqq-6cf9-v2qp) Root directory disclosure via unescaped regex interpolation in `Rack::Directory`.
|
|
10
|
+
- [CVE-2026-34230](https://github.com/advisories/GHSA-v569-hp3g-36wr) Avoid O(n^2) algorithm in `Rack::Utils.select_best_encoding` which could lead to denial of service.
|
|
11
|
+
- [CVE-2026-32762](https://github.com/advisories/GHSA-qfgr-crr9-7r49) Forwarded header semicolon injection enables Host and Scheme spoofing.
|
|
12
|
+
- [CVE-2026-26961](https://github.com/advisories/GHSA-vgpv-f759-9wx3) Raise error for multipart requests with multiple boundary parameters.
|
|
13
|
+
- [CVE-2026-34786](https://github.com/advisories/GHSA-q4qf-9j86-f5mh) `Rack::Static` `header_rules` bypass via URL-encoded path mismatch.
|
|
14
|
+
- [CVE-2026-34831](https://github.com/advisories/GHSA-q2ww-5357-x388) `Content-Length` mismatch in `Rack::Files` error responses.
|
|
15
|
+
- [CVE-2026-34826](https://github.com/advisories/GHSA-x8cg-fq8g-mxfx) Multipart byte range processing allows denial of service via excessive overlapping ranges.
|
|
16
|
+
- [CVE-2026-34835](https://github.com/advisories/GHSA-g2pf-xv49-m2h5) `Rack::Request` accepts invalid Host characters, enabling host allowlist bypass.
|
|
17
|
+
- [CVE-2026-34830](https://github.com/advisories/GHSA-qv7j-4883-hwh7) `Rack::Sendfile` header-based `X-Accel-Mapping` regex injection enables unauthorized `X-Accel-Redirect`.
|
|
18
|
+
- [CVE-2026-34785](https://github.com/advisories/GHSA-h2jq-g4cq-5ppq) `Rack::Static` prefix matching can expose unintended files under the static root.
|
|
19
|
+
- [CVE-2026-34829](https://github.com/advisories/GHSA-8vqr-qjwx-82mw) Multipart parsing without `Content-Length` header allows unbounded chunked file uploads.
|
|
20
|
+
- [CVE-2026-34827](https://github.com/advisories/GHSA-v6x5-cg8r-vv6x) Quadratic-time multipart header parsing allows denial of service via escape-heavy quoted parameters.
|
|
21
|
+
- [CVE-2026-26962](https://github.com/advisories/GHSA-rx22-g9mx-qrhv) Improper unfolding of folded multipart headers preserves CRLF in parsed parameter values.
|
|
22
|
+
|
|
23
|
+
## [3.2.5] - 2026-02-16
|
|
24
|
+
|
|
25
|
+
### Security
|
|
26
|
+
|
|
27
|
+
- [CVE-2026-25500](https://github.com/advisories/GHSA-whrj-4476-wvmp) XSS injection via malicious filename in `Rack::Directory`.
|
|
28
|
+
- [CVE-2026-22860](https://github.com/advisories/GHSA-mxw3-3hh2-x2mh) Directory traversal via root prefix bypass in `Rack::Directory`.
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- Fix `Rack::MockResponse#body` when the body is a Proc. ([#2420](https://github.com/rack/rack/pull/2420), [#2423](https://github.com/rack/rack/pull/2423), [@tavianator](https://github.com/tavianator), [@ioquatix])
|
|
33
|
+
|
|
34
|
+
## [3.2.4] - 2025-11-03
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- Multipart parser: limit MIME header size check to the unread buffer region to avoid false `multipart mime part header too large` errors when previously read data accumulates in the scan buffer. ([#2392](https://github.com/rack/rack/pull/2392), [@alpaca-tc](https://github.com/alpaca-tc), [@willnet](https://github.com/willnet), [@krororo](https://github.com/krororo))
|
|
39
|
+
|
|
40
|
+
## [3.2.3] - 2025-10-10
|
|
41
|
+
|
|
42
|
+
### Security
|
|
43
|
+
|
|
44
|
+
- [CVE-2025-61780](https://github.com/advisories/GHSA-r657-rxjc-j557) Improper handling of headers in `Rack::Sendfile` may allow proxy bypass.
|
|
45
|
+
- [CVE-2025-61919](https://github.com/advisories/GHSA-6xw4-3v39-52mm) Unbounded read in `Rack::Request` form parsing can lead to memory exhaustion.
|
|
46
|
+
|
|
47
|
+
## [3.2.2] - 2025-10-07
|
|
48
|
+
|
|
49
|
+
### Security
|
|
50
|
+
|
|
51
|
+
- [CVE-2025-61772](https://github.com/advisories/GHSA-wpv5-97wm-hp9c) Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)
|
|
52
|
+
- [CVE-2025-61771](https://github.com/advisories/GHSA-w9pc-fmgc-vxvw) Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)
|
|
53
|
+
- [CVE-2025-61770](https://github.com/advisories/GHSA-p543-xpfm-54cp) Unbounded multipart preamble buffering enables DoS (memory exhaustion)
|
|
54
|
+
|
|
55
|
+
## [3.2.1] -- 2025-09-02
|
|
56
|
+
|
|
57
|
+
### Added
|
|
58
|
+
|
|
59
|
+
- Add support for streaming bodies when using `Rack::Events`. ([#2375](github.com/rack/rack/pull/2375), [@unflxw](https://github.com/unflxw))
|
|
60
|
+
|
|
61
|
+
### Fixed
|
|
62
|
+
|
|
63
|
+
- Fix an issue where a `NoMethodError` would be raised when using `Rack::Events` with streaming bodies. ([#2375](github.com/rack/rack/pull/2375), [@unflxw](https://github.com/unflxw))
|
|
64
|
+
|
|
65
|
+
## [3.2.0] - 2025-07-31
|
|
66
|
+
|
|
67
|
+
This release continues Rack's evolution toward a cleaner, more efficient foundation while maintaining backward compatibility for most applications. The breaking changes primarily affect deprecated functionality, so most users should experience a smooth upgrade with improved performance and standards compliance.
|
|
68
|
+
|
|
69
|
+
### SPEC Changes
|
|
70
|
+
|
|
71
|
+
- Request environment keys must now be strings. ([#2310](https://github.com/rack/rack/issues/2310), [@jeremyevans])
|
|
72
|
+
- Add `nil` as a valid return from a Response `body.to_path` ([#2318](https://github.com/rack/rack/pull/2318), [@MSP-Greg])
|
|
73
|
+
- `Rack::Lint#check_header_value` is relaxed, only disallowing CR/LF/NUL characters. ([#2354](https://github.com/rack/rack/pull/2354), [@ioquatix])
|
|
74
|
+
|
|
75
|
+
### Added
|
|
76
|
+
|
|
77
|
+
- Introduce `Rack::VERSION` constant. ([#2199](https://github.com/rack/rack/pull/2199), [@ioquatix])
|
|
78
|
+
- `ISO-2022-JP` encoded parts within MIME Multipart sections of an HTTP request body will now be converted to `UTF-8`. ([#2245](https://github.com/rack/rack/pull/2245), [@nappa](https://github.com/nappa))
|
|
79
|
+
- Add `Rack::Request#query_parser=` to allow setting the query parser to use. ([#2349](https://github.com/rack/rack/pull/2349), [@jeremyevans])
|
|
80
|
+
- Add `Rack::Request#form_pairs` to access form data as raw key-value pairs, preserving duplicate keys. ([#2351](https://github.com/rack/rack/pull/2351), [@matthewd])
|
|
81
|
+
|
|
82
|
+
### Changed
|
|
83
|
+
|
|
84
|
+
- Invalid cookie keys will now raise an error. ([#2193](https://github.com/rack/rack/pull/2193), [@ioquatix])
|
|
85
|
+
- `Rack::MediaType#params` now handles empty strings. ([#2229](https://github.com/rack/rack/pull/2229), [@jeremyevans])
|
|
86
|
+
- Avoid unnecessary calls to the `ip_filter` lambda to evaluate `Request#ip` ([#2287](https://github.com/rack/rack/pull/2287), [@willbryant])
|
|
87
|
+
- Only calculate `Request#ip` once per request ([#2292](https://github.com/rack/rack/pull/2292), [@willbryant])
|
|
88
|
+
- `Rack::Builder` `#use`, `#map`, and `#run` methods now return `nil`. ([#2355](https://github.com/rack/rack/pull/2355), [@ioquatix])
|
|
89
|
+
- Directly close the body in `Rack::ConditionalGet` when the response is `304 Not Modified`. ([#2353](https://github.com/rack/rack/pull/2353), [@ioquatix])
|
|
90
|
+
- Directly close the body in `Rack::Head` when the request method is `HEAD`([#2360](https://github.com/rack/rack/pull/2360), [@skipkayhil](https://github.com/skipkayhil))
|
|
91
|
+
|
|
92
|
+
### Deprecated
|
|
93
|
+
|
|
94
|
+
- `Rack::Auth::AbstractRequest#request` is deprecated without replacement. ([#2229](https://github.com/rack/rack/pull/2229), [@jeremyevans])
|
|
95
|
+
- `Rack::Request#parse_multipart` (private method designed to be overridden in subclasses) is deprecated without replacement. ([#2229](https://github.com/rack/rack/pull/2229), [@jeremyevans])
|
|
96
|
+
|
|
97
|
+
### Removed
|
|
98
|
+
|
|
99
|
+
- `Rack::Request#values_at` is removed. ([#2200](https://github.com/rack/rack/pull/2200), [@ioquatix])
|
|
100
|
+
- `Rack::Logger` is removed with no replacement. ([#2196](https://github.com/rack/rack/pull/2196), [@ioquatix])
|
|
101
|
+
- Automatic cache invalidation in `Rack::Request#{GET,POST}` has been removed. ([#2230](https://github.com/rack/rack/pull/2230), [@jeremyevans])
|
|
102
|
+
- Support for `CGI::Cookie` has been removed. ([#2332](https://github.com/rack/rack/pull/2332), [@ioquatix])
|
|
103
|
+
|
|
104
|
+
### Fixed
|
|
105
|
+
|
|
106
|
+
- `Rack::RewindableInput::Middleware` no longer wraps a nil input. ([#2259](https://github.com/rack/rack/pull/2259), [@tt](https://github.com/tt))
|
|
107
|
+
- Fix `NoMethodError` in `Rack::Request#wrap_ipv6` when `x-forwarded-host` is empty. ([#2270](https://github.com/rack/rack/pull/2270), [@oieioi](https://github.com/oieioi))
|
|
108
|
+
- Fix the specification for `SERVER_PORT` which was incorrectly documented as required to be an `Integer` if present - it must be a `String` containing digits only. ([#2296](https://github.com/rack/rack/pull/2296), [@ioquatix])
|
|
109
|
+
- `SERVER_NAME` and `HTTP_HOST` are now more strictly validated according to the relevant specifications. ([#2298](https://github.com/rack/rack/pull/2298), [@ioquatix])
|
|
110
|
+
- `Rack::Lint` now disallows `PATH_INFO="" SCRIPT_NAME=""`. ([#2298](https://github.com/rack/rack/issues/2307), [@jeremyevans])
|
|
111
|
+
|
|
112
|
+
## [3.1.20] - 2026-02-16
|
|
113
|
+
|
|
114
|
+
### Security
|
|
115
|
+
|
|
116
|
+
- [CVE-2026-25500](https://github.com/advisories/GHSA-whrj-4476-wvmp) XSS injection via malicious filename in `Rack::Directory`.
|
|
117
|
+
- [CVE-2026-22860](https://github.com/advisories/GHSA-mxw3-3hh2-x2mh) Directory traversal via root prefix bypass in `Rack::Directory`.
|
|
118
|
+
|
|
119
|
+
## [3.1.19] - 2025-11-03
|
|
120
|
+
|
|
121
|
+
### Fixed
|
|
122
|
+
|
|
123
|
+
- Multipart parser: limit MIME header size check to the unread buffer region to avoid false `multipart mime part header too large` errors when previously read data accumulates in the scan buffer. ([#2392](https://github.com/rack/rack/pull/2392), [@alpaca-tc](https://github.com/alpaca-tc), [@willnet](https://github.com/willnet), [@krororo](https://github.com/krororo))
|
|
124
|
+
|
|
125
|
+
## [3.1.18] - 2025-10-10
|
|
126
|
+
|
|
127
|
+
### Security
|
|
128
|
+
|
|
129
|
+
- [CVE-2025-61780](https://github.com/advisories/GHSA-r657-rxjc-j557) Improper handling of headers in `Rack::Sendfile` may allow proxy bypass.
|
|
130
|
+
- [CVE-2025-61919](https://github.com/advisories/GHSA-6xw4-3v39-52mm) Unbounded read in `Rack::Request` form parsing can lead to memory exhaustion.
|
|
131
|
+
|
|
132
|
+
## [3.1.17] - 2025-10-07
|
|
133
|
+
|
|
134
|
+
### Security
|
|
135
|
+
|
|
136
|
+
- [CVE-2025-61772](https://github.com/advisories/GHSA-wpv5-97wm-hp9c) Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)
|
|
137
|
+
- [CVE-2025-61771](https://github.com/advisories/GHSA-w9pc-fmgc-vxvw) Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)
|
|
138
|
+
- [CVE-2025-61770](https://github.com/advisories/GHSA-p543-xpfm-54cp) Unbounded multipart preamble buffering enables DoS (memory exhaustion)
|
|
139
|
+
|
|
140
|
+
## [3.1.16] - 2025-06-04
|
|
141
|
+
|
|
142
|
+
### Security
|
|
143
|
+
|
|
144
|
+
- [CVE-2025-49007](https://github.com/advisories/GHSA-47m2-26rw-j2jw) Fix ReDoS in multipart request.
|
|
145
|
+
|
|
5
146
|
## [3.1.15] - 2025-05-18
|
|
6
147
|
|
|
7
148
|
- Optional support for `CGI::Cookie` if not available. ([#2327](https://github.com/rack/rack/pull/2327), [#2333](https://github.com/rack/rack/pull/2333), [@earlopain])
|
|
8
149
|
|
|
9
150
|
## [3.1.14] - 2025-05-06
|
|
10
151
|
|
|
152
|
+
:warning: **This release includes a security fix that may cause certain routes in previously working applications to fail if query parameters exceed 4,096 in count or 4 MB in total size. See <https://github.com/rack/rack/discussions/2356> for more details.**
|
|
153
|
+
|
|
11
154
|
### Security
|
|
12
155
|
|
|
13
|
-
- [CVE-2025-46727](https://github.com/
|
|
156
|
+
- [CVE-2025-46727](https://github.com/advisories/GHSA-gjh7-p2fx-99vx) Unbounded parameter parsing in `Rack::QueryParser` can lead to memory exhaustion.
|
|
14
157
|
|
|
15
158
|
## [3.1.13] - 2025-04-13
|
|
16
159
|
|
|
@@ -20,19 +163,19 @@ All notable changes to this project will be documented in this file. For info on
|
|
|
20
163
|
|
|
21
164
|
### Security
|
|
22
165
|
|
|
23
|
-
- [CVE-2025-27610](https://github.com/
|
|
166
|
+
- [CVE-2025-27610](https://github.com/advisories/GHSA-7wqh-767x-r66v) Local file inclusion in `Rack::Static`.
|
|
24
167
|
|
|
25
168
|
## [3.1.11] - 2025-03-04
|
|
26
169
|
|
|
27
170
|
### Security
|
|
28
171
|
|
|
29
|
-
- [CVE-2025-27111](https://github.com/
|
|
172
|
+
- [CVE-2025-27111](https://github.com/advisories/GHSA-8cgq-6mh2-7j6v) Possible Log Injection in `Rack::Sendfile`.
|
|
30
173
|
|
|
31
174
|
## [3.1.10] - 2025-02-12
|
|
32
175
|
|
|
33
176
|
### Security
|
|
34
177
|
|
|
35
|
-
- [CVE-2025-25184](https://github.com/
|
|
178
|
+
- [CVE-2025-25184](https://github.com/advisories/GHSA-7g2v-jj9q-g3rg) Possible Log Injection in `Rack::CommonLogger`.
|
|
36
179
|
|
|
37
180
|
## [3.1.9] - 2025-01-31
|
|
38
181
|
|
|
@@ -65,7 +208,7 @@ All notable changes to this project will be documented in this file. For info on
|
|
|
65
208
|
|
|
66
209
|
### Security
|
|
67
210
|
|
|
68
|
-
- Fix potential ReDoS attack in `Rack::Request#parse_http_accept_header`. ([GHSA-cj83-2ww7-mvq7](https://github.com/
|
|
211
|
+
- Fix potential ReDoS attack in `Rack::Request#parse_http_accept_header`. ([GHSA-cj83-2ww7-mvq7](https://github.com/advisories/GHSA-cj83-2ww7-mvq7), [@dwisiswant0](https://github.com/dwisiswant0))
|
|
69
212
|
|
|
70
213
|
## [3.1.4] - 2024-06-22
|
|
71
214
|
|
|
@@ -92,7 +235,7 @@ All notable changes to this project will be documented in this file. For info on
|
|
|
92
235
|
|
|
93
236
|
:warning: **This release includes several breaking changes.** Refer to the **Removed** section below for the list of deprecated methods that have been removed in this release.
|
|
94
237
|
|
|
95
|
-
|
|
238
|
+
This release is primarily a maintenance release that removes features deprecated in Rack v3.0. Alongside these removals, there are several improvements to the Rack SPEC, mainly focused on enhancing input and output handling. These changes aim to make Rack more efficient and align better with the requirements of server implementations and relevant HTTP specifications.
|
|
96
239
|
|
|
97
240
|
### SPEC Changes
|
|
98
241
|
|
|
@@ -143,16 +286,21 @@ Rack v3.1 is primarily a maintenance release that removes features deprecated in
|
|
|
143
286
|
|
|
144
287
|
- In `Rack::Files`, ignore the `Range` header if served file is 0 bytes. ([#2159](https://github.com/rack/rack/pull/2159), [@zarqman])
|
|
145
288
|
|
|
289
|
+
## [3.0.18] - 2025-05-22
|
|
290
|
+
|
|
291
|
+
- Fix incorrect backport of optional `CGI::Cookie` support. ([#2335](https://github.com/rack/rack/pull/2335), [@jeremyevans])
|
|
292
|
+
|
|
146
293
|
## [3.0.17] - 2025-05-18
|
|
147
294
|
|
|
148
295
|
- Optional support for `CGI::Cookie` if not available. ([#2327](https://github.com/rack/rack/pull/2327), [#2333](https://github.com/rack/rack/pull/2333), [@earlopain])
|
|
149
296
|
|
|
150
|
-
|
|
151
297
|
## [3.0.16] - 2025-05-06
|
|
152
298
|
|
|
299
|
+
:warning: **This release includes a security fix that may cause certain routes in previously working applications to fail if query parameters exceed 4,096 in count or 4 MB in total size. See <https://github.com/rack/rack/discussions/2356> for more details.**
|
|
300
|
+
|
|
153
301
|
### Security
|
|
154
302
|
|
|
155
|
-
- [CVE-2025-46727](https://github.com/
|
|
303
|
+
- [CVE-2025-46727](https://github.com/advisories/GHSA-gjh7-p2fx-99vx) Unbounded parameter parsing in `Rack::QueryParser` can lead to memory exhaustion.
|
|
156
304
|
|
|
157
305
|
## [3.0.15] - 2025-04-13
|
|
158
306
|
|
|
@@ -162,19 +310,23 @@ Rack v3.1 is primarily a maintenance release that removes features deprecated in
|
|
|
162
310
|
|
|
163
311
|
### Security
|
|
164
312
|
|
|
165
|
-
- [CVE-2025-27610](https://github.com/
|
|
313
|
+
- [CVE-2025-27610](https://github.com/advisories/GHSA-7wqh-767x-r66v) Local file inclusion in `Rack::Static`.
|
|
166
314
|
|
|
167
315
|
## [3.0.13] - 2025-03-04
|
|
168
316
|
|
|
169
317
|
### Security
|
|
170
318
|
|
|
171
|
-
- [CVE-2025-27111](https://github.com/
|
|
319
|
+
- [CVE-2025-27111](https://github.com/advisories/GHSA-8cgq-6mh2-7j6v) Possible Log Injection in `Rack::Sendfile`.
|
|
320
|
+
|
|
321
|
+
### Fixed
|
|
322
|
+
|
|
323
|
+
- Remove autoloads for constants no longer shipped with Rack. ([#2269](https://github.com/rack/rack/pull/2269), [@ccutrer](https://github.com/ccutrer))
|
|
172
324
|
|
|
173
325
|
## [3.0.12] - 2025-02-12
|
|
174
326
|
|
|
175
327
|
### Security
|
|
176
328
|
|
|
177
|
-
- [CVE-2025-25184](https://github.com/
|
|
329
|
+
- [CVE-2025-25184](https://github.com/advisories/GHSA-7g2v-jj9q-g3rg) Possible Log Injection in `Rack::CommonLogger`.
|
|
178
330
|
|
|
179
331
|
## [3.0.11] - 2024-05-10
|
|
180
332
|
|
|
@@ -264,6 +416,8 @@ Rack v3.1 is primarily a maintenance release that removes features deprecated in
|
|
|
264
416
|
|
|
265
417
|
## [3.0.0] - 2022-09-06
|
|
266
418
|
|
|
419
|
+
This release introduces major improvements to Rack, including enhanced support for streaming responses, expanded protocol handling, and stricter compliance with HTTP standards. It refines middleware interfaces, improves multipart and hijack handling, and strengthens security and error reporting. The update also brings performance optimizations, better compatibility with modern Ruby versions, and numerous bug fixes, making Rack more robust and flexible for web application development.
|
|
420
|
+
|
|
267
421
|
- No changes
|
|
268
422
|
|
|
269
423
|
## [3.0.0.rc1] - 2022-09-04
|
|
@@ -304,7 +458,7 @@ Rack v3.1 is primarily a maintenance release that removes features deprecated in
|
|
|
304
458
|
- Remove deprecated Rack::Request::SCHEME_WHITELIST. ([@jeremyevans])
|
|
305
459
|
- Remove internal cookie deletion using pattern matching, there are very few practical cases where it would be useful and browsers handle it correctly without us doing anything special. ([#1844](https://github.com/rack/rack/pull/1844), [@ioquatix])
|
|
306
460
|
- Remove `rack.version` as it comes too late to be useful. ([#1938](https://github.com/rack/rack/pull/1938), [@ioquatix])
|
|
307
|
-
- Extract `rackup` command, `Rack::Server`, `Rack::Handler
|
|
461
|
+
- Extract `rackup` command, `Rack::Server`, `Rack::Handler` and related code into a separate gem. ([#1937](https://github.com/rack/rack/pull/1937), [@ioquatix])
|
|
308
462
|
|
|
309
463
|
### Added
|
|
310
464
|
|
|
@@ -352,33 +506,77 @@ Rack v3.1 is primarily a maintenance release that removes features deprecated in
|
|
|
352
506
|
- Fix multipart filename generation for filenames that contain spaces. Encode spaces as "%20" instead of "+" which will be decoded properly by the multipart parser. ([#1736](https://github.com/rack/rack/pull/1645), [@muirdm](https://github.com/muirdm))
|
|
353
507
|
- `Rack::Request#scheme` returns `ws` or `wss` when one of the `X-Forwarded-Scheme` / `X-Forwarded-Proto` headers is set to `ws` or `wss`, respectively. ([#1730](https://github.com/rack/rack/issues/1730), [@erwanst](https://github.com/erwanst))
|
|
354
508
|
|
|
509
|
+
## [2.2.22] - 2026-02-16
|
|
510
|
+
|
|
511
|
+
### Security
|
|
512
|
+
|
|
513
|
+
- [CVE-2026-25500](https://github.com/advisories/GHSA-whrj-4476-wvmp) XSS injection via malicious filename in `Rack::Directory`.
|
|
514
|
+
- [CVE-2026-22860](https://github.com/advisories/GHSA-mxw3-3hh2-x2mh) Directory traversal via root prefix bypass in `Rack::Directory`.
|
|
515
|
+
|
|
516
|
+
## [2.2.21] - 2025-11-03
|
|
517
|
+
|
|
518
|
+
### Fixed
|
|
519
|
+
|
|
520
|
+
- Multipart parser: limit MIME header size check to the unread buffer region to avoid false `multipart mime part header too large` errors when previously read data accumulates in the scan buffer. ([#2392](https://github.com/rack/rack/pull/2392), [@alpaca-tc](https://github.com/alpaca-tc), [@willnet](https://github.com/willnet), [@krororo](https://github.com/krororo))
|
|
521
|
+
|
|
522
|
+
## [2.2.20] - 2025-10-10
|
|
523
|
+
|
|
524
|
+
### Security
|
|
525
|
+
|
|
526
|
+
- [CVE-2025-61780](https://github.com/advisories/GHSA-r657-rxjc-j557) Improper handling of headers in `Rack::Sendfile` may allow proxy bypass.
|
|
527
|
+
- [CVE-2025-61919](https://github.com/advisories/GHSA-6xw4-3v39-52mm) Unbounded read in `Rack::Request` form parsing can lead to memory exhaustion.
|
|
528
|
+
|
|
529
|
+
## [2.2.19] - 2025-10-07
|
|
530
|
+
|
|
531
|
+
### Security
|
|
532
|
+
|
|
533
|
+
- [CVE-2025-61772](https://github.com/advisories/GHSA-wpv5-97wm-hp9c) Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)
|
|
534
|
+
- [CVE-2025-61771](https://github.com/advisories/GHSA-w9pc-fmgc-vxvw) Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)
|
|
535
|
+
- [CVE-2025-61770](https://github.com/advisories/GHSA-p543-xpfm-54cp) Unbounded multipart preamble buffering enables DoS (memory exhaustion)
|
|
536
|
+
|
|
537
|
+
## [2.2.18] - 2025-09-25
|
|
538
|
+
|
|
539
|
+
### Security
|
|
540
|
+
|
|
541
|
+
- [CVE-2025-59830](https://github.com/advisories/GHSA-625h-95r8-8xpm) Unbounded parameter parsing in `Rack::QueryParser` can lead to memory exhaustion via semicolon-separated parameters.
|
|
542
|
+
|
|
543
|
+
## [2.2.17] - 2025-06-03
|
|
544
|
+
|
|
545
|
+
- Backport `Rack::MediaType#params` now handles parameters without values. ([#2263](https://github.com/rack/rack/pull/2263), [@AllyMarthaJ](https://github.com/AllyMarthaJ))
|
|
546
|
+
|
|
547
|
+
## [2.2.16] - 2025-05-22
|
|
548
|
+
|
|
549
|
+
- Fix incorrect backport of optional `CGI::Cookie` support. ([#2335](https://github.com/rack/rack/pull/2335), [@jeremyevans])
|
|
550
|
+
|
|
355
551
|
## [2.2.15] - 2025-05-18
|
|
356
552
|
|
|
357
553
|
- Optional support for `CGI::Cookie` if not available. ([#2327](https://github.com/rack/rack/pull/2327), [#2333](https://github.com/rack/rack/pull/2333), [@earlopain])
|
|
358
554
|
|
|
359
555
|
## [2.2.14] - 2025-05-06
|
|
360
556
|
|
|
557
|
+
:warning: **This release includes a security fix that may cause certain routes in previously working applications to fail if query parameters exceed 4,096 in count or 4 MB in total size. See <https://github.com/rack/rack/discussions/2356> for more details.**
|
|
558
|
+
|
|
361
559
|
### Security
|
|
362
560
|
|
|
363
|
-
- [CVE-2025-46727](https://github.com/
|
|
561
|
+
- [CVE-2025-46727](https://github.com/advisories/GHSA-gjh7-p2fx-99vx) Unbounded parameter parsing in `Rack::QueryParser` can lead to memory exhaustion.
|
|
364
562
|
|
|
365
563
|
## [2.2.13] - 2025-03-11
|
|
366
564
|
|
|
367
565
|
### Security
|
|
368
566
|
|
|
369
|
-
- [CVE-2025-27610](https://github.com/
|
|
567
|
+
- [CVE-2025-27610](https://github.com/advisories/GHSA-7wqh-767x-r66v) Local file inclusion in `Rack::Static`.
|
|
370
568
|
|
|
371
569
|
## [2.2.12] - 2025-03-04
|
|
372
570
|
|
|
373
571
|
### Security
|
|
374
572
|
|
|
375
|
-
- [CVE-2025-27111](https://github.com/
|
|
573
|
+
- [CVE-2025-27111](https://github.com/advisories/GHSA-8cgq-6mh2-7j6v) Possible Log Injection in `Rack::Sendfile`.
|
|
376
574
|
|
|
377
575
|
## [2.2.11] - 2025-02-12
|
|
378
576
|
|
|
379
577
|
### Security
|
|
380
578
|
|
|
381
|
-
- [CVE-2025-25184](https://github.com/
|
|
579
|
+
- [CVE-2025-25184](https://github.com/advisories/GHSA-7g2v-jj9q-g3rg) Possible Log Injection in `Rack::CommonLogger`.
|
|
382
580
|
|
|
383
581
|
## [2.2.10] - 2024-10-14
|
|
384
582
|
|
|
@@ -1144,3 +1342,5 @@ Items below this line are from the previously maintained HISTORY.md and NEWS.md
|
|
|
1144
1342
|
[@BlakeWilliams]: https://github.com/BlakeWilliams "Blake Williams"
|
|
1145
1343
|
[@davidstosik]: https://github.com/davidstosik "David Stosik"
|
|
1146
1344
|
[@earlopain]: https://github.com/earlopain "Earlopain"
|
|
1345
|
+
[@wynksaiddestroy]: https://github.com/wynksaiddestroy "Fabian Winkler"
|
|
1346
|
+
[@matthewd]: https://github.com/matthewd "Matthew Draper"
|
|
@@ -6,26 +6,43 @@ way possible, it unifies and distills the bridge between web servers, web
|
|
|
6
6
|
frameworks, and web application into a single method call.
|
|
7
7
|
|
|
8
8
|
The exact details of this are described in the [Rack Specification], which all
|
|
9
|
-
Rack applications should conform to.
|
|
9
|
+
Rack applications should conform to. Browse the [Documentation] for more
|
|
10
|
+
information.
|
|
10
11
|
|
|
11
12
|
## Version support
|
|
12
13
|
|
|
13
14
|
| Version | Support |
|
|
14
15
|
|----------|------------------------------------|
|
|
15
|
-
| 3.
|
|
16
|
+
| 3.2.x | Bug fixes and security patches. |
|
|
17
|
+
| 3.1.x | Security patches only. |
|
|
18
|
+
| 3.0.x | End of support. |
|
|
16
19
|
| 2.2.x | Security patches only. |
|
|
17
20
|
| <= 2.1.x | End of support. |
|
|
18
21
|
|
|
22
|
+
**Rack 2.2.x is in security maintenance mode**. Please upgrade to Rack 3.1+ as soon
|
|
23
|
+
as possible to ensure you are receiving the latest features and security patches.
|
|
24
|
+
|
|
19
25
|
Please see the [Security Policy] for more information.
|
|
20
26
|
|
|
21
|
-
##
|
|
27
|
+
## Change log
|
|
28
|
+
|
|
29
|
+
See the [Changelog](CHANGELOG.md) for a detailed list of changes in each version of Rack.
|
|
30
|
+
|
|
31
|
+
### Rack 3.2 (latest release)
|
|
32
|
+
|
|
33
|
+
This version of rack contains bug fixes and security patches.
|
|
34
|
+
|
|
35
|
+
### Rack 3.1
|
|
22
36
|
|
|
23
|
-
This
|
|
24
|
-
breaking changes. Please check the [Upgrade Guide](UPGRADE-GUIDE.md) for more
|
|
25
|
-
details about migrating servers, middlewares and applications designed for Rack 2
|
|
26
|
-
to Rack 3. For detailed information on specific changes, check the [Change Log](CHANGELOG.md).
|
|
37
|
+
This version of rack contains bug fixes and security patches.
|
|
27
38
|
|
|
28
|
-
|
|
39
|
+
### Rack 3.0
|
|
40
|
+
|
|
41
|
+
This version of rack contains significant changes which are detailed in the
|
|
42
|
+
[Upgrade Guide](UPGRADE-GUIDE.md). It is recommended to upgrade to Rack 3 as soon
|
|
43
|
+
as possible to receive the latest features and security patches.
|
|
44
|
+
|
|
45
|
+
### Rack 2.2
|
|
29
46
|
|
|
30
47
|
This version of Rack is receiving security patches only, and effort should be
|
|
31
48
|
made to move to Rack 3.
|
|
@@ -69,6 +86,8 @@ server](#supported-web-servers).
|
|
|
69
86
|
```bash
|
|
70
87
|
$ gem install rackup
|
|
71
88
|
$ rackup
|
|
89
|
+
|
|
90
|
+
# In another shell:
|
|
72
91
|
$ curl http://localhost:9292
|
|
73
92
|
Hello World
|
|
74
93
|
```
|
|
@@ -83,6 +102,7 @@ Rack is supported by a wide range of servers, including:
|
|
|
83
102
|
* [NGINX Unit](https://unit.nginx.org/)
|
|
84
103
|
* [Phusion Passenger](https://www.phusionpassenger.com/) (which is mod_rack for
|
|
85
104
|
Apache and for nginx)
|
|
105
|
+
* [Pitchfork](https://github.com/Shopify/pitchfork)
|
|
86
106
|
* [Puma](https://puma.io/)
|
|
87
107
|
* [Thin](https://github.com/macournoyer/thin)
|
|
88
108
|
* [Unicorn](https://yhbt.net/unicorn/)
|
|
@@ -132,11 +152,9 @@ middleware:
|
|
|
132
152
|
* `Rack::ETag` for setting `etag` header on bodies that can be buffered.
|
|
133
153
|
* `Rack::Events` for providing easy hooks when a request is received and when
|
|
134
154
|
the response is sent.
|
|
135
|
-
* `Rack::Files` for serving static files.
|
|
136
155
|
* `Rack::Head` for returning an empty body for HEAD requests.
|
|
137
156
|
* `Rack::Lint` for checking conformance to the [Rack Specification].
|
|
138
157
|
* `Rack::Lock` for serializing requests using a mutex.
|
|
139
|
-
* `Rack::Logger` for setting a logger to handle logging errors.
|
|
140
158
|
* `Rack::MethodOverride` for modifying the request method based on a submitted
|
|
141
159
|
parameter.
|
|
142
160
|
* `Rack::Recursive` for including data from other paths in the application, and
|
|
@@ -150,7 +168,7 @@ middleware:
|
|
|
150
168
|
a nice and helpful way with clickable backtrace.
|
|
151
169
|
* `Rack::ShowStatus` for using nice error pages for empty client error
|
|
152
170
|
responses.
|
|
153
|
-
* `Rack::Static` for
|
|
171
|
+
* `Rack::Static` for configurable serving of static files.
|
|
154
172
|
* `Rack::TempfileReaper` for removing temporary files creating during a request.
|
|
155
173
|
|
|
156
174
|
All these components use the same interface, which is described in detail in the
|
|
@@ -172,6 +190,8 @@ quickly and without doing the same web stuff all over:
|
|
|
172
190
|
returns a not found or method not supported response.
|
|
173
191
|
* `Rack::Directory` for serving files under a given directory, with directory
|
|
174
192
|
indexes.
|
|
193
|
+
* `Rack::Files` for serving files under a given directory, without directory
|
|
194
|
+
indexes.
|
|
175
195
|
* `Rack::MediaType` for parsing content-type headers.
|
|
176
196
|
* `Rack::Mime` for determining content-type based on file extension.
|
|
177
197
|
* `Rack::RewindableInput` for making any IO object rewindable, using a temporary
|
|
@@ -210,6 +230,14 @@ query string, before attempting parsing, so if the same parameter key is
|
|
|
210
230
|
used multiple times in the query, each counts as a separate parameter for
|
|
211
231
|
this check.
|
|
212
232
|
|
|
233
|
+
### `RACK_MULTIPART_BUFFERED_UPLOAD_BYTESIZE_LIMIT`
|
|
234
|
+
|
|
235
|
+
This environment variable sets the maximum amount of memory Rack will use
|
|
236
|
+
to buffer multipart parameters when parsing a request body. This considers
|
|
237
|
+
the size of the multipart mime headers and the body part for multipart
|
|
238
|
+
parameters that are buffered in memory and do not use tempfiles. This
|
|
239
|
+
defaults to 16MB if not provided.
|
|
240
|
+
|
|
213
241
|
### `param_depth_limit`
|
|
214
242
|
|
|
215
243
|
```ruby
|
|
@@ -247,7 +275,6 @@ Can also be set via the `RACK_MULTIPART_FILE_LIMIT` environment variable.
|
|
|
247
275
|
|
|
248
276
|
(This is also aliased as `multipart_part_limit` and `RACK_MULTIPART_PART_LIMIT` for compatibility)
|
|
249
277
|
|
|
250
|
-
|
|
251
278
|
### `multipart_total_part_limit`
|
|
252
279
|
|
|
253
280
|
The maximum total number of parts a request can contain of any type, including
|
|
@@ -260,18 +287,12 @@ Set to 0 for no limit.
|
|
|
260
287
|
|
|
261
288
|
Can also be set via the `RACK_MULTIPART_TOTAL_PART_LIMIT` environment variable.
|
|
262
289
|
|
|
263
|
-
|
|
264
|
-
## Changelog
|
|
265
|
-
|
|
266
|
-
See [CHANGELOG.md](CHANGELOG.md).
|
|
267
|
-
|
|
268
290
|
## Contributing
|
|
269
291
|
|
|
270
292
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for specific details about how to make a
|
|
271
293
|
contribution to Rack.
|
|
272
294
|
|
|
273
|
-
Please post bugs, suggestions and patches to [GitHub
|
|
274
|
-
Issues](https://github.com/rack/rack/issues).
|
|
295
|
+
Please post bugs, suggestions and patches to [GitHub Issues](https://github.com/rack/rack/issues).
|
|
275
296
|
|
|
276
297
|
Please check our [Security Policy](https://github.com/rack/rack/security/policy)
|
|
277
298
|
for responsible disclosure and security bug reporting process. Due to wide usage
|
|
@@ -281,6 +302,13 @@ is greatly appreciated.
|
|
|
281
302
|
|
|
282
303
|
## See Also
|
|
283
304
|
|
|
305
|
+
### `rackup`
|
|
306
|
+
|
|
307
|
+
A useful tool for running Rack applications from the command line, including
|
|
308
|
+
`Rackup::Server` (previously `Rack::Server`) for scripting servers.
|
|
309
|
+
|
|
310
|
+
* https://github.com/rack/rackup
|
|
311
|
+
|
|
284
312
|
### `rack-contrib`
|
|
285
313
|
|
|
286
314
|
The plethora of useful middleware created the need for a project that collects
|
|
@@ -351,5 +379,6 @@ would like to thank:
|
|
|
351
379
|
|
|
352
380
|
Rack is released under the [MIT License](MIT-LICENSE).
|
|
353
381
|
|
|
354
|
-
[Rack Specification]:
|
|
382
|
+
[Rack Specification]: https://rack.github.io/rack/main/SPEC_rdoc.html
|
|
383
|
+
[Documentation]: https://rack.github.io/rack/
|
|
355
384
|
[Security Policy]: SECURITY.md
|