lunchmoney 1.4.0 → 1.5.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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +7 -0
  3. data/.github/workflows/build_and_publish_yard_docs.yml +4 -4
  4. data/.github/workflows/ci.yml +9 -10
  5. data/.github/workflows/rbi-updater.yml +1 -1
  6. data/.github/workflows/release_pipeline.yml +1 -1
  7. data/.rubocop.yml +1 -1
  8. data/.ruby-version +1 -1
  9. data/.simplecov +1 -0
  10. data/.toys/.toys.rb +8 -0
  11. data/Gemfile +3 -3
  12. data/Gemfile.lock +102 -78
  13. data/README.md +0 -2
  14. data/SECURITY.md +151 -0
  15. data/bin/check_vcr_version +94 -0
  16. data/lib/lunchmoney/api.rb +26 -38
  17. data/lib/lunchmoney/calls/assets.rb +10 -13
  18. data/lib/lunchmoney/calls/base.rb +59 -7
  19. data/lib/lunchmoney/calls/budgets.rb +22 -25
  20. data/lib/lunchmoney/calls/categories.rb +28 -38
  21. data/lib/lunchmoney/calls/crypto.rb +7 -9
  22. data/lib/lunchmoney/calls/plaid_accounts.rb +7 -9
  23. data/lib/lunchmoney/calls/recurring_expenses.rb +4 -5
  24. data/lib/lunchmoney/calls/tags.rb +3 -4
  25. data/lib/lunchmoney/calls/transactions.rb +28 -37
  26. data/lib/lunchmoney/calls/users.rb +3 -4
  27. data/lib/lunchmoney/configuration.rb +20 -0
  28. data/lib/lunchmoney/deprecate.rb +35 -0
  29. data/lib/lunchmoney/objects/asset.rb +6 -1
  30. data/lib/lunchmoney/objects/object.rb +4 -9
  31. data/lib/lunchmoney/objects/plaid_account.rb +6 -1
  32. data/lib/lunchmoney/validators.rb +8 -6
  33. data/lib/lunchmoney/version.rb +1 -1
  34. data/lib/lunchmoney.rb +3 -3
  35. data/lunchmoney.gemspec +1 -1
  36. data/sorbet/rbi/annotations/activesupport.rbi +40 -0
  37. data/sorbet/rbi/dsl/active_support/callbacks.rbi +0 -2
  38. data/sorbet/rbi/gems/{activesupport@7.2.1.rbi → activesupport@8.0.2.1.rbi} +1431 -1028
  39. data/sorbet/rbi/gems/{ast@2.4.2.rbi → ast@2.4.3.rbi} +4 -3
  40. data/sorbet/rbi/gems/{base64@0.2.0.rbi → base64@0.3.0.rbi} +76 -39
  41. data/sorbet/rbi/gems/benchmark@0.4.1.rbi +619 -0
  42. data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +275 -0
  43. data/sorbet/rbi/gems/{concurrent-ruby@1.3.4.rbi → concurrent-ruby@1.3.5.rbi} +44 -32
  44. data/sorbet/rbi/gems/{connection_pool@2.4.1.rbi → connection_pool@2.5.3.rbi} +1 -0
  45. data/sorbet/rbi/gems/{dotenv@3.1.2.rbi → dotenv@3.1.8.rbi} +21 -29
  46. data/sorbet/rbi/gems/{drb@2.2.1.rbi → drb@2.2.3.rbi} +503 -188
  47. data/sorbet/rbi/gems/{erubi@1.13.0.rbi → erubi@1.13.1.rbi} +14 -9
  48. data/sorbet/rbi/gems/{faraday-net_http@3.1.1.rbi → faraday-net_http@3.4.1.rbi} +34 -34
  49. data/sorbet/rbi/gems/{faraday@2.10.1.rbi → faraday@2.13.4.rbi} +507 -171
  50. data/sorbet/rbi/gems/{hashdiff@1.1.1.rbi → hashdiff@1.2.0.rbi} +5 -3
  51. data/sorbet/rbi/gems/{i18n@1.14.5.rbi → i18n@1.14.7.rbi} +80 -80
  52. data/sorbet/rbi/gems/{json@2.7.2.rbi → json@2.13.2.rbi} +988 -226
  53. data/sorbet/rbi/gems/{kramdown@2.4.0.rbi → kramdown@2.5.1.rbi} +316 -234
  54. data/sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi +9 -0
  55. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +240 -0
  56. data/sorbet/rbi/gems/{logger@1.6.0.rbi → logger@1.7.0.rbi} +136 -76
  57. data/sorbet/rbi/gems/{minitest@5.25.1.rbi → minitest@5.25.5.rbi} +227 -220
  58. data/sorbet/rbi/gems/{mocha@2.4.5.rbi → mocha@2.7.1.rbi} +154 -118
  59. data/sorbet/rbi/gems/{net-http@0.4.1.rbi → net-http@0.6.0.rbi} +360 -181
  60. data/sorbet/rbi/gems/{parser@3.3.4.2.rbi → parser@3.3.9.0.rbi} +326 -308
  61. data/sorbet/rbi/gems/{prism@0.30.0.rbi → prism@1.4.0.rbi} +12440 -9920
  62. data/sorbet/rbi/gems/{rack@3.1.7.rbi → rack@3.2.1.rbi} +752 -579
  63. data/sorbet/rbi/gems/{rake@13.2.1.rbi → rake@13.3.0.rbi} +238 -227
  64. data/sorbet/rbi/gems/rbi@0.3.6.rbi +5162 -0
  65. data/sorbet/rbi/gems/rbs@4.0.0.dev.4.rbi +7895 -0
  66. data/sorbet/rbi/gems/{regexp_parser@2.9.2.rbi → regexp_parser@2.11.2.rbi} +1124 -1013
  67. data/sorbet/rbi/gems/require-hooks@0.2.2.rbi +110 -0
  68. data/sorbet/rbi/gems/{rexml@3.3.6.rbi → rexml@3.4.2.rbi} +755 -318
  69. data/sorbet/rbi/gems/{rubocop-ast@1.32.1.rbi → rubocop-ast@1.46.0.rbi} +1287 -899
  70. data/sorbet/rbi/gems/{rubocop-minitest@0.35.1.rbi → rubocop-minitest@0.38.2.rbi} +133 -97
  71. data/sorbet/rbi/gems/{rubocop-rails@2.26.0.rbi → rubocop-rails@2.33.3.rbi} +9874 -6597
  72. data/sorbet/rbi/gems/{rubocop-shopify@2.15.1.rbi → rubocop-shopify@2.17.1.rbi} +1 -0
  73. data/sorbet/rbi/gems/{rubocop-sorbet@0.8.5.rbi → rubocop-sorbet@0.10.5.rbi} +804 -83
  74. data/sorbet/rbi/gems/{rubocop@1.65.1.rbi → rubocop@1.80.1.rbi} +10688 -5103
  75. data/sorbet/rbi/gems/{securerandom@0.3.1.rbi → securerandom@0.4.1.rbi} +7 -5
  76. data/sorbet/rbi/gems/{spoom@1.4.2.rbi → spoom@1.7.6.rbi} +1939 -1039
  77. data/sorbet/rbi/gems/{tapioca@0.16.1.rbi → tapioca@0.17.7.rbi} +765 -821
  78. data/sorbet/rbi/gems/{thor@1.3.1.rbi → thor@1.4.0.rbi} +139 -91
  79. data/sorbet/rbi/gems/unicode-display_width@3.1.5.rbi +132 -0
  80. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +251 -0
  81. data/sorbet/rbi/gems/{uri@0.13.0.rbi → uri@1.0.3.rbi} +278 -256
  82. data/sorbet/rbi/gems/{vcr@6.3.1.rbi → vcr@6.3.1-ce35c236fe48899f02ddf780973b44cdb756c0ee.rbi} +140 -123
  83. data/sorbet/rbi/gems/{webmock@3.23.1.rbi → webmock@3.25.1.rbi} +101 -78
  84. data/sorbet/rbi/gems/{yard@0.9.36.rbi → yard@0.9.37.rbi} +394 -235
  85. metadata +55 -53
  86. data/sorbet/rbi/gems/bigdecimal@3.1.8.rbi +0 -78
  87. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +0 -14237
  88. data/sorbet/rbi/gems/rbi@0.1.14.rbi +0 -3305
  89. data/sorbet/rbi/gems/strscan@3.1.0.rbi +0 -9
  90. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +0 -65
  91. /data/sorbet/rbi/gems/{parallel@1.26.3.rbi → parallel@1.27.0.rbi} +0 -0
@@ -5,23 +5,17 @@
5
5
  # Please instead update this file by running `bin/tapioca gem rack`.
6
6
 
7
7
 
8
- # The Rack main module, serving as a namespace for all core Rack
9
- # modules and classes.
10
- #
11
- # All modules meant for use in your application are <tt>autoload</tt>ed here,
12
- # so it should be enough just to <tt>require 'rack'</tt> in your code.
13
- #
14
8
  # source://rack//lib/rack/bad_request.rb#3
15
9
  module Rack
16
10
  class << self
17
11
  # Return the Rack release as a dotted string.
18
12
  #
19
- # source://rack//lib/rack/version.rb#18
13
+ # source://rack//lib/rack/version.rb#14
20
14
  def release; end
21
15
  end
22
16
  end
23
17
 
24
- # source://rack//lib/rack.rb#60
18
+ # source://rack//lib/rack.rb#59
25
19
  module Rack::Auth; end
26
20
 
27
21
  # Rack::Auth::AbstractHandler implements common authentication functionality.
@@ -56,42 +50,42 @@ class Rack::Auth::AbstractHandler
56
50
  def unauthorized(www_authenticate = T.unsafe(nil)); end
57
51
  end
58
52
 
59
- # source://rack//lib/rack/auth/abstract/request.rb#7
53
+ # source://rack//lib/rack/auth/abstract/request.rb#8
60
54
  class Rack::Auth::AbstractRequest
61
55
  # @return [AbstractRequest] a new instance of AbstractRequest
62
56
  #
63
- # source://rack//lib/rack/auth/abstract/request.rb#9
57
+ # source://rack//lib/rack/auth/abstract/request.rb#10
64
58
  def initialize(env); end
65
59
 
66
- # source://rack//lib/rack/auth/abstract/request.rb#33
60
+ # source://rack//lib/rack/auth/abstract/request.rb#35
67
61
  def params; end
68
62
 
69
- # source://rack//lib/rack/auth/abstract/request.rb#25
63
+ # source://rack//lib/rack/auth/abstract/request.rb#27
70
64
  def parts; end
71
65
 
72
66
  # @return [Boolean]
73
67
  #
74
- # source://rack//lib/rack/auth/abstract/request.rb#17
68
+ # source://rack//lib/rack/auth/abstract/request.rb#19
75
69
  def provided?; end
76
70
 
77
- # source://rack//lib/rack/auth/abstract/request.rb#13
71
+ # source://rack//lib/rack/auth/abstract/request.rb#14
78
72
  def request; end
79
73
 
80
- # source://rack//lib/rack/auth/abstract/request.rb#29
74
+ # source://rack//lib/rack/auth/abstract/request.rb#31
81
75
  def scheme; end
82
76
 
83
77
  # @return [Boolean]
84
78
  #
85
- # source://rack//lib/rack/auth/abstract/request.rb#21
79
+ # source://rack//lib/rack/auth/abstract/request.rb#23
86
80
  def valid?; end
87
81
 
88
82
  private
89
83
 
90
- # source://rack//lib/rack/auth/abstract/request.rb#42
84
+ # source://rack//lib/rack/auth/abstract/request.rb#44
91
85
  def authorization_key; end
92
86
  end
93
87
 
94
- # source://rack//lib/rack/auth/abstract/request.rb#40
88
+ # source://rack//lib/rack/auth/abstract/request.rb#42
95
89
  Rack::Auth::AbstractRequest::AUTHORIZATION_KEYS = T.let(T.unsafe(nil), Array)
96
90
 
97
91
  # Rack::Auth::Basic implements HTTP Basic Authentication, as per RFC 2617.
@@ -224,13 +218,13 @@ class Rack::Builder
224
218
  # this rebuilds the Rack application and runs the warmup code (if any)
225
219
  # every time it is called, so it should not be used if performance is important.
226
220
  #
227
- # source://rack//lib/rack/builder.rb#276
221
+ # source://rack//lib/rack/builder.rb#282
228
222
  def call(env); end
229
223
 
230
224
  # Freeze the app (set using run) and all middleware instances when building the application
231
225
  # in to_app.
232
226
  #
233
- # source://rack//lib/rack/builder.rb#259
227
+ # source://rack//lib/rack/builder.rb#265
234
228
  def freeze_app; end
235
229
 
236
230
  # Creates a route within the application. Routes under the mapped path will be sent to
@@ -273,7 +267,7 @@ class Rack::Builder
273
267
  # Note that providing a +path+ of +/+ will ignore any default application given in a +run+ statement
274
268
  # outside the block.
275
269
  #
276
- # source://rack//lib/rack/builder.rb#252
270
+ # source://rack//lib/rack/builder.rb#256
277
271
  def map(path, &block); end
278
272
 
279
273
  # Any options provided to the Rack::Builder instance at initialization.
@@ -310,12 +304,12 @@ class Rack::Builder
310
304
  #
311
305
  # @raise [ArgumentError]
312
306
  #
313
- # source://rack//lib/rack/builder.rb#193
307
+ # source://rack//lib/rack/builder.rb#195
314
308
  def run(app = T.unsafe(nil), &block); end
315
309
 
316
310
  # Return the Rack application generated by this instance.
317
311
  #
318
- # source://rack//lib/rack/builder.rb#264
312
+ # source://rack//lib/rack/builder.rb#270
319
313
  def to_app; end
320
314
 
321
315
  # Specifies middleware to use in a stack.
@@ -352,7 +346,7 @@ class Rack::Builder
352
346
  # use SomeMiddleware
353
347
  # run MyApp
354
348
  #
355
- # source://rack//lib/rack/builder.rb#209
349
+ # source://rack//lib/rack/builder.rb#213
356
350
  def warmup(prc = T.unsafe(nil), &block); end
357
351
 
358
352
  private
@@ -360,7 +354,7 @@ class Rack::Builder
360
354
  # Generate a URLMap instance by generating new Rack applications for each
361
355
  # map block in this instance.
362
356
  #
363
- # source://rack//lib/rack/builder.rb#284
357
+ # source://rack//lib/rack/builder.rb#290
364
358
  def generate_map(default_app, mapping); end
365
359
 
366
360
  class << self
@@ -464,7 +458,7 @@ class Rack::Cascade
464
458
  # Append an app to the list of apps to cascade. This app will
465
459
  # be tried last.
466
460
  #
467
- # source://rack//lib/rack/cascade.rb#56
461
+ # source://rack//lib/rack/cascade.rb#65
468
462
  def <<(app); end
469
463
 
470
464
  # Append an app to the list of apps to cascade. This app will
@@ -526,7 +520,7 @@ class Rack::CommonLogger
526
520
  # Attempt to determine the content length for the response to
527
521
  # include it in the logged data.
528
522
  #
529
- # source://rack//lib/rack/common_logger.rb#83
523
+ # source://rack//lib/rack/common_logger.rb#84
530
524
  def extract_content_length(headers); end
531
525
 
532
526
  # Log the request to the configured logger.
@@ -581,7 +575,7 @@ class Rack::ConditionalGet
581
575
  #
582
576
  # @return [Boolean]
583
577
  #
584
- # source://rack//lib/rack/conditional_get.rb#62
578
+ # source://rack//lib/rack/conditional_get.rb#63
585
579
  def etag_matches?(none_match, headers); end
586
580
 
587
581
  # Return whether the response has not been modified since the
@@ -589,7 +583,7 @@ class Rack::ConditionalGet
589
583
  #
590
584
  # @return [Boolean]
591
585
  #
592
- # source://rack//lib/rack/conditional_get.rb#51
586
+ # source://rack//lib/rack/conditional_get.rb#52
593
587
  def fresh?(env, headers); end
594
588
 
595
589
  # Whether the last-modified response header matches the if-modified-since
@@ -597,13 +591,13 @@ class Rack::ConditionalGet
597
591
  #
598
592
  # @return [Boolean]
599
593
  #
600
- # source://rack//lib/rack/conditional_get.rb#68
594
+ # source://rack//lib/rack/conditional_get.rb#69
601
595
  def modified_since?(modified_since, headers); end
602
596
 
603
597
  # Return a Time object for the given string (which should be in RFC2822
604
598
  # format), or nil if the string cannot be parsed.
605
599
  #
606
- # source://rack//lib/rack/conditional_get.rb#75
600
+ # source://rack//lib/rack/conditional_get.rb#76
607
601
  def to_rfc2822(since); end
608
602
  end
609
603
 
@@ -877,17 +871,17 @@ class Rack::ETag
877
871
 
878
872
  private
879
873
 
880
- # source://rack//lib/rack/etag.rb#58
874
+ # source://rack//lib/rack/etag.rb#61
881
875
  def digest_body(body); end
882
876
 
883
877
  # @return [Boolean]
884
878
  #
885
- # source://rack//lib/rack/etag.rb#50
879
+ # source://rack//lib/rack/etag.rb#53
886
880
  def etag_status?(status); end
887
881
 
888
882
  # @return [Boolean]
889
883
  #
890
- # source://rack//lib/rack/etag.rb#54
884
+ # source://rack//lib/rack/etag.rb#57
891
885
  def skip_caching?(headers); end
892
886
  end
893
887
 
@@ -924,12 +918,13 @@ Rack::EXPIRES = T.let(T.unsafe(nil), String)
924
918
  #
925
919
  # * on_send(request, response)
926
920
  #
927
- # The webserver has started iterating over the response body and presumably
928
- # has started sending data over the wire. This method is always called with
929
- # a request object and the response object. The response object is
930
- # constructed from the rack triple that the application returned. Changes
931
- # SHOULD NOT be made to the response object as the webserver has already
932
- # started sending data. Any mutations will likely result in an exception.
921
+ # The webserver has started iterating over the response body, or has called
922
+ # the streaming body, and presumably has started sending data over the
923
+ # wire. This method is always called with a request object and the response
924
+ # object. The response object is constructed from the rack triple that the
925
+ # application returned. Changes SHOULD NOT be made to the response object
926
+ # as the webserver has already started sending data. Any mutations will
927
+ # likely result in an exception.
933
928
  #
934
929
  # * on_finish(request, response)
935
930
  #
@@ -953,89 +948,97 @@ Rack::EXPIRES = T.let(T.unsafe(nil), String)
953
948
  # raises an exception. If something raises an exception in a `on_finish`
954
949
  # method, then nothing is guaranteed.
955
950
  #
956
- # source://rack//lib/rack/events.rb#61
951
+ # source://rack//lib/rack/events.rb#62
957
952
  class Rack::Events
958
953
  # @return [Events] a new instance of Events
959
954
  #
960
- # source://rack//lib/rack/events.rb#106
955
+ # source://rack//lib/rack/events.rb#121
961
956
  def initialize(app, handlers); end
962
957
 
963
- # source://rack//lib/rack/events.rb#111
958
+ # source://rack//lib/rack/events.rb#126
964
959
  def call(env); end
965
960
 
966
961
  private
967
962
 
968
- # source://rack//lib/rack/events.rb#149
963
+ # source://rack//lib/rack/events.rb#164
969
964
  def make_request(env); end
970
965
 
971
- # source://rack//lib/rack/events.rb#153
966
+ # source://rack//lib/rack/events.rb#168
972
967
  def make_response(status, headers, body); end
973
968
 
974
- # source://rack//lib/rack/events.rb#137
969
+ # source://rack//lib/rack/events.rb#152
975
970
  def on_commit(request, response); end
976
971
 
977
- # source://rack//lib/rack/events.rb#133
972
+ # source://rack//lib/rack/events.rb#148
978
973
  def on_error(request, response, e); end
979
974
 
980
- # source://rack//lib/rack/events.rb#145
975
+ # source://rack//lib/rack/events.rb#160
981
976
  def on_finish(request, response); end
982
977
 
