lunchmoney 1.4.1 → 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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build_and_publish_yard_docs.yml +2 -2
  3. data/.github/workflows/ci.yml +9 -10
  4. data/.github/workflows/rbi-updater.yml +1 -1
  5. data/.github/workflows/release_pipeline.yml +1 -1
  6. data/.rubocop.yml +1 -1
  7. data/.ruby-version +1 -1
  8. data/.toys/.toys.rb +8 -0
  9. data/Gemfile +1 -1
  10. data/Gemfile.lock +76 -60
  11. data/README.md +0 -2
  12. data/SECURITY.md +151 -0
  13. data/bin/check_vcr_version +94 -0
  14. data/lib/lunchmoney/api.rb +25 -38
  15. data/lib/lunchmoney/calls/assets.rb +10 -13
  16. data/lib/lunchmoney/calls/base.rb +59 -7
  17. data/lib/lunchmoney/calls/budgets.rb +22 -25
  18. data/lib/lunchmoney/calls/categories.rb +28 -36
  19. data/lib/lunchmoney/calls/crypto.rb +7 -9
  20. data/lib/lunchmoney/calls/plaid_accounts.rb +7 -9
  21. data/lib/lunchmoney/calls/recurring_expenses.rb +4 -5
  22. data/lib/lunchmoney/calls/tags.rb +3 -4
  23. data/lib/lunchmoney/calls/transactions.rb +28 -36
  24. data/lib/lunchmoney/calls/users.rb +3 -4
  25. data/lib/lunchmoney/configuration.rb +20 -0
  26. data/lib/lunchmoney/objects/object.rb +4 -9
  27. data/lib/lunchmoney/validators.rb +8 -6
  28. data/lib/lunchmoney/version.rb +1 -1
  29. data/lib/lunchmoney.rb +3 -3
  30. data/lunchmoney.gemspec +1 -1
  31. data/sorbet/rbi/annotations/activesupport.rbi +35 -0
  32. data/sorbet/rbi/dsl/active_support/callbacks.rbi +0 -2
  33. data/sorbet/rbi/gems/{activesupport@7.2.2.1.rbi → activesupport@8.0.2.1.rbi} +1369 -989
  34. data/sorbet/rbi/gems/{ast@2.4.2.rbi → ast@2.4.3.rbi} +4 -3
  35. data/sorbet/rbi/gems/{base64@0.2.0.rbi → base64@0.3.0.rbi} +76 -39
  36. data/sorbet/rbi/gems/{benchmark@0.4.0.rbi → benchmark@0.4.1.rbi} +50 -49
  37. data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +275 -0
  38. data/sorbet/rbi/gems/{dotenv@3.1.7.rbi → dotenv@3.1.8.rbi} +9 -9
  39. data/sorbet/rbi/gems/{drb@2.2.1.rbi → drb@2.2.3.rbi} +503 -188
  40. data/sorbet/rbi/gems/{faraday-net_http@3.4.0.rbi → faraday-net_http@3.4.1.rbi} +23 -23
  41. data/sorbet/rbi/gems/{faraday@2.12.2.rbi → faraday@2.13.4.rbi} +468 -141
  42. data/sorbet/rbi/gems/{hashdiff@1.1.2.rbi → hashdiff@1.2.0.rbi} +5 -3
  43. data/sorbet/rbi/gems/{json@2.10.2.rbi → json@2.13.2.rbi} +386 -175
  44. data/sorbet/rbi/gems/{kramdown@2.4.0.rbi → kramdown@2.5.1.rbi} +316 -234
  45. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +240 -0
  46. data/sorbet/rbi/gems/{logger@1.6.6.rbi → logger@1.7.0.rbi} +63 -40
  47. data/sorbet/rbi/gems/{parser@3.3.7.1.rbi → parser@3.3.9.0.rbi} +303 -291
  48. data/sorbet/rbi/gems/{rack@3.1.9.rbi → rack@3.2.1.rbi} +712 -547
  49. data/sorbet/rbi/gems/{rake@13.2.1.rbi → rake@13.3.0.rbi} +238 -227
  50. data/sorbet/rbi/gems/{rbi@0.3.1.rbi → rbi@0.3.6.rbi} +1084 -2521
  51. data/sorbet/rbi/gems/{rbs@3.9.0.rbi → rbs@4.0.0.dev.4.rbi} +1336 -419
  52. data/sorbet/rbi/gems/{regexp_parser@2.10.0.rbi → regexp_parser@2.11.2.rbi} +1044 -956
  53. data/sorbet/rbi/gems/require-hooks@0.2.2.rbi +110 -0
  54. data/sorbet/rbi/gems/{rexml@3.4.1.rbi → rexml@3.4.2.rbi} +302 -292
  55. data/sorbet/rbi/gems/{rubocop-ast@1.38.0.rbi → rubocop-ast@1.46.0.rbi} +802 -1016
  56. data/sorbet/rbi/gems/{rubocop-minitest@0.36.0.rbi → rubocop-minitest@0.38.2.rbi} +129 -93
  57. data/sorbet/rbi/gems/{rubocop-rails@2.29.1.rbi → rubocop-rails@2.33.3.rbi} +575 -230
  58. data/sorbet/rbi/gems/{rubocop-shopify@2.15.1.rbi → rubocop-shopify@2.17.1.rbi} +1 -0
  59. data/sorbet/rbi/gems/{rubocop-sorbet@0.8.7.rbi → rubocop-sorbet@0.10.5.rbi} +761 -83
  60. data/sorbet/rbi/gems/{rubocop@1.71.2.rbi → rubocop@1.80.1.rbi} +6543 -3097
  61. data/sorbet/rbi/gems/{spoom@1.6.1.rbi → spoom@1.7.6.rbi} +1179 -2621
  62. data/sorbet/rbi/gems/{tapioca@0.16.11.rbi → tapioca@0.17.7.rbi} +623 -745
  63. data/sorbet/rbi/gems/{thor@1.3.2.rbi → thor@1.4.0.rbi} +88 -67
  64. data/sorbet/rbi/gems/{unicode-display_width@3.1.4.rbi → unicode-display_width@3.1.5.rbi} +5 -5
  65. data/sorbet/rbi/gems/{vcr@6.3.1.rbi → vcr@6.3.1-ce35c236fe48899f02ddf780973b44cdb756c0ee.rbi} +140 -123
  66. metadata +42 -38
  67. data/sorbet/rbi/gems/bigdecimal@3.1.9.rbi +0 -78
  68. /data/sorbet/rbi/gems/{connection_pool@2.5.0.rbi → connection_pool@2.5.3.rbi} +0 -0
  69. /data/sorbet/rbi/gems/{language_server-protocol@3.17.0.4.rbi → language_server-protocol@3.17.0.5.rbi} +0 -0
  70. /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
1333
+ #
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.
1336
1335
  #
1337
- # This specification aims to formalize the Rack protocol. You
1338
- # can (and should) use Rack::Lint to enforce it.
1336
+ # == The Application
1339
1337
  #
1340
- # When you develop middleware, be sure to add a Lint before and
1341
- # after to catch all mistakes.
1338
+ # A Rack application is a Ruby object that responds to +call+. \
1342
1339
  #
1343
- # = Rack applications
1340
+ # @raise [LintError]
1341
+ # @return [Lint] a new instance of Lint
1344
1342
  #
1345
- # A Rack application is a Ruby object (not a class) that
1346
- # responds to +call+.
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
1347
  #
1348
- # source://rack//lib/rack/lint.rb#40
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.
1439
- #
1440
- # It is intended to be used when applications need access to raw HTTP/1
1441
- # connection.
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.
1442
1447
  #
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.
1451
- #
1452
- # It is intended to be used when applications need bi-directional
1453
- # streaming.
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.
1454
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.
1623
- #
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.
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+.
1626
1600
  #
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
@@ -1722,7 +1676,7 @@ class Rack::MediaType
1722
1676
  # and "text/plain;charset" will return { 'charset' => '' }, similarly to
1723
1677
  # the query params parser (barring the latter case, which returns nil instead)).
1724
1678
  #
1725
- # source://rack//lib/rack/media_type.rb#35
1679
+ # source://rack//lib/rack/media_type.rb#34
1726
1680
  def params(content_type); end
1727
1681
 
1728
1682
  # The media type (type/subtype) portion of the CONTENT_TYPE header
@@ -1737,7 +1691,7 @@ class Rack::MediaType
1737
1691
 
1738
1692
  private
1739
1693
 
1740
- # source://rack//lib/rack/media_type.rb#48
1694
+ # source://rack//lib/rack/media_type.rb#47
1741
1695
  def strip_doublequotes(str); end
1742
1696
  end
1743
1697
  end
@@ -1821,7 +1775,7 @@ module Rack::Mime
1821
1775
  #
1822
1776
  # @return [Boolean]
1823
1777
  #
1824
- # source://rack//lib/rack/mime.rb#30
1778
+ # source://rack//lib/rack/mime.rb#36
1825
1779
  def match?(value, matcher); end
1826
1780
 
1827
1781
  # Returns String with mime type if found, otherwise use +fallback+.
@@ -1837,7 +1791,7 @@ module Rack::Mime
1837
1791
  # This is a shortcut for:
1838
1792
  # Rack::Mime::MIME_TYPES.fetch('.foo', 'application/octet-stream')
1839
1793
  #
1840
- # source://rack//lib/rack/mime.rb#18
1794
+ # source://rack//lib/rack/mime.rb#21
1841
1795
  def mime_type(ext, fallback = T.unsafe(nil)); end
1842
1796
  end
1843
1797
  end
@@ -1968,63 +1922,114 @@ class Rack::MockRequest::FatalWarning < ::RuntimeError; end
1968
1922
  # Usually, you don't create the MockResponse on your own, but use
1969
1923
  # MockRequest.
1970
1924
  #
1971
- # source://rack//lib/rack/mock_response.rb#13
1925
+ # source://rack//lib/rack/mock_response.rb#12
1972
1926
  class Rack::MockResponse < ::Rack::Response
1973
1927
  # @return [MockResponse] a new instance of MockResponse
1974
1928
  #
1975
- # source://rack//lib/rack/mock_response.rb#24
1929
+ # source://rack//lib/rack/mock_response.rb#47
1976
1930
  def initialize(status, headers, body, errors = T.unsafe(nil)); end
1977
1931
 
1978
- # source://rack//lib/rack/mock_response.rb#39
1932
+ # source://rack//lib/rack/mock_response.rb#62
1979
1933
  def =~(other); end
1980
1934
 
1981
- # source://rack//lib/rack/mock_response.rb#47
1935
+ # source://rack//lib/rack/mock_response.rb#70
1982
1936
  def body; end
1983
1937
 
1984
- # source://rack//lib/rack/mock_response.rb#73
1938
+ # source://rack//lib/rack/mock_response.rb#96
1985
1939
  def cookie(name); end
1986
1940
 
1987
1941
  # Headers
1988
1942
  #
1989
- # source://rack//lib/rack/mock_response.rb#19
1943
+ # source://rack//lib/rack/mock_response.rb#42
1990
1944
  def cookies; end
1991
1945
 
1992
1946
  # @return [Boolean]
1993
1947
  #
1994
- # source://rack//lib/rack/mock_response.rb#69
1948
+ # source://rack//lib/rack/mock_response.rb#92
1995
1949
  def empty?; end
1996
1950
 
1997
1951
  # Errors
1998
1952
  #
1999
- # source://rack//lib/rack/mock_response.rb#22
1953
+ # source://rack//lib/rack/mock_response.rb#45
2000
1954
  def errors; end
2001
1955
 
2002
1956
  # Errors
2003
1957
  #
2004
- # source://rack//lib/rack/mock_response.rb#22
1958
+ # source://rack//lib/rack/mock_response.rb#45
2005
1959
  def errors=(_arg0); end
2006
1960
 
2007
- # source://rack//lib/rack/mock_response.rb#43
1961
+ # source://rack//lib/rack/mock_response.rb#66
2008
1962
  def match(other); end
2009
1963
 
2010
1964
  # Headers
2011
1965
  #
2012
- # source://rack//lib/rack/mock_response.rb#19
1966
+ # source://rack//lib/rack/mock_response.rb#42
2013
1967
  def original_headers; end
2014
1968
 
2015
1969
  private
2016
1970
 
2017
- # source://rack//lib/rack/mock_response.rb#100
1971
+ # source://rack//lib/rack/mock_response.rb#123
2018
1972
  def identify_cookie_attributes(cookie_filling); end
2019
1973
 
