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 @@ -759,8 +759,18 @@ class << self
759
759
alias default_imap_port default_port
760
760
alias default_imaps_port default_tls_port
761
761
alias default_ssl_port default_tls_port
762
+
763
+ # Set to true to silence deprecation warnings, e.g. from #responses.
764
+ # Defaults to false.
765
+ #
766
+ # These warnings are concerning thread-safety issues, so it is recommended
767
+ # to update other code and leave this value. Deprecated usage will
768
+ # become errors regardless of this setting, so use this only temporarily.
769
+ attr_accessor :silence_thread_safety_deprecation_warnings
762
770
end
763
771
772
+ self . silence_thread_safety_deprecation_warnings = false
773
+
764
774
# Returns the initial greeting the server, an UntaggedResponse.
765
775
attr_reader :greeting
766
776
@@ -2501,7 +2511,9 @@ def responses(type = nil)
2501
2511
elsif type
2502
2512
raise ArgumentError , "Pass a block or use #clear_responses"
2503
2513
else
2504
- warn ( "DEPRECATED: pass a block or use #clear_responses" , uplevel : 1 )
2514
+ unless IMAP . silence_thread_safety_deprecation_warnings
2515
+ warn ( "DEPRECATED: pass a block or use #clear_responses" , uplevel : 1 )
2516
+ end
2505
2517
@responses
2506
2518
end
2507
2519
end
Original file line number Diff line number Diff line change @@ -1091,6 +1091,8 @@ def test_enable
1091
1091
1092
1092
def test_responses
1093
1093
with_fake_server do |server , imap |
1094
+ original_silence = Net ::IMAP . silence_thread_safety_deprecation_warnings
1095
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = false
1094
1096
# responses available before SELECT/EXAMINE
1095
1097
assert_equal ( %w[ IMAP4REV1 NAMESPACE MOVE IDLE UTF8=ACCEPT ] ,
1096
1098
imap . responses ( "CAPABILITY" , &:last ) )
@@ -1108,6 +1110,15 @@ def test_responses
1108
1110
assert_equal ( %i[ Answered Flagged Deleted Seen Draft ] ,
1109
1111
imap . responses [ "FLAGS" ] &.last )
1110
1112
end
1113
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = true
1114
+ # TODO: assert_no_warn?
1115
+ stderr = EnvUtil . verbose_warning {
1116
+ assert_equal ( %i[ Answered Flagged Deleted Seen Draft ] ,
1117
+ imap . responses [ "FLAGS" ] &.last )
1118
+ }
1119
+ assert_empty stderr
1120
+ ensure
1121
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = original_silence
1111
1122
end
1112
1123
end
1113
1124
You can’t perform that action at this time.
0 commit comments