983
- # source://rack//lib/rack/events.rb#141
978
+ # source://rack//lib/rack/events.rb#156
984
979
  def on_start(request, response); end
985
980
  end
986
981
 
987
- # source://rack//lib/rack/events.rb#62
982
+ # source://rack//lib/rack/events.rb#63
988
983
  module Rack::Events::Abstract
989
- # source://rack//lib/rack/events.rb#66
984
+ # source://rack//lib/rack/events.rb#67
990
985
  def on_commit(req, res); end
991
986
 
992
- # source://rack//lib/rack/events.rb#75
987
+ # source://rack//lib/rack/events.rb#76
993
988
  def on_error(req, res, e); end
994
989
 
995
- # source://rack//lib/rack/events.rb#72
990
+ # source://rack//lib/rack/events.rb#73
996
991
  def on_finish(req, res); end
997
992
 
998
- # source://rack//lib/rack/events.rb#69
993
+ # source://rack//lib/rack/events.rb#70
999
994
  def on_send(req, res); end
1000
995
 
1001
- # source://rack//lib/rack/events.rb#63
996
+ # source://rack//lib/rack/events.rb#64
1002
997
  def on_start(req, res); end
1003
998
  end
1004
999
 
1005
- # source://rack//lib/rack/events.rb#95
1000
+ # source://rack//lib/rack/events.rb#110
1006
1001
  class Rack::Events::BufferedResponse < ::Rack::Response::Raw
1007
1002
  # @return [BufferedResponse] a new instance of BufferedResponse
1008
1003
  #
1009
- # source://rack//lib/rack/events.rb#98
1004
+ # source://rack//lib/rack/events.rb#113
1010
1005
  def initialize(status, headers, body); end
1011
1006
 
1012
1007
  # Returns the value of attribute body.
1013
1008
  #
1014
- # source://rack//lib/rack/events.rb#96
1009
+ # source://rack//lib/rack/events.rb#111
1015
1010
  def body; end
1016
1011
 
1017
- # source://rack//lib/rack/events.rb#103
1012
+ # source://rack//lib/rack/events.rb#118
1018
1013
  def to_a; end
1019
1014
  end
1020
1015
 
1021
- # source://rack//lib/rack/events.rb#79
1016
+ # source://rack//lib/rack/events.rb#80
1022
1017
  class Rack::Events::EventedBodyProxy < ::Rack::BodyProxy
1023
1018
  # @return [EventedBodyProxy] a new instance of EventedBodyProxy
1024
1019
  #
1025
- # source://rack//lib/rack/events.rb#82
1020
+ # source://rack//lib/rack/events.rb#83
1026
1021
  def initialize(body, request, response, handlers, &block); end
1027
1022
 
1028
- # source://rack//lib/rack/events.rb#89
1023
+ # source://rack//lib/rack/events.rb#95
1024
+ def call(stream); end
1025
+
1026
+ # source://rack//lib/rack/events.rb#90
1029
1027
  def each; end
1030
1028
 
1031
1029
  # Returns the value of attribute request.
1032
1030
  #
1033
- # source://rack//lib/rack/events.rb#80
1031
+ # source://rack//lib/rack/events.rb#81
1034
1032
  def request; end
1035
1033
 
1034
+ # @return [Boolean]
1035
+ #
1036
+ # source://rack//lib/rack/events.rb#100
1037
+ def respond_to?(method_name, include_all = T.unsafe(nil)); end
1038
+
1036
1039
  # Returns the value of attribute response.
1037
1040
  #
1038
- # source://rack//lib/rack/events.rb#80
1041
+ # source://rack//lib/rack/events.rb#81
1039
1042
  def response; end
1040
1043
  end
1041
1044
 
@@ -1135,7 +1138,7 @@ end
1135
1138
 
1136
1139
  # source://rack//lib/rack/files.rb#184
1137
1140
  class Rack::Files::Iterator < ::Rack::Files::BaseIterator
1138
- # source://rack//lib/rack/files.rb#122
1141
+ # source://rack//lib/rack/files.rb#185
1139
1142
  def to_path; end
1140
1143
  end
1141
1144
 
@@ -1246,7 +1249,7 @@ class Rack::Headers < ::Hash
1246
1249
 
1247
1250
  # @return [Boolean]
1248
1251
  #
1249
- # source://rack//lib/rack/headers.rb#144
1252
+ # source://rack//lib/rack/headers.rb#147
1250
1253
  def include?(key); end
1251
1254
 
1252
1255
  # source://rack//lib/rack/headers.rb#151
@@ -1254,18 +1257,18 @@ class Rack::Headers < ::Hash
1254
1257
 
1255
1258
  # @return [Boolean]
1256
1259
  #
1257
- # source://rack//lib/rack/headers.rb#144
1260
+ # source://rack//lib/rack/headers.rb#148
1258
1261
  def key?(key); end
1259
1262
 
1260
1263
  # @return [Boolean]
1261
1264
  #
1262
- # source://rack//lib/rack/headers.rb#144
1265
+ # source://rack//lib/rack/headers.rb#149
1263
1266
  def member?(key); end
1264
1267
 
1265
1268
  # source://rack//lib/rack/headers.rb#157
1266
1269
  def merge(hash, &block); end
1267
1270
 
1268
- # source://rack//lib/rack/headers.rb#186
1271
+ # source://rack//lib/rack/headers.rb#196
1269
1272
  def merge!(hash, &block); end
1270
1273
 
1271
1274
  # source://rack//lib/rack/headers.rb#161
@@ -1282,7 +1285,7 @@ class Rack::Headers < ::Hash
1282
1285
  # source://rack//lib/rack/headers.rb#205
1283
1286
  def slice(*a); end
1284
1287
 
1285
- # source://rack//lib/rack/headers.rb#114
1288
+ # source://rack//lib/rack/headers.rb#117
1286
1289
  def store(key, value); end
1287
1290
 
1288
1291
  # source://rack//lib/rack/headers.rb#178
@@ -1320,358 +1323,322 @@ Rack::Headers::KNOWN_HEADERS = T.let(T.unsafe(nil), Hash)
1320
1323
  # source://rack//lib/rack/constants.rb#36
1321
1324
  Rack::LINK = T.let(T.unsafe(nil), String)
1322
1325
 
1323
- # Rack::Lint validates your application and the requests and
1324
- # responses according to the Rack spec.
1326
+ # Validates your application and the requests and responses according to the Rack spec. See SPEC.rdoc for details.
1325
1327
  #
1326
- # source://rack//lib/rack/lint.rb#13
1328
+ # source://rack//lib/rack/lint.rb#10
1327
1329
  class Rack::Lint
1328
- # @return [Lint] a new instance of Lint
1330
+ # N.B. The empty `##` comments creates paragraphs in the output. A trailing "\" is used to escape the newline character, which combines the comments into a single paragraph.
1329
1331
  #
1330
- # source://rack//lib/rack/lint.rb#19
1331
- def initialize(app); end
1332
-
1333
- # AUTHORS: n.b. The trailing whitespace between paragraphs is important and
1334
- # should not be removed. The whitespace creates paragraphs in the RDoc
1335
- # output.
1332
+ # = Rack Specification
1336
1333
  #
1337
- # This specification aims to formalize the Rack protocol. You
1338
- # can (and should) use Rack::Lint to enforce it.
1334
+ # This specification aims to formalize the Rack protocol. You can (and should) use +Rack::Lint+ to enforce it. When you develop middleware, be sure to test with +Rack::Lint+ to catch possible violations of this specification.
1339
1335
  #
1340
- # When you develop middleware, be sure to add a Lint before and
1341
- # after to catch all mistakes.
1336
+ # == The Application
1342
1337
  #
1343
- # = Rack applications
1338
+ # A Rack application is a Ruby object that responds to +call+. \
1344
1339
  #
1345
- # A Rack application is a Ruby object (not a class) that
1346
- # responds to +call+.
1340
+ # @raise [LintError]
1341
+ # @return [Lint] a new instance of Lint
1347
1342
  #
1348
- # source://rack//lib/rack/lint.rb#40
1343
+ # source://rack//lib/rack/lint.rb#65
1344
+ def initialize(app); end
1345
+
1346
+ # Invoke the application, validating the request and response according to the Rack spec.
1347
+ #
1348
+ # source://rack//lib/rack/lint.rb#15
1349
1349
  def call(env = T.unsafe(nil)); end
1350
1350
  end
1351
1351
 
1352
1352
  # :stopdoc:
1353
1353
  #
1354
- # source://rack//lib/rack/lint.rb#25
1354
+ # source://rack//lib/rack/lint.rb#21
1355
+ Rack::Lint::ALLOWED_SCHEMES = T.let(T.unsafe(nil), Array)
1356
+
1357
+ # Match a host name, according to RFC3986. Copied from `URI::RFC3986_Parser::HOST` because older Ruby versions (< 3.3) don't expose it.
1358
+ #
1359
+ # source://rack//lib/rack/lint.rb#29
1360
+ Rack::Lint::HOST_PATTERN = T.let(T.unsafe(nil), Regexp)
1361
+
1362
+ # source://rack//lib/rack/lint.rb#52
1363
+ Rack::Lint::HTTP_HOST_PATTERN = T.let(T.unsafe(nil), Regexp)
1364
+
1365
+ # Represents a failure to meet the Rack specification.
1366
+ #
1367
+ # source://rack//lib/rack/lint.rb#12
1355
1368
  class Rack::Lint::LintError < ::RuntimeError; end
1356
1369
 
1357
- # source://rack//lib/rack/lint.rb#15
1370
+ # source://rack//lib/rack/lint.rb#24
1358
1371
  Rack::Lint::REQUEST_PATH_ABSOLUTE_FORM = T.let(T.unsafe(nil), Regexp)
1359
1372
 
1360
- # source://rack//lib/rack/lint.rb#17
1373
+ # source://rack//lib/rack/lint.rb#26
1361
1374
  Rack::Lint::REQUEST_PATH_ASTERISK_FORM = T.let(T.unsafe(nil), String)
1362
1375
 
1363
- # source://rack//lib/rack/lint.rb#16
1376
+ # source://rack//lib/rack/lint.rb#25
1364
1377
  Rack::Lint::REQUEST_PATH_AUTHORITY_FORM = T.let(T.unsafe(nil), Regexp)
1365
1378
 
1366
- # source://rack//lib/rack/lint.rb#14
1379
+ # source://rack//lib/rack/lint.rb#23
1367
1380
  Rack::Lint::REQUEST_PATH_ORIGIN_FORM = T.let(T.unsafe(nil), Regexp)
1368
1381
 
1369
- # source://rack//lib/rack/lint.rb#44
1382
+ # source://rack//lib/rack/lint.rb#51
1383
+ Rack::Lint::SERVER_NAME_PATTERN = T.let(T.unsafe(nil), Regexp)
1384
+
1385
+ # source://rack//lib/rack/lint.rb#71
1370
1386
  class Rack::Lint::Wrapper
1371
1387
  # @return [Wrapper] a new instance of Wrapper
1372
1388
  #
1373
- # source://rack//lib/rack/lint.rb#45
1389
+ # source://rack//lib/rack/lint.rb#72
1374
1390
  def initialize(app, env); end
1375
1391
 
1376
1392
  # ==== Streaming Body
1377
1393
  #
1378
1394
  # @raise [LintError]
1379
1395
  #
1380
- # source://rack//lib/rack/lint.rb#939
1396
+ # source://rack//lib/rack/lint.rb#918
1381
1397
  def call(stream); end
1382
1398
 
1383
- # ==== The +content-length+ Header
1399
+ # ==== The <tt>content-length</tt> Header
1384
1400
  #
1385
- # source://rack//lib/rack/lint.rb#757
1401
+ # source://rack//lib/rack/lint.rb#768
1386
1402
  def check_content_length_header(status, headers); end
1387
1403
 
1388
- # ==== The +content-type+ Header
1404
+ # ==== The <tt>content-type</tt> Header
1389
1405
  #
1390
- # source://rack//lib/rack/lint.rb#741
1406
+ # source://rack//lib/rack/lint.rb#753
1391
1407
  def check_content_type_header(status, headers); end
1392
1408
 
1393
1409
  # === Early Hints
1394
1410
  #
1395
- # The application or any middleware may call the <tt>rack.early_hints</tt>
1396
- # with an object which would be valid as the headers of a Rack response.
1411
+ # The application or any middleware may call the <tt>rack.early_hints</tt> with an object which would be valid as the headers of a Rack response.
1397
1412
  #
1398
- # source://rack//lib/rack/lint.rb#657
1413
+ # source://rack//lib/rack/lint.rb#670
1399
1414
  def check_early_hints(env); end
1400
1415
 
1401
- # == The Environment
1416
+ # == The Request Environment
1417
+ #
1418
+ # Incoming HTTP requests are represented using an environment. \
1402
1419
  #
1403
1420
  # @raise [LintError]
1404
1421
  #
1405
- # source://rack//lib/rack/lint.rb#101
1422
+ # source://rack//lib/rack/lint.rb#136
1406
1423
  def check_environment(env); end
1407
1424
 
1408
1425
  # === The Error Stream
1409
1426
  #
1410
- # source://rack//lib/rack/lint.rb#531
1427
+ # source://rack//lib/rack/lint.rb#571
1411
1428
  def check_error_stream(error); end
1412
1429
 
1413
- # source://rack//lib/rack/lint.rb#731
1430
+ # source://rack//lib/rack/lint.rb#743
1414
1431
  def check_header_value(key, value); end
1415
1432
 
1416
1433
  # === The Headers
1417
1434
  #
1418
- # source://rack//lib/rack/lint.rb#691
1435
+ # source://rack//lib/rack/lint.rb#704
1419
1436
  def check_headers(headers); end
1420
1437
 
1421
1438
  # === Hijacking
1422
1439
  #
1423
- # The hijacking interfaces provides a means for an application to take
1424
- # control of the HTTP connection. There are two distinct hijack
1425
- # interfaces: full hijacking where the application takes over the raw
1426
- # connection, and partial hijacking where the application takes over
1427
- # just the response body stream. In both cases, the application is
1428
- # responsible for closing the hijacked stream.
1440
+ # The hijacking interfaces provides a means for an application to take control of the HTTP connection. There are two distinct hijack interfaces: full hijacking where the application takes over the raw connection, and partial hijacking where the application takes over just the response body stream. In both cases, the application is responsible for closing the hijacked stream.
1429
1441
  #
1430
- # Full hijacking only works with HTTP/1. Partial hijacking is functionally
1431
- # equivalent to streaming bodies, and is still optionally supported for
1432
- # backwards compatibility with older Rack versions.
1442
+ # Full hijacking only works with HTTP/1. Partial hijacking is functionally equivalent to streaming bodies, and is still optionally supported for backwards compatibility with older Rack versions.
1433
1443
  #
1434
1444
  # ==== Full Hijack
1435
1445
  #
1436
- # Full hijack is used to completely take over an HTTP/1 connection. It
1437
- # occurs before any headers are written and causes the request to
1438
- # ignores any response generated by the application.
1446
+ # Full hijack is used to completely take over an HTTP/1 connection. It occurs before any headers are written and causes the server to ignore any response generated by the application. It is intended to be used when applications need access to the raw HTTP/1 connection.
1439
1447
  #
1440
- # It is intended to be used when applications need access to raw HTTP/1
1441
- # connection.
1442
- #
1443
- # source://rack//lib/rack/lint.rb#591
1448
+ # source://rack//lib/rack/lint.rb#618
1444
1449
  def check_hijack(env); end
1445
1450
 
1446
1451
  # ==== Partial Hijack
1447
1452
  #
1448
- # Partial hijack is used for bi-directional streaming of the request and
1449
- # response body. It occurs after the status and headers are written by
1450
- # the server and causes the server to ignore the Body of the response.
1453
+ # Partial hijack is used for bi-directional streaming of the request and response body. It occurs after the status and headers are written by the server and causes the server to ignore the Body of the response. It is intended to be used when applications need bi-directional streaming.
1451
1454
  #
1452
- # It is intended to be used when applications need bi-directional
1453
- # streaming.
1454
- #
1455
- # source://rack//lib/rack/lint.rb#619
1455
+ # source://rack//lib/rack/lint.rb#639
1456
1456
  def check_hijack_response(headers, env); end
1457
1457
 
1458
1458
  # === The Input Stream
1459
1459
  #
1460
- # The input stream is an IO-like object which contains the raw HTTP
1461
- # POST data.
1460
+ # The input stream is an +IO+-like object which contains the raw HTTP request data. \
1462
1461
  #
1463
- # source://rack//lib/rack/lint.rb#427
1462
+ # source://rack//lib/rack/lint.rb#478
1464
1463
  def check_input_stream(input); end
1465
1464
 
1466
- # ==== The +rack.protocol+ Header
1465
+ # ==== The <tt>rack.protocol</tt> Header
1467
1466
  #
1468
- # source://rack//lib/rack/lint.rb#785
1467
+ # source://rack//lib/rack/lint.rb#795
1469
1468
  def check_rack_protocol_header(status, headers); end
1470
1469
 
1471
1470
  # == The Response
1472
1471
  #
1472
+ # Outgoing HTTP responses are generated from the response tuple generated by the application. The response tuple is an +Array+ of three elements, which are: the HTTP status, the headers, and the response body. The Rack application is responsible for ensuring that the response tuple is well-formed and should follow the rules set out in this specification.
1473
+ #
1473
1474
  # === The Status
1474
1475
  #
1475
- # source://rack//lib/rack/lint.rb#680
1476
+ # source://rack//lib/rack/lint.rb#694
1476
1477
  def check_status(status); end
1477
1478
 
1478
- # Setting this value informs the server that it should perform a
1479
- # connection upgrade. In HTTP/1, this is done using the +upgrade+
1480
- # header. In HTTP/2, this is done by accepting the request.
1479
+ # Setting this value informs the server that it should perform a connection upgrade. In HTTP/1, this is done using the +upgrade+ header. In HTTP/2+, this is done by accepting the request.
1481
1480
  #
1482
1481
  # === The Body
1483
1482
  #
1484
- # The Body is typically an +Array+ of +String+ instances, an enumerable
1485
- # that yields +String+ instances, a +Proc+ instance, or a File-like
1486
- # object.
1487
- #
1488
- # The Body must respond to +each+ or +call+. It may optionally respond
1489
- # to +to_path+ or +to_ary+. A Body that responds to +each+ is considered
1490
- # to be an Enumerable Body. A Body that responds to +call+ is considered
1491
- # to be a Streaming Body.
1492
- #
1493
- # A Body that responds to both +each+ and +call+ must be treated as an
1494
- # Enumerable Body, not a Streaming Body. If it responds to +each+, you
1495
- # must call +each+ and not +call+. If the Body doesn't respond to
1496
- # +each+, then you can assume it responds to +call+.
1497
- #
1498
- # The Body must either be consumed or returned. The Body is consumed by
1499
- # optionally calling either +each+ or +call+.
1500
- # Then, if the Body responds to +close+, it must be called to release
1501
- # any resources associated with the generation of the body.
1502
- # In other words, +close+ must always be called at least once; typically
1503
- # after the web server has sent the response to the client, but also in
1504
- # cases where the Rack application makes internal/virtual requests and
1505
- # discards the response.
1506
- #
1507
- # source://rack//lib/rack/lint.rb#831
1483
+ # The Body is typically an +Array+ of +String+ values, an enumerable that yields +String+ values, a +Proc+, or an +IO+-like object.
1484
+ #
1485
+ # The Body must respond to +each+ or +call+. It may optionally respond to +to_path+ or +to_ary+. A Body that responds to +each+ is considered to be an Enumerable Body. A Body that responds to +call+ is considered to be a Streaming Body.
1486
+ #
1487
+ # A Body that responds to both +each+ and +call+ must be treated as an Enumerable Body, not a Streaming Body. If it responds to +each+, you must call +each+ and not +call+. If the Body doesn't respond to +each+, then you can assume it responds to +call+.
1488
+ #
1489
+ # The Body must either be consumed or returned. The Body is consumed by optionally calling either +each+ or +call+. Then, if the Body responds to +close+, it must be called to release any resources associated with the generation of the body. In other words, +close+ must always be called at least once; typically after the web server has sent the response to the client, but also in cases where the Rack application makes internal/virtual requests and discards the response.
1490
+ #
1491
+ # source://rack//lib/rack/lint.rb#821
1508
1492
  def close; end
