File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -703,8 +703,18 @@ class << self
703
703
alias default_imap_port default_port
704
704
alias default_imaps_port default_tls_port
705
705
alias default_ssl_port default_tls_port
706
+
707
+ # Set to true to silence deprecation warnings, e.g. from #responses.
708
+ # Defaults to false.
709
+ #
710
+ # These warnings are concerning thread-safety issues, so it is recommended
711
+ # to update other code and leave this value. Deprecated usage will
712
+ # become errors regardless of this setting, so use this only temporarily.
713
+ attr_accessor :silence_thread_safety_deprecation_warnings
706
714
end
707
715
716
+ self . silence_thread_safety_deprecation_warnings = false
717
+
708
718
# Returns the initial greeting the server, an UntaggedResponse.
709
719
attr_reader :greeting
710
720
@@ -2307,7 +2317,9 @@ def responses(type = nil)
2307
2317
elsif type
2308
2318
raise ArgumentError , "Pass a block or use #clear_responses"
2309
2319
else
2310
- warn ( "DEPRECATED: pass a block or use #clear_responses" , uplevel : 1 )
2320
+ unless IMAP . silence_thread_safety_deprecation_warnings
2321
+ warn ( "DEPRECATED: pass a block or use #clear_responses" , uplevel : 1 )
2322
+ end
2311
2323
@responses
2312
2324
end
2313
2325
end
Original file line number Diff line number Diff line change @@ -1072,6 +1072,8 @@ def test_enable
1072
1072
1073
1073
def test_responses
1074
1074
with_fake_server do |server , imap |
1075
+ original_silence = Net ::IMAP . silence_thread_safety_deprecation_warnings
1076
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = false
1075
1077
# responses available before SELECT/EXAMINE
1076
1078
assert_equal ( %w[ IMAP4REV1 NAMESPACE MOVE IDLE UTF8=ACCEPT ] ,
1077
1079
imap . responses ( "CAPABILITY" , &:last ) )
@@ -1089,6 +1091,15 @@ def test_responses
1089
1091
assert_equal ( %i[ Answered Flagged Deleted Seen Draft ] ,
1090
1092
imap . responses [ "FLAGS" ] &.last )
1091
1093
end
1094
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = true
1095
+ # TODO: assert_no_warn?
1096
+ stderr = EnvUtil . verbose_warning {
1097
+ assert_equal ( %i[ Answered Flagged Deleted Seen Draft ] ,
1098
+ imap . responses [ "FLAGS" ] &.last )
1099
+ }
1100
+ assert_empty stderr
1101
+ ensure
1102
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = original_silence
1092
1103
end
1093
1104
end
1094
1105
You can’t perform that action at this time.
0 commit comments