@@ -4674,29 +4674,33 @@ def deprecate!(date:, because:, replacement: nil, replacement_formula: nil, repl
46744674 raise ArgumentError , "more than one of replacement, replacement_formula and/or replacement_cask specified!"
46754675 end
46764676
4677+ @deprecate_args = T . let (
4678+ { date :, because :, replacement_formula :, replacement_cask : } ,
4679+ T . nilable ( T ::Hash [ Symbol , T . nilable ( T . any ( String , Symbol ) ) ] ) ,
4680+ )
4681+
46774682 if replacement
4683+ replacement_formula ||= replacement
4684+ replacement_cask ||= replacement
46784685 odeprecated (
46794686 "deprecate!(:replacement)" ,
46804687 "deprecate!(:replacement_formula) or deprecate!(:replacement_cask)" ,
46814688 )
46824689 end
46834690
4684- @deprecate_args = T . let (
4685- { date :, because :, replacement_formula :, replacement_cask : } ,
4686- T . nilable ( T ::Hash [ Symbol , T . nilable ( T . any ( String , Symbol ) ) ] ) ,
4687- )
4691+ deprecation_date = Date . parse ( date )
4692+ @deprecation_date = T . let ( deprecation_date , T . nilable ( Date ) )
4693+ @deprecated = T . let ( deprecation_date <= Date . today , T . nilable ( T ::Boolean ) )
46884694
4689- @deprecation_date = T . let ( Date . parse ( date ) , T . nilable ( Date ) )
4690- @deprecated = T . let ( T . must ( @deprecation_date ) <= Date . today , T . nilable ( T ::Boolean ) )
46914695 if @deprecated
4692- @deprecation_reason = T . let ( because , T . nilable ( T . any ( String , Symbol ) ) )
4693- @deprecation_replacement_formula = T . let ( replacement_formula . presence || replacement , T . nilable ( String ) )
4694- @deprecation_replacement_cask = T . let ( replacement_cask . presence || replacement , T . nilable ( String ) )
4696+ @deprecation_reason = because if because
4697+ @deprecation_replacement_formula = replacement_formula if replacement_formula
4698+ @deprecation_replacement_cask = replacement_cask if replacement_cask
46954699 else
46964700 # Reset these to handle disable! before deprecate!
4697- @deprecation_reason = nil
4698- @deprecation_replacement_formula = nil
4699- @deprecation_replacement_cask = nil
4701+ @deprecation_reason = T . let ( nil , T . nilable ( T . any ( String , Symbol ) ) )
4702+ @deprecation_replacement_formula = T . let ( nil , T . nilable ( String ) )
4703+ @deprecation_replacement_cask = T . let ( nil , T . nilable ( String ) )
47004704 end
47014705 end
47024706
@@ -4784,27 +4788,31 @@ def disable!(date:, because:, replacement: nil, replacement_formula: nil, replac
47844788 raise ArgumentError , "more than one of replacement, replacement_formula and/or replacement_cask specified!"
47854789 end
47864790
4791+ @disable_args = T . let (
4792+ { date :, because :, replacement_formula :, replacement_cask : } ,
4793+ T . nilable ( T ::Hash [ Symbol , T . nilable ( T . any ( String , Symbol ) ) ] ) ,
4794+ )
4795+
47874796 if replacement
4797+ replacement_formula ||= replacement
4798+ replacement_cask ||= replacement
47884799 odeprecated (
47894800 "disable!(:replacement)" ,
47904801 "disable!(:replacement_formula) or disable!(:replacement_cask)" ,
47914802 )
47924803 end
47934804
4794- @disable_args = T . let (
4795- { date :, because :, replacement_formula :, replacement_cask : } ,
4796- T . nilable ( T ::Hash [ Symbol , T . nilable ( T . any ( String , Symbol ) ) ] ) ,
4797- )
4798-
4799- @disable_date = T . let ( Date . parse ( date ) , T . nilable ( Date ) )
4805+ disable_date = Date . parse ( date )
4806+ @disable_date = T . let ( disable_date , T . nilable ( Date ) )
48004807
4801- if T . must ( @ disable_date) > Date . today
4802- return if @deprecation_date . present?
4808+ if disable_date > Date . today
4809+ return if @deprecation_date . present? && ! @deprecated
48034810
4804- @deprecation_reason = T . let ( because , T . nilable ( T . any ( String , Symbol ) ) )
4805- @deprecation_replacement_formula = T . let ( replacement_formula . presence || replacement , T . nilable ( String ) )
4806- @deprecation_replacement_cask = T . let ( replacement_cask . presence || replacement , T . nilable ( String ) )
4807- @deprecated = T . let ( true , T . nilable ( T ::Boolean ) )
4811+ # Use `disable!` information if not set in `deprecate!`
4812+ @deprecation_reason ||= because
4813+ @deprecation_replacement_formula ||= replacement_formula
4814+ @deprecation_replacement_cask ||= replacement_cask
4815+ @deprecated ||= true
48084816 return
48094817 end
48104818
0 commit comments