1509
1493
 
1510
1494
  # ==== Enumerable Body
1511
1495
  #
1512
1496
  # @raise [LintError]
1513
1497
  #
1514
- # source://rack//lib/rack/lint.rb#865
1498
+ # source://rack//lib/rack/lint.rb#852
1515
1499
  def each; end
1516
1500
 
1517
1501
  # @return [Boolean]
1518
1502
  #
1519
- # source://rack//lib/rack/lint.rb#910
1503
+ # source://rack//lib/rack/lint.rb#895
1520
1504
  def respond_to?(name, *_arg1); end
1521
1505
 
1522
1506
  # @raise [LintError]
1523
1507
  #
1524
- # source://rack//lib/rack/lint.rb#60
1508
+ # source://rack//lib/rack/lint.rb#87
1525
1509
  def response; end
1526
1510
 
1527
- # If the Body responds to +to_ary+, it must return an +Array+ whose
1528
- # contents are identical to that produced by calling +each+.
1529
- # Middleware may call +to_ary+ directly on the Body and return a new
1530
- # Body in its place. In other words, middleware can only process the
1531
- # Body directly if it responds to +to_ary+. If the Body responds to both
1532
- # +to_ary+ and +close+, its implementation of +to_ary+ must call
1533
- # +close+.
1511
+ # If the Body responds to +to_ary+, it must return an +Array+ whose contents are identical to that produced by calling +each+. Middleware may call +to_ary+ directly on the Body and return a new Body in its place. In other words, middleware can only process the Body directly if it responds to +to_ary+. If the Body responds to both +to_ary+ and +close+, its implementation of +to_ary+ must call +close+.
1534
1512
  #
1535
- # source://rack//lib/rack/lint.rb#926
1513
+ # source://rack//lib/rack/lint.rb#905
1536
1514
  def to_ary; end
1537
1515
 
1538
- # source://rack//lib/rack/lint.rb#906
1516
+ # source://rack//lib/rack/lint.rb#891
1539
1517
  def to_path; end
1540
1518
 
1541
- # source://rack//lib/rack/lint.rb#770
1519
+ # source://rack//lib/rack/lint.rb#780
1542
1520
  def verify_content_length(size); end
1543
1521
 
1544
- # source://rack//lib/rack/lint.rb#847
1522
+ # source://rack//lib/rack/lint.rb#835
1545
1523
  def verify_to_path; end
1524
+
1525
+ private
1526
+
1527
+ # @raise [LintError]
1528
+ #
1529
+ # source://rack//lib/rack/lint.rb#126
1530
+ def assert_required(key); end
1546
1531
  end
1547
1532
 
1548
- # source://rack//lib/rack/lint.rb#904
1533
+ # source://rack//lib/rack/lint.rb#889
1549
1534
  Rack::Lint::Wrapper::BODY_METHODS = T.let(T.unsafe(nil), Hash)
1550
1535
 
1551
- # source://rack//lib/rack/lint.rb#540
1536
+ # source://rack//lib/rack/lint.rb#580
1552
1537
  class Rack::Lint::Wrapper::ErrorWrapper
1553
1538
  # @return [ErrorWrapper] a new instance of ErrorWrapper
1554
1539
  #
1555
- # source://rack//lib/rack/lint.rb#541
1540
+ # source://rack//lib/rack/lint.rb#581
1556
1541
  def initialize(error); end
1557
1542
 
1558
1543
  # * +close+ must never be called on the error stream.
1559
1544
  #
1560
1545
  # @raise [LintError]
1561
1546
  #
1562
- # source://rack//lib/rack/lint.rb#563
1547
+ # source://rack//lib/rack/lint.rb#602
1563
1548
  def close(*args); end
1564
1549
 
1565
- # * +flush+ must be called without arguments and must be called
1566
- # in order to make the error appear for sure.
1550
+ # * +flush+ must be called without arguments and must be called in order to make the error appear for sure.
1567
1551
  #
1568
- # source://rack//lib/rack/lint.rb#558
1552
+ # source://rack//lib/rack/lint.rb#597
1569
1553
  def flush; end
1570
1554
 
1571
1555
  # * +puts+ must be called with a single argument that responds to +to_s+.
1572
1556
  #
1573
- # source://rack//lib/rack/lint.rb#546
1557
+ # source://rack//lib/rack/lint.rb#586
1574
1558
  def puts(str); end
1575
1559
 
1576
- # * +write+ must be called with a single argument that is a String.
1560
+ # * +write+ must be called with a single argument that is a +String+.
1577
1561
  #
1578
1562
  # @raise [LintError]
1579
1563
  #
1580
- # source://rack//lib/rack/lint.rb#551
1564
+ # source://rack//lib/rack/lint.rb#591
1581
1565
  def write(str); end
1582
1566
  end
1583
1567
 
1584
- # source://rack//lib/rack/lint.rb#445
1568
+ # source://rack//lib/rack/lint.rb#495
1585
1569
  class Rack::Lint::Wrapper::InputWrapper
1586
1570
  # @return [InputWrapper] a new instance of InputWrapper
1587
1571
  #
1588
- # source://rack//lib/rack/lint.rb#446
1572
+ # source://rack//lib/rack/lint.rb#496
1589
1573
  def initialize(input); end
1590
1574
 
1591
- # * +close+ can be called on the input stream to indicate that
1592
- # any remaining input is not needed.
1575
+ # * +close+ can be called on the input stream to indicate that any remaining input is not needed.
1593
1576
  #
1594
- # source://rack//lib/rack/lint.rb#523
1577
+ # source://rack//lib/rack/lint.rb#563
1595
1578
  def close(*args); end
1596
1579
 
1597
- # * +each+ must be called without arguments and only yield Strings.
1580
+ # * +each+ must be called without arguments and only yield +String+ values.
1598
1581
  #
1599
1582
  # @raise [LintError]
1600
1583
  #
1601
- # source://rack//lib/rack/lint.rb#511
1584
+ # source://rack//lib/rack/lint.rb#552
1602
1585
  def each(*args); end
1603
1586
 
1604
- # * +gets+ must be called without arguments and return a string,
1605
- # or +nil+ on EOF.
1587
+ # * +gets+ must be called without arguments and return a +String+, or +nil+ on EOF (end-of-file).
1606
1588
  #
1607
1589
  # @raise [LintError]
1608
1590
  #
1609
- # source://rack//lib/rack/lint.rb#452
1591
+ # source://rack//lib/rack/lint.rb#501
1610
1592
  def gets(*args); end
1611
1593
 
1612
- # * +read+ behaves like <tt>IO#read</tt>.
1613
- # Its signature is <tt>read([length, [buffer]])</tt>.
1614
- #
1615
- # If given, +length+ must be a non-negative Integer (>= 0) or +nil+,
1616
- # and +buffer+ must be a String and may not be nil.
1617
- #
1618
- # If +length+ is given and not nil, then this method reads at most
1619
- # +length+ bytes from the input stream.
1620
- #
1621
- # If +length+ is not given or nil, then this method reads
1622
- # all data until EOF.
1594
+ # * +read+ behaves like <tt>IO#read</tt>. Its signature is <tt>read([length, [buffer]])</tt>.
1595
+ # * If given, +length+ must be a non-negative Integer (>= 0) or +nil+, and +buffer+ must be a +String+ and may not be +nil+.
1596
+ # * If +length+ is given and not +nil+, then this method reads at most +length+ bytes from the input stream.
1597
+ # * If +length+ is not given or +nil+, then this method reads all data until EOF.
1598
+ # * When EOF is reached, this method returns +nil+ if +length+ is given and not +nil+, or +""+ if +length+ is not given or is +nil+.
1599
+ # * If +buffer+ is given, then the read data will be placed into +buffer+ instead of a newly created +String+.
1623
1600
  #
1624
- # When EOF is reached, this method returns nil if +length+ is given
1625
- # and not nil, or "" if +length+ is not given or is nil.
1626
- #
1627
- # If +buffer+ is given, then the read data will be placed
1628
- # into +buffer+ instead of a newly created String object.
1629
- #
1630
- # source://rack//lib/rack/lint.rb#478
1601
+ # source://rack//lib/rack/lint.rb#519
1631
1602
  def read(*args); end
1632
1603
  end
1633
1604
 
1634
- # source://rack//lib/rack/lint.rb#959
1605
+ # source://rack//lib/rack/lint.rb#936
1635
1606
  class Rack::Lint::Wrapper::StreamWrapper
1636
1607
  extend ::Forwardable
1637
1608
 
1638
1609
  # @return [StreamWrapper] a new instance of StreamWrapper
1639
1610
  #
1640
- # source://rack//lib/rack/lint.rb#974
1611
+ # source://rack//lib/rack/lint.rb#947
1641
1612
  def initialize(stream); end
1642
1613
 
1643
- # source://forwardable/1.3.3/forwardable.rb#231
1614
+ # source://rack//lib/rack/lint.rb#945
1644
1615
  def <<(*args, **_arg1, &block); end
1645
1616
 
1646
- # source://forwardable/1.3.3/forwardable.rb#231
1617
+ # source://rack//lib/rack/lint.rb#945
1647
1618
  def close(*args, **_arg1, &block); end
1648
1619
 
1649
- # source://forwardable/1.3.3/forwardable.rb#231
1620
+ # source://rack//lib/rack/lint.rb#945
1650
1621
  def close_read(*args, **_arg1, &block); end
1651
1622
 
1652
- # source://forwardable/1.3.3/forwardable.rb#231
1623
+ # source://rack//lib/rack/lint.rb#945
1653
1624
  def close_write(*args, **_arg1, &block); end
1654
1625
 
1655
- # source://forwardable/1.3.3/forwardable.rb#231
1626
+ # source://rack//lib/rack/lint.rb#945
1656
1627
  def closed?(*args, **_arg1, &block); end
1657
1628
 
1658
- # source://forwardable/1.3.3/forwardable.rb#231
1629
+ # source://rack//lib/rack/lint.rb#945
1659
1630
  def flush(*args, **_arg1, &block); end
1660
1631
 
1661
- # source://forwardable/1.3.3/forwardable.rb#231
1632
+ # source://rack//lib/rack/lint.rb#945
1662
1633
  def read(*args, **_arg1, &block); end
1663
1634
 
1664
- # source://forwardable/1.3.3/forwardable.rb#231
1635
+ # source://rack//lib/rack/lint.rb#945
1665
1636
  def write(*args, **_arg1, &block); end
1666
1637
  end
1667
1638
 
1668
- # The semantics of these IO methods must be a best effort match to
1669
- # those of a normal Ruby IO or Socket object, using standard arguments
1670
- # and raising standard exceptions. Servers are encouraged to simply
1671
- # pass on real IO objects, although it is recognized that this approach
1672
- # is not directly compatible with HTTP/2.
1639
+ # The semantics of these +IO+ methods must be a best effort match to those of a normal Ruby +IO+ or +Socket+ object, using standard arguments and raising standard exceptions. Servers may simply pass on real +IO+ objects to the Streaming Body. In some cases (e.g. when using <tt>transfer-encoding</tt> or HTTP/2+), the server may need to provide a wrapper that implements the required methods, in order to provide the correct semantics.
1673
1640
  #
1674
- # source://rack//lib/rack/lint.rb#967
1641
+ # source://rack//lib/rack/lint.rb#940
1675
1642
  Rack::Lint::Wrapper::StreamWrapper::REQUIRED_METHODS = T.let(T.unsafe(nil), Array)
1676
1643
 
1677
1644
  # Rack::Lock locks every request inside a mutex, so that every request
@@ -1693,19 +1660,6 @@ class Rack::Lock
1693
1660
  def unlock; end
1694
1661
  end
1695
1662
 
1696
- # Sets up rack.logger to write to rack.errors stream
1697
- #
1698
- # source://rack//lib/rack/logger.rb#10
1699
- class Rack::Logger
1700
- # @return [Logger] a new instance of Logger
1701
- #
1702
- # source://rack//lib/rack/logger.rb#11
1703
- def initialize(app, level = T.unsafe(nil)); end
1704
-
1705
- # source://rack//lib/rack/logger.rb#15
1706
- def call(env); end
1707
- end
1708
-
1709
1663
  # Rack::MediaType parse media type and parameters out of content_type string
1710
1664
  #
1711
1665
  # source://rack//lib/rack/media_type.rb#6
@@ -1717,7 +1671,12 @@ class Rack::MediaType
1717
1671
  # this method responds with the following Hash:
1718
1672
  # { 'charset' => 'utf-8' }
1719
1673
  #
1720
- # source://rack//lib/rack/media_type.rb#30
1674
+ # This will pass back parameters with empty strings in the hash if they
1675
+ # lack a value (e.g., "text/plain;charset=" will return { 'charset' => '' },
1676
+ # and "text/plain;charset" will return { 'charset' => '' }, similarly to
1677
+ # the query params parser (barring the latter case, which returns nil instead)).
1678
+ #
1679
+ # source://rack//lib/rack/media_type.rb#34
1721
1680
  def params(content_type); end
1722
1681
 
1723
1682
  # The media type (type/subtype) portion of the CONTENT_TYPE header
@@ -1732,7 +1691,7 @@ class Rack::MediaType
1732
1691
 
1733
1692
  private
1734
1693
 
1735
- # source://rack//lib/rack/media_type.rb#43
1694
+ # source://rack//lib/rack/media_type.rb#47
1736
1695
  def strip_doublequotes(str); end
1737
1696
  end
1738
1697
  end
@@ -1816,7 +1775,7 @@ module Rack::Mime
1816
1775
  #
1817
1776
  # @return [Boolean]
1818
1777
  #
1819
- # source://rack//lib/rack/mime.rb#30
1778
+ # source://rack//lib/rack/mime.rb#36
1820
1779
  def match?(value, matcher); end
1821
1780
 
1822
1781
  # Returns String with mime type if found, otherwise use +fallback+.
@@ -1832,7 +1791,7 @@ module Rack::Mime
1832
1791
  # This is a shortcut for:
1833
1792
  # Rack::Mime::MIME_TYPES.fetch('.foo', 'application/octet-stream')
1834
1793
  #
1835
- # source://rack//lib/rack/mime.rb#18
1794
+ # source://rack//lib/rack/mime.rb#21
1836
1795
  def mime_type(ext, fallback = T.unsafe(nil)); end
1837
1796
  end
1838
1797
  end
@@ -1963,63 +1922,114 @@ class Rack::MockRequest::FatalWarning < ::RuntimeError; end
1963
1922
  # Usually, you don't create the MockResponse on your own, but use
1964
1923
  # MockRequest.
1965
1924
  #
1966
- # source://rack//lib/rack/mock_response.rb#13
1925
+ # source://rack//lib/rack/mock_response.rb#12
1967
1926
  class Rack::MockResponse < ::Rack::Response
1968
1927
  # @return [MockResponse] a new instance of MockResponse
1969
1928
  #
1970
- # source://rack//lib/rack/mock_response.rb#24
1929
+ # source://rack//lib/rack/mock_response.rb#47
1971
1930
  def initialize(status, headers, body, errors = T.unsafe(nil)); end
1972
1931
 
1973
- # source://rack//lib/rack/mock_response.rb#39
1932
+ # source://rack//lib/rack/mock_response.rb#62
1974
1933
  def =~(other); end
1975
1934
 
1976
- # source://rack//lib/rack/mock_response.rb#47
1935
+ # source://rack//lib/rack/mock_response.rb#70
1977
1936
  def body; end
1978
1937
 
1979
- # source://rack//lib/rack/mock_response.rb#73
1938
+ # source://rack//lib/rack/mock_response.rb#96
1980
1939
  def cookie(name); end
1981
1940
 
1982
1941
  # Headers
1983
1942
  #
1984
- # source://rack//lib/rack/mock_response.rb#19
1943
+ # source://rack//lib/rack/mock_response.rb#42
1985
1944
  def cookies; end
1986
1945
 
1987
1946
  # @return [Boolean]
1988
1947
  #
1989
- # source://rack//lib/rack/mock_response.rb#69
1948
+ # source://rack//lib/rack/mock_response.rb#92
1990
1949
  def empty?; end
1991
1950
 
1992
1951
  # Errors
1993
1952
  #
1994
- # source://rack//lib/rack/mock_response.rb#22
1953
+ # source://rack//lib/rack/mock_response.rb#45
1995
1954
  def errors; end
1996
1955
 
1997
1956
  # Errors
1998
1957
  #
1999
- # source://rack//lib/rack/mock_response.rb#22
1958
+ # source://rack//lib/rack/mock_response.rb#45
2000
1959
  def errors=(_arg0); end
2001
1960
 
2002
- # source://rack//lib/rack/mock_response.rb#43
1961
+ # source://rack//lib/rack/mock_response.rb#66
2003
1962
  def match(other); end
2004
1963
 
2005
1964
  # Headers
2006
1965
  #
2007
- # source://rack//lib/rack/mock_response.rb#19
1966
+ # source://rack//lib/rack/mock_response.rb#42
2008
1967
  def original_headers; end
2009
1968
 
2010
1969
  private
2011
1970
 
2012
- # source://rack//lib/rack/mock_response.rb#100
1971
+ # source://rack//lib/rack/mock_response.rb#123
2013
1972
  def identify_cookie_attributes(cookie_filling); end
2014
1973
 
2015
- # source://rack//lib/rack/mock_response.rb#79
1974
+ # source://rack//lib/rack/mock_response.rb#102
2016
1975
  def parse_cookies_from_header; end
2017
1976
 
2018
1977
  class << self
1978
+ # source://rack//lib/rack/mock_response.rb#38
2019
1979
  def [](*_arg0); end
2020
1980
  end
2021
1981
  end
2022
1982
 
1983
+ # source://rack//lib/rack/mock_response.rb#13
1984
+ class Rack::MockResponse::Cookie
1985
+ # @return [Cookie] a new instance of Cookie
1986
+ #
1987
+ # source://rack//lib/rack/mock_response.rb#16
1988
+ def initialize(args); end
1989
+
1990
+ # Returns the value of attribute domain.
1991
+ #
1992
+ # source://rack//lib/rack/mock_response.rb#14
1993
+ def domain; end
1994
+
1995
+ # Returns the value of attribute expires.
1996
+ #
1997
+ # source://rack//lib/rack/mock_response.rb#14
1998
+ def expires; end
1999
+
2000
+ # source://rack//lib/rack/mock_response.rb#25
2001
+ def method_missing(method_name, *args, **_arg2, &block); end
2002
+
2003
+ # Returns the value of attribute name.
2004
+ #
2005
+ # source://rack//lib/rack/mock_response.rb#14
2006
+ def name; end
2007
+
2008
+ # Returns the value of attribute path.
2009
+ #
2010
+ # source://rack//lib/rack/mock_response.rb#14
2011
+ def path; end
2012
+
2013
+ # Returns the value of attribute secure.
2014
+ #
2015
+ # source://rack//lib/rack/mock_response.rb#14
2016
+ def secure; end
2017
+
2018
+ # Returns the value of attribute value.
2019
+ #
2020
+ # source://rack//lib/rack/mock_response.rb#14
2021
+ def value; end
2022
+
2023
+ private
2024
+
2025
+ # :nocov:
2026
+ #
2027
+ # @return [Boolean]
2028
+ #
2029
+ # source://rack//lib/rack/mock_response.rb#32
2030
+ def respond_to_missing?(method_name, include_all = T.unsafe(nil)); end
2031
+ end
2032
+
2023
2033
  # A multipart form data parser, adapted from IOWA.
2024
2034
  #
2025
2035
  # Usually, Rack::Request#POST takes care of calling this.
@@ -2062,6 +2072,11 @@ end
2062
2072
  # source://rack//lib/rack/multipart/parser.rb#31
2063
2073
  Rack::Multipart::Error = Rack::Multipart::BoundaryTooLongError
2064
2074
 