2020
- # source://rack//lib/rack/mock_response.rb#79
1974
+ # source://rack//lib/rack/mock_response.rb#102
2021
1975
  def parse_cookies_from_header; end
2022
1976
 
2023
1977
  class << self
1978
+ # source://rack//lib/rack/mock_response.rb#38
2024
1979
  def [](*_arg0); end
2025
1980
  end
2026
1981
  end
2027
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
+
2028
2033
  # A multipart form data parser, adapted from IOWA.
2029
2034
  #
2030
2035
  # Usually, Rack::Request#POST takes care of calling this.
@@ -2067,6 +2072,11 @@ end
2067
2072
  # source://rack//lib/rack/multipart/parser.rb#31
2068
2073
  Rack::Multipart::Error = Rack::Multipart::BoundaryTooLongError
2069
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
+
2070
2080
  # source://rack//lib/rack/multipart/generator.rb#7
2071
2081
  class Rack::Multipart::Generator
2072
2082
  # @return [Generator] a new instance of Generator
@@ -2094,19 +2104,24 @@ class Rack::Multipart::Generator
2094
2104
  def multipart?; end
2095
2105
  end
2096
2106
 
2097
- # 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
2098
2113
  Rack::Multipart::MULTIPART = T.let(T.unsafe(nil), Regexp)
2099
2114
 
2100
2115
  # source://rack//lib/rack/multipart.rb#16
2101
2116
  Rack::Multipart::MULTIPART_BOUNDARY = T.let(T.unsafe(nil), String)
2102
2117
 
2103
- # source://rack//lib/rack/multipart/parser.rb#36
2118
+ # source://rack//lib/rack/multipart/parser.rb#38
2104
2119
  Rack::Multipart::MULTIPART_CONTENT_DISPOSITION = T.let(T.unsafe(nil), Regexp)
2105
2120
 
2106
- # source://rack//lib/rack/multipart/parser.rb#37
2121
+ # source://rack//lib/rack/multipart/parser.rb#39
2107
2122
  Rack::Multipart::MULTIPART_CONTENT_ID = T.let(T.unsafe(nil), Regexp)
2108
2123
 
2109
- # source://rack//lib/rack/multipart/parser.rb#35
2124
+ # source://rack//lib/rack/multipart/parser.rb#37
2110
2125
  Rack::Multipart::MULTIPART_CONTENT_TYPE = T.let(T.unsafe(nil), Regexp)
2111
2126
 
2112
2127
  # source://rack//lib/rack/multipart.rb#18
@@ -2150,22 +2165,35 @@ class Rack::Multipart::ParamList
2150
2165
  end
2151
2166
  end
2152
2167
 
2153
- # 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
2154
2182
  class Rack::Multipart::Parser
2155
2183
  # @return [Parser] a new instance of Parser
2156
2184
  #
2157
- # source://rack//lib/rack/multipart/parser.rb#200
2185
+ # source://rack//lib/rack/multipart/parser.rb#214
2158
2186
  def initialize(boundary, tempfile, bufsize, query_parser); end
2159
2187
 
2160
- # source://rack//lib/rack/multipart/parser.rb#217
2188
+ # source://rack//lib/rack/multipart/parser.rb#231
2161
2189
  def parse(io); end
2162
2190
 
2163
- # source://rack//lib/rack/multipart/parser.rb#240
2191
+ # source://rack//lib/rack/multipart/parser.rb#254
2164
2192
  def result; end
2165
2193
 
2166
2194
  # Returns the value of attribute state.
2167
2195
  #
2168
- # source://rack//lib/rack/multipart/parser.rb#198
2196
+ # source://rack//lib/rack/multipart/parser.rb#212
2169
2197
  def state; end
2170
2198
 
2171
2199
  private
@@ -2175,25 +2203,23 @@ class Rack::Multipart::Parser
2175
2203
  # end of the boundary. If we don't find the start or end of the
2176
2204
  # boundary, clear the buffer and return nil.
2177
2205
  #
2178
- # source://rack//lib/rack/multipart/parser.rb#434
2206
+ # source://rack//lib/rack/multipart/parser.rb#443
2179
2207
  def consume_boundary; end
2180
2208
 
2181
- # From WEBrick::HTTPUtils
2182
- #
2183
- # source://rack//lib/rack/multipart/parser.rb#252
2184
- def dequote(str); end
2185
-
2186
2209
  # Return the related Encoding object. However, because
2187
2210
  # enc is submitted by the user, it may be invalid, so
2188
2211
  # use a binary encoding in that case.
2189
2212
  #
2190
- # source://rack//lib/rack/multipart/parser.rb#489
2213
+ # source://rack//lib/rack/multipart/parser.rb#498
2191
2214
  def find_encoding(enc); end
2192
2215
 
2193
- # source://rack//lib/rack/multipart/parser.rb#294
2216
+ # source://rack//lib/rack/multipart/parser.rb#303
2194
2217
  def handle_consume_token; end
2195
2218
 
2196
- # 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
2197
2223
  def handle_empty_content!(content); end
2198
2224
 
2199
2225
  # This handles the initial parser state. We read until we find the starting
@@ -2204,190 +2230,258 @@ class Rack::Multipart::Parser
2204
2230
  # boundary. The client would have to deliberately craft a response
2205
2231
  # with the opening boundary beyond the buffer size for that to happen.
2206
2232
  #
2207
- # source://rack//lib/rack/multipart/parser.rb#271
2233
+ # source://rack//lib/rack/multipart/parser.rb#280
2208
2234
  def handle_fast_forward; end
2209
2235
 
2210
- # source://rack//lib/rack/multipart/parser.rb#411
2236
+ # source://rack//lib/rack/multipart/parser.rb#420
2211
2237
  def handle_mime_body; end
2212
2238
 
2213
- # source://rack//lib/rack/multipart/parser.rb#306
2239
+ # source://rack//lib/rack/multipart/parser.rb#315
2214
2240
  def handle_mime_head; end
2215
2241
 
2216
- # source://rack//lib/rack/multipart/parser.rb#443
2242
+ # source://rack//lib/rack/multipart/parser.rb#452
2217
2243
  def normalize_filename(filename); end
2218
2244
 
2219
- # source://rack//lib/rack/multipart/parser.rb#258
2245
+ # source://rack//lib/rack/multipart/parser.rb#267
2220
2246
  def read_data(io, outbuf); end
2221
2247
 
2222
- # source://rack//lib/rack/multipart/parser.rb#456
2248
+ # source://rack//lib/rack/multipart/parser.rb#465
2223
2249
  def tag_multipart_encoding(filename, content_type, name, body); end
2224
2250
 
2225
2251
  class << self
2226
- # source://rack//lib/rack/multipart/parser.rb#87
2252
+ # source://rack//lib/rack/multipart/parser.rb#101
2227
2253
  def parse(io, content_length, content_type, tmpfile, bufsize, qp); end
2228
2254
 
2229
- # source://rack//lib/rack/multipart/parser.rb#80
2255
+ # source://rack//lib/rack/multipart/parser.rb#94
2230
2256
  def parse_boundary(content_type); end
2231
2257
  end
2232
2258
  end
2233
2259
 
2234
- # source://rack//lib/rack/multipart/parser.rb#40
2260
+ # source://rack//lib/rack/multipart/parser.rb#54
2235
2261
  Rack::Multipart::Parser::BUFSIZE = T.let(T.unsafe(nil), Integer)
2236
2262
 
2237
- # source://rack//lib/rack/multipart/parser.rb#48
2263
+ # source://rack//lib/rack/multipart/parser.rb#62
2238
2264
  class Rack::Multipart::Parser::BoundedIO
2239
2265
  # @return [BoundedIO] a new instance of BoundedIO
2240
2266
  #
2241
- # source://rack//lib/rack/multipart/parser.rb#49
2267
+ # source://rack//lib/rack/multipart/parser.rb#63
2242
2268
  def initialize(io, content_length); end
2243
2269
 
2244
- # source://rack//lib/rack/multipart/parser.rb#55
2270
+ # source://rack//lib/rack/multipart/parser.rb#69
2245
2271
  def read(size, outbuf = T.unsafe(nil)); end
2246
2272
  end
2247
2273
 
2248
- # source://rack//lib/rack/multipart/parser.rb#453
2274
+ # source://rack//lib/rack/multipart/parser.rb#462
2249
2275
  Rack::Multipart::Parser::CHARSET = T.let(T.unsafe(nil), String)
2250
2276
 
2251
- # source://rack//lib/rack/multipart/parser.rb#305
2277
+ # source://rack//lib/rack/multipart/parser.rb#314
2252
2278
  Rack::Multipart::Parser::CONTENT_DISPOSITION_MAX_BYTES = T.let(T.unsafe(nil), Integer)
2253
2279
 
2254
- # source://rack//lib/rack/multipart/parser.rb#304
2280
+ # source://rack//lib/rack/multipart/parser.rb#313
2255
2281
  Rack::Multipart::Parser::CONTENT_DISPOSITION_MAX_PARAMS = T.let(T.unsafe(nil), Integer)
2256
2282
 
2257
- # source://rack//lib/rack/multipart/parser.rb#107
2283
+ # source://rack//lib/rack/multipart/parser.rb#121
2258
2284
  class Rack::Multipart::Parser::Collector
2259
2285
  include ::Enumerable
2260
2286
 
2261
2287
  # @return [Collector] a new instance of Collector
2262
2288
  #
2263
- # source://rack//lib/rack/multipart/parser.rb#143
2289
+ # source://rack//lib/rack/multipart/parser.rb#157
2264
2290
  def initialize(tempfile); end
2265
2291
 
2266
- # source://rack//lib/rack/multipart/parser.rb#149
2292
+ # source://rack//lib/rack/multipart/parser.rb#163
2267
2293
  def each; end
2268
2294
 
2269
- # source://rack//lib/rack/multipart/parser.rb#169
2295
+ # source://rack//lib/rack/multipart/parser.rb#183
2270
2296
  def on_mime_body(mime_index, content); end
2271
2297
 
2272
- # source://rack//lib/rack/multipart/parser.rb#173
2298
+ # source://rack//lib/rack/multipart/parser.rb#187
2273
2299
  def on_mime_finish(mime_index); end
2274
2300
 
2275
- # source://rack//lib/rack/multipart/parser.rb#153
2301
+ # source://rack//lib/rack/multipart/parser.rb#167
2276
2302
  def on_mime_head(mime_index, head, filename, content_type, name); end
2277
2303
 
2278
2304
  private
2279
2305
 
2280
- # source://rack//lib/rack/multipart/parser.rb#178
2306
+ # source://rack//lib/rack/multipart/parser.rb#192
2281
2307
  def check_part_limits; end
2282
2308
  end
2283
2309
 
2284
- # source://rack//lib/rack/multipart/parser.rb#131
2310
+ # source://rack//lib/rack/multipart/parser.rb#145
2285
2311
  class Rack::Multipart::Parser::Collector::BufferPart < ::Rack::Multipart::Parser::Collector::MimePart
2286
- # source://rack//lib/rack/multipart/parser.rb#133
2312
+ # source://rack//lib/rack/multipart/parser.rb#147
2287
2313
  def close; end
2288
2314
 
2289
2315
  # @return [Boolean]
2290
2316
  #
2291
- # source://rack//lib/rack/multipart/parser.rb#132
2317
+ # source://rack//lib/rack/multipart/parser.rb#146
2292
2318
  def file?; end
2293
2319
  end
2294
2320
 
2295
- # source://rack//lib/rack/multipart/parser.rb#108
2321
+ # source://rack//lib/rack/multipart/parser.rb#122
2296
2322
  class Rack::Multipart::Parser::Collector::MimePart < ::Struct
2297
2323
  # @yield [data]
2298
2324
  #
2299
- # source://rack//lib/rack/multipart/parser.rb#109
2325
+ # source://rack//lib/rack/multipart/parser.rb#123
2300
2326
  def get_data; end
2301
2327
  end
2302
2328
 
2303
- # source://rack//lib/rack/multipart/parser.rb#136
2329
+ # source://rack//lib/rack/multipart/parser.rb#150
2304
2330
  class Rack::Multipart::Parser::Collector::TempfilePart < ::Rack::Multipart::Parser::Collector::MimePart
2305
- # source://rack//lib/rack/multipart/parser.rb#138
2331
+ # source://rack//lib/rack/multipart/parser.rb#152
2306
2332
  def close; end
2307
2333
 
2308
2334
  # @return [Boolean]
2309
2335
  #
2310
- # source://rack//lib/rack/multipart/parser.rb#137
2336
+ # source://rack//lib/rack/multipart/parser.rb#151
2311
2337
  def file?; end
