diff --git a/Library/Homebrew/rubocops/cask/constants/stanza.rb b/Library/Homebrew/rubocops/cask/constants/stanza.rb index 00c909b63d..0fff837f3f 100644 --- a/Library/Homebrew/rubocops/cask/constants/stanza.rb +++ b/Library/Homebrew/rubocops/cask/constants/stanza.rb @@ -6,10 +6,15 @@ module RuboCop # Constants available globally for use in all cask cops. module Constants ON_SYSTEM_METHODS = [:arm, :intel, *MacOSVersions::SYMBOLS.keys].map { |option| :"on_#{option}" }.freeze + ON_SYSTEM_METHODS_STANZA_ORDER = [ + :arm, + :intel, + *MacOSVersions::SYMBOLS.reverse_each.to_h.keys, # Oldest OS blocks first since that's more common in Casks. + ].map { |option, _| :"on_#{option}" }.freeze STANZA_GROUPS = [ [:arch, :on_arch_conditional], - ON_SYSTEM_METHODS, + ON_SYSTEM_METHODS_STANZA_ORDER, [:version, :sha256], [:language], [:url, :appcast, :name, :desc, :homepage], diff --git a/Library/Homebrew/test/rubocops/cask/stanza_order_spec.rb b/Library/Homebrew/test/rubocops/cask/stanza_order_spec.rb index b33db17f4d..b53f937e6e 100644 --- a/Library/Homebrew/test/rubocops/cask/stanza_order_spec.rb +++ b/Library/Homebrew/test/rubocops/cask/stanza_order_spec.rb @@ -604,11 +604,11 @@ describe RuboCop::Cop::Cask::StanzaOrder do let(:expected_offenses) do [{ - message: "`on_catalina` stanza out of order", + message: "`on_ventura` stanza out of order", severity: :convention, - line: 6, + line: 2, column: 2, - source: "on_catalina do\n url \"https://foo.brew.sh/foo-catalina.zip\"\n sha256 :no_check\n end", + source: "on_ventura do\n url \"https://foo.brew.sh/foo-ventura.zip\"\n sha256 :no_check\n end", }, { message: "`on_mojave` stanza out of order", severity: :convention, @@ -627,20 +627,20 @@ describe RuboCop::Cop::Cask::StanzaOrder do let(:correct_source) do <<~CASK cask "foo" do - on_ventura do - url "https://foo.brew.sh/foo-ventura.zip" - sha256 :no_check - end - on_big_sur do - url "https://foo.brew.sh/foo-big-sur.zip" + on_mojave do + url "https://foo.brew.sh/foo-mojave.zip" sha256 :no_check end on_catalina do url "https://foo.brew.sh/foo-catalina.zip" sha256 :no_check end - on_mojave do - url "https://foo.brew.sh/foo-mojave.zip" + on_big_sur do + url "https://foo.brew.sh/foo-big-sur.zip" + sha256 :no_check + end + on_ventura do + url "https://foo.brew.sh/foo-ventura.zip" sha256 :no_check end