2075
+ # whitespace with optional folding
2076
+ #
2077
+ # source://rack//lib/rack/multipart/parser.rb#34
2078
+ Rack::Multipart::FWS = T.let(T.unsafe(nil), Regexp)
2079
+
2065
2080
  # source://rack//lib/rack/multipart/generator.rb#7
2066
2081
  class Rack::Multipart::Generator
2067
2082
  # @return [Generator] a new instance of Generator
@@ -2089,19 +2104,24 @@ class Rack::Multipart::Generator
2089
2104
  def multipart?; end
2090
2105
  end
2091
2106
 
2092
- # source://rack//lib/rack/multipart/parser.rb#34
2107
+ # anything but a non-folding CRLF
2108
+ #
2109
+ # source://rack//lib/rack/multipart/parser.rb#35
2110
+ Rack::Multipart::HEADER_VALUE = T.let(T.unsafe(nil), String)
2111
+
2112
+ # source://rack//lib/rack/multipart/parser.rb#36
2093
2113
  Rack::Multipart::MULTIPART = T.let(T.unsafe(nil), Regexp)
2094
2114
 
2095
2115
  # source://rack//lib/rack/multipart.rb#16
2096
2116
  Rack::Multipart::MULTIPART_BOUNDARY = T.let(T.unsafe(nil), String)
2097
2117
 
2098
- # source://rack//lib/rack/multipart/parser.rb#36
2118
+ # source://rack//lib/rack/multipart/parser.rb#38
2099
2119
  Rack::Multipart::MULTIPART_CONTENT_DISPOSITION = T.let(T.unsafe(nil), Regexp)
2100
2120
 
2101
- # source://rack//lib/rack/multipart/parser.rb#37
2121
+ # source://rack//lib/rack/multipart/parser.rb#39
2102
2122
  Rack::Multipart::MULTIPART_CONTENT_ID = T.let(T.unsafe(nil), Regexp)
2103
2123
 
2104
- # source://rack//lib/rack/multipart/parser.rb#35
2124
+ # source://rack//lib/rack/multipart/parser.rb#37
2105
2125
  Rack::Multipart::MULTIPART_CONTENT_TYPE = T.let(T.unsafe(nil), Regexp)
2106
2126
 
2107
2127
  # source://rack//lib/rack/multipart.rb#18
@@ -2145,22 +2165,35 @@ class Rack::Multipart::ParamList
2145
2165
  end
2146
2166
  end
2147
2167
 
2148
- # source://rack//lib/rack/multipart/parser.rb#39
2168
+ # Rack::Multipart::Parser handles parsing of multipart/form-data requests.
2169
+ #
2170
+ # File Parameter Contents
2171
+ #
2172
+ # When processing file uploads, the parser returns a hash containing
2173
+ # information about uploaded files. For +file+ parameters, the hash includes:
2174
+ #
2175
+ # * +:filename+ - The original filename, already URL decoded by the parser
2176
+ # * +:type+ - The content type of the uploaded file
2177
+ # * +:name+ - The parameter name from the form
2178
+ # * +:tempfile+ - A Tempfile object containing the uploaded data
2179
+ # * +:head+ - The raw header content for this part
2180
+ #
2181
+ # source://rack//lib/rack/multipart/parser.rb#53
2149
2182
  class Rack::Multipart::Parser
2150
2183
  # @return [Parser] a new instance of Parser
2151
2184
  #
2152
- # source://rack//lib/rack/multipart/parser.rb#200
2185
+ # source://rack//lib/rack/multipart/parser.rb#214
2153
2186
  def initialize(boundary, tempfile, bufsize, query_parser); end
2154
2187
 
2155
- # source://rack//lib/rack/multipart/parser.rb#217
2188
+ # source://rack//lib/rack/multipart/parser.rb#231
2156
2189
  def parse(io); end
2157
2190
 
2158
- # source://rack//lib/rack/multipart/parser.rb#240
2191
+ # source://rack//lib/rack/multipart/parser.rb#254
2159
2192
  def result; end
2160
2193
 
2161
2194
  # Returns the value of attribute state.
2162
2195
  #
2163
- # source://rack//lib/rack/multipart/parser.rb#198
2196
+ # source://rack//lib/rack/multipart/parser.rb#212
2164
2197
  def state; end
2165
2198
 
2166
2199
  private
@@ -2170,25 +2203,23 @@ class Rack::Multipart::Parser
2170
2203
  # end of the boundary. If we don't find the start or end of the
2171
2204
  # boundary, clear the buffer and return nil.
2172
2205
  #
2173
- # source://rack//lib/rack/multipart/parser.rb#434
2206
+ # source://rack//lib/rack/multipart/parser.rb#443
2174
2207
  def consume_boundary; end
2175
2208
 
2176
- # From WEBrick::HTTPUtils
2177
- #
2178
- # source://rack//lib/rack/multipart/parser.rb#252
2179
- def dequote(str); end
2180
-
2181
2209
  # Return the related Encoding object. However, because
2182
2210
  # enc is submitted by the user, it may be invalid, so
2183
2211
  # use a binary encoding in that case.
2184
2212
  #
2185
- # source://rack//lib/rack/multipart/parser.rb#489
2213
+ # source://rack//lib/rack/multipart/parser.rb#498
2186
2214
  def find_encoding(enc); end
2187
2215
 
2188
- # source://rack//lib/rack/multipart/parser.rb#294
2216
+ # source://rack//lib/rack/multipart/parser.rb#303
2189
2217
  def handle_consume_token; end
2190
2218
 
2191
- # source://rack//lib/rack/multipart/parser.rb#495
2219
+ # source://rack//lib/rack/multipart/parser.rb#513
2220
+ def handle_dummy_encoding(name, body); end
2221
+
2222
+ # source://rack//lib/rack/multipart/parser.rb#523
2192
2223
  def handle_empty_content!(content); end
2193
2224
 
2194
2225
  # This handles the initial parser state. We read until we find the starting
@@ -2199,190 +2230,258 @@ class Rack::Multipart::Parser
2199
2230
  # boundary. The client would have to deliberately craft a response
2200
2231
  # with the opening boundary beyond the buffer size for that to happen.
2201
2232
  #
2202
- # source://rack//lib/rack/multipart/parser.rb#271
2233
+ # source://rack//lib/rack/multipart/parser.rb#280
2203
2234
  def handle_fast_forward; end
2204
2235
 
2205
- # source://rack//lib/rack/multipart/parser.rb#411
2236
+ # source://rack//lib/rack/multipart/parser.rb#420
2206
2237
  def handle_mime_body; end
2207
2238
 
2208
- # source://rack//lib/rack/multipart/parser.rb#306
2239
+ # source://rack//lib/rack/multipart/parser.rb#315
2209
2240
  def handle_mime_head; end
2210
2241
 
2211
- # source://rack//lib/rack/multipart/parser.rb#443
2242
+ # source://rack//lib/rack/multipart/parser.rb#452
2212
2243
  def normalize_filename(filename); end
2213
2244
 
2214
- # source://rack//lib/rack/multipart/parser.rb#258
2245
+ # source://rack//lib/rack/multipart/parser.rb#267
2215
2246
  def read_data(io, outbuf); end
2216
2247
 
2217
- # source://rack//lib/rack/multipart/parser.rb#456
2248
+ # source://rack//lib/rack/multipart/parser.rb#465
2218
2249
  def tag_multipart_encoding(filename, content_type, name, body); end
2219
2250
 
2220
2251
  class << self
2221
- # source://rack//lib/rack/multipart/parser.rb#87
2252
+ # source://rack//lib/rack/multipart/parser.rb#101
2222
2253
  def parse(io, content_length, content_type, tmpfile, bufsize, qp); end
2223
2254
 
2224
- # source://rack//lib/rack/multipart/parser.rb#80
2255
+ # source://rack//lib/rack/multipart/parser.rb#94
2225
2256
  def parse_boundary(content_type); end
2226
2257
  end
2227
2258
  end
2228
2259
 
2229
- # source://rack//lib/rack/multipart/parser.rb#40
2260
+ # source://rack//lib/rack/multipart/parser.rb#54
2230
2261
  Rack::Multipart::Parser::BUFSIZE = T.let(T.unsafe(nil), Integer)
2231
2262
 
2232
- # source://rack//lib/rack/multipart/parser.rb#48
2263
+ # source://rack//lib/rack/multipart/parser.rb#62
2233
2264
  class Rack::Multipart::Parser::BoundedIO
2234
2265
  # @return [BoundedIO] a new instance of BoundedIO
2235
2266
  #
2236
- # source://rack//lib/rack/multipart/parser.rb#49
2267
+ # source://rack//lib/rack/multipart/parser.rb#63
2237
2268
  def initialize(io, content_length); end
2238
2269
 
2239
- # source://rack//lib/rack/multipart/parser.rb#55
2270
+ # source://rack//lib/rack/multipart/parser.rb#69
2240
2271
  def read(size, outbuf = T.unsafe(nil)); end
2241
2272
  end
2242
2273
 
2243
- # source://rack//lib/rack/multipart/parser.rb#453
2274
+ # source://rack//lib/rack/multipart/parser.rb#462
2244
2275
  Rack::Multipart::Parser::CHARSET = T.let(T.unsafe(nil), String)
2245
2276
 
2246
- # source://rack//lib/rack/multipart/parser.rb#305
2277
+ # source://rack//lib/rack/multipart/parser.rb#314
2247
2278
  Rack::Multipart::Parser::CONTENT_DISPOSITION_MAX_BYTES = T.let(T.unsafe(nil), Integer)
2248
2279
 
2249
- # source://rack//lib/rack/multipart/parser.rb#304
2280
+ # source://rack//lib/rack/multipart/parser.rb#313
2250
2281
  Rack::Multipart::Parser::CONTENT_DISPOSITION_MAX_PARAMS = T.let(T.unsafe(nil), Integer)
2251
2282
 
2252
- # source://rack//lib/rack/multipart/parser.rb#107
2283
+ # source://rack//lib/rack/multipart/parser.rb#121
2253
2284
  class Rack::Multipart::Parser::Collector
2254
2285
  include ::Enumerable
2255
2286
 
2256
2287
  # @return [Collector] a new instance of Collector
2257
2288
  #
2258
- # source://rack//lib/rack/multipart/parser.rb#143
2289
+ # source://rack//lib/rack/multipart/parser.rb#157
2259
2290
  def initialize(tempfile); end
2260
2291
 
2261
- # source://rack//lib/rack/multipart/parser.rb#149
2292
+ # source://rack//lib/rack/multipart/parser.rb#163
2262
2293
  def each; end
2263
2294
 
2264
- # source://rack//lib/rack/multipart/parser.rb#169
2295
+ # source://rack//lib/rack/multipart/parser.rb#183
2265
2296
  def on_mime_body(mime_index, content); end
2266
2297
 
2267
- # source://rack//lib/rack/multipart/parser.rb#173
2298
+ # source://rack//lib/rack/multipart/parser.rb#187
2268
2299
  def on_mime_finish(mime_index); end
2269
2300
 
2270
- # source://rack//lib/rack/multipart/parser.rb#153
2301
+ # source://rack//lib/rack/multipart/parser.rb#167
2271
2302
  def on_mime_head(mime_index, head, filename, content_type, name); end
2272
2303
 
2273
2304
  private
2274
2305
 
2275
- # source://rack//lib/rack/multipart/parser.rb#178
2306
+ # source://rack//lib/rack/multipart/parser.rb#192
2276
2307
  def check_part_limits; end
2277
2308
  end
2278
2309
 
2279
- # source://rack//lib/rack/multipart/parser.rb#131
2310
+ # source://rack//lib/rack/multipart/parser.rb#145
2280
2311
  class Rack::Multipart::Parser::Collector::BufferPart < ::Rack::Multipart::Parser::Collector::MimePart
2281
- # source://rack//lib/rack/multipart/parser.rb#133
2312
+ # source://rack//lib/rack/multipart/parser.rb#147
2282
2313
  def close; end
2283
2314
 
2284
2315
  # @return [Boolean]
2285
2316
  #
2286
- # source://rack//lib/rack/multipart/parser.rb#132
2317
+ # source://rack//lib/rack/multipart/parser.rb#146
2287
2318
  def file?; end
2288
2319
  end
2289
2320
 
2290
- # source://rack//lib/rack/multipart/parser.rb#108
2321
+ # source://rack//lib/rack/multipart/parser.rb#122
2291
2322
  class Rack::Multipart::Parser::Collector::MimePart < ::Struct
2292
2323
  # @yield [data]
2293
2324
  #
2294
- # source://rack//lib/rack/multipart/parser.rb#109
2325
+ # source://rack//lib/rack/multipart/parser.rb#123
2295
2326
  def get_data; end
2296
2327
  end
2297
2328
 
2298
- # source://rack//lib/rack/multipart/parser.rb#136
2329
+ # source://rack//lib/rack/multipart/parser.rb#150
2299
2330
  class Rack::Multipart::Parser::Collector::TempfilePart < ::Rack::Multipart::Parser::Collector::MimePart
2300
- # source://rack//lib/rack/multipart/parser.rb#138
2331
+ # source://rack//lib/rack/multipart/parser.rb#152
2301
2332
  def close; end
2302
2333
 
2303
2334
  # @return [Boolean]
2304
2335
  #
2305
- # source://rack//lib/rack/multipart/parser.rb#137
2336
+ # source://rack//lib/rack/multipart/parser.rb#151
2306
2337
  def file?; end
2307
2338
  end
2308
2339
 
2309
- # source://rack//lib/rack/multipart/parser.rb#78
2340
+ # source://rack//lib/rack/multipart/parser.rb#92
2310
2341
  Rack::Multipart::Parser::EMPTY = T.let(T.unsafe(nil), Rack::Multipart::Parser::MultipartInfo)
2311
2342
 
2312
- # source://rack//lib/rack/multipart/parser.rb#77
2343
+ # source://rack//lib/rack/multipart/parser.rb#91
2313
2344
  class Rack::Multipart::Parser::MultipartInfo < ::Struct
2314
2345
  # Returns the value of attribute params
2315
2346
  #
2316
2347
  # @return [Object] the current value of params
2348
+ #
2349
+ # source://rack//lib/rack/multipart/parser.rb#91
2317
2350
  def params; end
2318
2351
 
2319
2352
  # Sets the attribute params
2320
2353
  #
2321
2354
  # @param value [Object] the value to set the attribute params to.
2322
2355
  # @return [Object] the newly set value
2356
+ #
2357
+ # source://rack//lib/rack/multipart/parser.rb#91
2323
2358
  def params=(_); end
2324
2359
 
2325
2360
  # Returns the value of attribute tmp_files
2326
2361
  #
2327
2362
  # @return [Object] the current value of tmp_files
2363
+ #
2364
+ # source://rack//lib/rack/multipart/parser.rb#91
2328
2365
  def tmp_files; end
2329
2366
 
2330
2367
  # Sets the attribute tmp_files
2331
2368
  #
2332
2369
  # @param value [Object] the value to set the attribute tmp_files to.
2333
2370
  # @return [Object] the newly set value
2371
+ #
2372
+ # source://rack//lib/rack/multipart/parser.rb#91
2334
2373
  def tmp_files=(_); end
2335
2374
 
2336
2375
  class << self
2376
+ # source://rack//lib/rack/multipart/parser.rb#91
2337
2377
  def [](*_arg0); end
2378
+
2379
+ # source://rack//lib/rack/multipart/parser.rb#91
2338
2380
  def inspect; end
2381
+
2382
+ # source://rack//lib/rack/multipart/parser.rb#91
2339
2383
  def keyword_init?; end
2384
+
2385
+ # source://rack//lib/rack/multipart/parser.rb#91
2340
2386
  def members; end
2387
+
2388
+ # source://rack//lib/rack/multipart/parser.rb#91
2341
2389
  def new(*_arg0); end
2342
2390
  end
2343
2391
  end
2344
2392
 
2345
- # source://rack//lib/rack/multipart/parser.rb#42
2393
+ # source://rack//lib/rack/multipart/parser.rb#504
2394
+ Rack::Multipart::Parser::REENCODE_DUMMY_ENCODINGS = T.let(T.unsafe(nil), Hash)
2395
+
2396
+ # source://rack//lib/rack/multipart/parser.rb#56
2346
2397
  Rack::Multipart::Parser::TEMPFILE_FACTORY = T.let(T.unsafe(nil), Proc)
2347
2398
 
2348
- # source://rack//lib/rack/multipart/parser.rb#41
2399
+ # source://rack//lib/rack/multipart/parser.rb#55
2349
2400
  Rack::Multipart::Parser::TEXT_PLAIN = T.let(T.unsafe(nil), String)
2350
2401
 
2351
- # source://rack//lib/rack/multipart/uploaded_file.rb#8
2402
+ # Despite the misleading name, UploadedFile is designed for use for
2403
+ # preparing multipart file upload bodies, generally for use in tests.
2404
+ # It is not designed for and should not be used for handling uploaded
2405
+ # files (there is no need for that, since Rack's multipart parser
2406
+ # already creates Tempfiles for that). Using this with non-trusted
2407
+ # filenames can create a security vulnerability.
2408
+ #
2409
+ # You should only use this class if you plan on passing the instances
2410
+ # to Rack::MockRequest for use in creating multipart request bodies.
2411
+ #
2412
+ # UploadedFile delegates most methods to the tempfile it contains.
2413
+ #
2414
+ # source://rack//lib/rack/multipart/uploaded_file.rb#19
2352
2415
  class Rack::Multipart::UploadedFile
2416
+ # Create a new UploadedFile. For backwards compatibility, this accepts
2417
+ # both positional and keyword versions of the same arguments:
2418
+ #
2419
+ # filepath/path :: The path to the file
2420
+ # ct/content_type :: The content_type of the file
2421
+ # bin/binary :: Whether to set binmode on the file before copying data into it.
2422
+ #
2423
+ # If both positional and keyword arguments are present, the keyword arguments
2424
+ # take precedence.
2425
+ #
2426
+ # The following keyword-only arguments are also accepted:
2427
+ #
2428
+ # filename :: Override the filename to use for the file. This is so the
2429
+ # filename for the upload does not need to match the basename of
2430
+ # the file path. This should not contain slashes, unless you are
2431
+ # trying to test how an application handles invalid filenames in
2432
+ # multipart upload bodies.
2433
+ # io :: Use the given IO-like instance as the tempfile, instead of creating
2434
+ # a Tempfile instance. This is useful for building multipart file
2435
+ # upload bodies without a file being present on the filesystem. If you are
2436
+ # providing this, you should also provide the filename argument.
2437
+ #
2353
2438
  # @return [UploadedFile] a new instance of UploadedFile
2354
2439
  #
2355
- # source://rack//lib/rack/multipart/uploaded_file.rb#16
2440
+ # source://rack//lib/rack/multipart/uploaded_file.rb#49
2356
2441
  def initialize(filepath = T.unsafe(nil), ct = T.unsafe(nil), bin = T.unsafe(nil), path: T.unsafe(nil), content_type: T.unsafe(nil), binary: T.unsafe(nil), filename: T.unsafe(nil), io: T.unsafe(nil)); end
2357
2442
 
2358
- # The content type of the "uploaded" file
2443
+ # The content type of the instance.
2359
2444
  #
2360
- # source://rack//lib/rack/multipart/uploaded_file.rb#14
2445
+ # source://rack//lib/rack/multipart/uploaded_file.rb#26
2361
2446
  def content_type; end
2362
2447
 
2363
- # The content type of the "uploaded" file
2448
+ # The content type of the instance.
2364
2449
  #
2365
- # source://rack//lib/rack/multipart/uploaded_file.rb#14
2450
+ # source://rack//lib/rack/multipart/uploaded_file.rb#26
2366
2451
  def content_type=(_arg0); end
2367
2452
 
2368
- # source://rack//lib/rack/multipart/uploaded_file.rb#31
2453
+ # The path of the tempfile for the instance, if the tempfile has a path.
2454
+ # nil if the tempfile does not have a path.
2455
+ #
2456
+ # source://rack//lib/rack/multipart/uploaded_file.rb#69
2369
2457
  def local_path; end