2312
2338
  end
2313
2339
 
2314
- # source://rack//lib/rack/multipart/parser.rb#78
2340
+ # source://rack//lib/rack/multipart/parser.rb#92
2315
2341
  Rack::Multipart::Parser::EMPTY = T.let(T.unsafe(nil), Rack::Multipart::Parser::MultipartInfo)
2316
2342
 
2317
- # source://rack//lib/rack/multipart/parser.rb#77
2343
+ # source://rack//lib/rack/multipart/parser.rb#91
2318
2344
  class Rack::Multipart::Parser::MultipartInfo < ::Struct
2319
2345
  # Returns the value of attribute params
2320
2346
  #
2321
2347
  # @return [Object] the current value of params
2348
+ #
2349
+ # source://rack//lib/rack/multipart/parser.rb#91
2322
2350
  def params; end
2323
2351
 
2324
2352
  # Sets the attribute params
2325
2353
  #
2326
2354
  # @param value [Object] the value to set the attribute params to.
2327
2355
  # @return [Object] the newly set value
2356
+ #
2357
+ # source://rack//lib/rack/multipart/parser.rb#91
2328
2358
  def params=(_); end
2329
2359
 
2330
2360
  # Returns the value of attribute tmp_files
2331
2361
  #
2332
2362
  # @return [Object] the current value of tmp_files
2363
+ #
2364
+ # source://rack//lib/rack/multipart/parser.rb#91
2333
2365
  def tmp_files; end
2334
2366
 
2335
2367
  # Sets the attribute tmp_files
2336
2368
  #
2337
2369
  # @param value [Object] the value to set the attribute tmp_files to.
2338
2370
  # @return [Object] the newly set value
2371
+ #
2372
+ # source://rack//lib/rack/multipart/parser.rb#91
2339
2373
  def tmp_files=(_); end
2340
2374
 
2341
2375
  class << self
2376
+ # source://rack//lib/rack/multipart/parser.rb#91
2342
2377
  def [](*_arg0); end
2378
+
2379
+ # source://rack//lib/rack/multipart/parser.rb#91
2343
2380
  def inspect; end
2381
+
2382
+ # source://rack//lib/rack/multipart/parser.rb#91
2344
2383
  def keyword_init?; end
2384
+
2385
+ # source://rack//lib/rack/multipart/parser.rb#91
2345
2386
  def members; end
2387
+
2388
+ # source://rack//lib/rack/multipart/parser.rb#91
2346
2389
  def new(*_arg0); end
2347
2390
  end
2348
2391
  end
2349
2392
 
2350
- # 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
2351
2397
  Rack::Multipart::Parser::TEMPFILE_FACTORY = T.let(T.unsafe(nil), Proc)
2352
2398
 
2353
- # source://rack//lib/rack/multipart/parser.rb#41
2399
+ # source://rack//lib/rack/multipart/parser.rb#55
2354
2400
  Rack::Multipart::Parser::TEXT_PLAIN = T.let(T.unsafe(nil), String)
2355
2401
 
2356
- # 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
2357
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
+ #
2358
2438
  # @return [UploadedFile] a new instance of UploadedFile
2359
2439
  #
2360
- # source://rack//lib/rack/multipart/uploaded_file.rb#16
2440
+ # source://rack//lib/rack/multipart/uploaded_file.rb#49
2361
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
2362
2442
 
2363
- # The content type of the "uploaded" file
2443
+ # The content type of the instance.
2364
2444
  #
2365
- # source://rack//lib/rack/multipart/uploaded_file.rb#14
2445
+ # source://rack//lib/rack/multipart/uploaded_file.rb#26
2366
2446
  def content_type; end
2367
2447
 
2368
- # The content type of the "uploaded" file
2448
+ # The content type of the instance.
2369
2449
  #
2370
- # source://rack//lib/rack/multipart/uploaded_file.rb#14
2450
+ # source://rack//lib/rack/multipart/uploaded_file.rb#26
2371
2451
  def content_type=(_arg0); end
2372
2452
 
2373
- # 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
2374
2457
  def local_path; end
2375
2458
 
2376
- # 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
2377
2462
  def method_missing(method_name, *args, &block); end
2378
2463
 
2379
- # 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.
2380
2467
  #
2381
- # source://rack//lib/rack/multipart/uploaded_file.rb#11
2468
+ # source://rack//lib/rack/multipart/uploaded_file.rb#23
2382
2469
  def original_filename; end
2383
2470
 
2384
- # 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
2385
2475
  def path; end
2386
2476
 
2477
+ private
2478
+
2479
+ # Return true if the tempfile responds to the method.
2480
+ #
2387
2481
  # @return [Boolean]
2388
2482
  #
2389
- # source://rack//lib/rack/multipart/uploaded_file.rb#36
2390
- def respond_to?(*args); end
2483
+ # source://rack//lib/rack/multipart/uploaded_file.rb#72
2484
+ def respond_to_missing?(*args); end
2391
2485
  end
2392
2486
 
2393
2487
  # source://rack//lib/rack/null_logger.rb#6
@@ -2526,13 +2620,13 @@ Rack::QUERY_STRING = T.let(T.unsafe(nil), String)
2526
2620
  class Rack::QueryParser
2527
2621
  # @return [QueryParser] a new instance of QueryParser
2528
2622
  #
2529
- # source://rack//lib/rack/query_parser.rb#36
2530
- 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
2531
2625
 
2532
- # source://rack//lib/rack/query_parser.rb#166
2626
+ # source://rack//lib/rack/query_parser.rb#194
2533
2627
  def make_params; end
2534
2628
 
2535
- # source://rack//lib/rack/query_parser.rb#170
2629
+ # source://rack//lib/rack/query_parser.rb#198
2536
2630
  def new_depth_limit(param_depth_limit); end
2537
2631
 
2538
2632
  # normalize_params recursively expands parameters into structural types. If
@@ -2541,12 +2635,12 @@ class Rack::QueryParser
2541
2635
  # and should no longer be used, it is kept for backwards compatibility with
2542
2636
  # earlier versions of rack.
2543
2637
  #
2544
- # source://rack//lib/rack/query_parser.rb#94
2638
+ # source://rack//lib/rack/query_parser.rb#122
2545
2639
  def normalize_params(params, name, v, _depth = T.unsafe(nil)); end
2546
2640
 
2547
2641
  # Returns the value of attribute param_depth_limit.
2548
2642
  #
2549
- # source://rack//lib/rack/query_parser.rb#34
2643
+ # source://rack//lib/rack/query_parser.rb#40
2550
2644
  def param_depth_limit; end
2551
2645
 
2552
2646
  # parse_nested_query expands a query string into structural types. Supported
@@ -2555,7 +2649,7 @@ class Rack::QueryParser
2555
2649
  # ParameterTypeError is raised. Users are encouraged to return a 400 in this
2556
2650
  # case.
2557
2651
  #
2558
- # source://rack//lib/rack/query_parser.rb#73
2652
+ # source://rack//lib/rack/query_parser.rb#107
2559
2653
  def parse_nested_query(qs, separator = T.unsafe(nil)); end
2560
2654
 
2561
2655
  # Stolen from Mongrel, with some small modifications:
@@ -2563,35 +2657,48 @@ class Rack::QueryParser
2563
2657
  # to parse cookies by changing the characters used in the second parameter
2564
2658
  # (which defaults to '&').
2565
2659
  #
2566
- # source://rack//lib/rack/query_parser.rb#45
2660
+ # source://rack//lib/rack/query_parser.rb#71
2567
2661
  def parse_query(qs, separator = T.unsafe(nil), &unescaper); end
2568
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
+
2569
2670
  private
2570
2671
 
2571
2672
  # @raise [ParamsTooDeepError]
2572
2673
  #
2573
- # source://rack//lib/rack/query_parser.rb#98
2674
+ # source://rack//lib/rack/query_parser.rb#126
2574
2675
  def _normalize_params(params, name, v, depth); end
2575
2676
 
2677
+ # source://rack//lib/rack/query_parser.rb#220
2678
+ def each_query_pair(qs, separator, unescaper = T.unsafe(nil)); end
2679
+
2576
2680
  # @return [Boolean]
2577
2681
  #
2578
- # source://rack//lib/rack/query_parser.rb#180
2682
+ # source://rack//lib/rack/query_parser.rb#208
2579
2683
  def params_hash_has_key?(hash, key); end
2580
2684
 
2581
2685
  # @return [Boolean]
2582
2686
  #
2583
- # source://rack//lib/rack/query_parser.rb#176
2687
+ # source://rack//lib/rack/query_parser.rb#204
2584
2688
  def params_hash_type?(obj); end
2585
2689
 
2586
- # source://rack//lib/rack/query_parser.rb#192
2690
+ # source://rack//lib/rack/query_parser.rb#251
2587
2691
  def unescape(string, encoding = T.unsafe(nil)); end
2588
2692
 
2589
2693
  class << self
2590
- # source://rack//lib/rack/query_parser.rb#30
2591
- 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
2592
2696
  end
2593
2697
  end
2594
2698
 
2699
+ # source://rack//lib/rack/query_parser.rb#54
2700
+ Rack::QueryParser::BYTESIZE_LIMIT = T.let(T.unsafe(nil), Integer)
2701
+
2595
2702
  # source://rack//lib/rack/query_parser.rb#9
2596
2703
  Rack::QueryParser::COMMON_SEP = T.let(T.unsafe(nil), Hash)
2597
2704
 
@@ -2607,6 +2714,9 @@ class Rack::QueryParser::InvalidParameterError < ::ArgumentError
2607
2714
  include ::Rack::BadRequest
2608
2715
  end
2609
2716
 
2717
+ # source://rack//lib/rack/query_parser.rb#57
2718
+ Rack::QueryParser::PARAMS_LIMIT = T.let(T.unsafe(nil), Integer)
2719
+
2610
2720
  # ParameterTypeError is the error that is raised when incoming structural
2611
2721
  # parameters (parsed by parse_nested_query) contain conflicting types.
2612
2722
  #
@@ -2615,16 +2725,25 @@ class Rack::QueryParser::ParameterTypeError < ::TypeError
2615
2725
  include ::Rack::BadRequest
2616
2726
  end
2617
2727
 
2618
- # source://rack//lib/rack/query_parser.rb#196
2728
+ # source://rack//lib/rack/query_parser.rb#255
2619
2729
  class Rack::QueryParser::Params < ::Hash
2730
+ # source://rack//lib/rack/query_parser.rb#256
2620
2731
  def to_params_hash; end
2621
2732
  end
2622
2733
 
2623
- # ParamsTooDeepError is the error that is raised when params are recursively
2624
- # 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.
2625
2744
  #
2626
2745
  # source://rack//lib/rack/query_parser.rb#26
2627
- class Rack::QueryParser::ParamsTooDeepError < ::RangeError
2746
+ class Rack::QueryParser::QueryLimitError < ::RangeError
2628
2747
  include ::Rack::BadRequest
2629
2748
  end
2630
2749
 
@@ -2646,7 +2765,7 @@ Rack::RACK_IS_HIJACK = T.let(T.unsafe(nil), String)
2646
2765
  # source://rack//lib/rack/constants.rb#45
2647
2766
  Rack::RACK_LOGGER = T.let(T.unsafe(nil), String)
2648
2767
 
2649
- # source://rack//lib/rack/constants.rb#66
2768
+ # source://rack//lib/rack/constants.rb#67
2650
2769
  Rack::RACK_METHODOVERRIDE_ORIGINAL_METHOD = T.let(T.unsafe(nil), String)
2651
2770
 
2652
2771
  # source://rack//lib/rack/constants.rb#54
@@ -2655,34 +2774,37 @@ Rack::RACK_MULTIPART_BUFFER_SIZE = T.let(T.unsafe(nil), String)
2655
2774
  # source://rack//lib/rack/constants.rb#55
2656
2775
  Rack::RACK_MULTIPART_TEMPFILE_FACTORY = T.let(T.unsafe(nil), String)
2657
2776
 
2777
+ # source://rack//lib/rack/constants.rb#57
2778
+ Rack::RACK_PROTOCOL = T.let(T.unsafe(nil), String)
2779
+
2658
2780
  # source://rack//lib/rack/constants.rb#53
2659
2781
  Rack::RACK_RECURSIVE_INCLUDE = T.let(T.unsafe(nil), String)
2660
2782
 
