diff --git a/Library/Homebrew/cask/audit.rb b/Library/Homebrew/cask/audit.rb
index ab571db63636176062bd97ebd26dd1f29518f603..6f80d2f58513f0d8dffcc6d0ba7c926b564196e9 100644
--- a/Library/Homebrew/cask/audit.rb
+++ b/Library/Homebrew/cask/audit.rb
@@ -309,10 +309,10 @@ module Cask
       appcast_contents, = curl_output("--compressed", "--user-agent", HOMEBREW_USER_AGENT_FAKE_SAFARI, "--location",
                                       "--globoff", "--max-time", "5", appcast_stanza)
       version_stanza = cask.version.to_s
-      if cask.appcast.configuration.blank?
-        adjusted_version_stanza = version_stanza.split(",")[0].split("-")[0].split("_")[0]
+      adjusted_version_stanza = if cask.appcast.configuration.blank?
+        version_stanza.split(",")[0].split("-")[0].split("_")[0]
       else
-        adjusted_version_stanza = cask.appcast.configuration
+        cask.appcast.configuration
       end
       return if appcast_contents.include? adjusted_version_stanza
 
diff --git a/Library/Homebrew/cli/parser.rb b/Library/Homebrew/cli/parser.rb
index 2c87d54d4d0d9cffb108a9d8c79463fef7215c02..a9537aec1bbcc80805d23bed0b15b6ee6b5fc9c5 100644
--- a/Library/Homebrew/cli/parser.rb
+++ b/Library/Homebrew/cli/parser.rb
@@ -103,10 +103,10 @@ module Homebrew
       end
 
       def flag(*names, description: nil, required_for: nil, depends_on: nil)
-        if names.any? { |name| name.end_with? "=" }
-          required = OptionParser::REQUIRED_ARGUMENT
+        required = if names.any? { |name| name.end_with? "=" }
+          OptionParser::REQUIRED_ARGUMENT
         else
-          required = OptionParser::OPTIONAL_ARGUMENT
+          OptionParser::OPTIONAL_ARGUMENT
         end
         names.map! { |name| name.chomp "=" }
         description = option_to_description(*names) if description.nil?
diff --git a/Library/Homebrew/cmd/gist-logs.rb b/Library/Homebrew/cmd/gist-logs.rb
index 2da50b70289d5ec7cd7d94d72d6003fc63aecc3e..700e212431e247abcee572da22e61a0aad62551c 100644
--- a/Library/Homebrew/cmd/gist-logs.rb
+++ b/Library/Homebrew/cmd/gist-logs.rb
@@ -63,10 +63,10 @@ module Homebrew
     end
 
     # Description formatted to work well as page title when viewing gist
-    if f.core_formula?
-      descr = "#{f.name} on #{OS_VERSION} - Homebrew build logs"
+    descr = if f.core_formula?
+      "#{f.name} on #{OS_VERSION} - Homebrew build logs"
     else
-      descr = "#{f.name} (#{f.full_name}) on #{OS_VERSION} - Homebrew build logs"
+      "#{f.name} (#{f.full_name}) on #{OS_VERSION} - Homebrew build logs"
     end
     url = create_gist(files, descr)
 
diff --git a/Library/Homebrew/cmd/sh.rb b/Library/Homebrew/cmd/sh.rb
index 00f0860965791c99c88f06d36e8d5158e101907f..43efcb5735d51f0b1c5f2bef807dd28305107d3e 100644
--- a/Library/Homebrew/cmd/sh.rb
+++ b/Library/Homebrew/cmd/sh.rb
@@ -40,10 +40,10 @@ module Homebrew
       # superenv stopped adding brew's bin but generally users will want it
       ENV["PATH"] = PATH.new(ENV["PATH"]).insert(1, HOMEBREW_PREFIX/"bin")
     end
-    if ENV["SHELL"].include?("zsh")
-      ENV["PS1"] = "brew %B%F{green}~%f%b$ "
+    ENV["PS1"] = if ENV["SHELL"].include?("zsh")
+      "brew %B%F{green}~%f%b$ "
     else