2370
2458
 
2371
- # source://rack//lib/rack/multipart/uploaded_file.rb#40
2459
+ # Delegate method missing calls to the tempfile.
2460
+ #
2461
+ # source://rack//lib/rack/multipart/uploaded_file.rb#77
2372
2462
  def method_missing(method_name, *args, &block); end
2373
2463
 
2374
- # The filename, *not* including the path, of the "uploaded" file
2464
+ # The provided name of the file. This generally is the basename of
2465
+ # path provided during initialization, but it can contain slashes if they
2466
+ # were present in the filename argument when the instance was created.
2375
2467
  #
2376
- # source://rack//lib/rack/multipart/uploaded_file.rb#11
2468
+ # source://rack//lib/rack/multipart/uploaded_file.rb#23
2377
2469
  def original_filename; end
2378
2470
 
2379
- # source://rack//lib/rack/multipart/uploaded_file.rb#31
2471
+ # The path of the tempfile for the instance, if the tempfile has a path.
2472
+ # nil if the tempfile does not have a path.
2473
+ #
2474
+ # source://rack//lib/rack/multipart/uploaded_file.rb#66
2380
2475
  def path; end
2381
2476
 
2477
+ private
2478
+
2479
+ # Return true if the tempfile responds to the method.
2480
+ #
2382
2481
  # @return [Boolean]
2383
2482
  #
2384
- # source://rack//lib/rack/multipart/uploaded_file.rb#36
2385
- def respond_to?(*args); end
2483
+ # source://rack//lib/rack/multipart/uploaded_file.rb#72
2484
+ def respond_to_missing?(*args); end
2386
2485
  end
2387
2486
 
2388
2487
  # source://rack//lib/rack/null_logger.rb#6
@@ -2521,13 +2620,13 @@ Rack::QUERY_STRING = T.let(T.unsafe(nil), String)
2521
2620
  class Rack::QueryParser
2522
2621
  # @return [QueryParser] a new instance of QueryParser
2523
2622
  #
2524
- # source://rack//lib/rack/query_parser.rb#36
2525
- def initialize(params_class, param_depth_limit); end
2623
+ # source://rack//lib/rack/query_parser.rb#60
2624
+ def initialize(params_class, param_depth_limit, bytesize_limit: T.unsafe(nil), params_limit: T.unsafe(nil)); end
2526
2625
 
2527
- # source://rack//lib/rack/query_parser.rb#166
2626
+ # source://rack//lib/rack/query_parser.rb#194
2528
2627
  def make_params; end
2529
2628
 
2530
- # source://rack//lib/rack/query_parser.rb#170
2629
+ # source://rack//lib/rack/query_parser.rb#198
2531
2630
  def new_depth_limit(param_depth_limit); end
2532
2631
 
2533
2632
  # normalize_params recursively expands parameters into structural types. If
@@ -2536,12 +2635,12 @@ class Rack::QueryParser
2536
2635
  # and should no longer be used, it is kept for backwards compatibility with
2537
2636
  # earlier versions of rack.
2538
2637
  #
2539
- # source://rack//lib/rack/query_parser.rb#94
2638
+ # source://rack//lib/rack/query_parser.rb#122
2540
2639
  def normalize_params(params, name, v, _depth = T.unsafe(nil)); end
2541
2640
 
2542
2641
  # Returns the value of attribute param_depth_limit.
2543
2642
  #
2544
- # source://rack//lib/rack/query_parser.rb#34
2643
+ # source://rack//lib/rack/query_parser.rb#40
2545
2644
  def param_depth_limit; end
2546
2645
 
2547
2646
  # parse_nested_query expands a query string into structural types. Supported
@@ -2550,7 +2649,7 @@ class Rack::QueryParser
2550
2649
  # ParameterTypeError is raised. Users are encouraged to return a 400 in this
2551
2650
  # case.
2552
2651
  #
2553
- # source://rack//lib/rack/query_parser.rb#73
2652
+ # source://rack//lib/rack/query_parser.rb#107
2554
2653
  def parse_nested_query(qs, separator = T.unsafe(nil)); end
2555
2654
 
2556
2655
  # Stolen from Mongrel, with some small modifications:
@@ -2558,35 +2657,48 @@ class Rack::QueryParser
2558
2657
  # to parse cookies by changing the characters used in the second parameter
2559
2658
  # (which defaults to '&').
2560
2659
  #
2561
- # source://rack//lib/rack/query_parser.rb#45
2660
+ # source://rack//lib/rack/query_parser.rb#71
2562
2661
  def parse_query(qs, separator = T.unsafe(nil), &unescaper); end
2563
2662
 
2663
+ # Parses a query string by breaking it up at the '&', returning all key-value
2664
+ # pairs as an array of [key, value] arrays. Unlike parse_query, this preserves
2665
+ # all duplicate keys rather than collapsing them.
2666
+ #
2667
+ # source://rack//lib/rack/query_parser.rb#92
2668
+ def parse_query_pairs(qs, separator = T.unsafe(nil)); end
2669
+
2564
2670
  private
2565
2671
 
2566
2672
  # @raise [ParamsTooDeepError]
2567
2673
  #
2568
- # source://rack//lib/rack/query_parser.rb#98
2674
+ # source://rack//lib/rack/query_parser.rb#126
2569
2675
  def _normalize_params(params, name, v, depth); end
2570
2676
 
2677
+ # source://rack//lib/rack/query_parser.rb#220
2678
+ def each_query_pair(qs, separator, unescaper = T.unsafe(nil)); end
2679
+
2571
2680
  # @return [Boolean]
2572
2681
  #
2573
- # source://rack//lib/rack/query_parser.rb#180
2682
+ # source://rack//lib/rack/query_parser.rb#208
2574
2683
  def params_hash_has_key?(hash, key); end
2575
2684
 
2576
2685
  # @return [Boolean]
2577
2686
  #
2578
- # source://rack//lib/rack/query_parser.rb#176
2687
+ # source://rack//lib/rack/query_parser.rb#204
2579
2688
  def params_hash_type?(obj); end
2580
2689
 
2581
- # source://rack//lib/rack/query_parser.rb#192
2690
+ # source://rack//lib/rack/query_parser.rb#251
2582
2691
  def unescape(string, encoding = T.unsafe(nil)); end
2583
2692
 
2584
2693
  class << self
2585
- # source://rack//lib/rack/query_parser.rb#30
2586
- def make_default(param_depth_limit); end
2694
+ # source://rack//lib/rack/query_parser.rb#36
2695
+ def make_default(param_depth_limit, **options); end
2587
2696
  end
2588
2697
  end
2589
2698
 
2699
+ # source://rack//lib/rack/query_parser.rb#54
2700
+ Rack::QueryParser::BYTESIZE_LIMIT = T.let(T.unsafe(nil), Integer)
2701
+
2590
2702
  # source://rack//lib/rack/query_parser.rb#9
2591
2703
  Rack::QueryParser::COMMON_SEP = T.let(T.unsafe(nil), Hash)
2592
2704
 
@@ -2602,6 +2714,9 @@ class Rack::QueryParser::InvalidParameterError < ::ArgumentError
2602
2714
  include ::Rack::BadRequest
2603
2715
  end
2604
2716
 
2717
+ # source://rack//lib/rack/query_parser.rb#57
2718
+ Rack::QueryParser::PARAMS_LIMIT = T.let(T.unsafe(nil), Integer)
2719
+
2605
2720
  # ParameterTypeError is the error that is raised when incoming structural
2606
2721
  # parameters (parsed by parse_nested_query) contain conflicting types.
2607
2722
  #
@@ -2610,16 +2725,25 @@ class Rack::QueryParser::ParameterTypeError < ::TypeError
2610
2725
  include ::Rack::BadRequest
2611
2726
  end
2612
2727
 
2613
- # source://rack//lib/rack/query_parser.rb#196
2728
+ # source://rack//lib/rack/query_parser.rb#255
2614
2729
  class Rack::QueryParser::Params < ::Hash
2730
+ # source://rack//lib/rack/query_parser.rb#256
2615
2731
  def to_params_hash; end
2616
2732
  end
2617
2733
 
2618
- # ParamsTooDeepError is the error that is raised when params are recursively
2619
- # nested over the specified limit.
2734
+ # ParamsTooDeepError is the old name for the error that is raised when params
2735
+ # are recursively nested over the specified limit. Make it the same as
2736
+ # as QueryLimitError, so that code that rescues ParamsTooDeepError error
2737
+ # to handle bad query strings also now handles other limits.
2738
+ #
2739
+ # source://rack//lib/rack/query_parser.rb#34
2740
+ Rack::QueryParser::ParamsTooDeepError = Rack::QueryParser::QueryLimitError
2741
+
2742
+ # QueryLimitError is for errors raised when the query provided exceeds one
2743
+ # of the query parser limits.
2620
2744
  #
2621
2745
  # source://rack//lib/rack/query_parser.rb#26
2622
- class Rack::QueryParser::ParamsTooDeepError < ::RangeError
2746
+ class Rack::QueryParser::QueryLimitError < ::RangeError
2623
2747
  include ::Rack::BadRequest
2624
2748
  end
2625
2749
 
@@ -2641,7 +2765,7 @@ Rack::RACK_IS_HIJACK = T.let(T.unsafe(nil), String)
2641
2765
  # source://rack//lib/rack/constants.rb#45
2642
2766
  Rack::RACK_LOGGER = T.let(T.unsafe(nil), String)
2643
2767
 
2644
- # source://rack//lib/rack/constants.rb#66
2768
+ # source://rack//lib/rack/constants.rb#67
2645
2769
  Rack::RACK_METHODOVERRIDE_ORIGINAL_METHOD = T.let(T.unsafe(nil), String)
2646
2770
 
2647
2771
  # source://rack//lib/rack/constants.rb#54
@@ -2650,34 +2774,37 @@ Rack::RACK_MULTIPART_BUFFER_SIZE = T.let(T.unsafe(nil), String)
2650
2774
  # source://rack//lib/rack/constants.rb#55
2651
2775
  Rack::RACK_MULTIPART_TEMPFILE_FACTORY = T.let(T.unsafe(nil), String)
2652
2776
 
2777
+ # source://rack//lib/rack/constants.rb#57
2778
+ Rack::RACK_PROTOCOL = T.let(T.unsafe(nil), String)
2779
+
2653
2780
  # source://rack//lib/rack/constants.rb#53
2654
2781
  Rack::RACK_RECURSIVE_INCLUDE = T.let(T.unsafe(nil), String)
2655
2782
 
2656
- # source://rack//lib/rack/constants.rb#62
2783
+ # source://rack//lib/rack/constants.rb#63
2657
2784
  Rack::RACK_REQUEST_COOKIE_HASH = T.let(T.unsafe(nil), String)
2658
2785
 
2659
- # source://rack//lib/rack/constants.rb#63
2786
+ # source://rack//lib/rack/constants.rb#64
2660
2787
  Rack::RACK_REQUEST_COOKIE_STRING = T.let(T.unsafe(nil), String)
2661
2788
 
2662
- # source://rack//lib/rack/constants.rb#61
2789
+ # source://rack//lib/rack/constants.rb#62
2663
2790
  Rack::RACK_REQUEST_FORM_ERROR = T.let(T.unsafe(nil), String)
2664
2791
 
2665
- # source://rack//lib/rack/constants.rb#58
2792
+ # source://rack//lib/rack/constants.rb#59
2666
2793
  Rack::RACK_REQUEST_FORM_HASH = T.let(T.unsafe(nil), String)
2667
2794
 
2668
- # source://rack//lib/rack/constants.rb#57
2795
+ # source://rack//lib/rack/constants.rb#58
2669
2796
  Rack::RACK_REQUEST_FORM_INPUT = T.let(T.unsafe(nil), String)
2670
2797
 
2671
- # source://rack//lib/rack/constants.rb#59
2798
+ # source://rack//lib/rack/constants.rb#60
2672
2799
  Rack::RACK_REQUEST_FORM_PAIRS = T.let(T.unsafe(nil), String)
2673
2800
 
2674
- # source://rack//lib/rack/constants.rb#60
2801
+ # source://rack//lib/rack/constants.rb#61
2675
2802
  Rack::RACK_REQUEST_FORM_VARS = T.let(T.unsafe(nil), String)
2676
2803
 
2677
- # source://rack//lib/rack/constants.rb#64
2804
+ # source://rack//lib/rack/constants.rb#65
2678
2805
  Rack::RACK_REQUEST_QUERY_HASH = T.let(T.unsafe(nil), String)
2679
2806
 
2680
- # source://rack//lib/rack/constants.rb#65
2807
+ # source://rack//lib/rack/constants.rb#66
2681
2808
  Rack::RACK_REQUEST_QUERY_STRING = T.let(T.unsafe(nil), String)
2682
2809
 
2683
2810
  # source://rack//lib/rack/constants.rb#56
@@ -2703,7 +2830,7 @@ Rack::RACK_URL_SCHEME = T.let(T.unsafe(nil), String)
2703
2830
  # source://rack//lib/rack/constants.rb#41
2704
2831
  Rack::RACK_VERSION = T.let(T.unsafe(nil), String)
2705
2832
 
2706
- # source://rack//lib/rack/version.rb#15
2833
+ # source://rack//lib/rack/version.rb#11
2707
2834
  Rack::RELEASE = T.let(T.unsafe(nil), String)
2708
2835
 
2709
2836
  # source://rack//lib/rack/constants.rb#9
@@ -2801,13 +2928,16 @@ class Rack::Request
2801
2928
  # source://rack//lib/rack/request.rb#62
2802
2929
  def initialize(env); end
2803
2930
 
2804
- # source://rack//lib/rack/request.rb#76
2931
+ # source://rack//lib/rack/request.rb#81
2805
2932
  def delete_param(k); end
2806
2933
 
2807
- # source://rack//lib/rack/request.rb#67
2934
+ # source://rack//lib/rack/request.rb#68
2935
+ def ip; end
2936
+
2937
+ # source://rack//lib/rack/request.rb#72
2808
2938
  def params; end
2809
2939
 
2810
- # source://rack//lib/rack/request.rb#71
2940
+ # source://rack//lib/rack/request.rb#76
2811
2941
  def update_param(k, v); end
2812
2942
 
2813
2943
  class << self
@@ -2880,9 +3010,9 @@ end
2880
3010
  # source://rack//lib/rack/request.rb#60
2881
3011
  Rack::Request::ALLOWED_SCHEMES = T.let(T.unsafe(nil), Array)
2882
3012
 
2883
- # source://rack//lib/rack/request.rb#82
3013
+ # source://rack//lib/rack/request.rb#87
2884
3014
  module Rack::Request::Env
2885
- # source://rack//lib/rack/request.rb#86
3015
+ # source://rack//lib/rack/request.rb#91
2886
3016
  def initialize(env); end
2887
3017
 
2888
3018
  # Add a header that may have multiple values.
@@ -2895,33 +3025,33 @@ module Rack::Request::Env
2895
3025
  #
2896
3026
  # http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
2897
3027
  #
2898
- # source://rack//lib/rack/request.rb#129
3028
+ # source://rack//lib/rack/request.rb#134
2899
3029
  def add_header(key, v); end
2900
3030
 
2901
3031
  # Delete a request specific value for `name`.
2902
3032
  #
2903
- # source://rack//lib/rack/request.rb#140
3033
+ # source://rack//lib/rack/request.rb#145
2904
3034
  def delete_header(name); end
2905
3035
 
2906
3036
  # Loops through each key / value pair in the request specific data.
2907
3037
  #
2908
- # source://rack//lib/rack/request.rb#111
3038
+ # source://rack//lib/rack/request.rb#116
2909
3039
  def each_header(&block); end
2910
3040
 
2911
3041
  # The environment of the request.
2912
3042
  #
2913
- # source://rack//lib/rack/request.rb#84
3043
+ # source://rack//lib/rack/request.rb#89
2914
3044
  def env; end
2915
3045
 
2916
3046
  # If a block is given, it yields to the block if the value hasn't been set
2917
3047
  # on the request.
2918
3048
  #
2919
- # source://rack//lib/rack/request.rb#106
3049
+ # source://rack//lib/rack/request.rb#111
2920
3050
  def fetch_header(name, &block); end
2921
3051
 
2922
3052
  # Get a request specific value for `name`.
2923
3053
  #
2924
- # source://rack//lib/rack/request.rb#100
3054
+ # source://rack//lib/rack/request.rb#105
2925
3055
  def get_header(name); end
2926
3056
 
2927
3057
  # Predicate method to test to see if `name` has been set as request
@@ -2929,25 +3059,25 @@ module Rack::Request::Env
2929
3059
  #
2930
3060
  # @return [Boolean]
2931
3061
  #
2932
- # source://rack//lib/rack/request.rb#95
3062
+ # source://rack//lib/rack/request.rb#100
2933
3063
  def has_header?(name); end
2934
3064
 
2935
3065
  # Set a request specific value for `name` to `v`
2936
3066
  #
2937
- # source://rack//lib/rack/request.rb#116
3067
+ # source://rack//lib/rack/request.rb#121
2938
3068
  def set_header(name, v); end
2939
3069
 
2940
3070
  private
2941
3071
 
2942
- # source://rack//lib/rack/request.rb#144
3072
+ # source://rack//lib/rack/request.rb#149
2943
3073
  def initialize_copy(other); end
2944
3074
  end
2945
3075
 
2946
- # source://rack//lib/rack/request.rb#149
3076
+ # source://rack//lib/rack/request.rb#154
2947
3077
  module Rack::Request::Helpers
2948
3078
  # Returns the data received in the query string.
2949
3079
  #
2950
- # source://rack//lib/rack/request.rb#484
3080
+ # source://rack//lib/rack/request.rb#491
2951
3081
  def GET; end
2952
3082
 
2953
3083
  # Returns the data received in the request body.
@@ -2955,13 +3085,13 @@ module Rack::Request::Helpers
2955
3085
  # This method support both application/x-www-form-urlencoded and
2956
3086
  # multipart/form-data.
2957
3087
  #
2958
- # source://rack//lib/rack/request.rb#503
3088
+ # source://rack//lib/rack/request.rb#539
2959
3089
  def POST; end
2960
3090
 
2961
- # source://rack//lib/rack/request.rb#607
3091
+ # source://rack//lib/rack/request.rb#608
2962
3092
  def accept_encoding; end
2963
3093
 
2964
- # source://rack//lib/rack/request.rb#611
3094
+ # source://rack//lib/rack/request.rb#612
2965
3095
  def accept_language; end
2966
3096
 
2967
3097
  # The authority of the incoming request as defined by RFC3976.
@@ -2970,13 +3100,13 @@ module Rack::Request::Helpers
2970
3100
  # In HTTP/1, this is the `host` header.
2971
3101
  # In HTTP/2, this is the `:authority` pseudo-header.
2972
3102
  #
2973
- # source://rack//lib/rack/request.rb#266
3103
+ # source://rack//lib/rack/request.rb#271
2974
3104
  def authority; end
2975
3105
 
2976
- # source://rack//lib/rack/request.rb#590
3106
+ # source://rack//lib/rack/request.rb#591
2977
3107
  def base_url; end
2978
3108
 
2979
- # source://rack//lib/rack/request.rb#190
3109
+ # source://rack//lib/rack/request.rb#195
2980
3110
  def body; end
2981
3111
 
2982
3112
  # The character set of the request body if a "charset" media type
@@ -2984,23 +3114,23 @@ module Rack::Request::Helpers
2984
3114
  # that, per RFC2616, text/* media types that specify no explicit
2985
3115
  # charset are to be considered ISO-8859-1.
2986
3116
  #
2987
- # source://rack//lib/rack/request.rb#458
3117
+ # source://rack//lib/rack/request.rb#465
2988
3118
  def content_charset; end
2989
3119
 
2990
- # source://rack//lib/rack/request.rb#199
3120
+ # source://rack//lib/rack/request.rb#204
2991
3121
  def content_length; end
2992
3122
 
2993
- # source://rack//lib/rack/request.rb#308
3123
+ # source://rack//lib/rack/request.rb#313
2994
3124
  def content_type; end
2995
3125
 