2661
- # source://rack//lib/rack/constants.rb#62
2783
+ # source://rack//lib/rack/constants.rb#63
2662
2784
  Rack::RACK_REQUEST_COOKIE_HASH = T.let(T.unsafe(nil), String)
2663
2785
 
2664
- # source://rack//lib/rack/constants.rb#63
2786
+ # source://rack//lib/rack/constants.rb#64
2665
2787
  Rack::RACK_REQUEST_COOKIE_STRING = T.let(T.unsafe(nil), String)
2666
2788
 
2667
- # source://rack//lib/rack/constants.rb#61
2789
+ # source://rack//lib/rack/constants.rb#62
2668
2790
  Rack::RACK_REQUEST_FORM_ERROR = T.let(T.unsafe(nil), String)
2669
2791
 
2670
- # source://rack//lib/rack/constants.rb#58
2792
+ # source://rack//lib/rack/constants.rb#59
2671
2793
  Rack::RACK_REQUEST_FORM_HASH = T.let(T.unsafe(nil), String)
2672
2794
 
2673
- # source://rack//lib/rack/constants.rb#57
2795
+ # source://rack//lib/rack/constants.rb#58
2674
2796
  Rack::RACK_REQUEST_FORM_INPUT = T.let(T.unsafe(nil), String)
2675
2797
 
2676
- # source://rack//lib/rack/constants.rb#59
2798
+ # source://rack//lib/rack/constants.rb#60
2677
2799
  Rack::RACK_REQUEST_FORM_PAIRS = T.let(T.unsafe(nil), String)
2678
2800
 
2679
- # source://rack//lib/rack/constants.rb#60
2801
+ # source://rack//lib/rack/constants.rb#61
2680
2802
  Rack::RACK_REQUEST_FORM_VARS = T.let(T.unsafe(nil), String)
2681
2803
 
2682
- # source://rack//lib/rack/constants.rb#64
2804
+ # source://rack//lib/rack/constants.rb#65
2683
2805
  Rack::RACK_REQUEST_QUERY_HASH = T.let(T.unsafe(nil), String)
2684
2806
 
2685
- # source://rack//lib/rack/constants.rb#65
2807
+ # source://rack//lib/rack/constants.rb#66
2686
2808
  Rack::RACK_REQUEST_QUERY_STRING = T.let(T.unsafe(nil), String)
2687
2809
 
2688
2810
  # source://rack//lib/rack/constants.rb#56
@@ -2708,7 +2830,7 @@ Rack::RACK_URL_SCHEME = T.let(T.unsafe(nil), String)
2708
2830
  # source://rack//lib/rack/constants.rb#41
2709
2831
  Rack::RACK_VERSION = T.let(T.unsafe(nil), String)
2710
2832
 
2711
- # source://rack//lib/rack/version.rb#15
2833
+ # source://rack//lib/rack/version.rb#11
2712
2834
  Rack::RELEASE = T.let(T.unsafe(nil), String)
2713
2835
 
2714
2836
  # source://rack//lib/rack/constants.rb#9
@@ -2806,13 +2928,16 @@ class Rack::Request
2806
2928
  # source://rack//lib/rack/request.rb#62
2807
2929
  def initialize(env); end
2808
2930
 
2809
- # source://rack//lib/rack/request.rb#76
2931
+ # source://rack//lib/rack/request.rb#81
2810
2932
  def delete_param(k); end
2811
2933
 
2812
- # 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
2813
2938
  def params; end
2814
2939
 
2815
- # source://rack//lib/rack/request.rb#71
2940
+ # source://rack//lib/rack/request.rb#76
2816
2941
  def update_param(k, v); end
2817
2942
 
2818
2943
  class << self
@@ -2885,9 +3010,9 @@ end
2885
3010
  # source://rack//lib/rack/request.rb#60
2886
3011
  Rack::Request::ALLOWED_SCHEMES = T.let(T.unsafe(nil), Array)
2887
3012
 
2888
- # source://rack//lib/rack/request.rb#82
3013
+ # source://rack//lib/rack/request.rb#87
2889
3014
  module Rack::Request::Env
2890
- # source://rack//lib/rack/request.rb#86
3015
+ # source://rack//lib/rack/request.rb#91
2891
3016
  def initialize(env); end
2892
3017
 
2893
3018
  # Add a header that may have multiple values.
@@ -2900,33 +3025,33 @@ module Rack::Request::Env
2900
3025
  #
2901
3026
  # http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
2902
3027
  #
2903
- # source://rack//lib/rack/request.rb#129
3028
+ # source://rack//lib/rack/request.rb#134
2904
3029
  def add_header(key, v); end
2905
3030
 
2906
3031
  # Delete a request specific value for `name`.
2907
3032
  #
2908
- # source://rack//lib/rack/request.rb#140
3033
+ # source://rack//lib/rack/request.rb#145
2909
3034
  def delete_header(name); end
2910
3035
 
2911
3036
  # Loops through each key / value pair in the request specific data.
2912
3037
  #
2913
- # source://rack//lib/rack/request.rb#111
3038
+ # source://rack//lib/rack/request.rb#116
2914
3039
  def each_header(&block); end
2915
3040
 
2916
3041
  # The environment of the request.
2917
3042
  #
2918
- # source://rack//lib/rack/request.rb#84
3043
+ # source://rack//lib/rack/request.rb#89
2919
3044
  def env; end
2920
3045
 
2921
3046
  # If a block is given, it yields to the block if the value hasn't been set
2922
3047
  # on the request.
2923
3048
  #
2924
- # source://rack//lib/rack/request.rb#106
3049
+ # source://rack//lib/rack/request.rb#111
2925
3050
  def fetch_header(name, &block); end
2926
3051
 
2927
3052
  # Get a request specific value for `name`.
2928
3053
  #
2929
- # source://rack//lib/rack/request.rb#100
3054
+ # source://rack//lib/rack/request.rb#105
2930
3055
  def get_header(name); end
2931
3056
 
2932
3057
  # Predicate method to test to see if `name` has been set as request
@@ -2934,25 +3059,25 @@ module Rack::Request::Env
2934
3059
  #
2935
3060
  # @return [Boolean]
2936
3061
  #
2937
- # source://rack//lib/rack/request.rb#95
3062
+ # source://rack//lib/rack/request.rb#100
2938
3063
  def has_header?(name); end
2939
3064
 
2940
3065
  # Set a request specific value for `name` to `v`
2941
3066
  #
2942
- # source://rack//lib/rack/request.rb#116
3067
+ # source://rack//lib/rack/request.rb#121
2943
3068
  def set_header(name, v); end
2944
3069
 
2945
3070
  private
2946
3071
 
2947
- # source://rack//lib/rack/request.rb#144
3072
+ # source://rack//lib/rack/request.rb#149
2948
3073
  def initialize_copy(other); end
2949
3074
  end
2950
3075
 
2951
- # source://rack//lib/rack/request.rb#149
3076
+ # source://rack//lib/rack/request.rb#154
2952
3077
  module Rack::Request::Helpers
2953
3078
  # Returns the data received in the query string.
2954
3079
  #
2955
- # source://rack//lib/rack/request.rb#484
3080
+ # source://rack//lib/rack/request.rb#491
2956
3081
  def GET; end
2957
3082
 
2958
3083
  # Returns the data received in the request body.
@@ -2960,13 +3085,13 @@ module Rack::Request::Helpers
2960
3085
  # This method support both application/x-www-form-urlencoded and
2961
3086
  # multipart/form-data.
2962
3087
  #
2963
- # source://rack//lib/rack/request.rb#503
3088
+ # source://rack//lib/rack/request.rb#539
2964
3089
  def POST; end
2965
3090
 
2966
- # source://rack//lib/rack/request.rb#607
3091
+ # source://rack//lib/rack/request.rb#608
2967
3092
  def accept_encoding; end
2968
3093
 
2969
- # source://rack//lib/rack/request.rb#611
3094
+ # source://rack//lib/rack/request.rb#612
2970
3095
  def accept_language; end
2971
3096
 
2972
3097
  # The authority of the incoming request as defined by RFC3976.
@@ -2975,13 +3100,13 @@ module Rack::Request::Helpers
2975
3100
  # In HTTP/1, this is the `host` header.
2976
3101
  # In HTTP/2, this is the `:authority` pseudo-header.
2977
3102
  #
2978
- # source://rack//lib/rack/request.rb#266
3103
+ # source://rack//lib/rack/request.rb#271
2979
3104
  def authority; end
2980
3105
 
2981
- # source://rack//lib/rack/request.rb#590
3106
+ # source://rack//lib/rack/request.rb#591
2982
3107
  def base_url; end
2983
3108
 
2984
- # source://rack//lib/rack/request.rb#190
3109
+ # source://rack//lib/rack/request.rb#195
2985
3110
  def body; end
2986
3111
 
2987
3112
  # The character set of the request body if a "charset" media type
@@ -2989,23 +3114,23 @@ module Rack::Request::Helpers
2989
3114
  # that, per RFC2616, text/* media types that specify no explicit
2990
3115
  # charset are to be considered ISO-8859-1.
2991
3116
  #
2992
- # source://rack//lib/rack/request.rb#458
3117
+ # source://rack//lib/rack/request.rb#465
2993
3118
  def content_charset; end
2994
3119
 
2995
- # source://rack//lib/rack/request.rb#199
3120
+ # source://rack//lib/rack/request.rb#204
2996
3121
  def content_length; end
2997
3122
 
2998
- # source://rack//lib/rack/request.rb#308
3123
+ # source://rack//lib/rack/request.rb#313
2999
3124
  def content_type; end
3000
3125
 
3001
- # source://rack//lib/rack/request.rb#293
3126
+ # source://rack//lib/rack/request.rb#298
3002
3127
  def cookies; end
3003
3128
 
3004
3129
  # Checks the HTTP request method (or verb) to see if it was of type DELETE
3005
3130
  #
3006
3131
  # @return [Boolean]
3007
3132
  #
3008
- # source://rack//lib/rack/request.rb#220
3133
+ # source://rack//lib/rack/request.rb#225
3009
3134
  def delete?; end
3010
3135
 
3011
3136
  # Destructively delete a parameter, whether it's in GET or POST. Returns the value of the deleted parameter.
@@ -3014,7 +3139,7 @@ module Rack::Request::Helpers
3014
3139
  #
3015
3140
  # <tt>env['rack.input']</tt> is not touched.
3016
3141
  #
3017
- # source://rack//lib/rack/request.rb#585
3142
+ # source://rack//lib/rack/request.rb#586
3018
3143
  def delete_param(k); end
3019
3144
 
3020
3145
  # Determine whether the request body contains form-data by checking
@@ -3028,46 +3153,54 @@ module Rack::Request::Helpers
3028
3153
  #
3029
3154
  # @return [Boolean]
3030
3155
  #
3031
- # source://rack//lib/rack/request.rb#470
3156
+ # source://rack//lib/rack/request.rb#477
3032
3157
  def form_data?; end
3033
3158
 
3034
- # 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
3035
3168
  def forwarded_authority; end
3036
3169
 
3037
- # source://rack//lib/rack/request.rb#353
3170
+ # source://rack//lib/rack/request.rb#358
3038
3171
  def forwarded_for; end
3039
3172
 
3040
- # source://rack//lib/rack/request.rb#374
3173
+ # source://rack//lib/rack/request.rb#379
3041
3174
  def forwarded_port; end
3042
3175
 
3043
- # source://rack//lib/rack/request.rb#603
3176
+ # source://rack//lib/rack/request.rb#604
3044
3177
  def fullpath; end
3045
3178
 
3046
3179
  # Checks the HTTP request method (or verb) to see if it was of type GET
3047
3180
  #
3048
3181
  # @return [Boolean]
3049
3182
  #
3050
- # source://rack//lib/rack/request.rb#223
3183
+ # source://rack//lib/rack/request.rb#228
3051
3184
  def get?; end
3052
3185
 
3053
3186
  # Checks the HTTP request method (or verb) to see if it was of type HEAD
3054
3187
  #
3055
3188
  # @return [Boolean]
3056
3189
  #
3057
- # source://rack//lib/rack/request.rb#226
3190
+ # source://rack//lib/rack/request.rb#231
3058
3191
  def head?; end
3059
3192
 
3060
3193
  # Returns a formatted host, suitable for being used in a URI.
3061
3194
  #
3062
- # source://rack//lib/rack/request.rb#333
3195
+ # source://rack//lib/rack/request.rb#338
3063
3196
  def host; end
3064
3197
 
3065
3198
  # The `HTTP_HOST` header.
3066
3199
  #
