@@ -25,6 +25,9 @@ module Deprecations
2525
2626 # Issue a warning about a deprecated feature. The warning is written to the
2727 # logger, and will not be written more than once per feature.
28+ #
29+ # @param [ String | Symbol ] feature The deprecated feature.
30+ # @param [ String ] message The deprecation message.
2831 def warn ( feature , message )
2932 MUTEX . synchronize do
3033 return if _warned? ( feature )
@@ -37,6 +40,7 @@ def warn(feature, message)
3740 # Check if a warning for a given deprecated feature has already been issued.
3841 #
3942 # @param [ String | Symbol ] feature The deprecated feature.
43+ # @param [ true | false ] prefix Whether to check for prefix matches.
4044 #
4145 # @return [ true | false ] If a warning has already been issued.
4246 def warned? ( feature , prefix : false )
@@ -48,21 +52,34 @@ def warned?(feature, prefix: false)
4852 # @param [ String | Symbol ] feature The deprecated feature.
4953 def warned! ( feature )
5054 MUTEX . synchronize { _warned! ( feature ) }
55+ nil
5156 end
5257
5358 # Clears all memory of previously warned features.
5459 def clear!
5560 MUTEX . synchronize { warned_features reset : true }
56- true
61+ nil
5762 end
5863
5964 private
6065
66+ # Set of features that have already been warned about.
67+ #
68+ # @param [ true | false ] reset Whether to reset the warned features.
69+ #
70+ # @return [ Set<String> ] The set of warned features.
6171 def warned_features ( reset : false )
6272 @warned_features = nil if reset
6373 @warned_features ||= Set . new
6474 end
6575
76+ # Check if a warning for a given deprecated feature has already been issued.
77+ # This version is not thread-safe.
78+ #
79+ # @param [ String | Symbol ] feature The deprecated feature.
80+ # @param [ true | false ] prefix Whether to check for prefix matches.
81+ #
82+ # @return [ true | false ] If a warning has already been issued.
6683 def _warned? ( feature , prefix : false )
6784 if prefix
6885 warned_features . any? { |f | feature . to_s . start_with? ( f ) }
@@ -71,6 +88,10 @@ def _warned?(feature, prefix: false)
7188 end
7289 end
7390
91+ # Mark that a warning for a given deprecated feature has been issued.
92+ # This version is not thread-safe.
93+ #
94+ # @param [ String | Symbol ] feature The deprecated feature.
7495 def _warned! ( feature )
7596 warned_features . add ( feature . to_s )
7697 end
0 commit comments