2996
- # source://rack//lib/rack/request.rb#293
3126
+ # source://rack//lib/rack/request.rb#298
2997
3127
  def cookies; end
2998
3128
 
2999
3129
  # Checks the HTTP request method (or verb) to see if it was of type DELETE
3000
3130
  #
3001
3131
  # @return [Boolean]
3002
3132
  #
3003
- # source://rack//lib/rack/request.rb#220
3133
+ # source://rack//lib/rack/request.rb#225
3004
3134
  def delete?; end
3005
3135
 
3006
3136
  # Destructively delete a parameter, whether it's in GET or POST. Returns the value of the deleted parameter.
@@ -3009,7 +3139,7 @@ module Rack::Request::Helpers
3009
3139
  #
3010
3140
  # <tt>env['rack.input']</tt> is not touched.
3011
3141
  #
3012
- # source://rack//lib/rack/request.rb#585
3142
+ # source://rack//lib/rack/request.rb#586
3013
3143
  def delete_param(k); end
3014
3144
 
3015
3145
  # Determine whether the request body contains form-data by checking
@@ -3023,46 +3153,54 @@ module Rack::Request::Helpers
3023
3153
  #
3024
3154
  # @return [Boolean]
3025
3155
  #
3026
- # source://rack//lib/rack/request.rb#470
3156
+ # source://rack//lib/rack/request.rb#477
3027
3157
  def form_data?; end
3028
3158
 
3029
- # source://rack//lib/rack/request.rb#393
3159
+ # Returns the form data pairs received in the request body.
3160
+ #
3161
+ # This method support both application/x-www-form-urlencoded and
3162
+ # multipart/form-data.
3163
+ #
3164
+ # source://rack//lib/rack/request.rb#499
3165
+ def form_pairs; end
3166
+
3167
+ # source://rack//lib/rack/request.rb#398
3030
3168
  def forwarded_authority; end
3031
3169
 
3032
- # source://rack//lib/rack/request.rb#353
3170
+ # source://rack//lib/rack/request.rb#358
3033
3171
  def forwarded_for; end
3034
3172
 
3035
- # source://rack//lib/rack/request.rb#374
3173
+ # source://rack//lib/rack/request.rb#379
3036
3174
  def forwarded_port; end
3037
3175
 
3038
- # source://rack//lib/rack/request.rb#603
3176
+ # source://rack//lib/rack/request.rb#604
3039
3177
  def fullpath; end
3040
3178
 
3041
3179
  # Checks the HTTP request method (or verb) to see if it was of type GET
3042
3180
  #
3043
3181
  # @return [Boolean]
3044
3182
  #
3045
- # source://rack//lib/rack/request.rb#223
3183
+ # source://rack//lib/rack/request.rb#228
3046
3184
  def get?; end
3047
3185
 
3048
3186
  # Checks the HTTP request method (or verb) to see if it was of type HEAD
3049
3187
  #
3050
3188
  # @return [Boolean]
3051
3189
  #
3052
- # source://rack//lib/rack/request.rb#226
3190
+ # source://rack//lib/rack/request.rb#231
3053
3191
  def head?; end
3054
3192
 
3055
3193
  # Returns a formatted host, suitable for being used in a URI.
3056
3194
  #
3057
- # source://rack//lib/rack/request.rb#333
3195
+ # source://rack//lib/rack/request.rb#338
3058
3196
  def host; end
3059
3197
 
3060
3198
  # The `HTTP_HOST` header.
3061
3199
  #
3062
- # source://rack//lib/rack/request.rb#318
3200
+ # source://rack//lib/rack/request.rb#323
3063
3201
  def host_authority; end
3064
3202
 
3065
- # source://rack//lib/rack/request.rb#322
3203
+ # source://rack//lib/rack/request.rb#327
3066
3204
  def host_with_port(authority = T.unsafe(nil)); end
3067
3205
 
3068
3206
  # Returns an address suitable for being to resolve to an address.
@@ -3070,20 +3208,20 @@ module Rack::Request::Helpers
3070
3208
  # as +host+. In the case of IPv6 or future address formats, the square
3071
3209
  # brackets are removed.
3072
3210
  #
3073
- # source://rack//lib/rack/request.rb#341
3211
+ # source://rack//lib/rack/request.rb#346
3074
3212
  def hostname; end
3075
3213
 
3076
- # source://rack//lib/rack/request.rb#414
3214
+ # source://rack//lib/rack/request.rb#419
3077
3215
  def ip; end
3078
3216
 
3079
3217
  # Checks the HTTP request method (or verb) to see if it was of type LINK
3080
3218
  #
3081
3219
  # @return [Boolean]
3082
3220
  #
3083
- # source://rack//lib/rack/request.rb#232
3221
+ # source://rack//lib/rack/request.rb#237
3084
3222
  def link?; end
3085
3223
 
3086
- # source://rack//lib/rack/request.rb#200
3224
+ # source://rack//lib/rack/request.rb#205
3087
3225
  def logger; end
3088
3226
 
3089
3227
  # The media type (type/subtype) portion of the CONTENT_TYPE header
@@ -3093,7 +3231,7 @@ module Rack::Request::Helpers
3093
3231
  # For more information on the use of media types in HTTP, see:
3094
3232
  # http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7
3095
3233
  #
3096
- # source://rack//lib/rack/request.rb#441
3234
+ # source://rack//lib/rack/request.rb#448
3097
3235
  def media_type; end
3098
3236
 
3099
3237
  # The media type parameters provided in CONTENT_TYPE as a Hash, or
@@ -3102,21 +3240,21 @@ module Rack::Request::Helpers
3102
3240
  # this method responds with the following Hash:
3103
3241
  # { 'charset' => 'utf-8' }
3104
3242
  #
3105
- # source://rack//lib/rack/request.rb#450
3243
+ # source://rack//lib/rack/request.rb#457
3106
3244
  def media_type_params; end
3107
3245
 
3108
3246
  # Checks the HTTP request method (or verb) to see if it was of type OPTIONS
3109
3247
  #
3110
3248
  # @return [Boolean]
3111
3249
  #
3112
- # source://rack//lib/rack/request.rb#229
3250
+ # source://rack//lib/rack/request.rb#234
3113
3251
  def options?; end
3114
3252
 
3115
3253
  # The union of GET and POST data.
3116
3254
  #
3117
3255
  # Note that modifications will not be persisted in the env. Use update_param or delete_param if you want to destructively modify params.
3118
3256
  #
3119
- # source://rack//lib/rack/request.rb#556
3257
+ # source://rack//lib/rack/request.rb#553
3120
3258
  def params; end
3121
3259
 
3122
3260
  # Determine whether the request body contains data by checking
@@ -3124,107 +3262,113 @@ module Rack::Request::Helpers
3124
3262
  #
3125
3263
  # @return [Boolean]
3126
3264
  #
3127
- # source://rack//lib/rack/request.rb#479
3265
+ # source://rack//lib/rack/request.rb#486
3128
3266
  def parseable_data?; end
3129
3267
 
3130
3268
  # Checks the HTTP request method (or verb) to see if it was of type PATCH
3131
3269
  #
3132
3270
  # @return [Boolean]
3133
3271
  #
3134
- # source://rack//lib/rack/request.rb#235
3272
+ # source://rack//lib/rack/request.rb#240
3135
3273
  def patch?; end
3136
3274
 
3137
- # source://rack//lib/rack/request.rb#599
3275
+ # source://rack//lib/rack/request.rb#600
3138
3276
  def path; end
3139
3277
 
3140
- # source://rack//lib/rack/request.rb#194
3278
+ # source://rack//lib/rack/request.rb#199
3141
3279
  def path_info; end
3142
3280
 
3143
- # source://rack//lib/rack/request.rb#195
3281
+ # source://rack//lib/rack/request.rb#200
3144
3282
  def path_info=(s); end
3145
3283
 
3146
- # source://rack//lib/rack/request.rb#345
3284
+ # source://rack//lib/rack/request.rb#350
3147
3285
  def port; end
3148
3286
 
3149
3287
  # Checks the HTTP request method (or verb) to see if it was of type POST
3150
3288
  #
3151
3289
  # @return [Boolean]
3152
3290
  #
3153
- # source://rack//lib/rack/request.rb#238
3291
+ # source://rack//lib/rack/request.rb#243
3154
3292
  def post?; end
3155
3293
 
3156
3294
  # Checks the HTTP request method (or verb) to see if it was of type PUT
3157
3295
  #
3158
3296
  # @return [Boolean]
3159
3297
  #
3160
- # source://rack//lib/rack/request.rb#241
3298
+ # source://rack//lib/rack/request.rb#246
3161
3299
  def put?; end
3162
3300
 
3163
- # source://rack//lib/rack/request.rb#198
3301
+ # Allow overriding the query parser that the receiver will use.
3302
+ # By default Rack::Utils.default_query_parser is used.
3303
+ #
3304
+ # source://rack//lib/rack/request.rb#559
3305
+ def query_parser=(_arg0); end
3306
+
3307
+ # source://rack//lib/rack/request.rb#203
3164
3308
  def query_string; end
3165
3309
 
3166
3310
  # the referer of the client
3167
3311
  #
3168
- # source://rack//lib/rack/request.rb#204
3312
+ # source://rack//lib/rack/request.rb#209
3169
3313
  def referer; end
3170
3314
 
3171
3315
  # the referer of the client
3172
3316
  #
3173
- # source://rack//lib/rack/request.rb#204
3317
+ # source://rack//lib/rack/request.rb#210
3174
3318
  def referrer; end
3175
3319
 
3176
- # source://rack//lib/rack/request.rb#197
3320
+ # source://rack//lib/rack/request.rb#202
3177
3321
  def request_method; end
3178
3322
 
3179
- # source://rack//lib/rack/request.rb#249
3323
+ # source://rack//lib/rack/request.rb#254
3180
3324
  def scheme; end
3181
3325
 
3182
- # source://rack//lib/rack/request.rb#191
3326
+ # source://rack//lib/rack/request.rb#196
3183
3327
  def script_name; end
3184
3328
 
3185
- # source://rack//lib/rack/request.rb#192
3329
+ # source://rack//lib/rack/request.rb#197
3186
3330
  def script_name=(s); end
3187
3331
 
3188
3332
  # The authority as defined by the `SERVER_NAME` and `SERVER_PORT`
3189
3333
  # variables.
3190
3334
  #
3191
- # source://rack//lib/rack/request.rb#272
3335
+ # source://rack//lib/rack/request.rb#277
3192
3336
  def server_authority; end
3193
3337
 
3194
- # source://rack//lib/rack/request.rb#285
3338
+ # source://rack//lib/rack/request.rb#290
3195
3339
  def server_name; end
3196
3340
 
3197
- # source://rack//lib/rack/request.rb#289
3341
+ # source://rack//lib/rack/request.rb#294
3198
3342
  def server_port; end
3199
3343
 
3200
- # source://rack//lib/rack/request.rb#207
3344
+ # source://rack//lib/rack/request.rb#212
3201
3345
  def session; end
3202
3346
 
3203
- # source://rack//lib/rack/request.rb#213
3347
+ # source://rack//lib/rack/request.rb#218
3204
3348
  def session_options; end
3205
3349
 
3206
3350
  # @return [Boolean]
3207
3351
  #
3208
- # source://rack//lib/rack/request.rb#410
3352
+ # source://rack//lib/rack/request.rb#415
3209
3353
  def ssl?; end
3210
3354
 
3211
3355
  # Checks the HTTP request method (or verb) to see if it was of type TRACE
3212
3356
  #
3213
3357
  # @return [Boolean]
3214
3358
  #
3215
- # source://rack//lib/rack/request.rb#244
3359
+ # source://rack//lib/rack/request.rb#249
3216
3360
  def trace?; end
3217
3361
 
3218
3362
  # @return [Boolean]
3219
3363
  #
3220
- # source://rack//lib/rack/request.rb#615
3364
+ # source://rack//lib/rack/request.rb#616
3221
3365
  def trusted_proxy?(ip); end
3222
3366
 
3223
3367
  # Checks the HTTP request method (or verb) to see if it was of type UNLINK
3224
3368
  #
3225
3369
  # @return [Boolean]
3226
3370
  #
3227
- # source://rack//lib/rack/request.rb#247
3371
+ # source://rack//lib/rack/request.rb#252
3228
3372
  def unlink?; end
3229
3373
 
3230
3374
  # Destructively update a parameter, whether it's in GET and/or POST. Returns nil.
@@ -3233,136 +3377,128 @@ module Rack::Request::Helpers
3233
3377
  #
3234
3378
  # <tt>env['rack.input']</tt> is not touched.
3235
3379
  #
3236
- # source://rack//lib/rack/request.rb#565
3380
+ # source://rack//lib/rack/request.rb#566
3237
3381
  def update_param(k, v); end
3238
3382
 
3239
3383
  # Tries to return a remake of the original request URL as a string.
3240
3384
  #
3241
- # source://rack//lib/rack/request.rb#595
3385
+ # source://rack//lib/rack/request.rb#596
3242
3386
  def url; end
3243
3387
 
3244
- # source://rack//lib/rack/request.rb#201
3388
+ # source://rack//lib/rack/request.rb#206
3245
3389
  def user_agent; end
3246
3390
 
3247
- # like Hash#values_at
3248
- #
3249
- # source://rack//lib/rack/request.rb#620
3250
- def values_at(*keys); end
3251
-
3252
3391
  # @return [Boolean]
3253
3392
  #
3254
- # source://rack//lib/rack/request.rb#313
3393
+ # source://rack//lib/rack/request.rb#318
3255
3394
  def xhr?; end
3256
3395
 
3257
3396
  private
3258
3397
 
3259
- # source://rack//lib/rack/request.rb#776
3398
+ # source://rack//lib/rack/request.rb#767
3260
3399
  def allowed_scheme(header); end
3261
3400
 
3262
- # source://rack//lib/rack/request.rb#628
3401
+ # source://rack//lib/rack/request.rb#622
3263
3402
  def default_session; end
3264
3403
 
3265
- # source://rack//lib/rack/request.rb#684
3404
+ # source://rack//lib/rack/request.rb#679
3266
3405
  def expand_param_pairs(pairs, query_parser = T.unsafe(nil)); end
3267
3406
 
3268
- # source://rack//lib/rack/request.rb#780
3407
+ # source://rack//lib/rack/request.rb#771
3269
3408
  def forwarded_priority; end
3270
3409
 
3271
- # source://rack//lib/rack/request.rb#752
3410
+ # source://rack//lib/rack/request.rb#743
3272
3411
  def forwarded_scheme; end
3273
3412
 
3274
3413
  # Get an array of values set in the RFC 7239 `Forwarded` request header.
3275
3414
  #
3276
- # source://rack//lib/rack/request.rb#668
3415
+ # source://rack//lib/rack/request.rb#662
3277
3416
  def get_http_forwarded(token); end
3278
3417
 
3279
- # source://rack//lib/rack/request.rb#644
3418
+ # source://rack//lib/rack/request.rb#638
3280
3419
  def parse_http_accept_header(header); end
3281
3420
 
3282
- # source://rack//lib/rack/request.rb#680
3421
+ # source://rack//lib/rack/request.rb#674
3283
3422
  def parse_multipart; end
3284
3423
 
3285
- # source://rack//lib/rack/request.rb#676
3424
+ # source://rack//lib/rack/request.rb#670
3286
3425
  def parse_query(qs, d = T.unsafe(nil)); end
3287
3426
 
3288
- # source://rack//lib/rack/request.rb#672
3427
+ # source://rack//lib/rack/request.rb#666
3289
3428
  def query_parser; end
3290
3429
 
3291
- # source://rack//lib/rack/request.rb#743
3292
- def reject_trusted_ip_addresses(ip_addresses); end
3293
-
3294
- # source://rack//lib/rack/request.rb#737
3430
+ # source://rack//lib/rack/request.rb#732
3295
3431
  def split_authority(authority); end
3296
3432
 
3297
- # source://rack//lib/rack/request.rb#694
3433
+ # source://rack//lib/rack/request.rb#689
3298
3434
  def split_header(value); end
3299
3435
 
3300
3436
  # Assist with compatibility when processing `X-Forwarded-For`.
3301
3437
  #
3302
- # source://rack//lib/rack/request.rb#631
3438
+ # source://rack//lib/rack/request.rb#625
3303
3439
  def wrap_ipv6(host); end
3304
3440
 
3305
- # source://rack//lib/rack/request.rb#784
3441
+ # source://rack//lib/rack/request.rb#775
3306
3442
  def x_forwarded_proto_priority; end
3307
3443
  end
3308
3444
 
3309
- # source://rack//lib/rack/request.rb#722
3445
+ # source://rack//lib/rack/request.rb#717
3310
3446
  Rack::Request::Helpers::AUTHORITY = T.let(T.unsafe(nil), Regexp)
3311
3447
 
3312
3448
  # Default ports depending on scheme. Used to decide whether or not
3313
3449
  # to include the port in a generated URI.
3314
3450
  #
3315
- # source://rack//lib/rack/request.rb#168
3451
+ # source://rack//lib/rack/request.rb#173
3316
3452
  Rack::Request::Helpers::DEFAULT_PORTS = T.let(T.unsafe(nil), Hash)
3317
3453
 
3318
3454
  # The set of form-data media-types. Requests that do not indicate
3319
3455
  # one of the media types present in this list will not be eligible
3320
3456
  # for form-data / param parsing.
3321
3457
  #
3322
- # source://rack//lib/rack/request.rb#153
3458
+ # source://rack//lib/rack/request.rb#158
3323
3459
  Rack::Request::Helpers::FORM_DATA_MEDIA_TYPES = T.let(T.unsafe(nil), Array)
3324
3460
 
3325
- # source://rack//lib/rack/request.rb#747
3461
+ # source://rack//lib/rack/request.rb#738
3326
3462
  Rack::Request::Helpers::FORWARDED_SCHEME_HEADERS = T.let(T.unsafe(nil), Hash)
3327
3463
 
3328
- # source://rack//lib/rack/request.rb#176
3464
+ # source://rack//lib/rack/request.rb#181
3329
3465
  Rack::Request::Helpers::HTTP_FORWARDED = T.let(T.unsafe(nil), String)
3330
3466
 
3331
3467
  # The address of the client which connected to the proxy.
3332
3468
  #
3333
- # source://rack//lib/rack/request.rb#171
3469
+ # source://rack//lib/rack/request.rb#176
3334
3470
  Rack::Request::Helpers::HTTP_X_FORWARDED_FOR = T.let(T.unsafe(nil), String)
3335
3471
 
3336
3472
  # The contents of the host/:authority header sent to the proxy.
3337
3473
  #
3338
- # source://rack//lib/rack/request.rb#174
3474
+ # source://rack//lib/rack/request.rb#179
3339
3475
  Rack::Request::Helpers::HTTP_X_FORWARDED_HOST = T.let(T.unsafe(nil), String)
3340
3476
 
3341
3477
  # The port used to connect to the proxy.
3342
3478
  #
3343
- # source://rack//lib/rack/request.rb#185
3479
+ # source://rack//lib/rack/request.rb#190
3344
3480
  Rack::Request::Helpers::HTTP_X_FORWARDED_PORT = T.let(T.unsafe(nil), String)
3345
3481
 
3346
3482
  # The protocol used to connect to the proxy.
3347
3483
  #
3348
- # source://rack//lib/rack/request.rb#182
3484
+ # source://rack//lib/rack/request.rb#187
3349
3485
  Rack::Request::Helpers::HTTP_X_FORWARDED_PROTO = T.let(T.unsafe(nil), String)
3350
3486
 
3351
3487
  # The value of the scheme sent to the proxy.
3352
3488
  #
3353
- # source://rack//lib/rack/request.rb#179
3489
+ # source://rack//lib/rack/request.rb#184
3354
3490
  Rack::Request::Helpers::HTTP_X_FORWARDED_SCHEME = T.let(T.unsafe(nil), String)
3355
3491
 
3356
3492
  # Another way for specifying https scheme was used.
3357
3493
  #