3067
- # source://rack//lib/rack/request.rb#318
3200
+ # source://rack//lib/rack/request.rb#323
3068
3201
  def host_authority; end
3069
3202
 
3070
- # source://rack//lib/rack/request.rb#322
3203
+ # source://rack//lib/rack/request.rb#327
3071
3204
  def host_with_port(authority = T.unsafe(nil)); end
3072
3205
 
3073
3206
  # Returns an address suitable for being to resolve to an address.
@@ -3075,20 +3208,20 @@ module Rack::Request::Helpers
3075
3208
  # as +host+. In the case of IPv6 or future address formats, the square
3076
3209
  # brackets are removed.
3077
3210
  #
3078
- # source://rack//lib/rack/request.rb#341
3211
+ # source://rack//lib/rack/request.rb#346
3079
3212
  def hostname; end
3080
3213
 
3081
- # source://rack//lib/rack/request.rb#414
3214
+ # source://rack//lib/rack/request.rb#419
3082
3215
  def ip; end
3083
3216
 
3084
3217
  # Checks the HTTP request method (or verb) to see if it was of type LINK
3085
3218
  #
3086
3219
  # @return [Boolean]
3087
3220
  #
3088
- # source://rack//lib/rack/request.rb#232
3221
+ # source://rack//lib/rack/request.rb#237
3089
3222
  def link?; end
3090
3223
 
3091
- # source://rack//lib/rack/request.rb#200
3224
+ # source://rack//lib/rack/request.rb#205
3092
3225
  def logger; end
3093
3226
 
3094
3227
  # The media type (type/subtype) portion of the CONTENT_TYPE header
@@ -3098,7 +3231,7 @@ module Rack::Request::Helpers
3098
3231
  # For more information on the use of media types in HTTP, see:
3099
3232
  # http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7
3100
3233
  #
3101
- # source://rack//lib/rack/request.rb#441
3234
+ # source://rack//lib/rack/request.rb#448
3102
3235
  def media_type; end
3103
3236
 
3104
3237
  # The media type parameters provided in CONTENT_TYPE as a Hash, or
@@ -3107,21 +3240,21 @@ module Rack::Request::Helpers
3107
3240
  # this method responds with the following Hash:
3108
3241
  # { 'charset' => 'utf-8' }
3109
3242
  #
3110
- # source://rack//lib/rack/request.rb#450
3243
+ # source://rack//lib/rack/request.rb#457
3111
3244
  def media_type_params; end
3112
3245
 
3113
3246
  # Checks the HTTP request method (or verb) to see if it was of type OPTIONS
3114
3247
  #
3115
3248
  # @return [Boolean]
3116
3249
  #
3117
- # source://rack//lib/rack/request.rb#229
3250
+ # source://rack//lib/rack/request.rb#234
3118
3251
  def options?; end
3119
3252
 
3120
3253
  # The union of GET and POST data.
3121
3254
  #
3122
3255
  # Note that modifications will not be persisted in the env. Use update_param or delete_param if you want to destructively modify params.
3123
3256
  #
3124
- # source://rack//lib/rack/request.rb#556
3257
+ # source://rack//lib/rack/request.rb#553
3125
3258
  def params; end
3126
3259
 
3127
3260
  # Determine whether the request body contains data by checking
@@ -3129,107 +3262,113 @@ module Rack::Request::Helpers
3129
3262
  #
3130
3263
  # @return [Boolean]
3131
3264
  #
3132
- # source://rack//lib/rack/request.rb#479
3265
+ # source://rack//lib/rack/request.rb#486
3133
3266
  def parseable_data?; end
3134
3267
 
3135
3268
  # Checks the HTTP request method (or verb) to see if it was of type PATCH
3136
3269
  #
3137
3270
  # @return [Boolean]
3138
3271
  #
3139
- # source://rack//lib/rack/request.rb#235
3272
+ # source://rack//lib/rack/request.rb#240
3140
3273
  def patch?; end
3141
3274
 
3142
- # source://rack//lib/rack/request.rb#599
3275
+ # source://rack//lib/rack/request.rb#600
3143
3276
  def path; end
3144
3277
 
3145
- # source://rack//lib/rack/request.rb#194
3278
+ # source://rack//lib/rack/request.rb#199
3146
3279
  def path_info; end
3147
3280
 
3148
- # source://rack//lib/rack/request.rb#195
3281
+ # source://rack//lib/rack/request.rb#200
3149
3282
  def path_info=(s); end
3150
3283
 
3151
- # source://rack//lib/rack/request.rb#345
3284
+ # source://rack//lib/rack/request.rb#350
3152
3285
  def port; end
3153
3286
 
3154
3287
  # Checks the HTTP request method (or verb) to see if it was of type POST
3155
3288
  #
3156
3289
  # @return [Boolean]
3157
3290
  #
3158
- # source://rack//lib/rack/request.rb#238
3291
+ # source://rack//lib/rack/request.rb#243
3159
3292
  def post?; end
3160
3293
 
3161
3294
  # Checks the HTTP request method (or verb) to see if it was of type PUT
3162
3295
  #
3163
3296
  # @return [Boolean]
3164
3297
  #
3165
- # source://rack//lib/rack/request.rb#241
3298
+ # source://rack//lib/rack/request.rb#246
3166
3299
  def put?; end
3167
3300
 
3168
- # 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
3169
3308
  def query_string; end
3170
3309
 
3171
3310
  # the referer of the client
3172
3311
  #
3173
- # source://rack//lib/rack/request.rb#204
3312
+ # source://rack//lib/rack/request.rb#209
3174
3313
  def referer; end
3175
3314
 
3176
3315
  # the referer of the client
3177
3316
  #
3178
- # source://rack//lib/rack/request.rb#204
3317
+ # source://rack//lib/rack/request.rb#210
3179
3318
  def referrer; end
3180
3319
 
3181
- # source://rack//lib/rack/request.rb#197
3320
+ # source://rack//lib/rack/request.rb#202
3182
3321
  def request_method; end
3183
3322
 
3184
- # source://rack//lib/rack/request.rb#249
3323
+ # source://rack//lib/rack/request.rb#254
3185
3324
  def scheme; end
3186
3325
 
3187
- # source://rack//lib/rack/request.rb#191
3326
+ # source://rack//lib/rack/request.rb#196
3188
3327
  def script_name; end
3189
3328
 
3190
- # source://rack//lib/rack/request.rb#192
3329
+ # source://rack//lib/rack/request.rb#197
3191
3330
  def script_name=(s); end
3192
3331
 
3193
3332
  # The authority as defined by the `SERVER_NAME` and `SERVER_PORT`
3194
3333
  # variables.
3195
3334
  #
3196
- # source://rack//lib/rack/request.rb#272
3335
+ # source://rack//lib/rack/request.rb#277
3197
3336
  def server_authority; end
3198
3337
 
3199
- # source://rack//lib/rack/request.rb#285
3338
+ # source://rack//lib/rack/request.rb#290
3200
3339
  def server_name; end
3201
3340
 
3202
- # source://rack//lib/rack/request.rb#289
3341
+ # source://rack//lib/rack/request.rb#294
3203
3342
  def server_port; end
3204
3343
 
3205
- # source://rack//lib/rack/request.rb#207
3344
+ # source://rack//lib/rack/request.rb#212
3206
3345
  def session; end
3207
3346
 
3208
- # source://rack//lib/rack/request.rb#213
3347
+ # source://rack//lib/rack/request.rb#218
3209
3348
  def session_options; end
3210
3349
 
3211
3350
  # @return [Boolean]
3212
3351
  #
3213
- # source://rack//lib/rack/request.rb#410
3352
+ # source://rack//lib/rack/request.rb#415
3214
3353
  def ssl?; end
3215
3354
 
3216
3355
  # Checks the HTTP request method (or verb) to see if it was of type TRACE
3217
3356
  #
3218
3357
  # @return [Boolean]
3219
3358
  #
3220
- # source://rack//lib/rack/request.rb#244
3359
+ # source://rack//lib/rack/request.rb#249
3221
3360
  def trace?; end
3222
3361
 
3223
3362
  # @return [Boolean]
3224
3363
  #
3225
- # source://rack//lib/rack/request.rb#615
3364
+ # source://rack//lib/rack/request.rb#616
3226
3365
  def trusted_proxy?(ip); end
3227
3366
 
3228
3367
  # Checks the HTTP request method (or verb) to see if it was of type UNLINK
3229
3368
  #
3230
3369
  # @return [Boolean]
3231
3370
  #
3232
- # source://rack//lib/rack/request.rb#247
3371
+ # source://rack//lib/rack/request.rb#252
3233
3372
  def unlink?; end
3234
3373
 
3235
3374
  # Destructively update a parameter, whether it's in GET and/or POST. Returns nil.
@@ -3238,136 +3377,128 @@ module Rack::Request::Helpers
3238
3377
  #
3239
3378
  # <tt>env['rack.input']</tt> is not touched.
3240
3379
  #
3241
- # source://rack//lib/rack/request.rb#565
3380
+ # source://rack//lib/rack/request.rb#566
3242
3381
  def update_param(k, v); end
3243
3382
 
3244
3383
  # Tries to return a remake of the original request URL as a string.
3245
3384
  #
3246
- # source://rack//lib/rack/request.rb#595
3385
+ # source://rack//lib/rack/request.rb#596
3247
3386
  def url; end
3248
3387
 
3249
- # source://rack//lib/rack/request.rb#201
3388
+ # source://rack//lib/rack/request.rb#206
3250
3389
  def user_agent; end
3251
3390
 
3252
- # like Hash#values_at
3253
- #
3254
- # source://rack//lib/rack/request.rb#620
3255
- def values_at(*keys); end
3256
-
3257
3391
  # @return [Boolean]
3258
3392
  #
3259
- # source://rack//lib/rack/request.rb#313
3393
+ # source://rack//lib/rack/request.rb#318
3260
3394
  def xhr?; end
3261
3395
 
3262
3396
  private
3263
3397
 
3264
- # source://rack//lib/rack/request.rb#776
3398
+ # source://rack//lib/rack/request.rb#767
3265
3399
  def allowed_scheme(header); end
3266
3400
 
3267
- # source://rack//lib/rack/request.rb#628
3401
+ # source://rack//lib/rack/request.rb#622
3268
3402
  def default_session; end
3269
3403
 
3270
- # source://rack//lib/rack/request.rb#684
3404
+ # source://rack//lib/rack/request.rb#679
3271
3405
  def expand_param_pairs(pairs, query_parser = T.unsafe(nil)); end
3272
3406
 
3273
- # source://rack//lib/rack/request.rb#780
3407
+ # source://rack//lib/rack/request.rb#771
3274
3408
  def forwarded_priority; end
3275
3409
 
3276
- # source://rack//lib/rack/request.rb#752
3410
+ # source://rack//lib/rack/request.rb#743
3277
3411
  def forwarded_scheme; end
3278
3412
 
3279
3413
  # Get an array of values set in the RFC 7239 `Forwarded` request header.
3280
3414
  #
3281
- # source://rack//lib/rack/request.rb#668
3415
+ # source://rack//lib/rack/request.rb#662
3282
3416
  def get_http_forwarded(token); end
3283
3417
 
3284
- # source://rack//lib/rack/request.rb#644
3418
+ # source://rack//lib/rack/request.rb#638
3285
3419
  def parse_http_accept_header(header); end
3286
3420
 
3287
- # source://rack//lib/rack/request.rb#680
3421
+ # source://rack//lib/rack/request.rb#674
3288
3422
  def parse_multipart; end
3289
3423
 
3290
- # source://rack//lib/rack/request.rb#676
3424
+ # source://rack//lib/rack/request.rb#670
3291
3425
  def parse_query(qs, d = T.unsafe(nil)); end
3292
3426
 
3293
- # source://rack//lib/rack/request.rb#672
3427
+ # source://rack//lib/rack/request.rb#666
3294
3428
  def query_parser; end
3295
3429
 
3296
- # source://rack//lib/rack/request.rb#743
3297
- def reject_trusted_ip_addresses(ip_addresses); end
3298
-
3299
- # source://rack//lib/rack/request.rb#737
3430
+ # source://rack//lib/rack/request.rb#732
3300
3431
  def split_authority(authority); end
3301
3432
 
3302
- # source://rack//lib/rack/request.rb#694
3433
+ # source://rack//lib/rack/request.rb#689
3303
3434
  def split_header(value); end
3304
3435
 
3305
3436
  # Assist with compatibility when processing `X-Forwarded-For`.
3306
3437
  #
3307
- # source://rack//lib/rack/request.rb#631
3438
+ # source://rack//lib/rack/request.rb#625
3308
3439
  def wrap_ipv6(host); end