-      ENV["PS1"] = 'brew \[\033[1;32m\]\w\[\033[0m\]$ '
+      'brew \[\033[1;32m\]\w\[\033[0m\]$ '
     end
     ENV["VERBOSE"] = "1"
     puts <<~EOS
diff --git a/Library/Homebrew/cmd/tap-info.rb b/Library/Homebrew/cmd/tap-info.rb
index 7c50c33619b140a1e5fae28e7859482fe2e14f20..9f3708bd1d44ab443c012b44c140d758778bd59c 100644
--- a/Library/Homebrew/cmd/tap-info.rb
+++ b/Library/Homebrew/cmd/tap-info.rb
@@ -27,10 +27,10 @@ module Homebrew
   def tap_info
     tap_info_args.parse
 
-    if args.installed?
-      taps = Tap
+    taps = if args.installed?
+      Tap
     else
-      taps = args.named.sort.map do |name|
+      args.named.sort.map do |name|
         Tap.fetch(name)
       end
     end
diff --git a/Library/Homebrew/cmd/update-report.rb b/Library/Homebrew/cmd/update-report.rb
index d27f4f5805e1ea554c0183634f7e36447423c3aa..614d55deef6225b8278efac2ca1a1c1bd6128c30 100644
--- a/Library/Homebrew/cmd/update-report.rb
+++ b/Library/Homebrew/cmd/update-report.rb
@@ -243,10 +243,10 @@ class Reporter
       new_name = tap.formula_renames[old_name]
       next unless new_name
 
-      if tap.core_tap?
-        new_full_name = new_name
+      new_full_name = if tap.core_tap?
+        new_name
       else
-        new_full_name = "#{tap}/#{new_name}"
+        "#{tap}/#{new_name}"
       end
 
       renamed_formulae << [old_full_name, new_full_name] if @report[:A].include? new_full_name
@@ -257,10 +257,10 @@ class Reporter
       old_name = tap.formula_renames.key(new_name)
       next unless old_name
 
-      if tap.core_tap?
-        old_full_name = old_name
+      old_full_name = if tap.core_tap?
+        old_name
       else
-        old_full_name = "#{tap}/#{old_name}"
+        "#{tap}/#{old_name}"
       end
 
       renamed_formulae << [old_full_name, new_full_name]
diff --git a/Library/Homebrew/dev-cmd/bottle.rb b/Library/Homebrew/dev-cmd/bottle.rb
index 2a57961de10a12707405018c10027e19eacd5fad..a296594097b711b8a42082a9c09237e99abb5553 100644
--- a/Library/Homebrew/dev-cmd/bottle.rb
+++ b/Library/Homebrew/dev-cmd/bottle.rb
@@ -306,10 +306,10 @@ module Homebrew
 
         ohai "Detecting if #{filename} is relocatable..." if bottle_path.size > 1 * 1024 * 1024
 
-        if Homebrew.default_prefix?(prefix)
-          prefix_check = File.join(prefix, "opt")
+        prefix_check = if Homebrew.default_prefix?(prefix)
+          File.join(prefix, "opt")
         else
-          prefix_check = prefix
+          prefix
         end
 
         # Ignore matches to source code, which is not required at run time.
diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb
index fb73eb3e686e6b9fb1418935080e65a8ec23abe3..19a01be6380890af0f264ec03468dc6ee959562c 100644
--- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb
+++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb
@@ -275,18 +275,18 @@ module Homebrew
 
     if forced_version && forced_version != "0"
       if requested_spec == :stable