3358
- # source://rack//lib/rack/request.rb#188
3494
+ # source://rack//lib/rack/request.rb#193
3359
3495
  Rack::Request::Helpers::HTTP_X_FORWARDED_SSL = T.let(T.unsafe(nil), String)
3360
3496
 
3361
3497
  # The set of media-types. Requests that do not indicate
3362
3498
  # one of the media types present in this list will not be eligible
3363
3499
  # for param parsing like soap attachments or generic multiparts
3364
3500
  #
3365
- # source://rack//lib/rack/request.rb#161
3501
+ # source://rack//lib/rack/request.rb#166
3366
3502
  Rack::Request::Helpers::PARSEABLE_DATA_MEDIA_TYPES = T.let(T.unsafe(nil), Array)
3367
3503
 
3368
3504
  # Rack::Response provides a convenient interface to create a Rack
@@ -3412,12 +3548,12 @@ class Rack::Response
3412
3548
 
3413
3549
  # @raise [ArgumentError]
3414
3550
  #
3415
- # source://rack//lib/rack/response.rb#164
3551
+ # source://rack//lib/rack/response.rb#177
3416
3552
  def [](key); end
3417
3553
 
3418
3554
  # @raise [ArgumentError]
3419
3555
  #
3420
- # source://rack//lib/rack/response.rb#168
3556
+ # source://rack//lib/rack/response.rb#178
3421
3557
  def []=(key, value); end
3422
3558
 
3423
3559
  # Returns the value of attribute body.
@@ -3520,7 +3656,7 @@ class Rack::Response
3520
3656
  #
3521
3657
  # @return [Array] a 3-tuple suitable of `[status, headers, body]`
3522
3658
  #
3523
- # source://rack//lib/rack/response.rb#107
3659
+ # source://rack//lib/rack/response.rb#128
3524
3660
  def to_a(&block); end
3525
3661
 
3526
3662
  # Append a chunk to the response body.
@@ -3803,7 +3939,7 @@ Rack::Response::STATUS_WITH_NO_ENTITY_BODY = T.let(T.unsafe(nil), Hash)
3803
3939
  class Rack::RewindableInput
3804
3940
  # @return [RewindableInput] a new instance of RewindableInput
3805
3941
  #
3806
- # source://rack//lib/rack/rewindable_input.rb#29
3942
+ # source://rack//lib/rack/rewindable_input.rb#32
3807
3943
  def initialize(io); end
3808
3944
 
3809
3945
  # Closes this RewindableInput object without closing the originally
@@ -3812,32 +3948,32 @@ class Rack::RewindableInput
3812
3948
  #
3813
3949
  # This method may be called multiple times. It does nothing on subsequent calls.
3814
3950
  #
3815
- # source://rack//lib/rack/rewindable_input.rb#65
3951
+ # source://rack//lib/rack/rewindable_input.rb#68
3816
3952
  def close; end
3817
3953
 
3818
- # source://rack//lib/rack/rewindable_input.rb#45
3954
+ # source://rack//lib/rack/rewindable_input.rb#48
3819
3955
  def each(&block); end
3820
3956
 
3821
- # source://rack//lib/rack/rewindable_input.rb#35
3957
+ # source://rack//lib/rack/rewindable_input.rb#38
3822
3958
  def gets; end
3823
3959
 
3824
- # source://rack//lib/rack/rewindable_input.rb#40
3960
+ # source://rack//lib/rack/rewindable_input.rb#43
3825
3961
  def read(*args); end
3826
3962
 
3827
- # source://rack//lib/rack/rewindable_input.rb#50
3963
+ # source://rack//lib/rack/rewindable_input.rb#53
3828
3964
  def rewind; end
3829
3965
 
3830
- # source://rack//lib/rack/rewindable_input.rb#55
3966
+ # source://rack//lib/rack/rewindable_input.rb#58
3831
3967
  def size; end
3832
3968
 
3833
3969
  private
3834
3970
 
3835
3971
  # @return [Boolean]
3836
3972
  #
3837
- # source://rack//lib/rack/rewindable_input.rb#109
3973
+ # source://rack//lib/rack/rewindable_input.rb#112
3838
3974
  def filesystem_has_posix_semantics?; end
3839
3975
 
3840
- # source://rack//lib/rack/rewindable_input.rb#78
3976
+ # source://rack//lib/rack/rewindable_input.rb#81
3841
3977
  def make_rewindable; end
3842
3978
  end
3843
3979
 
@@ -4030,7 +4166,7 @@ class Rack::ShowExceptions
4030
4166
  # source://rack//lib/rack/show_exceptions.rb#65
4031
4167
  def dump_exception(exception); end
4032
4168
 
4033
- # source://rack//lib/rack/show_exceptions.rb#116
4169
+ # source://rack//lib/rack/show_exceptions.rb#120
4034
4170
  def h(obj); end
4035
4171
 
4036
4172
  # @return [Boolean]
@@ -4038,10 +4174,10 @@ class Rack::ShowExceptions
4038
4174
  # source://rack//lib/rack/show_exceptions.rb#56
4039
4175
  def prefers_plaintext?(env); end
4040
4176
 
4041
- # source://rack//lib/rack/show_exceptions.rb#76
4177
+ # source://rack//lib/rack/show_exceptions.rb#80
4042
4178
  def pretty(env, exception); end
4043
4179
 
4044
- # source://rack//lib/rack/show_exceptions.rb#112
4180
+ # source://rack//lib/rack/show_exceptions.rb#116
4045
4181
  def template; end
4046
4182
 
4047
4183
  private
@@ -4060,101 +4196,142 @@ class Rack::ShowExceptions::Frame < ::Struct
4060
4196
  # Returns the value of attribute context_line
4061
4197
  #
4062
4198
  # @return [Object] the current value of context_line
4199
+ #
4200
+ # source://rack//lib/rack/show_exceptions.rb#21
4063
4201
  def context_line; end
4064
4202
 
4065
4203
  # Sets the attribute context_line
4066
4204
  #
4067
4205
  # @param value [Object] the value to set the attribute context_line to.
4068
4206
  # @return [Object] the newly set value
4207
+ #
4208
+ # source://rack//lib/rack/show_exceptions.rb#21
4069
4209
  def context_line=(_); end
4070
4210
 
4071
4211
  # Returns the value of attribute filename
4072
4212
  #
4073
4213
  # @return [Object] the current value of filename
4214
+ #
4215
+ # source://rack//lib/rack/show_exceptions.rb#21
4074
4216
  def filename; end
4075
4217
 
4076
4218
  # Sets the attribute filename
4077
4219
  #
4078
4220
  # @param value [Object] the value to set the attribute filename to.
4079
4221
  # @return [Object] the newly set value
4222
+ #
4223
+ # source://rack//lib/rack/show_exceptions.rb#21
4080
4224
  def filename=(_); end
4081
4225
 
4082
4226
  # Returns the value of attribute function
4083
4227
  #
4084
4228
  # @return [Object] the current value of function
4229
+ #
4230
+ # source://rack//lib/rack/show_exceptions.rb#21
4085
4231
  def function; end
4086
4232
 
4087
4233
  # Sets the attribute function
4088
4234
  #
4089
4235
  # @param value [Object] the value to set the attribute function to.
4090
4236
  # @return [Object] the newly set value
4237
+ #
4238
+ # source://rack//lib/rack/show_exceptions.rb#21
4091
4239
  def function=(_); end
4092
4240
 
4093
4241
  # Returns the value of attribute lineno
4094
4242
  #
4095
4243
  # @return [Object] the current value of lineno
4244
+ #
4245
+ # source://rack//lib/rack/show_exceptions.rb#21
4096
4246
  def lineno; end
4097
4247
 
4098
4248
  # Sets the attribute lineno
4099
4249
  #
4100
4250
  # @param value [Object] the value to set the attribute lineno to.
4101
4251
  # @return [Object] the newly set value
4252
+ #
4253
+ # source://rack//lib/rack/show_exceptions.rb#21
4102
4254
  def lineno=(_); end
4103
4255
 
4104
4256
  # Returns the value of attribute post_context
4105
4257
  #
4106
4258
  # @return [Object] the current value of post_context
4259
+ #
4260
+ # source://rack//lib/rack/show_exceptions.rb#21
4107
4261
  def post_context; end
4108
4262
 
4109
4263
  # Sets the attribute post_context
4110
4264
  #
4111
4265
  # @param value [Object] the value to set the attribute post_context to.
4112
4266
  # @return [Object] the newly set value
4267
+ #
4268
+ # source://rack//lib/rack/show_exceptions.rb#21
4113
4269
  def post_context=(_); end
4114
4270
 
4115
4271
  # Returns the value of attribute post_context_lineno
4116
4272
  #
4117
4273
  # @return [Object] the current value of post_context_lineno
4274
+ #
4275
+ # source://rack//lib/rack/show_exceptions.rb#21
4118
4276
  def post_context_lineno; end
4119
4277
 
4120
4278
  # Sets the attribute post_context_lineno
4121
4279
  #
4122
4280
  # @param value [Object] the value to set the attribute post_context_lineno to.
4123
4281
  # @return [Object] the newly set value
4282
+ #
4283
+ # source://rack//lib/rack/show_exceptions.rb#21
4124
4284
  def post_context_lineno=(_); end
4125
4285
 
4126
4286
  # Returns the value of attribute pre_context
4127
4287
  #
4128
4288
  # @return [Object] the current value of pre_context
4289
+ #
4290
+ # source://rack//lib/rack/show_exceptions.rb#21
4129
4291
  def pre_context; end
4130
4292
 
4131
4293
  # Sets the attribute pre_context
4132
4294
  #
4133
4295
  # @param value [Object] the value to set the attribute pre_context to.
4134
4296
  # @return [Object] the newly set value
4297
+ #
4298
+ # source://rack//lib/rack/show_exceptions.rb#21
4135
4299
  def pre_context=(_); end
4136
4300
 
4137
4301
  # Returns the value of attribute pre_context_lineno
4138
4302
  #
4139
4303
  # @return [Object] the current value of pre_context_lineno
4304
+ #
4305
+ # source://rack//lib/rack/show_exceptions.rb#21
4140
4306
  def pre_context_lineno; end
4141
4307
 
4142
4308
  # Sets the attribute pre_context_lineno
4143
4309
  #
4144
4310
  # @param value [Object] the value to set the attribute pre_context_lineno to.
4145
4311
  # @return [Object] the newly set value
4312
+ #
4313
+ # source://rack//lib/rack/show_exceptions.rb#21
4146
4314
  def pre_context_lineno=(_); end
4147
4315
 
4148
4316
  class << self
4317
+ # source://rack//lib/rack/show_exceptions.rb#21
4149
4318
  def [](*_arg0); end
4319
+
4320
+ # source://rack//lib/rack/show_exceptions.rb#21
4150
4321
  def inspect; end
4322
+
4323
+ # source://rack//lib/rack/show_exceptions.rb#21
4151
4324
  def keyword_init?; end
4325
+
4326
+ # source://rack//lib/rack/show_exceptions.rb#21
4152
4327
  def members; end
4328
+
4329
+ # source://rack//lib/rack/show_exceptions.rb#21
4153
4330
  def new(*_arg0); end
4154
4331
  end
4155
4332
  end
4156
4333
 
4157
- # source://rack//lib/rack/show_exceptions.rb#131
4334
+ # source://rack//lib/rack/show_exceptions.rb#135
4158
4335
  Rack::ShowExceptions::TEMPLATE = T.let(T.unsafe(nil), ERB)
4159
4336
 
4160
4337
  # Rack::ShowStatus catches all empty responses and replaces them
@@ -4278,7 +4455,7 @@ class Rack::Static
4278
4455
 
4279
4456
  # Convert HTTP header rules to HTTP headers
4280
4457
  #
4281
- # source://rack//lib/rack/static.rb#166
4458
+ # source://rack//lib/rack/static.rb#167
4282
4459
  def applicable_rules(path); end
4283
4460
 
4284
4461
  # source://rack//lib/rack/static.rb#125
@@ -4363,31 +4540,31 @@ module Rack::Utils
4363
4540
  # matches (same specificity and quality), the value returned
4364
4541
  # is arbitrary.
4365
4542
  #
4366
- # source://rack//lib/rack/utils.rb#166
4543
+ # source://rack//lib/rack/utils.rb#167
4367
4544
  def best_q_match(q_value_header, available_mimes); end
4368
4545
 
4369
- # source://rack//lib/rack/utils.rb#119
4546
+ # source://rack//lib/rack/utils.rb#120
4370
4547
  def build_nested_query(value, prefix = T.unsafe(nil)); end
4371
4548
 
4372
- # source://rack//lib/rack/utils.rb#109
4549
+ # source://rack//lib/rack/utils.rb#110
4373
4550
  def build_query(params); end
4374
4551
 
4375
4552
  # Parses the "Range:" header, if present, into an array of Range objects.
4376
4553
  # Returns nil if the header is missing or syntactically invalid.
4377
4554
  # Returns an empty array if none of the ranges are satisfiable.
4378
4555
  #
4379
- # source://rack//lib/rack/utils.rb#408
4556
+ # source://rack//lib/rack/utils.rb#402
4380
4557
  def byte_ranges(env, size); end
4381
4558
 
4382
- # source://rack//lib/rack/utils.rb#608
4559
+ # source://rack//lib/rack/utils.rb#600
4383
4560
  def clean_path_info(path_info); end
4384
4561
 
4385
4562
  # :nocov:
4386
4563
  #
4387
- # source://rack//lib/rack/utils.rb#90
4564
+ # source://rack//lib/rack/utils.rb#91
4388
4565
  def clock_time; end
4389
4566
 
4390
- # source://rack//lib/rack/utils.rb#366
4567
+ # source://rack//lib/rack/utils.rb#360
4391
4568
  def delete_cookie_header!(headers, key, value = T.unsafe(nil)); end
4392
4569
 
4393
4570
  # :call-seq:
@@ -4404,7 +4581,7 @@ module Rack::Utils
4404
4581
  # delete_set_cookie_header("myname")
4405
4582
  # # => "myname=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"
4406
4583
  #
4407
- # source://rack//lib/rack/utils.rb#362
4584
+ # source://rack//lib/rack/utils.rb#356
4408
4585
  def delete_set_cookie_header(key, value = T.unsafe(nil)); end
4409
4586
 
4410
4587
  # :call-seq:
@@ -4425,30 +4602,29 @@ module Rack::Utils
4425
4602
  # header
4426
4603
  # # => ["mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"]
4427
4604
  #
4428
- # source://rack//lib/rack/utils.rb#390
4605
+ # source://rack//lib/rack/utils.rb#384
4429
4606
  def delete_set_cookie_header!(header, key, value = T.unsafe(nil)); end
4430
4607
 
4431
4608
  # URI escapes. (CGI style space to +)
4432
4609
  #
4433
- # source://rack//lib/rack/utils.rb#39
4610
+ # source://rack//lib/rack/utils.rb#40
4434
4611
  def escape(s); end
4435
4612
 
4436
- # source://rack//lib/rack/utils.rb#261
4437
- def escape_cookie_key(key); end
4438
-
4439
4613
  # Escape ampersands, brackets and quotes to their HTML/XML entities.
4614
+ #
4615
+ # source://rack//lib/rack/utils.rb#183
4440
4616
  def escape_html(_arg0); end
4441
4617
 
4442
4618
  # Like URI escaping, but with %20 instead of +. Strictly speaking this is
4443
4619
  # true URI escaping.
4444
4620
  #
4445
- # source://rack//lib/rack/utils.rb#45
4621
+ # source://rack//lib/rack/utils.rb#46
4446
4622
  def escape_path(s); end
4447
4623
 
4448
- # source://rack//lib/rack/utils.rb#148
4624
+ # source://rack//lib/rack/utils.rb#149
4449
4625
  def forwarded_values(forwarded_header); end
4450
4626
 
4451
- # source://rack//lib/rack/utils.rb#412
4627
+ # source://rack//lib/rack/utils.rb#406
4452
4628
  def get_byte_ranges(http_range, size); end
4453
4629
 
4454
4630
  # :call-seq:
@@ -4460,7 +4636,7 @@ module Rack::Utils
4460
4636
  # parse_cookies({'HTTP_COOKIE' => 'myname=myvalue'})
4461
4637
  # # => {'myname' => 'myvalue'}
4462
4638
  #
4463
- # source://rack//lib/rack/utils.rb#252
4639
+ # source://rack//lib/rack/utils.rb#257
4464
4640
  def parse_cookies(env); end
4465
4641
 
4466
4642
  # :call-seq:
@@ -4473,27 +4649,27 @@ module Rack::Utils
4473
4649
  # parse_cookies_header('myname=myvalue; max-age=0')
4474
4650
  # # => {"myname"=>"myvalue", "max-age"=>"0"}
4475
4651
  #
4476
- # source://rack//lib/rack/utils.rb#233
4652
+ # source://rack//lib/rack/utils.rb#238
4477
4653
  def parse_cookies_header(value); end
4478
4654
 
4479
- # source://rack//lib/rack/utils.rb#105
4655
+ # source://rack//lib/rack/utils.rb#106
4480
4656
  def parse_nested_query(qs, d = T.unsafe(nil)); end
4481
4657
 
4482
- # source://rack//lib/rack/utils.rb#101
4658
+ # source://rack//lib/rack/utils.rb#102
4483
4659
  def parse_query(qs, d = T.unsafe(nil), &unescaper); end
4484
4660
 
4485
- # source://rack//lib/rack/utils.rb#137
4661
+ # source://rack//lib/rack/utils.rb#138
4486
4662
  def q_values(q_value_header); end
4487
4663
 
4488
- # source://rack//lib/rack/utils.rb#401
4664
+ # source://rack//lib/rack/utils.rb#395
4489
4665
  def rfc2822(time); end
4490
4666
 
4491
4667
  # :nocov:
4492
4668
  #
4493
- # source://rack//lib/rack/utils.rb#454
4669
+ # source://rack//lib/rack/utils.rb#448
4494
4670
  def secure_compare(a, b); end
4495
4671
 
4496
- # source://rack//lib/rack/utils.rb#191
4672
+ # source://rack//lib/rack/utils.rb#196
4497
4673
  def select_best_encoding(available_encodings, accept_encoding); end
4498
4674
 
4499
4675
  # :call-seq:
@@ -4501,7 +4677,8 @@ module Rack::Utils
4501
4677
  #
4502
4678
  # Generate an encoded string using the provided +key+ and +value+ suitable
4503
4679
  # for the +set-cookie+ header according to RFC6265. The +value+ may be an
4504
- # instance of either +String+ or +Hash+.
4680
+ # instance of either +String+ or +Hash+. If the cookie key is invalid (as
4681
+ # defined by RFC6265), an +ArgumentError+ will be raised.
4505
4682
  #
4506
4683
  # If the cookie +value+ is an instance of +Hash+, it considers the following
4507
4684
  # cookie attribute keys: +domain+, +max_age+, +expires+ (must be instance
@@ -4509,17 +4686,13 @@ module Rack::Utils
4509
4686
  # details about the interpretation of these fields, consult
4510
4687
  # [RFC6265 Section 5.2](https://datatracker.ietf.org/doc/html/rfc6265#section-5.2).
4511
4688
  #
4512
- # An extra cookie attribute +escape_key+ can be provided to control whether
4513
- # or not the cookie key is URL encoded. If explicitly set to +false+, the
4514
- # cookie key name will not be url encoded (escaped). The default is +true+.
4515
- #
4516
4689
  # set_cookie_header("myname", "myvalue")
4517
4690
  # # => "myname=myvalue"
4518
4691
  #
4519
4692
  # set_cookie_header("myname", {value: "myvalue", max_age: 10})
4520
4693
  # # => "myname=myvalue; max-age=10"
4521
4694
  #
4522
- # source://rack//lib/rack/utils.rb#293
4695
+ # source://rack//lib/rack/utils.rb#286
4523
4696
  def set_cookie_header(key, value); end
4524
4697
 
4525
4698
  # :call-seq:
@@ -4531,25 +4704,25 @@ module Rack::Utils
4531
4704
  # If the headers already contains a +set-cookie+ key, it will be converted
4532
4705
  # to an +Array+ if not already, and appended to.