3309
3440
 
3310
- # source://rack//lib/rack/request.rb#784
3441
+ # source://rack//lib/rack/request.rb#775
3311
3442
  def x_forwarded_proto_priority; end
3312
3443
  end
3313
3444
 
3314
- # source://rack//lib/rack/request.rb#722
3445
+ # source://rack//lib/rack/request.rb#717
3315
3446
  Rack::Request::Helpers::AUTHORITY = T.let(T.unsafe(nil), Regexp)
3316
3447
 
3317
3448
  # Default ports depending on scheme. Used to decide whether or not
3318
3449
  # to include the port in a generated URI.
3319
3450
  #
3320
- # source://rack//lib/rack/request.rb#168
3451
+ # source://rack//lib/rack/request.rb#173
3321
3452
  Rack::Request::Helpers::DEFAULT_PORTS = T.let(T.unsafe(nil), Hash)
3322
3453
 
3323
3454
  # The set of form-data media-types. Requests that do not indicate
3324
3455
  # one of the media types present in this list will not be eligible
3325
3456
  # for form-data / param parsing.
3326
3457
  #
3327
- # source://rack//lib/rack/request.rb#153
3458
+ # source://rack//lib/rack/request.rb#158
3328
3459
  Rack::Request::Helpers::FORM_DATA_MEDIA_TYPES = T.let(T.unsafe(nil), Array)
3329
3460
 
3330
- # source://rack//lib/rack/request.rb#747
3461
+ # source://rack//lib/rack/request.rb#738
3331
3462
  Rack::Request::Helpers::FORWARDED_SCHEME_HEADERS = T.let(T.unsafe(nil), Hash)
3332
3463
 
3333
- # source://rack//lib/rack/request.rb#176
3464
+ # source://rack//lib/rack/request.rb#181
3334
3465
  Rack::Request::Helpers::HTTP_FORWARDED = T.let(T.unsafe(nil), String)
3335
3466
 
3336
3467
  # The address of the client which connected to the proxy.
3337
3468
  #
3338
- # source://rack//lib/rack/request.rb#171
3469
+ # source://rack//lib/rack/request.rb#176
3339
3470
  Rack::Request::Helpers::HTTP_X_FORWARDED_FOR = T.let(T.unsafe(nil), String)
3340
3471
 
3341
3472
  # The contents of the host/:authority header sent to the proxy.
3342
3473
  #
3343
- # source://rack//lib/rack/request.rb#174
3474
+ # source://rack//lib/rack/request.rb#179
3344
3475
  Rack::Request::Helpers::HTTP_X_FORWARDED_HOST = T.let(T.unsafe(nil), String)
3345
3476
 
3346
3477
  # The port used to connect to the proxy.
3347
3478
  #
3348
- # source://rack//lib/rack/request.rb#185
3479
+ # source://rack//lib/rack/request.rb#190
3349
3480
  Rack::Request::Helpers::HTTP_X_FORWARDED_PORT = T.let(T.unsafe(nil), String)
3350
3481
 
3351
3482
  # The protocol used to connect to the proxy.
3352
3483
  #
3353
- # source://rack//lib/rack/request.rb#182
3484
+ # source://rack//lib/rack/request.rb#187
3354
3485
  Rack::Request::Helpers::HTTP_X_FORWARDED_PROTO = T.let(T.unsafe(nil), String)
3355
3486
 
3356
3487
  # The value of the scheme sent to the proxy.
3357
3488
  #
3358
- # source://rack//lib/rack/request.rb#179
3489
+ # source://rack//lib/rack/request.rb#184
3359
3490
  Rack::Request::Helpers::HTTP_X_FORWARDED_SCHEME = T.let(T.unsafe(nil), String)
3360
3491
 
3361
3492
  # Another way for specifying https scheme was used.
3362
3493
  #
3363
- # source://rack//lib/rack/request.rb#188
3494
+ # source://rack//lib/rack/request.rb#193
3364
3495
  Rack::Request::Helpers::HTTP_X_FORWARDED_SSL = T.let(T.unsafe(nil), String)
3365
3496
 
3366
3497
  # The set of media-types. Requests that do not indicate
3367
3498
  # one of the media types present in this list will not be eligible
3368
3499
  # for param parsing like soap attachments or generic multiparts
3369
3500
  #
3370
- # source://rack//lib/rack/request.rb#161
3501
+ # source://rack//lib/rack/request.rb#166
3371
3502
  Rack::Request::Helpers::PARSEABLE_DATA_MEDIA_TYPES = T.let(T.unsafe(nil), Array)
3372
3503
 
3373
3504
  # Rack::Response provides a convenient interface to create a Rack
@@ -3417,12 +3548,12 @@ class Rack::Response
3417
3548
 
3418
3549
  # @raise [ArgumentError]
3419
3550
  #
3420
- # source://rack//lib/rack/response.rb#164
3551
+ # source://rack//lib/rack/response.rb#177
3421
3552
  def [](key); end
3422
3553
 
3423
3554
  # @raise [ArgumentError]
3424
3555
  #
3425
- # source://rack//lib/rack/response.rb#168
3556
+ # source://rack//lib/rack/response.rb#178
3426
3557
  def []=(key, value); end
3427
3558
 
3428
3559
  # Returns the value of attribute body.
@@ -3525,7 +3656,7 @@ class Rack::Response
3525
3656
  #
3526
3657
  # @return [Array] a 3-tuple suitable of `[status, headers, body]`
3527
3658
  #
3528
- # source://rack//lib/rack/response.rb#107
3659
+ # source://rack//lib/rack/response.rb#128
3529
3660
  def to_a(&block); end
3530
3661
 
3531
3662
  # Append a chunk to the response body.
@@ -3808,7 +3939,7 @@ Rack::Response::STATUS_WITH_NO_ENTITY_BODY = T.let(T.unsafe(nil), Hash)
3808
3939
  class Rack::RewindableInput
3809
3940
  # @return [RewindableInput] a new instance of RewindableInput
3810
3941
  #
3811
- # source://rack//lib/rack/rewindable_input.rb#29
3942
+ # source://rack//lib/rack/rewindable_input.rb#32
3812
3943
  def initialize(io); end
3813
3944
 
3814
3945
  # Closes this RewindableInput object without closing the originally
@@ -3817,32 +3948,32 @@ class Rack::RewindableInput
3817
3948
  #
3818
3949
  # This method may be called multiple times. It does nothing on subsequent calls.
3819
3950
  #
3820
- # source://rack//lib/rack/rewindable_input.rb#65
3951
+ # source://rack//lib/rack/rewindable_input.rb#68
3821
3952
  def close; end
3822
3953
 
3823
- # source://rack//lib/rack/rewindable_input.rb#45
3954
+ # source://rack//lib/rack/rewindable_input.rb#48
3824
3955
  def each(&block); end
3825
3956
 
3826
- # source://rack//lib/rack/rewindable_input.rb#35
3957
+ # source://rack//lib/rack/rewindable_input.rb#38
3827
3958
  def gets; end
3828
3959
 
3829
- # source://rack//lib/rack/rewindable_input.rb#40
3960
+ # source://rack//lib/rack/rewindable_input.rb#43
3830
3961
  def read(*args); end
3831
3962
 
3832
- # source://rack//lib/rack/rewindable_input.rb#50
3963
+ # source://rack//lib/rack/rewindable_input.rb#53
3833
3964
  def rewind; end
3834
3965
 
3835
- # source://rack//lib/rack/rewindable_input.rb#55
3966
+ # source://rack//lib/rack/rewindable_input.rb#58
3836
3967
  def size; end
3837
3968
 
3838
3969
  private
3839
3970
 
3840
3971
  # @return [Boolean]
3841
3972
  #
3842
- # source://rack//lib/rack/rewindable_input.rb#109
3973
+ # source://rack//lib/rack/rewindable_input.rb#112
3843
3974
  def filesystem_has_posix_semantics?; end
3844
3975
 
3845
- # source://rack//lib/rack/rewindable_input.rb#78
3976
+ # source://rack//lib/rack/rewindable_input.rb#81
3846
3977
  def make_rewindable; end
3847
3978
  end
3848
3979
 
@@ -4035,7 +4166,7 @@ class Rack::ShowExceptions
4035
4166
  # source://rack//lib/rack/show_exceptions.rb#65
4036
4167
  def dump_exception(exception); end
4037
4168
 
4038
- # source://rack//lib/rack/show_exceptions.rb#116
4169
+ # source://rack//lib/rack/show_exceptions.rb#120
4039
4170
  def h(obj); end
4040
4171
 
4041
4172
  # @return [Boolean]
@@ -4043,10 +4174,10 @@ class Rack::ShowExceptions
4043
4174
  # source://rack//lib/rack/show_exceptions.rb#56
4044
4175
  def prefers_plaintext?(env); end
4045
4176
 
4046
- # source://rack//lib/rack/show_exceptions.rb#76
4177
+ # source://rack//lib/rack/show_exceptions.rb#80
4047
4178
  def pretty(env, exception); end
4048
4179
 
4049
- # source://rack//lib/rack/show_exceptions.rb#112
4180
+ # source://rack//lib/rack/show_exceptions.rb#116
4050
4181
  def template; end
4051
4182
 
4052
4183
  private
@@ -4065,101 +4196,142 @@ class Rack::ShowExceptions::Frame < ::Struct
4065
4196
  # Returns the value of attribute context_line
4066
4197
  #
4067
4198
  # @return [Object] the current value of context_line
4199
+ #
4200
+ # source://rack//lib/rack/show_exceptions.rb#21
4068
4201
  def context_line; end
4069
4202
 
4070
4203
  # Sets the attribute context_line
4071
4204
  #
4072
4205
  # @param value [Object] the value to set the attribute context_line to.
4073
4206
  # @return [Object] the newly set value
4207
+ #
4208
+ # source://rack//lib/rack/show_exceptions.rb#21
4074
4209
  def context_line=(_); end
4075
4210
 
4076
4211
  # Returns the value of attribute filename
4077
4212
  #
4078
4213
  # @return [Object] the current value of filename
4214
+ #
4215
+ # source://rack//lib/rack/show_exceptions.rb#21
4079
4216
  def filename; end
4080
4217
 
4081
4218
  # Sets the attribute filename
4082
4219
  #
4083
4220
  # @param value [Object] the value to set the attribute filename to.
4084
4221
  # @return [Object] the newly set value
4222
+ #
4223
+ # source://rack//lib/rack/show_exceptions.rb#21
4085
4224
  def filename=(_); end
4086
4225
 
4087
4226
  # Returns the value of attribute function
4088
4227
  #
4089
4228
  # @return [Object] the current value of function
4229
+ #
4230
+ # source://rack//lib/rack/show_exceptions.rb#21
4090
4231
  def function; end
4091
4232
 
4092
4233
  # Sets the attribute function
4093
4234
  #
4094
4235
  # @param value [Object] the value to set the attribute function to.
4095
4236
  # @return [Object] the newly set value
4237
+ #
4238
+ # source://rack//lib/rack/show_exceptions.rb#21
4096
4239
  def function=(_); end
4097
4240
 
4098
4241
  # Returns the value of attribute lineno
4099
4242
  #
4100
4243
  # @return [Object] the current value of lineno
4244
+ #
4245
+ # source://rack//lib/rack/show_exceptions.rb#21
4101
4246
  def lineno; end
4102
4247
 
4103
4248
  # Sets the attribute lineno
4104
4249
  #
4105
4250
  # @param value [Object] the value to set the attribute lineno to.
4106
4251
  # @return [Object] the newly set value
4252
+ #
4253
+ # source://rack//lib/rack/show_exceptions.rb#21
4107
4254
  def lineno=(_); end
4108
4255
 
4109
4256
  # Returns the value of attribute post_context
4110
4257
  #
4111
4258
  # @return [Object] the current value of post_context
4259
+ #
4260
+ # source://rack//lib/rack/show_exceptions.rb#21
4112
4261
  def post_context; end
4113
4262
 
4114
4263
  # Sets the attribute post_context
4115
4264
  #
4116
4265
  # @param value [Object] the value to set the attribute post_context to.
4117
4266
  # @return [Object] the newly set value
4267
+ #
4268
+ # source://rack//lib/rack/show_exceptions.rb#21
4118
4269
  def post_context=(_); end
4119
4270
 
4120
4271
  # Returns the value of attribute post_context_lineno
4121
4272
  #
4122
4273
  # @return [Object] the current value of post_context_lineno