-        if File.read(formula.path).include?("version \"#{old_formula_version}\"")
-          replacement_pairs << [
+        replacement_pairs << if File.read(formula.path).include?("version \"#{old_formula_version}\"")
+          [
             old_formula_version.to_s,
             forced_version,
           ]
         elsif new_mirrors
-          replacement_pairs << [
+          [
             /^( +)(mirror \"#{Regexp.escape(new_mirrors.last)}\"\n)/m,
             "\\1\\2\\1version \"#{forced_version}\"\n",
           ]
         else
-          replacement_pairs << [
+          [
             /^( +)(url \"#{Regexp.escape(new_url)}\"\n)/m,
             "\\1\\2\\1version \"#{forced_version}\"\n",
           ]
diff --git a/Library/Homebrew/dev-cmd/bump-revision.rb b/Library/Homebrew/dev-cmd/bump-revision.rb
index 779da777846bf6711c7c2d7700595596ebae5c0a..ccc44085af9c867383a653d96b8ff184a1a63e4f 100644
--- a/Library/Homebrew/dev-cmd/bump-revision.rb
+++ b/Library/Homebrew/dev-cmd/bump-revision.rb
@@ -45,14 +45,14 @@ module Homebrew
         [checksum.hash_type, checksum.hexdigest]
       end
 
-      if hash_type
+      old = if hash_type
         # insert replacement revision after hash
-        old = <<~EOS
+        <<~EOS
           #{hash_type} "#{old_hash}"
         EOS
       else
         # insert replacement revision after :revision
-        old = <<~EOS
+        <<~EOS
           :revision => "#{formula_spec.specs[:revision]}"
         EOS
       end
diff --git a/Library/Homebrew/dev-cmd/pull.rb b/Library/Homebrew/dev-cmd/pull.rb
index e9f01620c8b2e0dde9b37057ca35ed97ca4539a6..ddf8560e8a469ef8f0f6917d4af181554fa43303 100644
--- a/Library/Homebrew/dev-cmd/pull.rb
+++ b/Library/Homebrew/dev-cmd/pull.rb
@@ -354,10 +354,10 @@ module Homebrew
       patch_args = []
       # Normally we don't want whitespace errors, but squashing them can break
       # patches so an option is provided to skip this step.
-      if @args.ignore_whitespace? || @args.clean?
-        patch_args << "--whitespace=nowarn"
+      patch_args << if @args.ignore_whitespace? || @args.clean?
+        "--whitespace=nowarn"
       else
-        patch_args << "--whitespace=fix"
+        "--whitespace=fix"
       end
 
       # Fall back to three-way merge if patch does not apply cleanly
diff --git a/Library/Homebrew/extend/ENV/shared.rb b/Library/Homebrew/extend/ENV/shared.rb
index 82d78920ed84d02787a7cad410c59c02c15dd5c6..acfeeb671ce52ca8b28708914bfca8a8396512ab 100644
--- a/Library/Homebrew/extend/ENV/shared.rb
+++ b/Library/Homebrew/extend/ENV/shared.rb
@@ -76,10 +76,10 @@ module SharedEnvExtension
     value = value.to_s
     Array(keys).each do |key|
       old = self[key]
-      if old.nil? || old.empty?
-        self[key] = value
+      self[key] = if old.nil? || old.empty?
+        value
       else
-        self[key] = value + separator + old
+        value + separator + old
       end
     end
   end
diff --git a/Library/Homebrew/extend/os/mac/extend/ENV/super.rb b/Library/Homebrew/extend/os/mac/extend/ENV/super.rb
index b5485e33a453e4fd65525ff8d3b49b95bece55b5..d43b6c9c2a5641fd63c30793b60958ab6334aa91 100644
--- a/Library/Homebrew/extend/os/mac/extend/ENV/super.rb
+++ b/Library/Homebrew/extend/os/mac/extend/ENV/super.rb
@@ -54,10 +54,10 @@ module Superenv
   def homebrew_extra_library_paths
     paths = []
     if compiler == :llvm_clang
-      if !MacOS.sdk_path_if_needed
-        paths << "/usr/lib"
+      paths << if !MacOS.sdk_path_if_needed
+        "/usr/lib"
       else
-        paths << "#{MacOS.sdk_path}/usr/lib"
+        "#{MacOS.sdk_path}/usr/lib"
       end
       paths << Formula["llvm"].opt_lib.to_s
     end
diff --git a/Library/Homebrew/patch.rb b/Library/Homebrew/patch.rb
index bf11d5d0190a26c0c79509b1bb8c27cc24c0eaea..db49f65e79d7e25d95d9298ac7f95d7020f97d36 100644
--- a/Library/Homebrew/patch.rb
+++ b/Library/Homebrew/patch.rb
@@ -38,11 +38,11 @@ module Patch
       {}
     end.each_pair do |strip, urls|
       Array(urls).each do |url|
-        case url
+        patch = case url
         when :DATA
-          patch = DATAPatch.new(strip)
+          DATAPatch.new(strip)
         else
-          patch = LegacyPatch.new(strip, url)
+          LegacyPatch.new(strip, url)
         end
         patches << patch
       end
diff --git a/Library/Homebrew/requirements/java_requirement.rb b/Library/Homebrew/requirements/java_requirement.rb
index 7b67cbc4abf01c6e62f3d1a424ec20e159237709..1c324df27311cb41847d06386564f7ee313e1b93 100644
--- a/Library/Homebrew/requirements/java_requirement.rb
+++ b/Library/Homebrew/requirements/java_requirement.rb
@@ -46,10 +46,10 @@ class JavaRequirement < Requirement
 
   def display_s
     if @version
-      if exact_version?
-        op = "="
+      op = if exact_version?
+        "="
       else
-        op = ">="
+        ">="
       end
       "#{name} #{op} #{version_without_plus}"
     else
diff --git a/Library/Homebrew/rubocops/class.rb b/Library/Homebrew/rubocops/class.rb
index ab5edf01b1beda47629e8fa80dce1aafb4304d70..47805658ace7cd054cb31333d2ea1591cfc151d1 100644
--- a/Library/Homebrew/rubocops/class.rb
+++ b/Library/Homebrew/rubocops/class.rb
@@ -49,9 +49,10 @@ module RuboCop
           lambda do |corrector|
             case node.type
             when :str, :dstr
+              # Rubocop: intentionally outputted non-interpolated strings
               corrector.replace(node.source_range,
                                 node.source.to_s.sub(%r{(/usr/local/(s?bin))},
-                                                     '#{\2}'))
+                                                     '#{\2}')) # rubocop:disable Lint/InterpolationCheck
             when :int
               corrector.remove(
                 range_with_surrounding_comma(
diff --git a/Library/Homebrew/rubocops/extend/formula.rb b/Library/Homebrew/rubocops/extend/formula.rb
index 41ea92d2d157b339e67f96749db07a59e34fdab1..74eef626eebd2236b22d0c0ed21d0a535a5ecbcd 100644
--- a/Library/Homebrew/rubocops/extend/formula.rb
+++ b/Library/Homebrew/rubocops/extend/formula.rb
@@ -40,10 +40,10 @@ module RuboCop
 
         node_begin_pos = start_column(node)
         line_begin_pos = line_start_column(node)
-        if node_begin_pos == line_begin_pos
-          @column = node_begin_pos + match_object.begin(0) - line_begin_pos
+        @column = if node_begin_pos == line_begin_pos
+          node_begin_pos + match_object.begin(0) - line_begin_pos
         else
-          @column = node_begin_pos + match_object.begin(0) - line_begin_pos + 1
+          node_begin_pos + match_object.begin(0) - line_begin_pos + 1
         end
         @length = match_object.to_s.length
         @line_no = line_number(node)
@@ -200,10 +200,10 @@ module RuboCop
       # Returns true if given dependency name and dependency type exist in given dependency method call node.
       # TODO: Add case where key of hash is an array
       def depends_on_name_type?(node, name = nil, type = :required)
-        if name
-          name_match = false
+        name_match = if name
+          false
         else
-          name_match = true # Match only by type when name is nil
+          true # Match only by type when name is nil
         end
 
         case type
diff --git a/Library/Homebrew/style.rb b/Library/Homebrew/style.rb
index 663a8f244b55cbe89ea9c72364bedf84d9390d2d..879bcff02c026e3a219d2558aa89e9b400e9118a 100644
--- a/Library/Homebrew/style.rb
+++ b/Library/Homebrew/style.rb
@@ -24,10 +24,10 @@ module Homebrew
       args = %w[
         --force-exclusion
       ]
-      if fix
-        args << "--auto-correct"
+      args << if fix
+        "--auto-correct"
       else
-        args << "--parallel"
+        "--parallel"
       end
 
       args += ["--extra-details", "--display-cop-names"] if Homebrew.args.verbose?
diff --git a/Library/Homebrew/tab.rb b/Library/Homebrew/tab.rb
index 3b973938ce16b48f7b25a91b34364a0233bbb5c5..8a3bdb13a1553d618d6fdc36e97b9382db0ba407 100644
--- a/Library/Homebrew/tab.rb
+++ b/Library/Homebrew/tab.rb
@@ -81,10 +81,10 @@ class Tab < OpenStruct
 
     if attributes["source"]["spec"].nil?
       version = PkgVersion.parse path.to_s.split("/").second_to_last
-      if version.head?
-        attributes["source"]["spec"] = "head"
+      attributes["source"]["spec"] = if version.head?
+        "head"
       else
-        attributes["source"]["spec"] = "stable"
+        "stable"
       end
     end
 
@@ -360,10 +360,10 @@ class Tab < OpenStruct
 
   def to_s
     s = []
-    if poured_from_bottle
-      s << "Poured from bottle"
+    s << if poured_from_bottle
+      "Poured from bottle"
     else
-      s << "Built from source"
+      "Built from source"
     end
 
     s << Time.at(time).strftime("on %Y-%m-%d at %H:%M:%S") if time
diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb
index 3bb07ef9795c92a99aa242f88e7c7fd6c5f8e198..c49ffec9d2aca3a760df9fa3de02b681b028a4b4 100644
--- a/Library/Homebrew/test/dev-cmd/audit_spec.rb
+++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb
@@ -187,6 +187,8 @@ module Homebrew
       end
     end
 
+    # Intentionally outputted non-interpolated strings
+    # rubocop:disable Lint/InterpolationCheck
     describe "#line_problems" do
       specify "pkgshare" do
         fa = formula_auditor "foo", <<~RUBY, strict: true
@@ -237,6 +239,7 @@ module Homebrew
           .to eq('Use pkgshare instead of (share/"foolibc++")')
       end
     end
+    # rubocop:enable Lint/InterpolationCheck
 
     describe "#audit_github_repository" do
       specify "#audit_github_repository when HOMEBREW_NO_GITHUB_API is set" do
diff --git a/Library/Homebrew/utils/bottles.rb b/Library/Homebrew/utils/bottles.rb
index c2b345bd0167d53ca3e707f46548ba3249df23d8..c886ae1c2fdc2f27463f7b8184ba1f3d9c5c4308 100644
--- a/Library/Homebrew/utils/bottles.rb
+++ b/Library/Homebrew/utils/bottles.rb
@@ -46,10 +46,10 @@ module Utils
         name = receipt_file_path.split("/").first
         tap = Tab.from_file_content(receipt_file, "#{bottle_file}/#{receipt_file_path}").tap
 
-        if tap.nil? || tap.core_tap?
-          full_name = name
+        full_name = if tap.nil? || tap.core_tap?
+          name
         else
-          full_name = "#{tap}/#{name}"
+          "#{tap}/#{name}"
         end
 
         [name, full_name]
diff --git a/Library/Homebrew/utils/github.rb b/Library/Homebrew/utils/github.rb
index b220260ba2c2af1dda0a2fd8f4a7dcff4b9d6fe5..4e0e42e9eb401bd3098ce4fc854ce8a5d2408cc9 100644
--- a/Library/Homebrew/utils/github.rb
+++ b/Library/Homebrew/utils/github.rb
@@ -48,13 +48,13 @@ module GitHub
     def initialize(github_message)
       @github_message = github_message
       message = +"GitHub #{github_message}:"
-      if ENV["HOMEBREW_GITHUB_API_TOKEN"]
-        message << <<~EOS
+      message << if ENV["HOMEBREW_GITHUB_API_TOKEN"]
+        <<~EOS
           HOMEBREW_GITHUB_API_TOKEN may be invalid or expired; check:
             #{Formatter.url("https://github.com/settings/tokens")}
         EOS
       else
-        message << <<~EOS
+        <<~EOS
           The GitHub credentials in the macOS keychain may be invalid.
           Clear them with:
             printf "protocol=https\\nhost=github.com\\n" | git credential-osxkeychain erase