4533
4706
  #
4534
- # source://rack//lib/rack/utils.rb#336
4707
+ # source://rack//lib/rack/utils.rb#330
4535
4708
  def set_cookie_header!(headers, key, value); end
4536
4709
 
4537
- # source://rack//lib/rack/utils.rb#588
4710
+ # source://rack//lib/rack/utils.rb#582
4538
4711
  def status_code(status); end
4539
4712
 
4540
4713
  # Unescapes a URI escaped string with +encoding+. +encoding+ will be the
4541
4714
  # target encoding of the string returned, and it defaults to UTF-8
4542
4715
  #
4543
- # source://rack//lib/rack/utils.rb#57
4716
+ # source://rack//lib/rack/utils.rb#58
4544
4717
  def unescape(s, encoding = T.unsafe(nil)); end
4545
4718
 
4546
4719
  # Unescapes the **path** component of a URI. See Rack::Utils.unescape for
4547
4720
  # unescaping query parameters or form components.
4548
4721
  #
4549
- # source://rack//lib/rack/utils.rb#51
4722
+ # source://rack//lib/rack/utils.rb#52
4550
4723
  def unescape_path(s); end
4551
4724
 
4552
- # source://rack//lib/rack/utils.rb#625
4725
+ # source://rack//lib/rack/utils.rb#617
4553
4726
  def valid_path?(path); end
4554
4727
 
4555
4728
  class << self
@@ -4558,41 +4731,41 @@ module Rack::Utils
4558
4731
  # matches (same specificity and quality), the value returned
4559
4732
  # is arbitrary.
4560
4733
  #
4561
- # source://rack//lib/rack/utils.rb#166
4734
+ # source://rack//lib/rack/utils.rb#167
4562
4735
  def best_q_match(q_value_header, available_mimes); end
4563
4736
 
4564
- # source://rack//lib/rack/utils.rb#119
4737
+ # source://rack//lib/rack/utils.rb#120
4565
4738
  def build_nested_query(value, prefix = T.unsafe(nil)); end
4566
4739
 
4567
- # source://rack//lib/rack/utils.rb#109
4740
+ # source://rack//lib/rack/utils.rb#110
4568
4741
  def build_query(params); end
4569
4742
 
4570
4743
  # Parses the "Range:" header, if present, into an array of Range objects.
4571
4744
  # Returns nil if the header is missing or syntactically invalid.
4572
4745
  # Returns an empty array if none of the ranges are satisfiable.
4573
4746
  #
4574
- # source://rack//lib/rack/utils.rb#408
4747
+ # source://rack//lib/rack/utils.rb#402
4575
4748
  def byte_ranges(env, size); end
4576
4749
 
4577
- # source://rack//lib/rack/utils.rb#608
4750
+ # source://rack//lib/rack/utils.rb#600
4578
4751
  def clean_path_info(path_info); end
4579
4752
 
4580
- # source://rack//lib/rack/utils.rb#90
4753
+ # source://rack//lib/rack/utils.rb#91
4581
4754
  def clock_time; end
4582
4755
 
4583
4756
  # Returns the value of attribute default_query_parser.
4584
4757
  #
4585
- # source://rack//lib/rack/utils.rb#29
4758
+ # source://rack//lib/rack/utils.rb#30
4586
4759
  def default_query_parser; end
4587
4760
 
4588
4761
  # Sets the attribute default_query_parser
4589
4762
  #
4590
4763
  # @param value the value to set the attribute default_query_parser to.
4591
4764
  #
4592
- # source://rack//lib/rack/utils.rb#29
4765
+ # source://rack//lib/rack/utils.rb#30
4593
4766
  def default_query_parser=(_arg0); end
4594
4767
 
4595
- # source://rack//lib/rack/utils.rb#366
4768
+ # source://rack//lib/rack/utils.rb#360
4596
4769
  def delete_cookie_header!(headers, key, value = T.unsafe(nil)); end
4597
4770
 
4598
4771
  # :call-seq:
@@ -4609,7 +4782,7 @@ module Rack::Utils
4609
4782
  # delete_set_cookie_header("myname")
4610
4783
  # # => "myname=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"
4611
4784
  #
4612
- # source://rack//lib/rack/utils.rb#362
4785
+ # source://rack//lib/rack/utils.rb#356
4613
4786
  def delete_set_cookie_header(key, value = T.unsafe(nil)); end
4614
4787
 
4615
4788
  # :call-seq:
@@ -4630,73 +4803,71 @@ module Rack::Utils
4630
4803
  # header
4631
4804
  # # => ["mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"]
4632
4805
  #
4633
- # source://rack//lib/rack/utils.rb#390
4806
+ # source://rack//lib/rack/utils.rb#384
4634
4807
  def delete_set_cookie_header!(header, key, value = T.unsafe(nil)); end
4635
4808
 
4636
4809
  # URI escapes. (CGI style space to +)
4637
4810
  #
4638
- # source://rack//lib/rack/utils.rb#39
4811
+ # source://rack//lib/rack/utils.rb#40
4639
4812
  def escape(s); end
4640
4813
 
4641
- # source://rack//lib/rack/utils.rb#261
4642
- def escape_cookie_key(key); end
4643
-
4814
+ # source://rack//lib/rack/utils.rb#183
4644
4815
  def escape_html(_arg0); end
4645
4816
 
4646
4817
  # Like URI escaping, but with %20 instead of +. Strictly speaking this is
4647
4818
  # true URI escaping.
4648
4819
  #
4649
- # source://rack//lib/rack/utils.rb#45
4820
+ # source://rack//lib/rack/utils.rb#46
4650
4821
  def escape_path(s); end
4651
4822
 
4652
- # source://rack//lib/rack/utils.rb#148
4823
+ # source://rack//lib/rack/utils.rb#149
4653
4824
  def forwarded_values(forwarded_header); end
4654
4825
 
4655
- # source://rack//lib/rack/utils.rb#412
4826
+ # source://rack//lib/rack/utils.rb#406
4656
4827
  def get_byte_ranges(http_range, size); end
4657
4828
 
4658
4829
  # Returns the value of attribute multipart_file_limit.
4659
4830
  #
4660
- # source://rack//lib/rack/utils.rb#64
4831
+ # source://rack//lib/rack/utils.rb#65
4661
4832
  def multipart_file_limit; end
4662
4833
 
4663
4834
  # Sets the attribute multipart_file_limit
4664
4835
  #
4665
4836
  # @param value the value to set the attribute multipart_file_limit to.
4666
4837
  #
4667
- # source://rack//lib/rack/utils.rb#64
4838
+ # source://rack//lib/rack/utils.rb#65
4668
4839
  def multipart_file_limit=(_arg0); end
4669
4840
 
4670
4841
  # Returns the value of attribute multipart_file_limit.
4671
4842
  # multipart_part_limit is the original name of multipart_file_limit, but
4672
4843
  # the limit only counts parts with filenames.
4673
4844
  #
4674
- # source://rack//lib/rack/utils.rb#64
4845
+ # source://rack//lib/rack/utils.rb#69
4675
4846
  def multipart_part_limit; end
4676
4847
 
4677
4848
  # Sets the attribute multipart_file_limit
4678
4849
  #
4679
4850
  # @param value the value to set the attribute multipart_file_limit to.
4680
4851
  #
4681
- # source://rack//lib/rack/utils.rb#64
4852
+ # source://rack//lib/rack/utils.rb#70
4682
4853
  def multipart_part_limit=(_arg0); end
4683
4854
 
4684
4855
  # Returns the value of attribute multipart_total_part_limit.
4685
4856
  #
4686
- # source://rack//lib/rack/utils.rb#62
4857
+ # source://rack//lib/rack/utils.rb#63
4687
4858
  def multipart_total_part_limit; end
4688
4859
 
4689
4860
  # Sets the attribute multipart_total_part_limit
4690
4861
  #
4691
4862
  # @param value the value to set the attribute multipart_total_part_limit to.
4692
4863
  #
4693
- # source://rack//lib/rack/utils.rb#62
4864
+ # source://rack//lib/rack/utils.rb#63
4694
4865
  def multipart_total_part_limit=(_arg0); end
4695
4866
 
4696
- # source://rack//lib/rack/utils.rb#81
4867
+ # source://rack//lib/rack/utils.rb#82
4697
4868
  def param_depth_limit; end
4698
4869
 
4699
- # source://rack//lib/rack/utils.rb#85
4870
+ # source://rack//lib/rack/utils.rb#86
4700
4871
  def param_depth_limit=(v); end
4701
4872
 
4702
4873
  # :call-seq:
@@ -4708,7 +4879,7 @@ module Rack::Utils
4708
4879
  # parse_cookies({'HTTP_COOKIE' => 'myname=myvalue'})
4709
4880
  # # => {'myname' => 'myvalue'}
4710
4881
  #
4711
- # source://rack//lib/rack/utils.rb#252
4882
+ # source://rack//lib/rack/utils.rb#257
4712
4883
  def parse_cookies(env); end
4713
4884
 
4714
4885
  # :call-seq:
@@ -4721,25 +4892,25 @@ module Rack::Utils
4721
4892
  # parse_cookies_header('myname=myvalue; max-age=0')
4722
4893
  # # => {"myname"=>"myvalue", "max-age"=>"0"}
4723
4894
  #
4724
- # source://rack//lib/rack/utils.rb#233
4895
+ # source://rack//lib/rack/utils.rb#238
4725
4896
  def parse_cookies_header(value); end
4726
4897
 
4727
- # source://rack//lib/rack/utils.rb#105
4898
+ # source://rack//lib/rack/utils.rb#106
4728
4899
  def parse_nested_query(qs, d = T.unsafe(nil)); end
4729
4900
 
4730
- # source://rack//lib/rack/utils.rb#101
4901
+ # source://rack//lib/rack/utils.rb#102
4731
4902
  def parse_query(qs, d = T.unsafe(nil), &unescaper); end
4732
4903
 
4733
- # source://rack//lib/rack/utils.rb#137
4904
+ # source://rack//lib/rack/utils.rb#138
4734
4905
  def q_values(q_value_header); end
4735
4906
 
4736
- # source://rack//lib/rack/utils.rb#401
4907
+ # source://rack//lib/rack/utils.rb#395
4737
4908
  def rfc2822(time); end
4738
4909
 
4739
- # source://rack//lib/rack/utils.rb#454
4910
+ # source://rack//lib/rack/utils.rb#448
4740
4911
  def secure_compare(a, b); end
4741
4912
 
4742
- # source://rack//lib/rack/utils.rb#191
4913
+ # source://rack//lib/rack/utils.rb#196
4743
4914
  def select_best_encoding(available_encodings, accept_encoding); end
4744
4915
 
4745
4916
  # :call-seq:
@@ -4747,7 +4918,8 @@ module Rack::Utils
4747
4918
  #
4748
4919
  # Generate an encoded string using the provided +key+ and +value+ suitable
4749
4920
  # for the +set-cookie+ header according to RFC6265. The +value+ may be an
4750
- # instance of either +String+ or +Hash+.
4921
+ # instance of either +String+ or +Hash+. If the cookie key is invalid (as
4922
+ # defined by RFC6265), an +ArgumentError+ will be raised.
4751
4923
  #
4752
4924
  # If the cookie +value+ is an instance of +Hash+, it considers the following
4753
4925
  # cookie attribute keys: +domain+, +max_age+, +expires+ (must be instance
@@ -4755,17 +4927,13 @@ module Rack::Utils
4755
4927
  # details about the interpretation of these fields, consult
4756
4928
  # [RFC6265 Section 5.2](https://datatracker.ietf.org/doc/html/rfc6265#section-5.2).
4757
4929
  #
4758
- # An extra cookie attribute +escape_key+ can be provided to control whether
4759
- # or not the cookie key is URL encoded. If explicitly set to +false+, the
4760
- # cookie key name will not be url encoded (escaped). The default is +true+.
4761
- #
4762
4930
  # set_cookie_header("myname", "myvalue")
4763
4931
  # # => "myname=myvalue"
4764
4932
  #
4765
4933
  # set_cookie_header("myname", {value: "myvalue", max_age: 10})
4766
4934
  # # => "myname=myvalue; max-age=10"
4767
4935
  #
4768
- # source://rack//lib/rack/utils.rb#293
4936
+ # source://rack//lib/rack/utils.rb#286
4769
4937
  def set_cookie_header(key, value); end
4770
4938
 
4771
4939
  # :call-seq:
@@ -4777,27 +4945,27 @@ module Rack::Utils
4777
4945
  # If the headers already contains a +set-cookie+ key, it will be converted
4778
4946
  # to an +Array+ if not already, and appended to.
4779
4947
  #
4780
- # source://rack//lib/rack/utils.rb#336
4948
+ # source://rack//lib/rack/utils.rb#330
4781
4949
  def set_cookie_header!(headers, key, value); end
4782
4950
 
4783
- # source://rack//lib/rack/utils.rb#588
4951
+ # source://rack//lib/rack/utils.rb#582
4784
4952
  def status_code(status); end
4785
4953
 
4786
4954
  # Unescapes a URI escaped string with +encoding+. +encoding+ will be the
4787
4955
  # target encoding of the string returned, and it defaults to UTF-8
4788
4956
  #
4789
- # source://rack//lib/rack/utils.rb#57
4957
+ # source://rack//lib/rack/utils.rb#58
4790
4958
  def unescape(s, encoding = T.unsafe(nil)); end
4791
4959
 
4792
4960
  # Unescapes the **path** component of a URI. See Rack::Utils.unescape for
4793
4961
  # unescaping query parameters or form components.
4794
4962
  #
4795
- # source://rack//lib/rack/utils.rb#51
4963
+ # source://rack//lib/rack/utils.rb#52
4796
4964
  def unescape_path(s); end
4797
4965
 
4798
4966
  # @return [Boolean]
4799
4967
  #
4800
- # source://rack//lib/rack/utils.rb#625
4968
+ # source://rack//lib/rack/utils.rb#617
4801
4969
  def valid_path?(path); end
4802
4970
  end
4803
4971
  end
@@ -4811,30 +4979,30 @@ Rack::Utils::COMMON_SEP = T.let(T.unsafe(nil), Hash)
4811
4979
  # would be the request environment. The second of which would be the rack
4812
4980
  # application that the request would be forwarded to.
4813
4981
  #
4814
- # source://rack//lib/rack/utils.rb#477
4982
+ # source://rack//lib/rack/utils.rb#471
4815
4983
  class Rack::Utils::Context
4816
4984
  # @return [Context] a new instance of Context
4817
4985
  #
4818
- # source://rack//lib/rack/utils.rb#480
4986
+ # source://rack//lib/rack/utils.rb#474
4819
4987
  def initialize(app_f, app_r); end
4820
4988
 
4821
4989
  # Returns the value of attribute app.
4822
4990
  #
4823
- # source://rack//lib/rack/utils.rb#478
4991
+ # source://rack//lib/rack/utils.rb#472
4824
4992
  def app; end
4825
4993
 
4826
- # source://rack//lib/rack/utils.rb#485
4994
+ # source://rack//lib/rack/utils.rb#479
4827
4995
  def call(env); end
4828
4996
 
4829
- # source://rack//lib/rack/utils.rb#493
4997
+ # source://rack//lib/rack/utils.rb#487
4830
4998
  def context(env, app = T.unsafe(nil)); end
4831
4999
 
4832
5000
  # Returns the value of attribute for.
4833
5001
  #
4834
- # source://rack//lib/rack/utils.rb#478
5002
+ # source://rack//lib/rack/utils.rb#472
4835
5003
  def for; end
4836
5004
 
4837
- # source://rack//lib/rack/utils.rb#489
5005
+ # source://rack//lib/rack/utils.rb#483
4838
5006
  def recontext(app); end
4839
5007
  end
4840
5008
 
@@ -4844,11 +5012,10 @@ Rack::Utils::DEFAULT_SEP = T.let(T.unsafe(nil), Regexp)
4844
5012
  # Every standard HTTP code mapped to the appropriate message.
4845
5013
  # Generated with:
4846
5014
  # curl -s https://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv \
4847
- # | ruby -rcsv -e "puts CSV.parse(STDIN, headers: true) \
4848
5015
  # .reject {|v| v['Description'] == 'Unassigned' or v['Description'].include? '(' } \
4849
5016
  # .map {|v| %Q/#{v['Value']} => '#{v['Description']}'/ }.join(','+?\n)"
4850
5017
  #
4851
- # source://rack//lib/rack/utils.rb#504
5018
+ # source://rack//lib/rack/utils.rb#498
4852
5019
  Rack::Utils::HTTP_STATUS_CODES = T.let(T.unsafe(nil), Hash)
4853
5020
 
4854
5021
  # source://rack//lib/rack/utils.rb#22
@@ -4857,34 +5024,40 @@ Rack::Utils::InvalidParameterError = Rack::QueryParser::InvalidParameterError
4857
5024
  # source://rack//lib/rack/utils.rb#26
4858
5025
  Rack::Utils::KeySpaceConstrainedParams = Rack::QueryParser::Params
4859
5026
 
4860
- # source://rack//lib/rack/utils.rb#623
5027
+ # source://rack//lib/rack/utils.rb#615
4861
5028
  Rack::Utils::NULL_BYTE = T.let(T.unsafe(nil), String)
4862
5029
 
4863
- # source://rack//lib/rack/utils.rb#574
5030
+ # source://rack//lib/rack/utils.rb#568
4864
5031
  Rack::Utils::OBSOLETE_SYMBOLS_TO_STATUS_CODES = T.let(T.unsafe(nil), Hash)
4865
5032
 
4866
- # source://rack//lib/rack/utils.rb#582
5033
+ # source://rack//lib/rack/utils.rb#576
4867
5034
  Rack::Utils::OBSOLETE_SYMBOL_MAPPINGS = T.let(T.unsafe(nil), Hash)
4868
5035
 
4869
- # source://rack//lib/rack/utils.rb#606
5036
+ # source://rack//lib/rack/utils.rb#598
4870
5037
  Rack::Utils::PATH_SEPS = T.let(T.unsafe(nil), Regexp)
4871
5038
 
4872
5039
  # source://rack//lib/rack/utils.rb#21
4873
5040
  Rack::Utils::ParameterTypeError = Rack::QueryParser::ParameterTypeError
4874
5041
 
4875
5042
  # source://rack//lib/rack/utils.rb#23
4876
- Rack::Utils::ParamsTooDeepError = Rack::QueryParser::ParamsTooDeepError
5043
+ Rack::Utils::ParamsTooDeepError = Rack::QueryParser::QueryLimitError
4877
5044
 
4878
5045
  # Responses with HTTP status codes that should not have an entity body
4879
5046
  #
4880
- # source://rack//lib/rack/utils.rb#568
5047
+ # source://rack//lib/rack/utils.rb#562
4881
5048
  Rack::Utils::STATUS_WITH_NO_ENTITY_BODY = T.let(T.unsafe(nil), Hash)
4882
5049
 
4883
- # source://rack//lib/rack/utils.rb#570
5050
+ # source://rack//lib/rack/utils.rb#564
4884
5051
  Rack::Utils::SYMBOL_TO_STATUS_CODE = T.let(T.unsafe(nil), Hash)
4885
5052
 
4886
- # A valid cookie key according to RFC2616.
5053
+ # source://rack//lib/rack/utils.rb#27
5054
+ Rack::Utils::URI_PARSER = T.let(T.unsafe(nil), URI::RFC2396_Parser)
5055
+
5056
+ # A valid cookie key according to RFC6265 and RFC2616.
4887
5057
  # A <cookie-name> can be any US-ASCII characters, except control characters, spaces, or tabs. It also must not contain a separator character like the following: ( ) < > @ , ; : \ " / [ ] ? = { }.
4888
5058
  #
4889
- # source://rack//lib/rack/utils.rb#258
5059
+ # source://rack//lib/rack/utils.rb#263
4890
5060
  Rack::Utils::VALID_COOKIE_KEY = T.let(T.unsafe(nil), Regexp)
5061
+
5062
+ # source://rack//lib/rack/version.rb#9
5063
+ Rack::VERSION = T.let(T.unsafe(nil), String)