4274
+ #
4275
+ # source://rack//lib/rack/show_exceptions.rb#21
4123
4276
  def post_context_lineno; end
4124
4277
 
4125
4278
  # Sets the attribute post_context_lineno
4126
4279
  #
4127
4280
  # @param value [Object] the value to set the attribute post_context_lineno to.
4128
4281
  # @return [Object] the newly set value
4282
+ #
4283
+ # source://rack//lib/rack/show_exceptions.rb#21
4129
4284
  def post_context_lineno=(_); end
4130
4285
 
4131
4286
  # Returns the value of attribute pre_context
4132
4287
  #
4133
4288
  # @return [Object] the current value of pre_context
4289
+ #
4290
+ # source://rack//lib/rack/show_exceptions.rb#21
4134
4291
  def pre_context; end
4135
4292
 
4136
4293
  # Sets the attribute pre_context
4137
4294
  #
4138
4295
  # @param value [Object] the value to set the attribute pre_context to.
4139
4296
  # @return [Object] the newly set value
4297
+ #
4298
+ # source://rack//lib/rack/show_exceptions.rb#21
4140
4299
  def pre_context=(_); end
4141
4300
 
4142
4301
  # Returns the value of attribute pre_context_lineno
4143
4302
  #
4144
4303
  # @return [Object] the current value of pre_context_lineno
4304
+ #
4305
+ # source://rack//lib/rack/show_exceptions.rb#21
4145
4306
  def pre_context_lineno; end
4146
4307
 
4147
4308
  # Sets the attribute pre_context_lineno
4148
4309
  #
4149
4310
  # @param value [Object] the value to set the attribute pre_context_lineno to.
4150
4311
  # @return [Object] the newly set value
4312
+ #
4313
+ # source://rack//lib/rack/show_exceptions.rb#21
4151
4314
  def pre_context_lineno=(_); end
4152
4315
 
4153
4316
  class << self
4317
+ # source://rack//lib/rack/show_exceptions.rb#21
4154
4318
  def [](*_arg0); end
4319
+
4320
+ # source://rack//lib/rack/show_exceptions.rb#21
4155
4321
  def inspect; end
4322
+
4323
+ # source://rack//lib/rack/show_exceptions.rb#21
4156
4324
  def keyword_init?; end
4325
+
4326
+ # source://rack//lib/rack/show_exceptions.rb#21
4157
4327
  def members; end
4328
+
4329
+ # source://rack//lib/rack/show_exceptions.rb#21
4158
4330
  def new(*_arg0); end
4159
4331
  end
4160
4332
  end
4161
4333
 
4162
- # source://rack//lib/rack/show_exceptions.rb#131
4334
+ # source://rack//lib/rack/show_exceptions.rb#135
4163
4335
  Rack::ShowExceptions::TEMPLATE = T.let(T.unsafe(nil), ERB)
4164
4336
 
4165
4337
  # Rack::ShowStatus catches all empty responses and replaces them
@@ -4283,7 +4455,7 @@ class Rack::Static
4283
4455
 
4284
4456
  # Convert HTTP header rules to HTTP headers
4285
4457
  #
4286
- # source://rack//lib/rack/static.rb#166
4458
+ # source://rack//lib/rack/static.rb#167
4287
4459
  def applicable_rules(path); end
4288
4460
 
4289
4461
  # source://rack//lib/rack/static.rb#125
@@ -4381,10 +4553,10 @@ module Rack::Utils
4381
4553
  # Returns nil if the header is missing or syntactically invalid.
4382
4554
  # Returns an empty array if none of the ranges are satisfiable.
4383
4555
  #
4384
- # source://rack//lib/rack/utils.rb#409
4556
+ # source://rack//lib/rack/utils.rb#402
4385
4557
  def byte_ranges(env, size); end
4386
4558
 
4387
- # source://rack//lib/rack/utils.rb#609
4559
+ # source://rack//lib/rack/utils.rb#600
4388
4560
  def clean_path_info(path_info); end
4389
4561
 
4390
4562
  # :nocov:
@@ -4392,7 +4564,7 @@ module Rack::Utils
4392
4564
  # source://rack//lib/rack/utils.rb#91
4393
4565
  def clock_time; end
4394
4566
 
4395
- # source://rack//lib/rack/utils.rb#367
4567
+ # source://rack//lib/rack/utils.rb#360
4396
4568
  def delete_cookie_header!(headers, key, value = T.unsafe(nil)); end
4397
4569
 
4398
4570
  # :call-seq:
@@ -4409,7 +4581,7 @@ module Rack::Utils
4409
4581
  # delete_set_cookie_header("myname")
4410
4582
  # # => "myname=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"
4411
4583
  #
4412
- # source://rack//lib/rack/utils.rb#363
4584
+ # source://rack//lib/rack/utils.rb#356
4413
4585
  def delete_set_cookie_header(key, value = T.unsafe(nil)); end
4414
4586
 
4415
4587
  # :call-seq:
@@ -4430,7 +4602,7 @@ module Rack::Utils
4430
4602
  # header
4431
4603
  # # => ["mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"]
4432
4604
  #
4433
- # source://rack//lib/rack/utils.rb#391
4605
+ # source://rack//lib/rack/utils.rb#384
4434
4606
  def delete_set_cookie_header!(header, key, value = T.unsafe(nil)); end
4435
4607
 
4436
4608
  # URI escapes. (CGI style space to +)
@@ -4438,10 +4610,9 @@ module Rack::Utils
4438
4610
  # source://rack//lib/rack/utils.rb#40
4439
4611
  def escape(s); end
4440
4612
 
4441
- # source://rack//lib/rack/utils.rb#262
4442
- def escape_cookie_key(key); end
4443
-
4444
4613
  # Escape ampersands, brackets and quotes to their HTML/XML entities.
4614
+ #
4615
+ # source://rack//lib/rack/utils.rb#183
4445
4616
  def escape_html(_arg0); end
4446
4617
 
4447
4618
  # Like URI escaping, but with %20 instead of +. Strictly speaking this is
@@ -4453,7 +4624,7 @@ module Rack::Utils
4453
4624
  # source://rack//lib/rack/utils.rb#149
4454
4625
  def forwarded_values(forwarded_header); end
4455
4626
 
4456
- # source://rack//lib/rack/utils.rb#413
4627
+ # source://rack//lib/rack/utils.rb#406
4457
4628
  def get_byte_ranges(http_range, size); end
4458
4629
 
4459
4630
  # :call-seq:
@@ -4465,7 +4636,7 @@ module Rack::Utils
4465
4636
  # parse_cookies({'HTTP_COOKIE' => 'myname=myvalue'})
4466
4637
  # # => {'myname' => 'myvalue'}
4467
4638
  #
4468
- # source://rack//lib/rack/utils.rb#253
4639
+ # source://rack//lib/rack/utils.rb#257
4469
4640
  def parse_cookies(env); end
4470
4641
 
4471
4642
  # :call-seq:
@@ -4478,7 +4649,7 @@ module Rack::Utils
4478
4649
  # parse_cookies_header('myname=myvalue; max-age=0')
4479
4650
  # # => {"myname"=>"myvalue", "max-age"=>"0"}
4480
4651
  #
4481
- # source://rack//lib/rack/utils.rb#234
4652
+ # source://rack//lib/rack/utils.rb#238
4482
4653
  def parse_cookies_header(value); end
4483
4654
 
4484
4655
  # source://rack//lib/rack/utils.rb#106
@@ -4490,15 +4661,15 @@ module Rack::Utils
4490
4661
  # source://rack//lib/rack/utils.rb#138
4491
4662
  def q_values(q_value_header); end
4492
4663
 
4493
- # source://rack//lib/rack/utils.rb#402
4664
+ # source://rack//lib/rack/utils.rb#395
4494
4665
  def rfc2822(time); end
4495
4666
 
4496
4667
  # :nocov:
4497
4668
  #
4498
- # source://rack//lib/rack/utils.rb#455
4669
+ # source://rack//lib/rack/utils.rb#448
4499
4670
  def secure_compare(a, b); end
4500
4671
 
4501
- # source://rack//lib/rack/utils.rb#192
4672
+ # source://rack//lib/rack/utils.rb#196
4502
4673
  def select_best_encoding(available_encodings, accept_encoding); end
4503
4674
 
4504
4675
  # :call-seq:
@@ -4506,7 +4677,8 @@ module Rack::Utils
4506
4677
  #
4507
4678
  # Generate an encoded string using the provided +key+ and +value+ suitable
4508
4679
  # for the +set-cookie+ header according to RFC6265. The +value+ may be an
4509
- # 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.
4510
4682
  #
4511
4683
  # If the cookie +value+ is an instance of +Hash+, it considers the following
4512
4684
  # cookie attribute keys: +domain+, +max_age+, +expires+ (must be instance
@@ -4514,17 +4686,13 @@ module Rack::Utils
4514
4686
  # details about the interpretation of these fields, consult
4515
4687
  # [RFC6265 Section 5.2](https://datatracker.ietf.org/doc/html/rfc6265#section-5.2).
4516
4688
  #
4517
- # An extra cookie attribute +escape_key+ can be provided to control whether
4518
- # or not the cookie key is URL encoded. If explicitly set to +false+, the
4519
- # cookie key name will not be url encoded (escaped). The default is +true+.
4520
- #
4521
4689
  # set_cookie_header("myname", "myvalue")
4522
4690
  # # => "myname=myvalue"
4523
4691
  #
4524
4692
  # set_cookie_header("myname", {value: "myvalue", max_age: 10})
4525
4693
  # # => "myname=myvalue; max-age=10"
4526
4694
  #
4527
- # source://rack//lib/rack/utils.rb#294
4695
+ # source://rack//lib/rack/utils.rb#286
4528
4696
  def set_cookie_header(key, value); end
4529
4697
 
4530
4698
  # :call-seq:
@@ -4536,10 +4704,10 @@ module Rack::Utils
4536
4704
  # If the headers already contains a +set-cookie+ key, it will be converted
4537
4705
  # to an +Array+ if not already, and appended to.
4538
4706
  #
4539
- # source://rack//lib/rack/utils.rb#337
4707
+ # source://rack//lib/rack/utils.rb#330
4540
4708
  def set_cookie_header!(headers, key, value); end
4541
4709
 
4542
- # source://rack//lib/rack/utils.rb#589
4710
+ # source://rack//lib/rack/utils.rb#582
4543
4711
  def status_code(status); end
4544
4712
 
4545
4713
  # Unescapes a URI escaped string with +encoding+. +encoding+ will be the
@@ -4554,7 +4722,7 @@ module Rack::Utils
4554
4722
  # source://rack//lib/rack/utils.rb#52
4555
4723
  def unescape_path(s); end
4556
4724
 
4557
- # source://rack//lib/rack/utils.rb#626
4725
+ # source://rack//lib/rack/utils.rb#617
4558
4726
  def valid_path?(path); end
4559
4727
 
4560
4728
  class << self
@@ -4576,10 +4744,10 @@ module Rack::Utils
4576
4744
  # Returns nil if the header is missing or syntactically invalid.
4577
4745
  # Returns an empty array if none of the ranges are satisfiable.
4578
4746
  #
4579
- # source://rack//lib/rack/utils.rb#409
4747
+ # source://rack//lib/rack/utils.rb#402
4580
4748
  def byte_ranges(env, size); end
4581
4749
 
4582
- # source://rack//lib/rack/utils.rb#609
4750
+ # source://rack//lib/rack/utils.rb#600
4583
4751
  def clean_path_info(path_info); end
4584
4752
 
4585
4753
  # source://rack//lib/rack/utils.rb#91
@@ -4597,7 +4765,7 @@ module Rack::Utils
4597
4765
  # source://rack//lib/rack/utils.rb#30
4598
4766
  def default_query_parser=(_arg0); end
4599
4767
 
4600
- # source://rack//lib/rack/utils.rb#367
4768
+ # source://rack//lib/rack/utils.rb#360
4601
4769
  def delete_cookie_header!(headers, key, value = T.unsafe(nil)); end
4602
4770
 
4603
4771
  # :call-seq:
@@ -4614,7 +4782,7 @@ module Rack::Utils
4614
4782
  # delete_set_cookie_header("myname")
4615
4783
  # # => "myname=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"
4616
4784
  #
4617
- # source://rack//lib/rack/utils.rb#363
4785
+ # source://rack//lib/rack/utils.rb#356
4618
4786
  def delete_set_cookie_header(key, value = T.unsafe(nil)); end
4619
4787
 
4620
4788
  # :call-seq:
@@ -4635,7 +4803,7 @@ module Rack::Utils
4635
4803
  # header
4636
4804
  # # => ["mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"]
4637
4805
  #
4638
- # source://rack//lib/rack/utils.rb#391
4806
+ # source://rack//lib/rack/utils.rb#384
4639
4807
  def delete_set_cookie_header!(header, key, value = T.unsafe(nil)); end
4640
4808
 
4641
4809
  # URI escapes. (CGI style space to +)
@@ -4643,9 +4811,7 @@ module Rack::Utils
4643
4811
  # source://rack//lib/rack/utils.rb#40
4644
4812
  def escape(s); end
4645
4813
 
4646
- # source://rack//lib/rack/utils.rb#262
4647
- def escape_cookie_key(key); end
4648
-
4814
+ # source://rack//lib/rack/utils.rb#183
4649
4815
  def escape_html(_arg0); end
4650
4816
 
4651
4817
  # Like URI escaping, but with %20 instead of +. Strictly speaking this is
@@ -4657,7 +4823,7 @@ module Rack::Utils
4657
4823
  # source://rack//lib/rack/utils.rb#149
4658
4824
  def forwarded_values(forwarded_header); end
4659
4825
 
4660
- # source://rack//lib/rack/utils.rb#413
4826
+ # source://rack//lib/rack/utils.rb#406
4661
4827
  def get_byte_ranges(http_range, size); end
4662
4828
 
4663
4829
  # Returns the value of attribute multipart_file_limit.
@@ -4676,14 +4842,14 @@ module Rack::Utils
4676
4842
  # multipart_part_limit is the original name of multipart_file_limit, but
4677
4843
  # the limit only counts parts with filenames.
4678
4844
  #
4679
- # source://rack//lib/rack/utils.rb#65
4845
+ # source://rack//lib/rack/utils.rb#69
4680
4846
  def multipart_part_limit; end
4681
4847
 
4682
4848
  # Sets the attribute multipart_file_limit
4683
4849
  #
4684
4850
  # @param value the value to set the attribute multipart_file_limit to.
4685
4851
  #
4686
- # source://rack//lib/rack/utils.rb#65
4852
+ # source://rack//lib/rack/utils.rb#70
4687
4853
  def multipart_part_limit=(_arg0); end
4688
4854
 
4689
4855
  # Returns the value of attribute multipart_total_part_limit.
@@ -4713,7 +4879,7 @@ module Rack::Utils
4713
4879
  # parse_cookies({'HTTP_COOKIE' => 'myname=myvalue'})
4714
4880
  # # => {'myname' => 'myvalue'}
4715
4881
  #
4716
- # source://rack//lib/rack/utils.rb#253
4882
+ # source://rack//lib/rack/utils.rb#257
4717
4883
  def parse_cookies(env); end
4718
4884
 
4719
4885
  # :call-seq:
@@ -4726,7 +4892,7 @@ module Rack::Utils
4726
4892
  # parse_cookies_header('myname=myvalue; max-age=0')
4727
4893
  # # => {"myname"=>"myvalue", "max-age"=>"0"}
4728
4894
  #
4729
- # source://rack//lib/rack/utils.rb#234
4895
+ # source://rack//lib/rack/utils.rb#238
4730
4896
  def parse_cookies_header(value); end
4731
4897
 
4732
4898
  # source://rack//lib/rack/utils.rb#106
@@ -4738,13 +4904,13 @@ module Rack::Utils
4738
4904
  # source://rack//lib/rack/utils.rb#138
4739
4905
  def q_values(q_value_header); end
4740
4906
 
4741
- # source://rack//lib/rack/utils.rb#402
4907
+ # source://rack//lib/rack/utils.rb#395
4742
4908
  def rfc2822(time); end
4743
4909
 
4744
- # source://rack//lib/rack/utils.rb#455
4910
+ # source://rack//lib/rack/utils.rb#448
4745
4911
  def secure_compare(a, b); end
4746
4912
 
4747
- # source://rack//lib/rack/utils.rb#192
4913
+ # source://rack//lib/rack/utils.rb#196
4748
4914
  def select_best_encoding(available_encodings, accept_encoding); end
4749
4915
 
4750
4916
  # :call-seq:
@@ -4752,7 +4918,8 @@ module Rack::Utils
4752
4918
  #
4753
4919
  # Generate an encoded string using the provided +key+ and +value+ suitable
4754
4920
  # for the +set-cookie+ header according to RFC6265. The +value+ may be an
4755
- # 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.
4756
4923
  #
4757
4924
  # If the cookie +value+ is an instance of +Hash+, it considers the following
4758
4925
  # cookie attribute keys: +domain+, +max_age+, +expires+ (must be instance
@@ -4760,17 +4927,13 @@ module Rack::Utils
4760
4927
  # details about the interpretation of these fields, consult
4761
4928
  # [RFC6265 Section 5.2](https://datatracker.ietf.org/doc/html/rfc6265#section-5.2).
4762
4929
  #
4763
- # An extra cookie attribute +escape_key+ can be provided to control whether
4764
- # or not the cookie key is URL encoded. If explicitly set to +false+, the
4765
- # cookie key name will not be url encoded (escaped). The default is +true+.
4766
- #
4767
4930
  # set_cookie_header("myname", "myvalue")
4768
4931
  # # => "myname=myvalue"
4769
4932
  #
4770
4933
  # set_cookie_header("myname", {value: "myvalue", max_age: 10})
4771
4934
  # # => "myname=myvalue; max-age=10"
4772
4935
  #
4773
- # source://rack//lib/rack/utils.rb#294
4936
+ # source://rack//lib/rack/utils.rb#286
4774
4937
  def set_cookie_header(key, value); end
4775
4938
 
4776
4939
  # :call-seq:
@@ -4782,10 +4945,10 @@ module Rack::Utils
4782
4945
  # If the headers already contains a +set-cookie+ key, it will be converted
4783
4946
  # to an +Array+ if not already, and appended to.
4784
4947
  #
4785
- # source://rack//lib/rack/utils.rb#337
4948
+ # source://rack//lib/rack/utils.rb#330
4786
4949
  def set_cookie_header!(headers, key, value); end
4787
4950
 
4788
- # source://rack//lib/rack/utils.rb#589
4951
+ # source://rack//lib/rack/utils.rb#582
4789
4952
  def status_code(status); end
4790
4953
 
4791
4954
  # Unescapes a URI escaped string with +encoding+. +encoding+ will be the
@@ -4802,7 +4965,7 @@ module Rack::Utils
4802
4965
 
4803
4966
  # @return [Boolean]
4804
4967
  #
4805
- # source://rack//lib/rack/utils.rb#626
4968
+ # source://rack//lib/rack/utils.rb#617
4806
4969
  def valid_path?(path); end
4807
4970
  end
4808
4971
  end
@@ -4816,30 +4979,30 @@ Rack::Utils::COMMON_SEP = T.let(T.unsafe(nil), Hash)
4816
4979
  # would be the request environment. The second of which would be the rack
4817
4980
  # application that the request would be forwarded to.
4818
4981
  #
4819
- # source://rack//lib/rack/utils.rb#478
4982
+ # source://rack//lib/rack/utils.rb#471
4820
4983
  class Rack::Utils::Context
4821
4984
  # @return [Context] a new instance of Context
4822
4985
  #
4823
- # source://rack//lib/rack/utils.rb#481
4986
+ # source://rack//lib/rack/utils.rb#474
4824
4987
  def initialize(app_f, app_r); end
4825
4988
 
4826
4989
  # Returns the value of attribute app.
4827
4990
  #
4828
- # source://rack//lib/rack/utils.rb#479
4991
+ # source://rack//lib/rack/utils.rb#472
4829
4992
  def app; end
4830
4993
 
4831
- # source://rack//lib/rack/utils.rb#486
4994
+ # source://rack//lib/rack/utils.rb#479
4832
4995
  def call(env); end
4833
4996
 
4834
- # source://rack//lib/rack/utils.rb#494
4997
+ # source://rack//lib/rack/utils.rb#487
4835
4998
  def context(env, app = T.unsafe(nil)); end
4836
4999
 
4837
5000
  # Returns the value of attribute for.
4838
5001
  #
4839
- # source://rack//lib/rack/utils.rb#479
5002
+ # source://rack//lib/rack/utils.rb#472
4840
5003
  def for; end
4841
5004
 
4842
- # source://rack//lib/rack/utils.rb#490
5005
+ # source://rack//lib/rack/utils.rb#483
4843
5006
  def recontext(app); end
4844
5007
  end
4845
5008
 
@@ -4849,11 +5012,10 @@ Rack::Utils::DEFAULT_SEP = T.let(T.unsafe(nil), Regexp)
4849
5012
  # Every standard HTTP code mapped to the appropriate message.
4850
5013
  # Generated with:
4851
5014
  # curl -s https://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv \
4852
- # | ruby -rcsv -e "puts CSV.parse(STDIN, headers: true) \
4853
5015
  # .reject {|v| v['Description'] == 'Unassigned' or v['Description'].include? '(' } \
4854
5016
  # .map {|v| %Q/#{v['Value']} => '#{v['Description']}'/ }.join(','+?\n)"
4855
5017
  #
4856
- # source://rack//lib/rack/utils.rb#505
5018
+ # source://rack//lib/rack/utils.rb#498
4857
5019
  Rack::Utils::HTTP_STATUS_CODES = T.let(T.unsafe(nil), Hash)
4858
5020
 
4859
5021
  # source://rack//lib/rack/utils.rb#22
@@ -4862,37 +5024,40 @@ Rack::Utils::InvalidParameterError = Rack::QueryParser::InvalidParameterError
4862
5024
  # source://rack//lib/rack/utils.rb#26
4863
5025
  Rack::Utils::KeySpaceConstrainedParams = Rack::QueryParser::Params
4864
5026
 
4865
- # source://rack//lib/rack/utils.rb#624
5027
+ # source://rack//lib/rack/utils.rb#615
4866
5028
  Rack::Utils::NULL_BYTE = T.let(T.unsafe(nil), String)
4867
5029
 
4868
- # source://rack//lib/rack/utils.rb#575
5030
+ # source://rack//lib/rack/utils.rb#568
4869
5031
  Rack::Utils::OBSOLETE_SYMBOLS_TO_STATUS_CODES = T.let(T.unsafe(nil), Hash)
4870
5032
 
4871
- # source://rack//lib/rack/utils.rb#583
5033
+ # source://rack//lib/rack/utils.rb#576
4872
5034
  Rack::Utils::OBSOLETE_SYMBOL_MAPPINGS = T.let(T.unsafe(nil), Hash)
4873
5035
 
4874
- # source://rack//lib/rack/utils.rb#607
5036
+ # source://rack//lib/rack/utils.rb#598
4875
5037
  Rack::Utils::PATH_SEPS = T.let(T.unsafe(nil), Regexp)
4876
5038
 
4877
5039
  # source://rack//lib/rack/utils.rb#21
4878
5040
  Rack::Utils::ParameterTypeError = Rack::QueryParser::ParameterTypeError
4879
5041
 
4880
5042
  # source://rack//lib/rack/utils.rb#23
4881
- Rack::Utils::ParamsTooDeepError = Rack::QueryParser::ParamsTooDeepError
5043
+ Rack::Utils::ParamsTooDeepError = Rack::QueryParser::QueryLimitError
4882
5044
 
4883
5045
  # Responses with HTTP status codes that should not have an entity body
4884
5046
  #
4885
- # source://rack//lib/rack/utils.rb#569
5047
+ # source://rack//lib/rack/utils.rb#562
4886
5048
  Rack::Utils::STATUS_WITH_NO_ENTITY_BODY = T.let(T.unsafe(nil), Hash)
4887
5049
 
4888
- # source://rack//lib/rack/utils.rb#571
5050
+ # source://rack//lib/rack/utils.rb#564
4889
5051
  Rack::Utils::SYMBOL_TO_STATUS_CODE = T.let(T.unsafe(nil), Hash)
4890
5052
 
4891
5053
  # source://rack//lib/rack/utils.rb#27
4892
5054
  Rack::Utils::URI_PARSER = T.let(T.unsafe(nil), URI::RFC2396_Parser)
4893
5055
 
4894
- # A valid cookie key according to RFC2616.
5056
+ # A valid cookie key according to RFC6265 and RFC2616.
4895
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: ( ) < > @ , ; : \ " / [ ] ? = { }.
4896
5058
  #
4897
- # source://rack//lib/rack/utils.rb#259
5059
+ # source://rack//lib/rack/utils.rb#263
4898
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)