File tree Expand file tree Collapse file tree 2 files changed +23
-1
lines changed Expand file tree Collapse file tree 2 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -750,8 +750,18 @@ class << self
750
750
alias default_imap_port default_port
751
751
alias default_imaps_port default_tls_port
752
752
alias default_ssl_port default_tls_port
753
+
754
+ # Set to true to silence deprecation warnings, e.g. from #responses.
755
+ # Defaults to false.
756
+ #
757
+ # These warnings are concerning thread-safety issues, so it is recommended
758
+ # to update other code and leave this value. Deprecated usage will
759
+ # become errors regardless of this setting, so use this only temporarily.
760
+ attr_accessor :silence_thread_safety_deprecation_warnings
753
761
end
754
762
763
+ self . silence_thread_safety_deprecation_warnings = false
764
+
755
765
def client_thread # :nodoc:
756
766
warn "Net::IMAP#client_thread is deprecated and will be removed soon."
757
767
@client_thread
@@ -1995,7 +2005,9 @@ def responses(type = nil)
1995
2005
elsif type
1996
2006
raise ArgumentError , "Pass a block or use #clear_responses"
1997
2007
else
1998
- warn ( "DEPRECATED: pass a block or use #clear_responses" , uplevel : 1 )
2008
+ unless IMAP . silence_thread_safety_deprecation_warnings
2009
+ warn ( "DEPRECATED: pass a block or use #clear_responses" , uplevel : 1 )
2010
+ end
1999
2011
@responses
2000
2012
end
2001
2013
end
Original file line number Diff line number Diff line change @@ -926,6 +926,8 @@ def test_responses
926
926
end
927
927
sock . getcmd # waits for logout command
928
928
end
929
+ original_silence = Net ::IMAP . silence_thread_safety_deprecation_warnings
930
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = false
929
931
begin
930
932
imap = Net ::IMAP . new ( server_addr , port : port )
931
933
resp = imap . select "INBOX"
@@ -940,8 +942,16 @@ def test_responses
940
942
assert_equal ( %i[ Answered Flagged Deleted Seen Draft ] ,
941
943
imap . responses [ "FLAGS" ] &.last )
942
944
end
945
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = true
946
+ # TODO: assert_no_warn?
947
+ stderr = EnvUtil . verbose_warning {
948
+ assert_equal ( %i[ Answered Flagged Deleted Seen Draft ] ,
949
+ imap . responses [ "FLAGS" ] &.last )
950
+ }
951
+ assert_empty stderr
943
952
imap . logout
944
953
ensure
954
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = original_silence
945
955
imap . disconnect if imap
946
956
end
947
957
end
You can’t perform that action at this time.
0 commit comments