diff options
147 files changed, 700 insertions, 707 deletions
| diff --git a/Library/.rubocop.yml b/Library/.rubocop.yml index 7b3bdaeb6..dc21782e2 100644 --- a/Library/.rubocop.yml +++ b/Library/.rubocop.yml @@ -29,7 +29,7 @@ Layout/IndentArray:    EnforcedStyle: special_inside_parentheses  Layout/IndentHeredoc: -  EnforcedStyle: unindent +  EnforcedStyle: squiggly  # conflicts with DSL-style path concatenation with `/`  Layout/SpaceAroundOperators: diff --git a/Library/Homebrew/cask/lib/hbc/artifact/abstract_uninstall.rb b/Library/Homebrew/cask/lib/hbc/artifact/abstract_uninstall.rb index 3f63dae8f..7505ac49a 100644 --- a/Library/Homebrew/cask/lib/hbc/artifact/abstract_uninstall.rb +++ b/Library/Homebrew/cask/lib/hbc/artifact/abstract_uninstall.rb @@ -253,7 +253,7 @@ module Hbc        end        def trash_paths(*paths, command: nil, **_) -        result = command.run!("/usr/bin/osascript", args: ["-e", <<-'EOS'.undent, *paths]) +        result = command.run!("/usr/bin/osascript", args: ["-e", <<~'EOS', *paths])            on run argv              repeat with i from 1 to (count argv)                set item i of argv to (item i of argv as POSIX file) diff --git a/Library/Homebrew/cask/lib/hbc/artifact/installer.rb b/Library/Homebrew/cask/lib/hbc/artifact/installer.rb index 588bcabd5..5cd388c7f 100644 --- a/Library/Homebrew/cask/lib/hbc/artifact/installer.rb +++ b/Library/Homebrew/cask/lib/hbc/artifact/installer.rb @@ -10,7 +10,7 @@ module Hbc        module ManualInstaller          def install_phase(**) -          puts <<-EOS.undent +          puts <<~EOS              To complete the installation of Cask #{cask}, you must also              run the installer at diff --git a/Library/Homebrew/cask/lib/hbc/audit.rb b/Library/Homebrew/cask/lib/hbc/audit.rb index bd25477ac..5180c5688 100644 --- a/Library/Homebrew/cask/lib/hbc/audit.rb +++ b/Library/Homebrew/cask/lib/hbc/audit.rb @@ -174,7 +174,7 @@ module Hbc          add_warning "error retrieving appcast: #{result[:command_result].stderr}"        else          expected = cask.appcast.checkpoint -        add_warning <<-EOS.undent unless expected == actual_checkpoint +        add_warning <<~EOS unless expected == actual_checkpoint            appcast checkpoint mismatch            Expected: #{expected}            Actual: #{actual_checkpoint} diff --git a/Library/Homebrew/cask/lib/hbc/cask_loader.rb b/Library/Homebrew/cask/lib/hbc/cask_loader.rb index 08d457643..c32b35584 100644 --- a/Library/Homebrew/cask/lib/hbc/cask_loader.rb +++ b/Library/Homebrew/cask/lib/hbc/cask_loader.rb @@ -190,7 +190,7 @@ module Hbc        when 2..Float::INFINITY          loaders = possible_tap_casks.map(&FromTapPathLoader.method(:new)) -        raise CaskError, <<-EOS.undent +        raise CaskError, <<~EOS            Cask #{ref} exists in multiple taps:            #{loaders.map { |loader| "  #{loader.tap}/#{loader.token}" }.join("\n")}          EOS diff --git a/Library/Homebrew/cask/lib/hbc/cli.rb b/Library/Homebrew/cask/lib/hbc/cli.rb index d260be4e3..9283802d5 100644 --- a/Library/Homebrew/cask/lib/hbc/cli.rb +++ b/Library/Homebrew/cask/lib/hbc/cli.rb @@ -235,7 +235,7 @@ module Hbc        end        def purpose -        puts <<-EOS.undent +        puts <<~EOS            brew-cask provides a friendly homebrew-style CLI workflow for the            administration of macOS applications distributed as binaries. diff --git a/Library/Homebrew/cask/lib/hbc/cli/create.rb b/Library/Homebrew/cask/lib/hbc/cli/create.rb index 8de101092..e6ca3d7bc 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/create.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/create.rb @@ -21,7 +21,7 @@ module Hbc        end        def self.template(cask_token) -        <<-EOS.undent +        <<~EOS            cask '#{cask_token}' do              version ''              sha256 '' diff --git a/Library/Homebrew/cask/lib/hbc/cli/internal_audit_modified_casks.rb b/Library/Homebrew/cask/lib/hbc/cli/internal_audit_modified_casks.rb index b83224fb1..f06e2acc5 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/internal_audit_modified_casks.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/internal_audit_modified_casks.rb @@ -16,7 +16,7 @@ module Hbc          super          if args.count != 1 -          raise ArgumentError, <<-EOS.undent +          raise ArgumentError, <<~EOS              This command requires exactly one argument.              #{self.class.usage} @@ -31,7 +31,7 @@ module Hbc        end        def self.usage -        <<-EOS.undent +        <<~EOS            Usage: brew cask _audit_modified_casks [options...] <commit range>            Given a range of Git commits, find any Casks that were modified and run `brew diff --git a/Library/Homebrew/cask/lib/hbc/cli/uninstall.rb b/Library/Homebrew/cask/lib/hbc/cli/uninstall.rb index f2059605c..c962632bc 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/uninstall.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/uninstall.rb @@ -25,7 +25,7 @@ module Hbc            single = versions.count == 1 -          puts <<-EOS.undent +          puts <<~EOS              #{cask} #{versions.join(", ")} #{single ? "is" : "are"} still installed.              Remove #{single ? "it" : "them all"} with `brew cask uninstall --force #{cask}`.            EOS diff --git a/Library/Homebrew/cask/lib/hbc/container/air.rb b/Library/Homebrew/cask/lib/hbc/container/air.rb index 4b083e538..f2ebb6bcd 100644 --- a/Library/Homebrew/cask/lib/hbc/container/air.rb +++ b/Library/Homebrew/cask/lib/hbc/container/air.rb @@ -13,7 +13,7 @@ module Hbc        def self.installer_cmd          return @installer_cmd ||= INSTALLER_PATHNAME if installer_exist? -        raise CaskError, <<-EOS.undent +        raise CaskError, <<~EOS            Adobe AIR runtime not present, try installing it via                brew cask install adobe-air diff --git a/Library/Homebrew/cask/lib/hbc/dsl/caveats.rb b/Library/Homebrew/cask/lib/hbc/dsl/caveats.rb index 7d373b5f3..45ee5d160 100644 --- a/Library/Homebrew/cask/lib/hbc/dsl/caveats.rb +++ b/Library/Homebrew/cask/lib/hbc/dsl/caveats.rb @@ -9,22 +9,22 @@ module Hbc    class DSL      class Caveats < Base        def path_environment_variable(path) -        puts <<-EOS.undent -        To use #{@cask}, you may need to add the #{path} directory -        to your PATH environment variable, eg (for bash shell): +        puts <<~EOS +          To use #{@cask}, you may need to add the #{path} directory +          to your PATH environment variable, eg (for bash shell): -          export PATH=#{path}:"$PATH" +            export PATH=#{path}:"$PATH"          EOS        end        def zsh_path_helper(path) -        puts <<-EOS.undent -        To use #{@cask}, zsh users may need to add the following line to their -        ~/.zprofile.  (Among other effects, #{path} will be added to the -        PATH environment variable): +        puts <<~EOS +          To use #{@cask}, zsh users may need to add the following line to their +          ~/.zprofile.  (Among other effects, #{path} will be added to the +          PATH environment variable): -          eval `/usr/libexec/path_helper -s` +            eval `/usr/libexec/path_helper -s`          EOS        end @@ -32,7 +32,7 @@ module Hbc        def files_in_usr_local          localpath = "/usr/local"          return unless HOMEBREW_PREFIX.to_s.downcase.start_with?(localpath) -        puts <<-EOS.undent +        puts <<~EOS            Cask #{@cask} installs files under "#{localpath}". The presence of such            files can cause warnings when running "brew doctor", which is considered            to be a bug in Homebrew-Cask. @@ -42,72 +42,72 @@ module Hbc        def depends_on_java(java_version = "any")          if java_version == "any" -          puts <<-EOS.undent -          #{@cask} requires Java. You can install the latest version with +          puts <<~EOS +            #{@cask} requires Java. You can install the latest version with -            brew cask install java +              brew cask install java            EOS          elsif java_version.include?("9") || java_version.include?("+") -          puts <<-EOS.undent -          #{@cask} requires Java #{java_version}. You can install the latest version with +          puts <<~EOS +            #{@cask} requires Java #{java_version}. You can install the latest version with -            brew cask install java +              brew cask install java            EOS          else -          puts <<-EOS.undent -          #{@cask} requires Java #{java_version}. You can install it with +          puts <<~EOS +            #{@cask} requires Java #{java_version}. You can install it with -            brew cask install caskroom/versions/java#{java_version} +              brew cask install caskroom/versions/java#{java_version}            EOS          end        end        def logout -        puts <<-EOS.undent -        You must log out and log back in for the installation of #{@cask} -        to take effect. +        puts <<~EOS +          You must log out and log back in for the installation of #{@cask} +          to take effect.          EOS        end        def reboot -        puts <<-EOS.undent -        You must reboot for the installation of #{@cask} to take effect. +        puts <<~EOS +          You must reboot for the installation of #{@cask} to take effect.          EOS        end        def discontinued -        puts <<-EOS.undent -        #{@cask} has been officially discontinued upstream. -        It may stop working correctly (or at all) in recent versions of macOS. +        puts <<~EOS +          #{@cask} has been officially discontinued upstream. +          It may stop working correctly (or at all) in recent versions of macOS.          EOS        end        def free_license(web_page) -        puts <<-EOS.undent -        The vendor offers a free license for #{@cask} at -          #{web_page} +        puts <<~EOS +          The vendor offers a free license for #{@cask} at +            #{web_page}          EOS        end        def malware(radar_number) -        puts <<-EOS.undent -        #{@cask} has been reported to bundle malware. Like with any app, use at your own risk. +        puts <<~EOS +          #{@cask} has been reported to bundle malware. Like with any app, use at your own risk. -        A report has been made to Apple about this app. Their certificate will hopefully be revoked. -        See the public report at -          #{Formatter.url("https://openradar.appspot.com/#{radar_number}")} +          A report has been made to Apple about this app. Their certificate will hopefully be revoked. +          See the public report at +            #{Formatter.url("https://openradar.appspot.com/#{radar_number}")} -        If this report is accurate, please duplicate it at -          #{Formatter.url("https://bugreport.apple.com/")} -        If this report is a mistake, please let us know by opening an issue at -          #{Formatter.url("https://github.com/caskroom/homebrew-cask/issues/new")} +          If this report is accurate, please duplicate it at +            #{Formatter.url("https://bugreport.apple.com/")} +          If this report is a mistake, please let us know by opening an issue at +            #{Formatter.url("https://github.com/caskroom/homebrew-cask/issues/new")}          EOS        end diff --git a/Library/Homebrew/cask/lib/hbc/exceptions.rb b/Library/Homebrew/cask/lib/hbc/exceptions.rb index f7f9e43b6..2626a467a 100644 --- a/Library/Homebrew/cask/lib/hbc/exceptions.rb +++ b/Library/Homebrew/cask/lib/hbc/exceptions.rb @@ -44,7 +44,7 @@ module Hbc    class CaskAlreadyInstalledError < AbstractCaskErrorWithToken      def to_s -      <<-EOS.undent +      <<~EOS          Cask '#{token}' is already installed.          To re-install #{token}, run: @@ -80,7 +80,7 @@ module Hbc    class CaskX11DependencyError < AbstractCaskErrorWithToken      def to_s -      <<-EOS.undent +      <<~EOS          Cask '#{token}' requires XQuartz/X11, which can be installed using Homebrew-Cask by running            #{Formatter.identifier("brew cask install xquartz")} @@ -132,7 +132,7 @@ module Hbc    class CaskSha256MissingError < CaskSha256Error      def to_s -      <<-EOS.undent +      <<~EOS          Cask '#{token}' requires a checksum:            #{Formatter.identifier("sha256 '#{actual}'")}        EOS @@ -148,7 +148,7 @@ module Hbc      end      def to_s -      <<-EOS.undent +      <<~EOS          Checksum for Cask '#{token}' does not match.          Expected: #{Formatter.success(expected.to_s)} @@ -162,7 +162,7 @@ module Hbc    class CaskNoShasumError < CaskSha256Error      def to_s -      <<-EOS.undent +      <<~EOS          Cask '#{token}' does not have a sha256 checksum defined and was not installed.          This means you have the #{Formatter.identifier("--require-sha")} option set, perhaps in your HOMEBREW_CASK_OPTS.        EOS diff --git a/Library/Homebrew/cask/lib/hbc/installer.rb b/Library/Homebrew/cask/lib/hbc/installer.rb index 68b9595e1..1063f488b 100644 --- a/Library/Homebrew/cask/lib/hbc/installer.rb +++ b/Library/Homebrew/cask/lib/hbc/installer.rb @@ -326,7 +326,7 @@ module Hbc                        ],                        sudo: true)        else -        opoo <<-EOS.undent +        opoo <<~EOS            Accessibility access cannot be enabled automatically on this version of macOS.            See System Preferences to enable it manually.          EOS @@ -347,7 +347,7 @@ module Hbc                        ],                        sudo: true)        else -        opoo <<-EOS.undent +        opoo <<~EOS            Accessibility access cannot be disabled automatically on this version of macOS.            See System Preferences to disable it manually.          EOS diff --git a/Library/Homebrew/cask/lib/hbc/system_command.rb b/Library/Homebrew/cask/lib/hbc/system_command.rb index 9ce3de907..3c8311a3b 100644 --- a/Library/Homebrew/cask/lib/hbc/system_command.rb +++ b/Library/Homebrew/cask/lib/hbc/system_command.rb @@ -166,12 +166,12 @@ module Hbc          _warn_plist_garbage(command, Regexp.last_match[2])          xml = Plist.parse_xml(output)          unless xml.respond_to?(:keys) && !xml.keys.empty? -          raise CaskError, <<-EOS -    Empty result parsing plist output from command. -      command was: -      #{command} -      output we attempted to parse: -      #{output} +          raise CaskError, <<~EOS +            Empty result parsing plist output from command. +              command was: +              #{command} +              output we attempted to parse: +              #{output}            EOS          end          xml diff --git a/Library/Homebrew/cask/lib/hbc/utils.rb b/Library/Homebrew/cask/lib/hbc/utils.rb index 22f826e74..0f44c0157 100644 --- a/Library/Homebrew/cask/lib/hbc/utils.rb +++ b/Library/Homebrew/cask/lib/hbc/utils.rb @@ -90,7 +90,7 @@ module Hbc      end      def self.error_message_with_suggestions -      <<-EOS.undent +      <<~EOS          Follow the instructions here:            #{Formatter.url(BUG_REPORTS_URL)}        EOS diff --git a/Library/Homebrew/cask/lib/hbc/version.rb b/Library/Homebrew/cask/lib/hbc/version.rb index 2eb942b95..c7ce8e2d8 100644 --- a/Library/Homebrew/cask/lib/hbc/version.rb +++ b/Library/Homebrew/cask/lib/hbc/version.rb @@ -1,7 +1,7 @@  module Hbc    def self.full_version      @full_version ||= begin -      <<-EOS.undent +      <<~EOS          Homebrew-Cask #{HOMEBREW_VERSION}          caskroom/homebrew-cask #{Hbc.default_tap.version_string}        EOS diff --git a/Library/Homebrew/caveats.rb b/Library/Homebrew/caveats.rb index ef8028339..485116cff 100644 --- a/Library/Homebrew/caveats.rb +++ b/Library/Homebrew/caveats.rb @@ -44,7 +44,7 @@ class Caveats    def keg_only_text      return unless f.keg_only? -    s = <<-EOS.undent +    s = <<~EOS        This formula is keg-only, which means it was not symlinked into #{HOMEBREW_PREFIX},        because #{f.keg_only_reason.to_s.chomp}.      EOS @@ -86,12 +86,12 @@ class Caveats      case shell      when :bash -      <<-EOS.undent +      <<~EOS          Bash completion has been installed to:            #{HOMEBREW_PREFIX}/etc/bash_completion.d        EOS      when :zsh -      <<-EOS.undent +      <<~EOS          zsh #{installed.join(" and ")} have been installed to:            #{HOMEBREW_PREFIX}/share/zsh/site-functions        EOS @@ -111,7 +111,7 @@ class Caveats      homebrew_site_packages = Language::Python.homebrew_site_packages      user_site_packages = Language::Python.user_site_packages "python"      pth_file = user_site_packages/"homebrew.pth" -    instructions = <<-EOS.undent.gsub(/^/, "  ") +    instructions = <<~EOS.gsub(/^/, "  ")        mkdir -p #{user_site_packages}        echo 'import site; site.addsitedir("#{homebrew_site_packages}")' >> #{pth_file}      EOS @@ -119,7 +119,7 @@ class Caveats      if f.keg_only?        keg_site_packages = f.opt_prefix/"lib/python2.7/site-packages"        unless Language::Python.in_sys_path?("python", keg_site_packages) -        s = <<-EOS.undent +        s = <<~EOS            If you need Python to find bindings for this keg-only formula, run:              echo #{keg_site_packages} >> #{homebrew_site_packages/f.name}.pth          EOS @@ -131,7 +131,7 @@ class Caveats      return if Language::Python.reads_brewed_pth_files?("python")      if !Language::Python.in_sys_path?("python", homebrew_site_packages) -      s = <<-EOS.undent +      s = <<~EOS          Python modules have been installed and Homebrew's site-packages is not          in your Python sys.path, so you will not be able to import the modules          this formula installed. If you plan to develop with these modules, @@ -139,7 +139,7 @@ class Caveats        EOS        s += instructions      elsif keg.python_pth_files_installed? -      s = <<-EOS.undent +      s = <<~EOS          This formula installed .pth files to Homebrew's site-packages and your          Python isn't configured to process them, so you will not be able to          import the modules this formula installed. If you plan to develop @@ -155,7 +155,7 @@ class Caveats      return unless keg      return unless keg.elisp_installed? -    <<-EOS.undent +    <<~EOS        Emacs Lisp files have been installed to:          #{HOMEBREW_PREFIX}/share/emacs/site-lisp/#{f.name}      EOS diff --git a/Library/Homebrew/cmd/cleanup.rb b/Library/Homebrew/cmd/cleanup.rb index d8f669e85..290b748de 100644 --- a/Library/Homebrew/cmd/cleanup.rb +++ b/Library/Homebrew/cmd/cleanup.rb @@ -38,7 +38,7 @@ module Homebrew    end    def report_unremovable_kegs -    ofail <<-EOS.undent +    ofail <<~EOS        Could not cleanup old kegs! Fix your permissions on:          #{Cleanup.unremovable_kegs.join "\n  "}      EOS diff --git a/Library/Homebrew/cmd/diy.rb b/Library/Homebrew/cmd/diy.rb index a8f6440df..3980b3d9e 100644 --- a/Library/Homebrew/cmd/diy.rb +++ b/Library/Homebrew/cmd/diy.rb @@ -43,7 +43,7 @@ module Homebrew      detected_name = basename[/(.*?)-?#{Regexp.escape(version)}/, 1] || basename      canonical_name = Formulary.canonical_name(detected_name) -    odie <<-EOS.undent if detected_name != canonical_name +    odie <<~EOS if detected_name != canonical_name        The detected name #{detected_name.inspect} exists in Homebrew as an alias        of #{canonical_name.inspect}. Consider using the canonical name instead:          brew diy --name=#{canonical_name} diff --git a/Library/Homebrew/cmd/doctor.rb b/Library/Homebrew/cmd/doctor.rb index cca2dca03..7b1778e63 100644 --- a/Library/Homebrew/cmd/doctor.rb +++ b/Library/Homebrew/cmd/doctor.rb @@ -43,7 +43,7 @@ module Homebrew        out = checks.send(method)        next if out.nil? || out.empty?        if first_warning -        $stderr.puts <<-EOS.undent +        $stderr.puts <<~EOS            #{Tty.bold}Please note that these warnings are just used to help the Homebrew maintainers            with debugging if you file an issue. If everything you use Homebrew for is            working fine: please don't worry and just ignore them. Thanks!#{Tty.reset} diff --git a/Library/Homebrew/cmd/gist-logs.rb b/Library/Homebrew/cmd/gist-logs.rb index 012121b08..45537602b 100644 --- a/Library/Homebrew/cmd/gist-logs.rb +++ b/Library/Homebrew/cmd/gist-logs.rb @@ -29,7 +29,7 @@ module Homebrew      files["00.config.out"] = { content: s.string }      files["00.doctor.out"] = { content: `brew doctor 2>&1` }      unless f.core_formula? -      tap = <<-EOS.undent +      tap = <<~EOS          Formula: #{f.name}          Tap: #{f.tap}          Path: #{f.path} @@ -47,7 +47,7 @@ module Homebrew      if ARGV.include?("--new-issue") || ARGV.switch?("n")        if GitHub.api_credentials_type == :none -        puts <<-EOS.undent +        puts <<~EOS            You can create a new personal access token:             #{GitHub::ALL_SCOPES_URL}            and then set the new HOMEBREW_GITHUB_API_TOKEN as the authentication method. @@ -64,7 +64,7 @@ module Homebrew    def brief_build_info(f)      build_time_str = f.logs.ctime.strftime("%Y-%m-%d %H:%M:%S") -    s = <<-EOS.undent +    s = <<~EOS        Homebrew build logs for #{f.full_name} on #{OS_VERSION}      EOS      if ARGV.include?("--with-hostname") diff --git a/Library/Homebrew/cmd/help.rb b/Library/Homebrew/cmd/help.rb index a0c44854b..c85916f9b 100644 --- a/Library/Homebrew/cmd/help.rb +++ b/Library/Homebrew/cmd/help.rb @@ -1,4 +1,4 @@ -HOMEBREW_HELP = <<-EOS.unindent.freeze +HOMEBREW_HELP = <<~EOS.freeze    Example usage:      brew search [TEXT|/REGEX/]      brew (info|home|options) [FORMULA...] diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 6ee24a7fa..83bb712ab 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -128,7 +128,7 @@ module Homebrew        "#{c.name}#{reason}"      end.sort!      unless conflicts.empty? -      puts <<-EOS.undent +      puts <<~EOS          Conflicts with:            #{conflicts.join("\n  ")}        EOS diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index ca8f29477..575dbc4b3 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -110,17 +110,17 @@ module Homebrew        ARGV.formulae.each do |f|          # head-only without --HEAD is an error          if !ARGV.build_head? && f.stable.nil? && f.devel.nil? -          raise <<-EOS.undent -          #{f.full_name} is a head-only formula -          Install with `brew install --HEAD #{f.full_name}` +          raise <<~EOS +            #{f.full_name} is a head-only formula +            Install with `brew install --HEAD #{f.full_name}`            EOS          end          # devel-only without --devel is an error          if !ARGV.build_devel? && f.stable.nil? && f.head.nil? -          raise <<-EOS.undent -          #{f.full_name} is a devel-only formula -          Install with `brew install --devel #{f.full_name}` +          raise <<~EOS +            #{f.full_name} is a devel-only formula +            Install with `brew install --devel #{f.full_name}`            EOS          end @@ -150,12 +150,12 @@ module Homebrew            # sure --force flag is passed.            if f.outdated?              optlinked_version = Keg.for(f.opt_prefix).version -            onoe <<-EOS.undent +            onoe <<~EOS                #{f.full_name} #{optlinked_version} is already installed                To upgrade to #{f.version}, run `brew upgrade #{f.name}`              EOS            else -            opoo <<-EOS.undent +            opoo <<~EOS                #{f.full_name} #{f.pkg_version} is already installed              EOS            end @@ -173,13 +173,13 @@ module Homebrew            msg = "#{f.full_name} #{installed_version} is already installed"            linked_not_equals_installed = f.linked_version != installed_version            if f.linked? && linked_not_equals_installed -            msg = <<-EOS.undent +            msg = <<~EOS                #{msg}                The currently linked version is #{f.linked_version}                You can use `brew switch #{f} #{installed_version}` to link this version.              EOS            elsif !f.linked? || f.keg_only? -            msg = <<-EOS.undent +            msg = <<~EOS                #{msg}, it's just not linked.                You can use `brew link #{f}` to link this version.              EOS @@ -188,7 +188,7 @@ module Homebrew          elsif !f.any_version_installed? && old_formula = f.old_installed_formulae.first            msg = "#{old_formula.full_name} #{old_formula.installed_version} already installed"            if !old_formula.linked? && !old_formula.keg_only? -            msg = <<-EOS.undent +            msg = <<~EOS                #{msg}, it's just not linked.                You can use `brew link #{old_formula.full_name}` to link this version.              EOS @@ -197,7 +197,7 @@ module Homebrew          elsif f.migration_needed? && !ARGV.force?            # Check if the formula we try to install is the same as installed            # but not migrated one. If --force passed then install anyway. -          opoo <<-EOS.undent +          opoo <<~EOS              #{f.oldname} already installed, it's just not migrated              You can migrate formula with `brew migrate #{f}`              Or you can force install it with `brew install #{f} --force` @@ -283,7 +283,7 @@ module Homebrew    def check_ppc      case Hardware::CPU.type      when :ppc -      abort <<-EOS.undent +      abort <<~EOS          Sorry, Homebrew does not support your computer's CPU architecture.          For PPC support, see: https://github.com/mistydemeo/tigerbrew        EOS @@ -308,7 +308,7 @@ module Homebrew    def check_cellar      FileUtils.mkdir_p HOMEBREW_CELLAR unless File.exist? HOMEBREW_CELLAR    rescue -    raise <<-EOS.undent +    raise <<~EOS        Could not create #{HOMEBREW_CELLAR}        Check you have permission to write to #{HOMEBREW_CELLAR.parent}      EOS diff --git a/Library/Homebrew/cmd/link.rb b/Library/Homebrew/cmd/link.rb index 6c4b912e8..5afb19ed6 100644 --- a/Library/Homebrew/cmd/link.rb +++ b/Library/Homebrew/cmd/link.rb @@ -29,7 +29,7 @@ module Homebrew        keg_only = keg_only?(keg.rack)        if HOMEBREW_PREFIX.to_s == "/usr/local" && keg_only &&           keg.name.start_with?("openssl", "libressl") -        opoo <<-EOS.undent +        opoo <<~EOS            Refusing to link: #{keg.name}            Linking keg-only #{keg.name} means you may end up linking against the insecure,            deprecated system OpenSSL while using the headers from Homebrew's #{keg.name}. diff --git a/Library/Homebrew/cmd/linkapps.rb b/Library/Homebrew/cmd/linkapps.rb index 8713b609e..e8d482529 100644 --- a/Library/Homebrew/cmd/linkapps.rb +++ b/Library/Homebrew/cmd/linkapps.rb @@ -19,7 +19,7 @@ module Homebrew    module_function    def linkapps -    opoo <<-EOS.undent +    opoo <<~EOS        `brew linkapps` has been deprecated and will eventually be removed!        Unfortunately `brew linkapps` cannot behave nicely with e.g. Spotlight using diff --git a/Library/Homebrew/cmd/log.rb b/Library/Homebrew/cmd/log.rb index 9323c762d..898e921ba 100644 --- a/Library/Homebrew/cmd/log.rb +++ b/Library/Homebrew/cmd/log.rb @@ -31,7 +31,7 @@ module Homebrew      end      if File.exist? "#{repo}/.git/shallow" -      opoo <<-EOS.undent +      opoo <<~EOS          #{name} is a shallow clone so only partial output will be shown.          To get a full clone run:            git -C "#{git_cd}" fetch --unshallow diff --git a/Library/Homebrew/cmd/search.rb b/Library/Homebrew/cmd/search.rb index d0f85a858..4ba5247f1 100644 --- a/Library/Homebrew/cmd/search.rb +++ b/Library/Homebrew/cmd/search.rb @@ -87,7 +87,7 @@ module Homebrew          arg.include?(char) && !arg.start_with?("/")        end      end -    ohai <<-EOS.undent +    ohai <<~EOS        Did you mean to perform a regular expression search?        Surround your query with /slashes/ to search locally by regex.      EOS diff --git a/Library/Homebrew/cmd/sh.rb b/Library/Homebrew/cmd/sh.rb index 69f329cb3..3fe5f3005 100644 --- a/Library/Homebrew/cmd/sh.rb +++ b/Library/Homebrew/cmd/sh.rb @@ -27,14 +27,14 @@ module Homebrew      end      ENV["PS1"] = 'brew \[\033[1;32m\]\w\[\033[0m\]$ '      ENV["VERBOSE"] = "1" -    puts <<-EOS.undent_________________________________________________________72 -         Your shell has been configured to use Homebrew's build environment; -         this should help you build stuff. Notably though, the system versions of -         gem and pip will ignore our configuration and insist on using the -         environment they were built under (mostly). Sadly, scons will also -         ignore our configuration. -         When done, type `exit'. -         EOS +    puts <<~EOS +      Your shell has been configured to use Homebrew's build environment; +      this should help you build stuff. Notably though, the system versions of +      gem and pip will ignore our configuration and insist on using the +      environment they were built under (mostly). Sadly, scons will also +      ignore our configuration. +      When done, type `exit'. +    EOS      $stdout.flush      exec ENV["SHELL"]    end diff --git a/Library/Homebrew/cmd/uninstall.rb b/Library/Homebrew/cmd/uninstall.rb index 4839ba1e0..f95b6c7bb 100644 --- a/Library/Homebrew/cmd/uninstall.rb +++ b/Library/Homebrew/cmd/uninstall.rb @@ -131,7 +131,7 @@ module Homebrew    class DeveloperDependentsMessage < DependentsMessage      def output -      opoo <<-EOS.undent +      opoo <<~EOS          #{list reqs} #{are_required_by_deps}.          You can silence this warning with:            #{sample_command} @@ -141,7 +141,7 @@ module Homebrew    class NondeveloperDependentsMessage < DependentsMessage      def output -      ofail <<-EOS.undent +      ofail <<~EOS          Refusing to uninstall #{list reqs}          because #{they reqs} #{are_required_by_deps}.          You can override this and force removal with: diff --git a/Library/Homebrew/cmd/unlinkapps.rb b/Library/Homebrew/cmd/unlinkapps.rb index 56dba3603..7f401aaeb 100644 --- a/Library/Homebrew/cmd/unlinkapps.rb +++ b/Library/Homebrew/cmd/unlinkapps.rb @@ -20,7 +20,7 @@ module Homebrew    module_function    def unlinkapps -    opoo <<-EOS.undent +    opoo <<~EOS        `brew unlinkapps` has been deprecated and will eventually be removed!        Unfortunately `brew linkapps` cannot behave nicely with e.g. Spotlight using either aliases or symlinks and Homebrew formulae do not build "proper" `.app` bundles that can be relocated. Instead, please consider using `brew cask` and migrate formulae using `.app`s to casks. diff --git a/Library/Homebrew/cmd/update-report.rb b/Library/Homebrew/cmd/update-report.rb index e3d3c10bb..98823a152 100644 --- a/Library/Homebrew/cmd/update-report.rb +++ b/Library/Homebrew/cmd/update-report.rb @@ -33,7 +33,7 @@ module Homebrew          # Use an extra newline and bold to avoid this being missed.          ohai "Homebrew has enabled anonymous aggregate user behaviour analytics." -        puts <<-EOS.undent +        puts <<~EOS            #{Tty.bold}Read the analytics documentation (and how to opt-out) here:              #{Formatter.url("https://docs.brew.sh/Analytics.html")}#{Tty.reset} @@ -167,7 +167,7 @@ module Homebrew      end      if @migration_failed -      opoo <<-EOS.undent +      opoo <<~EOS          Failed to migrate #{legacy_cache} to          #{HOMEBREW_CACHE}. Please do so manually.        EOS @@ -176,7 +176,7 @@ module Homebrew        FileUtils.rm_rf legacy_cache        if legacy_cache.exist?          FileUtils.touch migration_attempted_file -        opoo <<-EOS.undent +        opoo <<~EOS            Failed to delete #{legacy_cache}.            Please do so manually.          EOS @@ -191,7 +191,7 @@ module Homebrew      ohai "Migrating HOMEBREW_REPOSITORY (please wait)..."      unless HOMEBREW_PREFIX.writable_real? -      ofail <<-EOS.undent +      ofail <<~EOS          #{HOMEBREW_PREFIX} is not writable.          You should change the ownership and permissions of #{HOMEBREW_PREFIX} @@ -205,7 +205,7 @@ module Homebrew      new_homebrew_repository = Pathname.new "/usr/local/Homebrew"      new_homebrew_repository.rmdir_if_possible      if new_homebrew_repository.exist? -      ofail <<-EOS.undent +      ofail <<~EOS          #{new_homebrew_repository} already exists.          Please remove it manually or uninstall and reinstall Homebrew into a new          location as the migration cannot be done automatically. @@ -258,7 +258,7 @@ module Homebrew      end      unless unremovable_paths.empty? -      ofail <<-EOS.undent +      ofail <<~EOS          Could not remove old HOMEBREW_REPOSITORY paths!          Please do this manually with:            sudo rm -rf #{unremovable_paths.join " "} @@ -274,7 +274,7 @@ module Homebrew      begin        FileUtils.ln_s(src.relative_path_from(dst.parent), dst)      rescue Errno::EACCES, Errno::ENOENT -      ofail <<-EOS.undent +      ofail <<~EOS          Could not create symlink at #{dst}!          Please do this manually with:            sudo ln -sf #{src} #{dst} @@ -285,13 +285,13 @@ module Homebrew      link_completions_manpages_and_docs(new_homebrew_repository)      ohai "Migrated HOMEBREW_REPOSITORY to #{new_homebrew_repository}!" -    puts <<-EOS.undent +    puts <<~EOS        Homebrew no longer needs to have ownership of /usr/local. If you wish you can        return /usr/local to its default ownership with:          sudo chown root:wheel #{HOMEBREW_PREFIX}      EOS    rescue => e -    ofail <<-EOS.undent +    ofail <<~EOS        #{Tty.bold}Failed to migrate HOMEBREW_REPOSITORY to #{new_homebrew_repository}!#{Tty.reset}        The error was:          #{e} @@ -309,7 +309,7 @@ module Homebrew      Utils::Link.link_manpages(repository, command)      Utils::Link.link_docs(repository, command)    rescue => e -    ofail <<-EOS.undent +    ofail <<~EOS        Failed to link all completions, docs and manpages:          #{e}      EOS @@ -449,7 +449,7 @@ class Reporter          next unless (HOMEBREW_PREFIX/"Caskroom"/new_name).exist?          new_tap = Tap.fetch(new_tap_name)          new_tap.install unless new_tap.installed? -        ohai "#{name} has been moved to Homebrew.", <<-EOS.undent +        ohai "#{name} has been moved to Homebrew.", <<~EOS            To uninstall the cask run:              brew cask uninstall --force #{name}          EOS @@ -480,14 +480,14 @@ class Reporter            system HOMEBREW_BREW_FILE, "prune"            ohai "brew cask install #{new_name}"            system HOMEBREW_BREW_FILE, "cask", "install", new_name -          ohai <<-EOS.undent +          ohai <<~EOS              #{name} has been moved to Homebrew-Cask.              The existing keg has been unlinked.              Please uninstall the formula when convenient by running:                brew uninstall --force #{name}            EOS          else -          ohai "#{name} has been moved to Homebrew-Cask.", <<-EOS.undent +          ohai "#{name} has been moved to Homebrew-Cask.", <<~EOS              To uninstall the formula and install the cask run:                brew uninstall --force #{name}                brew cask install #{new_name} diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb index f1ce3c7da..de886ff3d 100644 --- a/Library/Homebrew/cmd/upgrade.rb +++ b/Library/Homebrew/cmd/upgrade.rb @@ -26,7 +26,7 @@ module Homebrew      Homebrew.perform_preinstall_checks      if ARGV.include?("--all") -      opoo <<-EOS.undent +      opoo <<~EOS          We decided to not change the behaviour of `brew upgrade` so          `brew upgrade --all` is equivalent to `brew upgrade` without any other          arguments (so the `--all` is a no-op and can be removed). diff --git a/Library/Homebrew/compat/formula_specialties.rb b/Library/Homebrew/compat/formula_specialties.rb index 78966625e..3f8102575 100644 --- a/Library/Homebrew/compat/formula_specialties.rb +++ b/Library/Homebrew/compat/formula_specialties.rb @@ -31,7 +31,7 @@ class AmazonWebServicesFormula < Formula    def standard_instructions(home_name, home_value = libexec)      odeprecated "AmazonWebServicesFormula#standard_instructions", "Formula#caveats" -    <<-EOS.undent +    <<~EOS        Before you can use these tools you must export some variables to your $SHELL.        To export the needed variables, add them to your dotfiles. diff --git a/Library/Homebrew/compat/hbc/cli.rb b/Library/Homebrew/compat/hbc/cli.rb index 0173bce9c..60d298ed6 100644 --- a/Library/Homebrew/compat/hbc/cli.rb +++ b/Library/Homebrew/compat/hbc/cli.rb @@ -5,7 +5,7 @@ module Hbc      include Options      option "--binarydir=PATH", (lambda do |*| -      opoo <<-EOS.undent +      opoo <<~EOS          Option --binarydir is obsolete!          Homebrew-Cask now uses the same location as your Homebrew installation for executable links.        EOS diff --git a/Library/Homebrew/cxxstdlib.rb b/Library/Homebrew/cxxstdlib.rb index 8a67a9c53..7a833c92c 100644 --- a/Library/Homebrew/cxxstdlib.rb +++ b/Library/Homebrew/cxxstdlib.rb @@ -5,7 +5,7 @@ class CxxStdlib    class CompatibilityError < StandardError      def initialize(formula, dep, stdlib) -      super <<-EOS.undent +      super <<~EOS          #{formula.full_name} dependency #{dep.name} was built with a different C++ standard          library (#{stdlib.type_string} from #{stdlib.compiler}). This may cause problems at runtime.          EOS diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index a9d27afa9..ec26eb9cd 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -368,7 +368,7 @@ class FormulaAuditor        if valid_versioned_aliases.empty?          if formula.tap -          problem <<-EOS.undent +          problem <<~EOS              Formula has other versions so create a versioned alias:                cd #{formula.tap.alias_dir}                ln -s #{formula.path.to_s.gsub(formula.tap.path, "..")} #{alias_name} @@ -379,7 +379,7 @@ class FormulaAuditor        end        unless invalid_versioned_aliases.empty? -        problem <<-EOS.undent +        problem <<~EOS            Formula has invalid versioned aliases:              #{invalid_versioned_aliases.join("\n  ")}          EOS @@ -476,7 +476,7 @@ class FormulaAuditor          when "gfortran"            problem "Use `depends_on :fortran` instead of `depends_on 'gfortran'`"          when "ruby" -          problem <<-EOS.undent +          problem <<~EOS              Don't use "ruby" as a dependency. If this formula requires a              minimum Ruby version not provided by the system you should              use the RubyRequirement: @@ -484,7 +484,7 @@ class FormulaAuditor              where "1.8" is the minimum version of Ruby required.            EOS          when "open-mpi", "mpich" -          problem <<-EOS.undent +          problem <<~EOS              There are multiple conflicting ways to install MPI. Use an MPIRequirement:                depends_on :mpi => [<lang list>]              Where <lang list> is a comma delimited list that can include: @@ -492,7 +492,7 @@ class FormulaAuditor              EOS          when *BUILD_TIME_DEPS            next if dep.build? || dep.run? -          problem <<-EOS.undent +          problem <<~EOS              #{dep} dependency should be                depends_on "#{dep}" => :build              Or if it is indeed a runtime dependency @@ -541,7 +541,7 @@ class FormulaAuditor      first_word = reason.split[0]      if reason =~ /\A[A-Z]/ && !reason.start_with?(*whitelist) -      problem <<-EOS.undent +      problem <<~EOS          '#{first_word}' from the keg_only reason should be '#{first_word.downcase}'.        EOS      end @@ -1010,7 +1010,7 @@ class FormulaAuditor      return unless formula.tap&.official?      return unless formula.tap.tap_migrations.key?(formula.name) -    problem <<-EOS.undent +    problem <<~EOS        #{formula.name} seems to be listed in tap_migrations.json!        Please remove #{formula.name} from present tap & tap_migrations.json        before submitting it to Homebrew/homebrew-#{formula.tap.repo}. @@ -1021,7 +1021,7 @@ class FormulaAuditor      return unless formula.prefix.directory?      return unless Keg.new(formula.prefix).empty_installation? -    problem <<-EOS.undent +    problem <<~EOS        The installation seems to be empty. Please ensure the prefix        is set correctly and expected files are installed.        The prefix configure/make argument may be case-sensitive. diff --git a/Library/Homebrew/dev-cmd/bottle.rb b/Library/Homebrew/dev-cmd/bottle.rb index fb862c773..a54211f5c 100644 --- a/Library/Homebrew/dev-cmd/bottle.rb +++ b/Library/Homebrew/dev-cmd/bottle.rb @@ -324,7 +324,7 @@ module Homebrew            "#{key}: old: #{old_value}, new: #{value}"          end -        odie <<-EOS.undent +        odie <<~EOS            --keep-old was passed but there are changes in:            #{mismatches.join("\n")}          EOS @@ -428,7 +428,7 @@ module Homebrew                end                unless mismatches.empty? -                odie <<-EOS.undent +                odie <<~EOS                    --keep-old was passed but there are changes in:                    #{mismatches.join("\n")}                  EOS diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb index 87d8274cc..fe7e6be3d 100644 --- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb +++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb @@ -91,7 +91,7 @@ module Homebrew      pull_requests = fetch_pull_requests(formula)      return unless pull_requests      return if pull_requests.empty? -    duplicates_message = <<-EOS.undent +    duplicates_message = <<~EOS        These open pull requests may be duplicates:        #{pull_requests.map { |pr| "#{pr["title"]} #{pr["html_url"]}" }.join("\n")}      EOS @@ -101,7 +101,7 @@ module Homebrew      elsif !ARGV.force? && ARGV.flag?("--quiet")        odie error_message      elsif !ARGV.force? -      odie <<-EOS.undent +      odie <<~EOS          #{duplicates_message.chomp}          #{error_message}        EOS @@ -247,13 +247,13 @@ module Homebrew      if new_formula_version < old_formula_version        formula.path.atomic_write(backup_file) unless ARGV.dry_run? -      odie <<-EOS.undent +      odie <<~EOS          You probably need to bump this formula manually since changing the          version from #{old_formula_version} to #{new_formula_version} would be a downgrade.        EOS      elsif new_formula_version == old_formula_version        formula.path.atomic_write(backup_file) unless ARGV.dry_run? -      odie <<-EOS.undent +      odie <<~EOS          You probably need to bump this formula manually since the new version          and old version are both #{new_formula_version}.        EOS @@ -312,17 +312,15 @@ module Homebrew          remote = Utils.popen_read("hub fork 2>&1")[/remote:? (\S+)/, 1] if remote.to_s.empty?          odie "cannot get remote from 'hub'!" if remote.to_s.empty?          safe_system "git", "push", "--set-upstream", remote, "#{branch}:#{branch}" -        pr_message = <<-EOS.undent +        pr_message = <<~EOS            #{formula.name} #{new_formula_version}#{devel_message}            Created with `brew bump-formula-pr`.          EOS          user_message = ARGV.value("message")          if user_message -          pr_message += <<-EOS.undent - +          pr_message += <<~EOS              --- -              #{user_message}            EOS          end diff --git a/Library/Homebrew/dev-cmd/create.rb b/Library/Homebrew/dev-cmd/create.rb index e423842ba..e5481b532 100644 --- a/Library/Homebrew/dev-cmd/create.rb +++ b/Library/Homebrew/dev-cmd/create.rb @@ -71,7 +71,7 @@ module Homebrew        if Formula.aliases.include? fc.name          realname = Formulary.canonical_name(fc.name) -        raise <<-EOS.undent +        raise <<~EOS            The formula #{realname} is already aliased to #{fc.name}            Please check that you are not creating a duplicate.            To force creation use --force. @@ -165,7 +165,7 @@ class FormulaCreator      path.write ERB.new(template, nil, ">").result(binding)    end -  def template; <<-EOS.undent +  def template; <<~EOS      # Documentation: https://docs.brew.sh/Formula-Cookbook.html      #                http://www.rubydoc.info/github/Homebrew/brew/master/Formula      # PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST! diff --git a/Library/Homebrew/dev-cmd/edit.rb b/Library/Homebrew/dev-cmd/edit.rb index b1e485fe2..0039b4cce 100644 --- a/Library/Homebrew/dev-cmd/edit.rb +++ b/Library/Homebrew/dev-cmd/edit.rb @@ -11,7 +11,7 @@ module Homebrew    def edit      unless (HOMEBREW_REPOSITORY/".git").directory? -      raise <<-EOS.undent +      raise <<~EOS          Changes will be lost!          The first time you `brew update', all local changes will be lost, you should          thus `brew update' before you `brew edit'! diff --git a/Library/Homebrew/dev-cmd/mirror.rb b/Library/Homebrew/dev-cmd/mirror.rb index 6445bc34c..bf19ee3c5 100644 --- a/Library/Homebrew/dev-cmd/mirror.rb +++ b/Library/Homebrew/dev-cmd/mirror.rb @@ -20,7 +20,7 @@ module Homebrew        package_url = "#{bintray_repo_url}/#{bintray_package}"        unless system "curl", "--silent", "--fail", "--output", "/dev/null", package_url -        package_blob = <<-EOS.undent +        package_blob = <<~EOS            {"name": "#{bintray_package}",             "public_download_numbers": true,             "public_stats": true} diff --git a/Library/Homebrew/dev-cmd/tap-new.rb b/Library/Homebrew/dev-cmd/tap-new.rb index 964ba2f5d..1c3bf20eb 100644 --- a/Library/Homebrew/dev-cmd/tap-new.rb +++ b/Library/Homebrew/dev-cmd/tap-new.rb @@ -24,7 +24,7 @@ module Homebrew      (tap.path/"Formula").mkpath -    readme = <<-EOS.undent +    readme = <<~EOS        # #{titleized_user} #{titleized_repo}        ## How do I install these formulae? @@ -43,7 +43,7 @@ module Homebrew      EOS      write_path(tap, "README.md", readme) -    travis = <<-EOS.undent +    travis = <<~EOS        language: ruby        os: osx        env: OSX=10.12 diff --git a/Library/Homebrew/dev-cmd/update-test.rb b/Library/Homebrew/dev-cmd/update-test.rb index 1f1cdbeed..ee189ad5e 100644 --- a/Library/Homebrew/dev-cmd/update-test.rb +++ b/Library/Homebrew/dev-cmd/update-test.rb @@ -88,7 +88,7 @@ module Homebrew        safe_system "brew", "update", "--verbose"        actual_end_commit = Utils.popen_read("git", "rev-parse", branch).chomp        if start_commit != end_commit && start_commit == actual_end_commit -        raise <<-EOS.undent +        raise <<~EOS            brew update didn't update #{branch}!            Start commit:        #{start_commit}            Expected end commit: #{end_commit} diff --git a/Library/Homebrew/diagnostic.rb b/Library/Homebrew/diagnostic.rb index 9ab83c1a2..88d461e0a 100644 --- a/Library/Homebrew/diagnostic.rb +++ b/Library/Homebrew/diagnostic.rb @@ -92,7 +92,7 @@ module Homebrew        def check_for_installed_developer_tools          return if DevelopmentTools.installed? -        <<-EOS.undent +        <<~EOS            No developer tools installed.            #{DevelopmentTools.installation_instructions}          EOS @@ -101,7 +101,7 @@ module Homebrew        def check_build_from_source          return unless ENV["HOMEBREW_BUILD_FROM_SOURCE"] -        <<-EOS.undent +        <<~EOS            You have HOMEBREW_BUILD_FROM_SOURCE set. This environment variable is            intended for use by Homebrew developers. If you are encountering errors,            please try unsetting this. Please do not file issues if you encounter @@ -114,7 +114,7 @@ module Homebrew          bad_paths = PATH.new(ENV["HOMEBREW_PATH"]).select { |p| p.end_with?("/") }          return if bad_paths.empty? -        inject_file_list bad_paths, <<-EOS.undent +        inject_file_list bad_paths, <<~EOS            Some directories in your path end in a slash.            Directories in your path should not end in a slash. This can break other            doctor checks. The following directories should be edited: @@ -136,7 +136,7 @@ module Homebrew          # Only warn if Python lives with Anaconda, since is most problematic case.          return unless python_directory == anaconda_directory -        <<-EOS.undent +        <<~EOS            Anaconda is known to frequently break Homebrew builds, including Vim and            MacVim, due to bundling many duplicates of system and Homebrew-available            tools. @@ -182,7 +182,7 @@ module Homebrew            "sentinel.dylib", # SentinelOne          ] -        __check_stray_files "/usr/local/lib", "*.dylib", white_list, <<-EOS.undent +        __check_stray_files "/usr/local/lib", "*.dylib", white_list, <<~EOS            Unbrewed dylibs were found in /usr/local/lib.            If you didn't put them there on purpose they could cause problems when            building Homebrew formulae, and may need to be deleted. @@ -209,7 +209,7 @@ module Homebrew            "libtrustedcomponents.a", # Symantec Endpoint Protection          ] -        __check_stray_files "/usr/local/lib", "*.a", white_list, <<-EOS.undent +        __check_stray_files "/usr/local/lib", "*.a", white_list, <<~EOS            Unbrewed static libraries were found in /usr/local/lib.            If you didn't put them there on purpose they could cause problems when            building Homebrew formulae, and may need to be deleted. @@ -229,7 +229,7 @@ module Homebrew            "libublio.pc", # NTFS-3G          ] -        __check_stray_files "/usr/local/lib/pkgconfig", "*.pc", white_list, <<-EOS.undent +        __check_stray_files "/usr/local/lib/pkgconfig", "*.pc", white_list, <<~EOS            Unbrewed .pc files were found in /usr/local/lib/pkgconfig.            If you didn't put them there on purpose they could cause problems when            building Homebrew formulae, and may need to be deleted. @@ -250,7 +250,7 @@ module Homebrew            "libublio.la", # NTFS-3G          ] -        __check_stray_files "/usr/local/lib", "*.la", white_list, <<-EOS.undent +        __check_stray_files "/usr/local/lib", "*.la", white_list, <<~EOS            Unbrewed .la files were found in /usr/local/lib.            If you didn't put them there on purpose they could cause problems when            building Homebrew formulae, and may need to be deleted. @@ -269,7 +269,7 @@ module Homebrew            "ntfs-3g/**/*.h", # NTFS-3G          ] -        __check_stray_files "/usr/local/include", "**/*.h", white_list, <<-EOS.undent +        __check_stray_files "/usr/local/include", "**/*.h", white_list, <<~EOS            Unbrewed header files were found in /usr/local/include.            If you didn't put them there on purpose they could cause problems when            building Homebrew formulae, and may need to be deleted. @@ -291,7 +291,7 @@ module Homebrew          end          return if broken_symlinks.empty? -        inject_file_list broken_symlinks, <<-EOS.undent +        inject_file_list broken_symlinks, <<~EOS            Broken symlinks were found. Remove them with `brew prune`:          EOS        end @@ -300,7 +300,7 @@ module Homebrew          world_writable = HOMEBREW_TEMP.stat.mode & 0777 == 0777          return if !world_writable || HOMEBREW_TEMP.sticky? -        <<-EOS.undent +        <<~EOS            #{HOMEBREW_TEMP} is world-writable but does not have the sticky bit set.            Please execute `sudo chmod +t #{HOMEBREW_TEMP}` in your Terminal.          EOS @@ -309,7 +309,7 @@ module Homebrew        def check_access_homebrew_repository          return if HOMEBREW_REPOSITORY.writable_real? -        <<-EOS.undent +        <<~EOS            #{HOMEBREW_REPOSITORY} is not writable.            You should change the ownership and permissions of #{HOMEBREW_REPOSITORY} @@ -330,7 +330,7 @@ module Homebrew          return if not_writable_dirs.empty? -        <<-EOS.undent +        <<~EOS            The following directories are not writable:            #{not_writable_dirs.join("\n")} @@ -348,7 +348,7 @@ module Homebrew          return unless Language::Python.homebrew_site_packages.exist?          return if Language::Python.homebrew_site_packages.writable_real? -        <<-EOS.undent +        <<~EOS            #{Language::Python.homebrew_site_packages} isn't writable.            This can happen if you "sudo pip install" software that isn't managed            by Homebrew. If you install a formula with Python modules, the install @@ -364,7 +364,7 @@ module Homebrew          return unless HOMEBREW_LOCK_DIR.exist?          return if HOMEBREW_LOCK_DIR.writable_real? -        <<-EOS.undent +        <<~EOS            #{HOMEBREW_LOCK_DIR} isn't writable.            Homebrew writes lock files to this location. @@ -378,7 +378,7 @@ module Homebrew          return unless HOMEBREW_LOGS.exist?          return if HOMEBREW_LOGS.writable_real? -        <<-EOS.undent +        <<~EOS            #{HOMEBREW_LOGS} isn't writable.            Homebrew writes debugging logs to this location. @@ -392,7 +392,7 @@ module Homebrew          return unless HOMEBREW_CACHE.exist?          return if HOMEBREW_CACHE.writable_real? -        <<-EOS.undent +        <<~EOS            #{HOMEBREW_CACHE} isn't writable.            This can happen if you run `brew install` or `brew fetch` as another user.            Homebrew caches downloaded files to this location. @@ -407,7 +407,7 @@ module Homebrew          return unless HOMEBREW_CELLAR.exist?          return if HOMEBREW_CELLAR.writable_real? -        <<-EOS.undent +        <<~EOS            #{HOMEBREW_CELLAR} isn't writable.            You should change the ownership and permissions of #{HOMEBREW_CELLAR} @@ -421,7 +421,7 @@ module Homebrew          return unless (HOMEBREW_REPOSITORY/"Cellar").exist?          return unless (HOMEBREW_PREFIX/"Cellar").exist? -        <<-EOS.undent +        <<~EOS            You have multiple Cellars.            You should delete #{HOMEBREW_REPOSITORY}/Cellar:              rm -rf #{HOMEBREW_REPOSITORY}/Cellar @@ -445,13 +445,13 @@ module Homebrew                            .select { |bn| File.exist? "/usr/bin/#{bn}" }                unless conflicts.empty? -                message = inject_file_list conflicts, <<-EOS.undent +                message = inject_file_list conflicts, <<~EOS                    /usr/bin occurs before #{HOMEBREW_PREFIX}/bin                    This means that system-provided programs will be used instead of those                    provided by Homebrew. The following tools exist at both paths:                  EOS -                message += <<-EOS.undent +                message += <<~EOS                    Consider setting your PATH so that #{HOMEBREW_PREFIX}/bin                    occurs before /usr/bin. Here is a one-liner: @@ -472,7 +472,7 @@ module Homebrew        def check_user_path_2          return if @seen_prefix_bin -        <<-EOS.undent +        <<~EOS            Homebrew's bin was not found in your PATH.            Consider setting the PATH for example like so              #{Utils::Shell.prepend_path_in_profile("#{HOMEBREW_PREFIX}/bin")} @@ -486,7 +486,7 @@ module Homebrew          sbin = HOMEBREW_PREFIX/"sbin"          return unless sbin.directory? && !sbin.children.empty? -        <<-EOS.undent +        <<~EOS            Homebrew's sbin was not found in your PATH but you have installed            formulae that put executables in #{HOMEBREW_PREFIX}/sbin.            Consider setting the PATH for example like so @@ -500,7 +500,7 @@ module Homebrew          end          return unless curlrc_found -        <<-EOS.undent +        <<~EOS            You have a curlrc file            If you have trouble downloading packages with Homebrew, then maybe this            is the problem? If the following command doesn't work, then try removing @@ -526,7 +526,7 @@ module Homebrew          end          return if gettext&.linked_keg&.directory? && homebrew_owned -        inject_file_list @found, <<-EOS.undent +        inject_file_list @found, <<~EOS            gettext files detected at a system prefix.            These files can cause compilation and link failures, especially if they            are compiled with improper architectures. Consider removing these files: @@ -544,13 +544,13 @@ module Homebrew          end          if libiconv&.linked_keg&.directory?            unless libiconv.keg_only? -            <<-EOS.undent +            <<~EOS                A libiconv formula is installed and linked.                This will break stuff. For serious. Unlink it.              EOS            end          else -          inject_file_list @found, <<-EOS.undent +          inject_file_list @found, <<~EOS              libiconv files detected at a system prefix other than /usr.              Homebrew doesn't provide a libiconv formula, and expects to link against              the system version in /usr. libiconv in other prefixes can cause @@ -588,7 +588,7 @@ module Homebrew          return if scripts.empty? -        inject_file_list scripts, <<-EOS.undent +        inject_file_list scripts, <<~EOS            "config" scripts exist outside your system or Homebrew directories.            `./configure` scripts often look for *-config scripts to determine if            software packages are installed, and what additional flags to use when @@ -605,13 +605,13 @@ module Homebrew          return if dyld_vars.empty?          values = dyld_vars.map { |var| "#{var}: #{ENV.fetch(var)}" } -        message = inject_file_list values, <<-EOS.undent +        message = inject_file_list values, <<~EOS            Setting DYLD_* vars can break dynamic linking.            Set variables:          EOS          if dyld_vars.include? "DYLD_INSERT_LIBRARIES" -          message += <<-EOS.undent +          message += <<~EOS              Setting DYLD_INSERT_LIBRARIES can cause Go builds to fail.              Having this set is common if you use this software: @@ -624,7 +624,7 @@ module Homebrew        def check_ssl_cert_file          return unless ENV.key?("SSL_CERT_FILE") -        <<-EOS.undent +        <<~EOS            Setting SSL_CERT_FILE can break downloading files; if that happens            you should unset it before running Homebrew. @@ -638,7 +638,7 @@ module Homebrew          return unless HOMEBREW_CELLAR.exist?          return unless HOMEBREW_CELLAR.symlink? -        <<-EOS.undent +        <<~EOS            Symlinked Cellars can cause problems.            Your Homebrew Cellar is a symlink: #{HOMEBREW_CELLAR}                            which resolves to: #{HOMEBREW_CELLAR.realpath} @@ -675,7 +675,7 @@ module Homebrew          return if where_cellar == where_tmp -        <<-EOS.undent +        <<~EOS            Your Cellar and TEMP directories are on different volumes.            macOS won't move relative symlinks across volumes unless the target file already            exists. Brews known to be affected by this are Git and Narwhal. @@ -692,7 +692,7 @@ module Homebrew          git = Formula["git"]          git_upgrade_cmd = git.any_version_installed? ? "upgrade" : "install" -        <<-EOS.undent +        <<~EOS            An outdated version (#{Utils.git_version}) of Git was detected in your PATH.            Git 1.8.5 or newer is required to perform checkouts over HTTPS from GitHub and            to support the 'git -C <path>' option. @@ -704,7 +704,7 @@ module Homebrew        def check_for_git          return if Utils.git_available? -        <<-EOS.undent +        <<~EOS            Git could not be found in your PATH.            Homebrew uses Git for several internal functions, and some formulae use Git            checkouts instead of stable tarballs. You may want to install Git: @@ -718,7 +718,7 @@ module Homebrew          autocrlf = HOMEBREW_REPOSITORY.cd { `git config --get core.autocrlf`.chomp }          return unless autocrlf == "true" -        <<-EOS.undent +        <<~EOS            Suspicious Git newline settings found.            The detected Git newline settings will cause checkout problems: @@ -736,7 +736,7 @@ module Homebrew          origin = HOMEBREW_REPOSITORY.git_origin          if origin.nil? -          <<-EOS.undent +          <<~EOS              Missing Homebrew/brew git origin remote.              Without a correctly configured origin, Homebrew won't update @@ -744,7 +744,7 @@ module Homebrew                git -C "#{HOMEBREW_REPOSITORY}" remote add origin #{Formatter.url("https://github.com/Homebrew/brew.git")}            EOS          elsif origin !~ %r{Homebrew/brew(\.git|/)?$} -          <<-EOS.undent +          <<~EOS              Suspicious Homebrew/brew git origin remote found.              With a non-standard origin, Homebrew won't pull updates from @@ -765,7 +765,7 @@ module Homebrew          origin = coretap_path.git_origin          if origin.nil? -          <<-EOS.undent +          <<~EOS              Missing #{CoreTap.instance} git origin remote.              Without a correctly configured origin, Homebrew won't update @@ -775,7 +775,7 @@ module Homebrew          elsif origin !~ %r{Homebrew/homebrew-core(\.git|/)?$}            return if ENV["CI"] && origin.include?("Homebrew/homebrew-test-bot") -          <<-EOS.undent +          <<~EOS              Suspicious #{CoreTap.instance} git origin remote found.              With a non-standard origin, Homebrew won't pull updates from @@ -793,7 +793,7 @@ module Homebrew          branch = coretap_path.git_branch          return if branch.nil? || branch =~ /master/ -        <<-EOS.undent +        <<~EOS            Homebrew/homebrew-core is not on the master branch            Check out the master branch by running: @@ -821,7 +821,7 @@ module Homebrew          end          return if linked.empty? -        inject_file_list linked.map(&:full_name), <<-EOS.undent +        inject_file_list linked.map(&:full_name), <<~EOS            Some keg-only formula are linked into the Cellar.            Linking a keg-only formula, such as gettext, into the cellar with            `brew link <formula>` will cause other formulae to detect them during @@ -847,7 +847,7 @@ module Homebrew                             .select { |framework| File.exist? framework }          return if frameworks_found.empty? -        inject_file_list frameworks_found, <<-EOS.undent +        inject_file_list frameworks_found, <<~EOS            Some frameworks can be picked up by CMake's build system and likely            cause the build to fail. To compile CMake, you may wish to move these            out of the way: @@ -858,7 +858,7 @@ module Homebrew          tmpdir = ENV["TMPDIR"]          return if tmpdir.nil? || File.directory?(tmpdir) -        <<-EOS.undent +        <<~EOS            TMPDIR #{tmpdir.inspect} doesn't exist.          EOS        end @@ -871,7 +871,7 @@ module Homebrew          end          return if missing.empty? -        <<-EOS.undent +        <<~EOS            Some installed formula are missing dependencies.            You should `brew install` the missing dependencies:              brew install #{missing.sort_by(&:full_name) * " "} @@ -886,7 +886,7 @@ module Homebrew            return if `git status --untracked-files=all --porcelain -- Library/Homebrew/ 2>/dev/null`.chomp.empty?          end -        <<-EOS.undent +        <<~EOS            You have uncommitted modifications to Homebrew            If this is a surprise to you, then you should stash these modifications.            Stashing returns Homebrew to a pristine state but can be undone @@ -898,7 +898,7 @@ module Homebrew        def check_for_enthought_python          return unless which "enpkg" -        <<-EOS.undent +        <<~EOS            Enthought Python was found in your PATH.            This can cause build problems, as this software installs its own            copies of iconv and libxml2 into directories that are picked up by @@ -909,7 +909,7 @@ module Homebrew        def check_for_library_python          return unless File.exist?("/Library/Frameworks/Python.framework") -        <<-EOS.undent +        <<~EOS            Python is installed at /Library/Frameworks/Python.framework            Homebrew only supports building against the System-provided Python or a @@ -922,12 +922,12 @@ module Homebrew          message = ""          ["", "3"].map do |suffix|            next unless paths.include?((HOMEBREW_PREFIX/"share/python#{suffix}").to_s) -          message += <<-EOS.undent -              #{HOMEBREW_PREFIX}/share/python#{suffix} is not needed in PATH. +          message += <<~EOS +            #{HOMEBREW_PREFIX}/share/python#{suffix} is not needed in PATH.            EOS          end          unless message.empty? -          message += <<-EOS.undent +          message += <<~EOS              Formerly homebrew put Python scripts you installed via `pip` or `pip3`              (or `easy_install`) into that directory above but now it can be removed @@ -949,7 +949,7 @@ module Homebrew          return if Regexp.last_match(1).nil?          return if Regexp.last_match(1) == "2" -        <<-EOS.undent +        <<~EOS            python is symlinked to python#{Regexp.last_match(1)}            This will confuse build scripts and in general lead to subtle breakage.          EOS @@ -962,7 +962,7 @@ module Homebrew          gnubin = %W[#{coreutils.opt_libexec}/gnubin #{coreutils.libexec}/gnubin]          return if (paths & gnubin).empty? -        <<-EOS.undent +        <<~EOS            Putting non-prefixed coreutils in your path can cause gmp builds to fail.          EOS        rescue FormulaUnavailableError @@ -977,7 +977,7 @@ module Homebrew          default_names = Tab.for_name("findutils").with? "default-names"          return if !default_names && (paths & gnubin).empty? -        <<-EOS.undent +        <<~EOS            Putting non-prefixed findutils in your path can cause python builds to fail.          EOS        rescue FormulaUnavailableError @@ -987,7 +987,7 @@ module Homebrew        def check_for_pydistutils_cfg_in_home          return unless File.exist? "#{ENV["HOME"]}/.pydistutils.cfg" -        <<-EOS.undent +        <<~EOS            A .pydistutils.cfg file was found in $HOME, which may cause Python            builds to fail. See:              #{Formatter.url("https://bugs.python.org/issue6138")} @@ -1009,7 +1009,7 @@ module Homebrew          end.map(&:basename)          return if unlinked.empty? -        inject_file_list unlinked, <<-EOS.undent +        inject_file_list unlinked, <<~EOS            You have unlinked kegs in your Cellar            Leaving kegs unlinked can lead to build-trouble and cause brews that depend on            those kegs to fail to run properly once built. Run `brew link` on these: @@ -1019,7 +1019,7 @@ module Homebrew        def check_for_old_env_vars          return unless ENV["HOMEBREW_KEEP_INFO"] -        <<-EOS.undent +        <<~EOS            `HOMEBREW_KEEP_INFO` is no longer used            info files are no longer deleted by default; you may            remove this environment variable. @@ -1033,7 +1033,7 @@ module Homebrew          return unless Language::Python.in_sys_path?("python", homebrew_site_packages)          user_site_packages = Language::Python.user_site_packages "python" -        <<-EOS.undent +        <<~EOS            Your default Python does not recognize the Homebrew site-packages            directory as a special site-packages directory, which means that .pth            files will not be followed. This means you will not be able to import @@ -1063,8 +1063,7 @@ module Homebrew          message = "You have external commands with conflicting names.\n"          cmd_map.each do |cmd_name, cmd_paths| -          message += inject_file_list cmd_paths, <<-EOS.undent - +          message += inject_file_list cmd_paths, <<~EOS              Found command `#{cmd_name}` in following places:            EOS          end @@ -1087,7 +1086,7 @@ module Homebrew          end          return if bad_tap_files.empty?          bad_tap_files.keys.map do |tap| -          <<-EOS.undent +          <<~EOS              Found Ruby file outside #{tap} tap formula directory              (#{tap.formula_dir}):                #{bad_tap_files[tap].join("\n  ")} diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb index e69a56ddf..f9a359450 100644 --- a/Library/Homebrew/download_strategy.rb +++ b/Library/Homebrew/download_strategy.rb @@ -159,7 +159,7 @@ class VCSDownloadStrategy < AbstractDownloadStrategy      return unless @ref_type == :tag      return unless @revision && current_revision      return if current_revision == @revision -    raise <<-EOS.undent +    raise <<~EOS        #{@ref} tag should be #{@revision}        but is actually #{current_revision}      EOS @@ -553,9 +553,9 @@ class GitHubPrivateRepositoryDownloadStrategy < CurlDownloadStrategy    rescue GitHub::HTTPNotFoundError      # We only handle HTTPNotFoundError here,      # becase AuthenticationFailedError is handled within util/github. -    message = <<-EOS.undent -        HOMEBREW_GITHUB_API_TOKEN can not access the repository: #{@owner}/#{@repo} -        This token may not have permission to access the repository or the url of formula may be incorrect. +    message = <<~EOS +      HOMEBREW_GITHUB_API_TOKEN can not access the repository: #{@owner}/#{@repo} +      This token may not have permission to access the repository or the url of formula may be incorrect.      EOS      raise CurlDownloadStrategyError, message    end diff --git a/Library/Homebrew/exceptions.rb b/Library/Homebrew/exceptions.rb index 22a7fe023..7705f9d49 100644 --- a/Library/Homebrew/exceptions.rb +++ b/Library/Homebrew/exceptions.rb @@ -185,7 +185,7 @@ class TapFormulaAmbiguityError < RuntimeError        "#{Tap.fetch(match[:user], match[:repo])}/#{path.basename(".rb")}"      end -    super <<-EOS.undent +    super <<~EOS        Formulae found in multiple taps: #{formulae.map { |f| "\n       * #{f}" }.join}        Please use the fully-qualified name e.g. #{formulae.first} to refer the formula. @@ -205,7 +205,7 @@ class TapFormulaWithOldnameAmbiguityError < RuntimeError        "#{Regexp.last_match(1)}/#{Regexp.last_match(2)}"      end -    super <<-EOS.undent +    super <<~EOS        Formulae with '#{name}' old name found in multiple taps: #{taps.map { |t| "\n       * #{t}" }.join}        Please use the fully-qualified name e.g. #{taps.first}/#{name} to refer the formula or use its new name. @@ -219,7 +219,7 @@ class TapUnavailableError < RuntimeError    def initialize(name)      @name = name -    super <<-EOS.undent +    super <<~EOS        No available tap #{name}.      EOS    end @@ -235,7 +235,7 @@ class TapRemoteMismatchError < RuntimeError      @expected_remote = expected_remote      @actual_remote = actual_remote -    super <<-EOS.undent +    super <<~EOS        Tap #{name} remote mismatch.        #{expected_remote} != #{actual_remote}      EOS @@ -248,7 +248,7 @@ class TapAlreadyTappedError < RuntimeError    def initialize(name)      @name = name -    super <<-EOS.undent +    super <<~EOS        Tap #{name} already tapped.      EOS    end @@ -260,7 +260,7 @@ class TapAlreadyUnshallowError < RuntimeError    def initialize(name)      @name = name -    super <<-EOS.undent +    super <<~EOS        Tap #{name} already a full clone.      EOS    end @@ -279,7 +279,7 @@ end  class OperationInProgressError < RuntimeError    def initialize(name) -    message = <<-EOS.undent +    message = <<~EOS        Operation already in progress for #{name}        Another active Homebrew process is already using #{name}.        Please wait for it to finish or terminate it to continue. @@ -327,7 +327,7 @@ class FormulaConflictError < RuntimeError      message = []      message << "Cannot install #{formula.full_name} because conflicting formulae are installed."      message.concat conflicts.map { |c| conflict_message(c) } << "" -    message << <<-EOS.undent +    message << <<~EOS        Please `brew unlink #{conflicts.map(&:name) * " "}` before continuing.        Unlinking removes a formula's symlinks from #{HOMEBREW_PREFIX}. You can @@ -341,7 +341,7 @@ end  class FormulaAmbiguousPythonError < RuntimeError    def initialize(formula) -    super <<-EOS.undent +    super <<~EOS        The version of python to use with the virtualenv in the `#{formula.full_name}` formula        cannot be guessed automatically. If the simultaneous use of python and python3        is intentional, please add `:using => "python"` or `:using => "python3"` to @@ -398,18 +398,18 @@ class BuildError < RuntimeError        if formula.tap.official?          puts Formatter.error(Formatter.url(OS::ISSUES_URL), label: "READ THIS")        elsif issues_url = formula.tap.issues_url -        puts <<-EOS.undent +        puts <<~EOS            If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):            #{Formatter.url(issues_url)}          EOS        else -        puts <<-EOS.undent +        puts <<~EOS            If reporting this issue please do so to (not Homebrew/brew or Homebrew/core):            #{formula.tap}          EOS        end      else -      puts <<-EOS.undent +      puts <<~EOS          Do not report this issue to Homebrew/brew or Homebrew/core!        EOS      end @@ -445,7 +445,7 @@ class BuildToolsError < RuntimeError        package_text = "a binary package"      end -    super <<-EOS.undent +    super <<~EOS        The following #{formula_text}:          #{formulae.join(", ")}        cannot be installed as #{package_text} and must be built from source. @@ -467,7 +467,7 @@ class BuildFlagsError < RuntimeError        require_text = "requires"      end -    super <<-EOS.undent +    super <<~EOS        The following #{flag_text}:          #{flags.join(", ")}        #{require_text} building tools, but none are installed. @@ -481,7 +481,7 @@ end  # the compilers available on the user's system  class CompilerSelectionError < RuntimeError    def initialize(formula) -    super <<-EOS.undent +    super <<~EOS        #{formula.full_name} cannot be built with any available compilers.        #{DevelopmentTools.custom_installation_instructions}      EOS @@ -491,7 +491,7 @@ end  # Raised in Resource.fetch  class DownloadError < RuntimeError    def initialize(resource, cause) -    super <<-EOS.undent +    super <<~EOS        Failed to download resource #{resource.download_name.inspect}        #{cause.message}        EOS @@ -530,7 +530,7 @@ class ChecksumMismatchError < RuntimeError      @expected = expected      @hash_type = expected.hash_type.to_s.upcase -    super <<-EOS.undent +    super <<~EOS        #{@hash_type} mismatch        Expected: #{expected}        Actual: #{actual} @@ -557,7 +557,7 @@ class MissingApplyError < RuntimeError; end  class BottleFormulaUnavailableError < RuntimeError    def initialize(bottle_path, formula_path) -    super <<-EOS.undent +    super <<~EOS        This bottle does not contain the formula file:          #{bottle_path}          #{formula_path} diff --git a/Library/Homebrew/extend/ARGV.rb b/Library/Homebrew/extend/ARGV.rb index 63a0f3e40..d9da014f0 100644 --- a/Library/Homebrew/extend/ARGV.rb +++ b/Library/Homebrew/extend/ARGV.rb @@ -124,7 +124,7 @@ module HomebrewArgvExtension            Keg.new(prefix)          end        rescue FormulaUnavailableError -        raise <<-EOS.undent +        raise <<~EOS            Multiple kegs installed to #{rack}            However we don't know which one you refer to.            Please delete (with rm -rf!) all but one and then try again. diff --git a/Library/Homebrew/extend/ENV/shared.rb b/Library/Homebrew/extend/ENV/shared.rb index 15488ee19..5a6b779d0 100644 --- a/Library/Homebrew/extend/ENV/shared.rb +++ b/Library/Homebrew/extend/ENV/shared.rb @@ -233,7 +233,7 @@ module SharedEnvExtension        if ARGV.include? "--default-fortran-flags"          flags = FC_FLAG_VARS.reject { |key| self[key] }        elsif values_at(*FC_FLAG_VARS).compact.empty? -        opoo <<-EOS.undent +        opoo <<~EOS            No Fortran optimization information was provided.  You may want to consider            setting FCFLAGS and FFLAGS or pass the `--default-fortran-flags` option to            `brew install` if your compiler is compatible with GCC. @@ -286,15 +286,15 @@ module SharedEnvExtension      begin        gcc_formula = gcc_version_formula(name)      rescue FormulaUnavailableError => e -      raise <<-EOS.undent -      Homebrew GCC requested, but formula #{e.name} not found! +      raise <<~EOS +        Homebrew GCC requested, but formula #{e.name} not found!        EOS      end      return if gcc_formula.opt_prefix.exist? -    raise <<-EOS.undent -    The requested Homebrew GCC was not installed. You must: -      brew install #{gcc_formula.full_name} +    raise <<~EOS +      The requested Homebrew GCC was not installed. You must: +        brew install #{gcc_formula.full_name}      EOS    end diff --git a/Library/Homebrew/extend/os/linux/requirements/osxfuse_requirement.rb b/Library/Homebrew/extend/os/linux/requirements/osxfuse_requirement.rb index 3fd847bc4..3553ada74 100644 --- a/Library/Homebrew/extend/os/linux/requirements/osxfuse_requirement.rb +++ b/Library/Homebrew/extend/os/linux/requirements/osxfuse_requirement.rb @@ -18,7 +18,7 @@ class OsxfuseRequirement < Requirement    def message      msg = "libfuse is required to install this formula.\n"      if libfuse_formula_exists? -      msg + <<-EOS.undent +      msg + <<~EOS          Run "brew install libfuse" to install it.        EOS      else diff --git a/Library/Homebrew/extend/os/mac/development_tools.rb b/Library/Homebrew/extend/os/mac/development_tools.rb index 1931b398d..d37e778ca 100644 --- a/Library/Homebrew/extend/os/mac/development_tools.rb +++ b/Library/Homebrew/extend/os/mac/development_tools.rb @@ -24,18 +24,18 @@ class DevelopmentTools      def installation_instructions        if MacOS.version >= "10.9" -        <<-EOS.undent +        <<~EOS            Install the Command Line Tools:              xcode-select --install          EOS        elsif MacOS.version == "10.8" || MacOS.version == "10.7" -        <<-EOS.undent +        <<~EOS            Install the Command Line Tools from              https://developer.apple.com/download/more/            or via Xcode's preferences.          EOS        else -        <<-EOS.undent +        <<~EOS            Install Xcode from              https://developer.apple.com/download/more/          EOS @@ -44,19 +44,19 @@ class DevelopmentTools      def custom_installation_instructions        if MacOS.version > :leopard -        <<-EOS.undent +        <<~EOS            Install GNU's GCC              brew install gcc          EOS        elsif MacOS.version > :tiger -        <<-EOS.undent +        <<~EOS            Install GNU's GCC              brew install gcc@4.6          EOS        else          # Tiger doesn't ship with apple-gcc42, and this is required to build          # some software that doesn't build properly with FSF GCC. -        <<-EOS.undent +        <<~EOS            Install Apple's GCC              brew install apple-gcc42            or GNU's GCC diff --git a/Library/Homebrew/extend/os/mac/diagnostic.rb b/Library/Homebrew/extend/os/mac/diagnostic.rb index 9f7b18b49..be0ce9351 100644 --- a/Library/Homebrew/extend/os/mac/diagnostic.rb +++ b/Library/Homebrew/extend/os/mac/diagnostic.rb @@ -41,7 +41,7 @@ module Homebrew            return          end -        <<-EOS.undent +        <<~EOS            You are using macOS #{MacOS.version}.            #{who} do not provide support for this #{what}.            You may encounter build failures or other breakages. @@ -59,7 +59,7 @@ module Homebrew          # Homebrew/brew is currently using.          return if ENV["TRAVIS"] -        message = <<-EOS.undent +        message = <<~EOS            Your Xcode (#{MacOS::Xcode.version}) is outdated.            Please update to Xcode #{MacOS::Xcode.latest_version} (or delete it).            #{MacOS::Xcode.update_instructions} @@ -67,7 +67,7 @@ module Homebrew          if OS::Mac.prerelease?            current_path = Utils.popen_read("/usr/bin/xcode-select", "-p") -          message += <<-EOS.undent +          message += <<~EOS              If #{MacOS::Xcode.latest_version} is installed, you may need to:                sudo xcode-select --switch /Applications/Xcode.app              Current developer directory is: @@ -87,7 +87,7 @@ module Homebrew          # Homebrew/brew is currently using.          return if ENV["TRAVIS"] -        <<-EOS.undent +        <<~EOS            A newer Command Line Tools release is available.            #{MacOS::CLT.update_instructions}          EOS @@ -99,7 +99,7 @@ module Homebrew          return unless MacOS.version == :el_capitan          return unless MacOS::Xcode.version >= "8" -        <<-EOS.undent +        <<~EOS            You have Xcode 8 installed without the CLT;            this causes certain builds to fail on OS X El Capitan (10.11).            Please install the CLT via: @@ -111,7 +111,7 @@ module Homebrew          return unless MacOS::Xcode.installed?          return unless MacOS::Xcode.below_minimum_version? -        <<-EOS.undent +        <<~EOS            Your Xcode (#{MacOS::Xcode.version}) is too outdated.            Please update to Xcode #{MacOS::Xcode.latest_version} (or delete it).            #{MacOS::Xcode.update_instructions} @@ -122,7 +122,7 @@ module Homebrew          return unless MacOS::CLT.installed?          return unless MacOS::CLT.below_minimum_version? -        <<-EOS.undent +        <<~EOS            Your Command Line Tools are too outdated.            #{MacOS::CLT.update_instructions}          EOS @@ -140,7 +140,7 @@ module Homebrew            "Please install Xcode #{MacOS::Xcode.latest_version}."          end -        <<-EOS.undent +        <<~EOS            You seem to have osx-gcc-installer installed.            Homebrew doesn't support osx-gcc-installer. It causes many builds to fail and            is an unlicensed distribution of really old Xcode files. @@ -154,7 +154,7 @@ module Homebrew          uninstaller = Pathname.new("/Developer/Library/uninstall-developer-folder")          return unless ((MacOS::Xcode.version || "0") >= "4.3") && uninstaller.exist? -        <<-EOS.undent +        <<~EOS            You have leftover files from an older version of Xcode.            You should delete them using:              #{uninstaller} @@ -170,7 +170,7 @@ module Homebrew          return if libs.empty?          return if libs.include? "/usr/lib/libxcselect.dylib" -        <<-EOS.undent +        <<~EOS            You have an outdated version of /usr/bin/install_name_tool installed.            This will cause binary package installations to fail.            This can happen if you install osx-gcc-installer or RailsInstaller. @@ -183,7 +183,7 @@ module Homebrew          ponk = MacOS.macports_or_fink          return if ponk.empty? -        <<-EOS.undent +        <<~EOS            You have MacPorts or Fink installed:              #{ponk.join(", ")} @@ -199,7 +199,7 @@ module Homebrew          return if RUBY_VERSION == ruby_version          return if ARGV.homebrew_developer? && OS::Mac.prerelease? -        <<-EOS.undent +        <<~EOS            Ruby version #{RUBY_VERSION} is unsupported on #{MacOS.version}. Homebrew            is developed and tested on Ruby #{ruby_version}, and may not work correctly            on other Rubies. Patches are accepted as long as they don't cause breakage @@ -212,7 +212,7 @@ module Homebrew          return if prefix.nil?          return unless prefix.to_s.include?(" ") -        <<-EOS.undent +        <<~EOS            Xcode is installed to a directory with a space in the name.            This will cause some formulae to fail to build.          EOS @@ -222,7 +222,7 @@ module Homebrew          prefix = MacOS::Xcode.prefix          return if prefix.nil? || prefix.exist? -        <<-EOS.undent +        <<~EOS            The directory Xcode is reportedly installed to doesn't exist:              #{prefix}            You may need to `xcode-select` the proper path if you have moved Xcode. @@ -236,7 +236,7 @@ module Homebrew          path = MacOS::Xcode.bundle_path          path = "/Developer" if path.nil? || !path.directory? -        <<-EOS.undent +        <<~EOS            Your Xcode is configured with an invalid path.            You should change it to the correct path:              sudo xcode-select -switch #{path} @@ -247,7 +247,7 @@ module Homebrew          return unless MacOS.version <= "10.8"          return if Formula["curl"].installed? -        <<-EOS.undent +        <<~EOS            The system curl on 10.8 and below is often incapable of supporting            modern secure connections & will fail on fetching formulae. @@ -261,7 +261,7 @@ module Homebrew          return unless MacOS.version >= :yosemite          return if ENV["SSL_CERT_DIR"].nil? -        <<-EOS.undent +        <<~EOS            SSL_CERT_DIR support was removed from Apple's curl.            If fetching formulae fails you should:              unset SSL_CERT_DIR @@ -274,7 +274,7 @@ module Homebrew          # license or no "xc*" tool will work.          return unless `/usr/bin/xcrun clang 2>&1` =~ /license/ && !$CHILD_STATUS.success? -        <<-EOS.undent +        <<~EOS            You have not agreed to the Xcode license.            Builds will fail! Agree to the license by opening Xcode.app or running:              sudo xcodebuild -license @@ -289,7 +289,7 @@ module Homebrew          latest_version = Version.create(MacOS::XQuartz.latest_version)          return if installed_version >= latest_version -        <<-EOS.undent +        <<~EOS            Your XQuartz (#{installed_version}) is outdated.            Please install XQuartz #{latest_version} (or delete the current version).            XQuartz can be updated using Homebrew-Cask by running @@ -301,7 +301,7 @@ module Homebrew          return unless MacOS::XQuartz.version          return unless MacOS::XQuartz.version.include? "beta" -        <<-EOS.undent +        <<~EOS            The following beta release of XQuartz is installed: #{MacOS::XQuartz.version}            XQuartz beta releases include address sanitization, and do not work with @@ -337,7 +337,7 @@ module Homebrew          end          case_sensitive_vols.uniq! -        <<-EOS.undent +        <<~EOS            The filesystem on #{case_sensitive_vols.join(",")} appears to be case-sensitive.            The default macOS filesystem is case-insensitive. Please report any apparent problems.          EOS @@ -346,7 +346,7 @@ module Homebrew        def check_homebrew_prefix          return if HOMEBREW_PREFIX.to_s == "/usr/local" -        <<-EOS.undent +        <<~EOS            Your Homebrew's prefix is not /usr/local.            You can install Homebrew anywhere you want but some bottles (binary packages)            can only be used with a /usr/local prefix and some formulae (packages) @@ -360,7 +360,7 @@ module Homebrew          mono_config = Pathname.new("/usr/bin/pkg-config")          if mono_config.exist? && mono_config.realpath.to_s.include?("Mono.framework") -          <<-EOS.undent +          <<~EOS              You have a non-Homebrew 'pkg-config' in your PATH:                /usr/bin/pkg-config => #{mono_config.realpath} @@ -371,7 +371,7 @@ module Homebrew              `sudo rm /usr/bin/pkg-config` and upgrade to the latest version of Mono.            EOS          elsif binary.to_s != "#{HOMEBREW_PREFIX}/bin/pkg-config" -          <<-EOS.undent +          <<~EOS              You have a non-Homebrew 'pkg-config' in your PATH:                #{binary} diff --git a/Library/Homebrew/extend/os/mac/formula_cellar_checks.rb b/Library/Homebrew/extend/os/mac/formula_cellar_checks.rb index 32e5774f6..901d8945f 100644 --- a/Library/Homebrew/extend/os/mac/formula_cellar_checks.rb +++ b/Library/Homebrew/extend/os/mac/formula_cellar_checks.rb @@ -19,7 +19,7 @@ module FormulaCellarChecks      return if files.empty? -    <<-EOS.undent +    <<~EOS        Header files that shadow system header files were installed to "#{formula.include}"        The offending files are:          #{files * "\n        "} @@ -35,7 +35,7 @@ module FormulaCellarChecks      end      return if system_openssl.empty? -    <<-EOS.undent +    <<~EOS        object files were linked against system openssl        These object files were linked against the deprecated system OpenSSL or        the system's private LibreSSL. @@ -52,7 +52,7 @@ module FormulaCellarChecks      end      return if framework_links.empty? -    <<-EOS.undent +    <<~EOS        python modules have explicit framework links        These python extension modules were linked directly to a Python        framework binary. They should be linked with -undefined dynamic_lookup @@ -67,13 +67,13 @@ module FormulaCellarChecks      checker = LinkageChecker.new(keg, formula)      return unless checker.broken_dylibs? -    output = <<-EOS.undent +    output = <<~EOS        #{formula} has broken dynamic library links:          #{checker.broken_dylibs.to_a * "\n  "}      EOS      tab = Tab.for_keg(keg)      if tab.poured_from_bottle -      output += <<-EOS.undent +      output += <<~EOS          Rebuild this from source with:            brew reinstall --build-from-source #{formula}          If that's successful, file an issue#{formula.tap ? " here:\n  #{formula.tap.issues_url}" : "."} diff --git a/Library/Homebrew/extend/os/mac/missing_formula.rb b/Library/Homebrew/extend/os/mac/missing_formula.rb index bcf0eb25d..ea6d50112 100644 --- a/Library/Homebrew/extend/os/mac/missing_formula.rb +++ b/Library/Homebrew/extend/os/mac/missing_formula.rb @@ -5,12 +5,12 @@ module Homebrew          case name.downcase          when "xcode"            if MacOS.version >= :lion -            <<-EOS.undent -            Xcode can be installed from the App Store. +            <<~EOS +              Xcode can be installed from the App Store.              EOS            else -            <<-EOS.undent -            Xcode can be installed from #{Formatter.url("https://developer.apple.com/download/more/")}. +            <<~EOS +              Xcode can be installed from #{Formatter.url("https://developer.apple.com/download/more/")}.              EOS            end          else diff --git a/Library/Homebrew/extend/os/mac/requirements/osxfuse_requirement.rb b/Library/Homebrew/extend/os/mac/requirements/osxfuse_requirement.rb index 8c898a272..3f10a951a 100644 --- a/Library/Homebrew/extend/os/mac/requirements/osxfuse_requirement.rb +++ b/Library/Homebrew/extend/os/mac/requirements/osxfuse_requirement.rb @@ -26,7 +26,7 @@ class NonBinaryOsxfuseRequirement < Requirement    satisfy(build_env: false) { HOMEBREW_PREFIX.to_s != "/usr/local" || !OsxfuseRequirement.binary_osxfuse_installed? }    def message -    <<-EOS.undent +    <<~EOS        osxfuse is already installed from the binary distribution and        conflicts with this formula.      EOS diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb index e3d6880ba..b4c7ca959 100644 --- a/Library/Homebrew/extend/pathname.rb +++ b/Library/Homebrew/extend/pathname.rb @@ -403,7 +403,7 @@ class Pathname      mkpath      targets.each do |target|        target = Pathname.new(target) # allow pathnames or strings -      join(target.basename).write <<-EOS.undent +      join(target.basename).write <<~EOS          #!/bin/bash          exec "#{target}" "$@"        EOS @@ -415,9 +415,9 @@ class Pathname      env_export = ""      env.each { |key, value| env_export += "#{key}=\"#{value}\" " }      dirname.mkpath -    write <<-EOS.undent -    #!/bin/bash -    #{env_export}exec "#{target}" "$@" +    write <<~EOS +      #!/bin/bash +      #{env_export}exec "#{target}" "$@"      EOS    end @@ -435,7 +435,7 @@ class Pathname    # Writes an exec script that invokes a java jar    def write_jar_script(target_jar, script_name, java_opts = "")      mkpath -    join(script_name).write <<-EOS.undent +    join(script_name).write <<~EOS        #!/bin/bash        exec java #{java_opts} -jar #{target_jar} "$@"      EOS diff --git a/Library/Homebrew/extend/string.rb b/Library/Homebrew/extend/string.rb index b96f12994..2e9e89b38 100644 --- a/Library/Homebrew/extend/string.rb +++ b/Library/Homebrew/extend/string.rb @@ -8,7 +8,7 @@ class String    alias unindent undent    # eg: -  #   if foo then <<-EOS.undent_________________________________________________________72 +  #   if foo then <<~EOS_________________________________________________________72    #               Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do    #               eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad    #               minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 61042aae7..1765f20c1 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -839,7 +839,7 @@ class Formula    # This method can be overridden to provide a plist.    # For more examples read Apple's handy manpage:    # https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/plist.5.html -  # <pre>def plist; <<-EOS.undent +  # <pre>def plist; <<~EOS    #  <?xml version="1.0" encoding="UTF-8"?>    #  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">    #  <plist version="1.0"> @@ -986,13 +986,13 @@ class Formula    # to installation through a different package manager on a different OS.    # @return [String]    # <pre>def caveats -  #   <<-EOS.undent +  #   <<~EOS    #     Are optional. Something the user should know?    #   EOS    # end</pre>    #    # <pre>def caveats -  #   s = <<-EOS.undent +  #   s = <<~EOS    #     Print some important notice to the user when `brew info <formula>` is    #     called or when brewing a formula.    #     This is optional. You can use all the vars like #{version} here. @@ -1691,7 +1691,7 @@ class Formula      # keep Homebrew's site-packages in sys.path when using system Python      user_site_packages = home/"Library/Python/2.7/lib/python/site-packages"      user_site_packages.mkpath -    (user_site_packages/"homebrew.pth").write <<-EOS.undent +    (user_site_packages/"homebrew.pth").write <<~EOS        import site; site.addsitedir("#{HOMEBREW_PREFIX}/lib/python2.7/site-packages")        import sys, os; sys.path = (os.environ["PYTHONPATH"].split(os.pathsep) if "PYTHONPATH" in os.environ else []) + ["#{HOMEBREW_PREFIX}/lib/python2.7/site-packages"] + sys.path      EOS @@ -2394,7 +2394,7 @@ class Formula      # and building the software was ok.      # <pre>system bin/"foobar", "--version"</pre>      # -    # <pre>(testpath/"test.file").write <<-EOS.undent +    # <pre>(testpath/"test.file").write <<~EOS      #   writing some test file, if you need to      # EOS      # assert_equal "OK", shell_output("test_command test.file").strip</pre> diff --git a/Library/Homebrew/formula_cellar_checks.rb b/Library/Homebrew/formula_cellar_checks.rb index 6c433e420..471a5ea2f 100644 --- a/Library/Homebrew/formula_cellar_checks.rb +++ b/Library/Homebrew/formula_cellar_checks.rb @@ -12,7 +12,7 @@ module FormulaCellarChecks      prefix_bin = prefix_bin.realpath      return if ORIGINAL_PATHS.include? prefix_bin -    <<-EOS.undent +    <<~EOS        #{prefix_bin} is not in your PATH        You can amend this by altering your #{Utils::Shell.profile} file      EOS @@ -22,7 +22,7 @@ module FormulaCellarChecks      # Check for man pages that aren't in share/man      return unless (formula.prefix/"man").directory? -    <<-EOS.undent +    <<~EOS        A top-level "man" directory was found        Homebrew requires that man pages live under share.        This can often be fixed by passing "--mandir=\#{man}" to configure. @@ -33,7 +33,7 @@ module FormulaCellarChecks      # Check for info pages that aren't in share/info      return unless (formula.prefix/"info").directory? -    <<-EOS.undent +    <<~EOS        A top-level "info" directory was found        Homebrew suggests that info pages live under share.        This can often be fixed by passing "--infodir=\#{info}" to configure. @@ -45,7 +45,7 @@ module FormulaCellarChecks      jars = formula.lib.children.select { |g| g.extname == ".jar" }      return if jars.empty? -    <<-EOS.undent +    <<~EOS        JARs were installed to "#{formula.lib}"        Installing JARs to "lib" can cause conflicts between packages.        For Java software, it is typically better for the formula to @@ -67,7 +67,7 @@ module FormulaCellarChecks      end      return if non_libraries.empty? -    <<-EOS.undent +    <<~EOS        Non-libraries were installed to "#{formula.lib}"        Installing non-libraries to "lib" is discouraged.        The offending files are: @@ -81,7 +81,7 @@ module FormulaCellarChecks      non_exes = bin.children.select { |g| g.directory? || !g.executable? }      return if non_exes.empty? -    <<-EOS.undent +    <<~EOS        Non-executables were installed to "#{bin}"        The offending files are:          #{non_exes * "\n        "} @@ -94,7 +94,7 @@ module FormulaCellarChecks      generics = bin.children.select { |g| generic_names.include? g.basename.to_s }      return if generics.empty? -    <<-EOS.undent +    <<~EOS        Generic binaries were installed to "#{bin}"        Binaries with generic names are likely to conflict with other software,        and suggest that this software should be installed to "libexec" and then @@ -109,7 +109,7 @@ module FormulaCellarChecks      pth_found = Dir["#{lib}/python{2.7,3}*/site-packages/easy-install.pth"].map { |f| File.dirname(f) }      return if pth_found.empty? -    <<-EOS.undent +    <<~EOS        easy-install.pth files were found        These .pth files are likely to cause link conflicts. Please invoke        setup.py using Language::Python.setup_install_args. @@ -128,7 +128,7 @@ module FormulaCellarChecks      end      return unless bad_dir_name -    <<-EOS +    <<~EOS        Emacs Lisp files were installed into the wrong site-lisp subdirectory.        They should be installed into:        #{share}/emacs/site-lisp/#{name} @@ -142,7 +142,7 @@ module FormulaCellarChecks      elisps = (share/"emacs/site-lisp").children.select { |file| %w[.el .elc].include? file.extname }      return if elisps.empty? -    <<-EOS.undent +    <<~EOS        Emacs Lisp files were linked directly to #{HOMEBREW_PREFIX}/share/emacs/site-lisp        This may cause conflicts with other packages.        They should instead be installed into: diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 7cd87e751..42abe5171 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -93,7 +93,7 @@ class FormulaInstaller      return false if formula.bottle_disabled?      unless formula.pour_bottle?        if install_bottle_options[:warn] && formula.pour_bottle_check_unsatisfied_reason -        opoo <<-EOS.undent +        opoo <<~EOS            Building #{formula.full_name} from source:              #{formula.pour_bottle_check_unsatisfied_reason}          EOS @@ -104,7 +104,7 @@ class FormulaInstaller      bottle = formula.bottle_specification      unless bottle.compatible_cellar?        if install_bottle_options[:warn] -        opoo <<-EOS.undent +        opoo <<~EOS            Building #{formula.full_name} from source:              The bottle needs a #{bottle.cellar} Cellar (yours is #{HOMEBREW_CELLAR}).          EOS @@ -165,14 +165,14 @@ class FormulaInstaller      end      unless recursive_dependencies.empty? -      raise CannotInstallFormulaError, <<-EOS.undent +      raise CannotInstallFormulaError, <<~EOS          #{formula.full_name} contains a recursive dependency on itself:            #{recursive_dependencies.join("\n  ")}        EOS      end      if recursive_formulae.flat_map(&:recursive_dependencies).map(&:to_s).include?(formula.name) -      raise CannotInstallFormulaError, <<-EOS.undent +      raise CannotInstallFormulaError, <<~EOS          #{formula.full_name} contains a recursive dependency on itself!        EOS      end @@ -188,7 +188,7 @@ class FormulaInstaller        version_conflicts += version_hash[unversioned_name]      end      unless version_conflicts.empty? -      raise CannotInstallFormulaError, <<-EOS.undent +      raise CannotInstallFormulaError, <<~EOS          #{formula.full_name} contains conflicting version recursive dependencies:            #{version_conflicts.to_a.join ", "}          View these with `brew deps --tree #{formula.full_name}`. @@ -221,16 +221,16 @@ class FormulaInstaller      # function but after instantiating this class so that it can avoid having to      # relink the active keg if possible (because it is slow).      if formula.linked_keg.directory? -      message = <<-EOS.undent +      message = <<~EOS          #{formula.name} #{formula.linked_version} is already installed        EOS        message += if formula.outdated? && !formula.head? -        <<-EOS.undent +        <<~EOS            To upgrade to #{formula.pkg_version}, run `brew upgrade #{formula.name}`          EOS        else          # some other version is already installed *and* linked -        <<-EOS.undent +        <<~EOS            To install #{formula.pkg_version}, first run `brew unlink #{formula.name}`          EOS        end @@ -355,7 +355,7 @@ class FormulaInstaller        rescue FormulaUnavailableError => e          # If the formula name doesn't exist any more then complain but don't          # stop installation from continuing. -        opoo <<-EOS.undent +        opoo <<~EOS            #{formula}: #{e.message}            'conflicts_with \"#{c.name}\"' should be removed from #{formula.path.basename}.          EOS diff --git a/Library/Homebrew/formula_support.rb b/Library/Homebrew/formula_support.rb index 2c9c19187..53fd61db8 100644 --- a/Library/Homebrew/formula_support.rb +++ b/Library/Homebrew/formula_support.rb @@ -33,33 +33,33 @@ class KegOnlyReason    def to_s      return @explanation unless @explanation.empty?      case @reason -    when :versioned_formula then <<-EOS.undent +    when :versioned_formula then <<~EOS        this is an alternate version of another formula      EOS -    when :provided_by_macos, :provided_by_osx then <<-EOS.undent +    when :provided_by_macos, :provided_by_osx then <<~EOS        macOS already provides this software and installing another version in        parallel can cause all kinds of trouble      EOS -    when :shadowed_by_macos, :shadowed_by_osx then <<-EOS.undent +    when :shadowed_by_macos, :shadowed_by_osx then <<~EOS        macOS provides similar software and installing this software in        parallel can cause all kinds of trouble      EOS -    when :provided_pre_mountain_lion then <<-EOS.undent +    when :provided_pre_mountain_lion then <<~EOS        macOS already provides this software in versions before Mountain Lion      EOS -    when :provided_pre_mavericks then <<-EOS.undent +    when :provided_pre_mavericks then <<~EOS        macOS already provides this software in versions before Mavericks      EOS -    when :provided_pre_el_capitan then <<-EOS.undent +    when :provided_pre_el_capitan then <<~EOS        macOS already provides this software in versions before El Capitan      EOS -    when :provided_pre_high_sierra then <<-EOS.undent +    when :provided_pre_high_sierra then <<~EOS        macOS already provides this software in versions before High Sierra      EOS -    when :provided_until_xcode43 then <<-EOS.undent +    when :provided_until_xcode43 then <<~EOS        Xcode provides this software prior to version 4.3      EOS -    when :provided_until_xcode5 then <<-EOS.undent +    when :provided_until_xcode5 then <<~EOS        Xcode provides this software prior to version 5      EOS      else diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb index fddeac631..7eb85ed97 100644 --- a/Library/Homebrew/formulary.rb +++ b/Library/Homebrew/formulary.rb @@ -128,7 +128,7 @@ module Formulary        formula = begin          Formulary.from_contents name, @bottle_filename, contents, spec        rescue FormulaUnreadableError => e -        opoo <<-EOS.undent +        opoo <<~EOS            Unreadable formula in #{@bottle_filename}:            #{e}          EOS @@ -443,7 +443,7 @@ module Formulary      if possible_pinned_tap_formulae.size == 1        selected_formula = factory(possible_pinned_tap_formulae.first, spec)        if core_path(ref).file? -        opoo <<-EOS.undent +        opoo <<~EOS            #{ref} is provided by core, but is now shadowed by #{selected_formula.full_name}.            To refer to the core formula, use Homebrew/core/#{ref} instead.          EOS diff --git a/Library/Homebrew/gpg.rb b/Library/Homebrew/gpg.rb index de2089dda..ec4e62450 100644 --- a/Library/Homebrew/gpg.rb +++ b/Library/Homebrew/gpg.rb @@ -32,7 +32,7 @@ class Gpg    def self.create_test_key(path)      odie "No GPG present to test against!" unless available? -    (path/"batch.gpg").write <<-EOS.undent +    (path/"batch.gpg").write <<~EOS        Key-Type: RSA        Key-Length: 2048        Subkey-Type: RSA diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index 677a97c85..bb9778c81 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -6,7 +6,7 @@ require "ostruct"  class Keg    class AlreadyLinkedError < RuntimeError      def initialize(keg) -      super <<-EOS.undent +      super <<~EOS          Cannot link #{keg.name}          Another version is already linked: #{keg.linked_keg_record.resolved_path}          EOS @@ -32,9 +32,9 @@ class Keg      rescue NotAKegError, Errno::ENOENT        "already exists. You may want to remove it:\n  rm '#{dst}'\n"      else -      <<-EOS.undent -      is a symlink belonging to #{conflict.name}. You can unlink it: -        brew unlink #{conflict.name} +      <<~EOS +        is a symlink belonging to #{conflict.name}. You can unlink it: +          brew unlink #{conflict.name}        EOS      end @@ -42,7 +42,7 @@ class Keg        s = []        s << "Could not symlink #{src}"        s << "Target #{dst}" << suggestion -      s << <<-EOS.undent +      s << <<~EOS          To force the link and overwrite all conflicting files:            brew link --overwrite #{keg.name} @@ -54,7 +54,7 @@ class Keg    end    class DirectoryNotWritableError < LinkError -    def to_s; <<-EOS.undent +    def to_s; <<~EOS        Could not symlink #{src}        #{dst.dirname} is not writable.        EOS diff --git a/Library/Homebrew/language/python.rb b/Library/Homebrew/language/python.rb index bfec556d0..931cc59fc 100644 --- a/Library/Homebrew/language/python.rb +++ b/Library/Homebrew/language/python.rb @@ -46,7 +46,7 @@ module Language      end      def self.in_sys_path?(python, path) -      script = <<-EOS.undent +      script = <<~EOS          import os, sys          [os.path.realpath(p) for p in sys.path].index(os.path.realpath("#{path}"))        EOS @@ -54,7 +54,7 @@ module Language      end      def self.setup_install_args(prefix) -      shim = <<-EOS.undent +      shim = <<~EOS          import setuptools, tokenize          __file__ = 'setup.py'          exec(compile(getattr(tokenize, 'open', open)(__file__).read() diff --git a/Library/Homebrew/migrator.rb b/Library/Homebrew/migrator.rb index 0eb7492df..8664d474b 100644 --- a/Library/Homebrew/migrator.rb +++ b/Library/Homebrew/migrator.rb @@ -6,7 +6,7 @@ require "tab"  class Migrator    class MigrationNeededError < RuntimeError      def initialize(formula) -      super <<-EOS.undent +      super <<~EOS          #{formula.oldname} was renamed to #{formula.name} and needs to be migrated.          Please run `brew migrate #{formula.oldname}`        EOS @@ -33,10 +33,9 @@ class Migrator          "Please try to use fully-qualified #{tap}/#{formula.oldname} to refer the formula.\n"        end -      super <<-EOS.undent -      #{formula.name} from #{formula.tap} is given, but old name #{formula.oldname} was installed from #{tap ? tap : "path or url"}. - -      #{msg}To force migrate use `brew migrate --force #{formula.oldname}`. +      super <<~EOS +        #{formula.name} from #{formula.tap} is given, but old name #{formula.oldname} was installed from #{tap ? tap : "path or url"}. +         #{msg}To force migrate use `brew migrate --force #{formula.oldname}`.        EOS      end    end diff --git a/Library/Homebrew/missing_formula.rb b/Library/Homebrew/missing_formula.rb index a3d182a2b..97ed5749a 100644 --- a/Library/Homebrew/missing_formula.rb +++ b/Library/Homebrew/missing_formula.rb @@ -12,10 +12,10 @@ module Homebrew        def blacklisted_reason(name)          case name.downcase -        when "gem", /^rubygems?$/ then <<-EOS.undent +        when "gem", /^rubygems?$/ then <<~EOS            Homebrew provides gem via: `brew install ruby`.            EOS -        when "tex", "tex-live", "texlive", "latex" then <<-EOS.undent +        when "tex", "tex-live", "texlive", "latex" then <<~EOS            Installing TeX from source is weird and gross, requires a lot of patches,            and only builds 32-bit (and thus can't use Homebrew dependencies) @@ -24,42 +24,42 @@ module Homebrew            You can install it with Homebrew-Cask:              brew cask install mactex            EOS -        when "pip" then <<-EOS.undent +        when "pip" then <<~EOS            Homebrew provides pip via: `brew install python`. However you will then            have two Pythons installed on your Mac, so alternatively you can install            pip via the instructions at:              #{Formatter.url("https://pip.readthedocs.io/en/stable/installing/")}            EOS -        when "pil" then <<-EOS.undent +        when "pil" then <<~EOS            Instead of PIL, consider `pip2 install pillow`.            EOS -        when "macruby" then <<-EOS.undent +        when "macruby" then <<~EOS            MacRuby is not packaged and is on an indefinite development hiatus.            You can read more about it at:              #{Formatter.url("https://github.com/MacRuby/MacRuby")}            EOS          when /(lib)?lzma/            "lzma is now part of the xz formula." -        when "gtest", "googletest", "google-test" then <<-EOS.undent +        when "gtest", "googletest", "google-test" then <<~EOS            Installing gtest system-wide is not recommended; it should be vendored            in your projects that use it.            EOS -        when "gmock", "googlemock", "google-mock" then <<-EOS.undent +        when "gmock", "googlemock", "google-mock" then <<~EOS            Installing gmock system-wide is not recommended; it should be vendored            in your projects that use it.            EOS -        when "sshpass" then <<-EOS.undent +        when "sshpass" then <<~EOS            We won't add sshpass because it makes it too easy for novice SSH users to            ruin SSH's security.            EOS -        when "gsutil" then <<-EOS.undent +        when "gsutil" then <<~EOS            Install gsutil with `pip2 install gsutil`            EOS -        when "gfortran" then <<-EOS.undent +        when "gfortran" then <<~EOS            GNU Fortran is now provided as part of GCC, and can be installed with:              brew install gcc            EOS -        when "play" then <<-EOS.undent +        when "play" then <<~EOS            Play 2.3 replaces the play command with activator:              brew install typesafe-activator @@ -67,7 +67,7 @@ module Homebrew              #{Formatter.url("https://www.playframework.com/documentation/2.3.x/Migration23")}              #{Formatter.url("https://www.playframework.com/documentation/2.3.x/Highlights23")}            EOS -        when "haskell-platform" then <<-EOS.undent +        when "haskell-platform" then <<~EOS            We no longer package haskell-platform. Consider installing ghc            and cabal-install instead:              brew install ghc cabal-install @@ -75,10 +75,10 @@ module Homebrew            You can install with Homebrew-Cask:              brew cask install haskell-platform            EOS -        when "mysqldump-secure" then <<-EOS.undent +        when "mysqldump-secure" then <<~EOS            The creator of mysqldump-secure tried to game our popularity metrics.            EOS -        when "ngrok" then <<-EOS.undent +        when "ngrok" then <<~EOS            Upstream sunsetted 1.x in March 2016 and 2.x is not open-source.            If you wish to use the 2.x release you can install with Homebrew-Cask: @@ -98,12 +98,12 @@ module Homebrew            new_tap_user, new_tap_repo, = new_tap.split("/")            new_tap_name = "#{new_tap_user}/#{new_tap_repo}" -          message = <<-EOS.undent +          message = <<~EOS              It was migrated from #{old_tap} to #{new_tap}.            EOS            break if new_tap_name == CoreTap.instance.name -          message += <<-EOS.undent +          message += <<~EOS              You can access it again by running:                brew tap #{new_tap_name}            EOS @@ -124,7 +124,7 @@ module Homebrew            unless silent              ohai "Searching for a previously deleted formula..."              if (tap.path/".git/shallow").exist? -              opoo <<-EOS.undent +              opoo <<~EOS                  #{tap} is shallow clone. To get complete history run:                    git -C "$(brew --repo #{tap})" fetch --unshallow @@ -147,7 +147,7 @@ module Homebrew            commit_message.sub!(/ \(#(\d+)\)$/, " (#{tap.issues_url}/\\1)")            commit_message.gsub!(/(Closes|Fixes) #(\d+)/, "\\1 #{tap.issues_url}/\\2") -          <<-EOS.undent +          <<~EOS              #{name} was deleted from #{tap.name} in commit #{short_hash}:                #{commit_message} diff --git a/Library/Homebrew/os/mac.rb b/Library/Homebrew/os/mac.rb index 9dbb252e4..9796339e6 100644 --- a/Library/Homebrew/os/mac.rb +++ b/Library/Homebrew/os/mac.rb @@ -208,7 +208,7 @@ module OS          send(:"#{method}_version") == build        end      rescue IndexError -      onoe <<-EOS.undent +      onoe <<~EOS          Homebrew doesn't know what compiler versions ship with your version          of Xcode (#{Xcode.version}). Please `brew update` and if that doesn't          help, file an issue with the output of `brew --config`: diff --git a/Library/Homebrew/os/mac/keg.rb b/Library/Homebrew/os/mac/keg.rb index 6caadb1d7..6f2d65fb4 100644 --- a/Library/Homebrew/os/mac/keg.rb +++ b/Library/Homebrew/os/mac/keg.rb @@ -5,7 +5,7 @@ class Keg      puts "Changing dylib ID of #{file}\n  from #{file.dylib_id}\n    to #{id}" if ARGV.debug?      MachO::Tools.change_dylib_id(file, id, strict: false)    rescue MachO::MachOError -    onoe <<-EOS.undent +    onoe <<~EOS        Failed changing dylib ID of #{file}          from #{file.dylib_id}            to #{id} @@ -19,7 +19,7 @@ class Keg      puts "Changing install name in #{file}\n  from #{old}\n    to #{new}" if ARGV.debug?      MachO::Tools.change_install_name(file, old, new, strict: false)    rescue MachO::MachOError -    onoe <<-EOS.undent +    onoe <<~EOS        Failed changing install name in #{file}          from #{old}            to #{new} diff --git a/Library/Homebrew/os/mac/xcode.rb b/Library/Homebrew/os/mac/xcode.rb index 5071aafcf..83924a2be 100644 --- a/Library/Homebrew/os/mac/xcode.rb +++ b/Library/Homebrew/os/mac/xcode.rb @@ -86,11 +86,11 @@ module OS        def update_instructions          if MacOS.version >= "10.9" && !OS::Mac.prerelease? -          <<-EOS.undent +          <<~EOS              Xcode can be updated from the App Store.            EOS          else -          <<-EOS.undent +          <<~EOS              Xcode can be updated from                https://developer.apple.com/download/more/            EOS @@ -199,11 +199,11 @@ module OS        def update_instructions          if MacOS.version >= "10.9" -          <<-EOS.undent +          <<~EOS              Update them from Software Update in the App Store.            EOS          elsif MacOS.version == "10.8" || MacOS.version == "10.7" -          <<-EOS.undent +          <<~EOS              The standalone package can be obtained from                https://developer.apple.com/download/more/              or it can be installed via Xcode's preferences. diff --git a/Library/Homebrew/patch.rb b/Library/Homebrew/patch.rb index 8a1b00930..a44add10e 100644 --- a/Library/Homebrew/patch.rb +++ b/Library/Homebrew/patch.rb @@ -139,7 +139,7 @@ class ExternalPatch        if patch_files.empty?          children = patch_dir.children          if children.length != 1 || !children.first.file? -          raise MissingApplyError, <<-EOS.undent +          raise MissingApplyError, <<~EOS              There should be exactly one patch file in the staging directory unless              the "apply" method was used one or more times in the patch-do block.            EOS diff --git a/Library/Homebrew/requirement.rb b/Library/Homebrew/requirement.rb index 1ec8580c4..a69c68466 100644 --- a/Library/Homebrew/requirement.rb +++ b/Library/Homebrew/requirement.rb @@ -35,18 +35,16 @@ class Requirement      _, _, class_name = self.class.to_s.rpartition "::"      s = "#{class_name} unsatisfied!\n"      if cask -      s += <<-EOS.undent - +      s += <<~EOS          You can install with Homebrew-Cask: -          brew cask install #{cask} +         brew cask install #{cask}        EOS      end      if download -      s += <<-EOS.undent - +      s += <<~EOS          You can download from: -          #{download} +         #{download}        EOS      end      s diff --git a/Library/Homebrew/requirements.rb b/Library/Homebrew/requirements.rb index bac7d5790..35a0c242c 100644 --- a/Library/Homebrew/requirements.rb +++ b/Library/Homebrew/requirements.rb @@ -34,16 +34,16 @@ class XcodeRequirement < Requirement    def message      version = " #{@version}" if @version -    message = <<-EOS.undent +    message = <<~EOS        A full installation of Xcode.app#{version} is required to compile this software.        Installing just the Command Line Tools is not sufficient.      EOS      if MacOS.version >= :lion -      message + <<-EOS.undent +      message + <<~EOS          Xcode can be installed from the App Store.        EOS      else -      message + <<-EOS.undent +      message + <<~EOS          Xcode can be installed from #{Formatter.url("https://developer.apple.com/download/more/")}.        EOS      end @@ -83,7 +83,7 @@ class TeXRequirement < Requirement    satisfy { which("tex") || which("latex") }    def message -    s = <<-EOS.undent +    s = <<~EOS        A LaTeX distribution is required for Homebrew to install this formula.        Make sure that "/usr/texbin", or the location you installed it to, is in diff --git a/Library/Homebrew/requirements/language_module_requirement.rb b/Library/Homebrew/requirements/language_module_requirement.rb index 392bc9b7a..5ddce7a66 100644 --- a/Library/Homebrew/requirements/language_module_requirement.rb +++ b/Library/Homebrew/requirements/language_module_requirement.rb @@ -13,16 +13,15 @@ class LanguageModuleRequirement < Requirement    satisfy(build_env: false) { quiet_system(*the_test) }    def message -    s = <<-EOS.undent +    s = <<~EOS        Unsatisfied dependency: #{@module_name}        Homebrew does not provide special #{@language.to_s.capitalize} dependencies; install with:          `#{command_line} #{@module_name}`      EOS      unless [:python, :perl, :ruby].include? @language -      s += <<-EOS.undent - -      You may need to: `brew install #{@language}` +      s += <<~EOS +        You may need to: `brew install #{@language}`        EOS      end diff --git a/Library/Homebrew/requirements/maximum_macos_requirement.rb b/Library/Homebrew/requirements/maximum_macos_requirement.rb index 6e798b478..9a8851390 100644 --- a/Library/Homebrew/requirements/maximum_macos_requirement.rb +++ b/Library/Homebrew/requirements/maximum_macos_requirement.rb @@ -11,7 +11,7 @@ class MaximumMacOSRequirement < Requirement    satisfy(build_env: false) { MacOS.version <= @version }    def message -    <<-EOS.undent +    <<~EOS        This formula either does not compile or function as expected on macOS        versions newer than #{@version.pretty_name} due to an upstream incompatibility.      EOS diff --git a/Library/Homebrew/requirements/unsigned_kext_requirement.rb b/Library/Homebrew/requirements/unsigned_kext_requirement.rb index 2ffc8fda3..b58a20ea6 100644 --- a/Library/Homebrew/requirements/unsigned_kext_requirement.rb +++ b/Library/Homebrew/requirements/unsigned_kext_requirement.rb @@ -6,7 +6,7 @@ class UnsignedKextRequirement < Requirement    satisfy(build_env: false) { MacOS.version < :yosemite }    def message -    s = <<-EOS.undent +    s = <<~EOS        Building this formula from source isn't possible due to OS X        Yosemite (10.10) and above's strict unsigned kext ban.      EOS diff --git a/Library/Homebrew/rubocops/conflicts_cop.rb b/Library/Homebrew/rubocops/conflicts_cop.rb index 6f05d0567..1cca3f8ae 100644 --- a/Library/Homebrew/rubocops/conflicts_cop.rb +++ b/Library/Homebrew/rubocops/conflicts_cop.rb @@ -6,7 +6,7 @@ module RuboCop      module FormulaAudit        # This cop audits versioned Formulae for `conflicts_with`        class Conflicts < FormulaCop -        MSG = <<-EOS.undent +        MSG = <<~EOS.freeze            Versioned formulae should not use `conflicts_with`.            Use `keg_only :versioned_formula` instead.          EOS diff --git a/Library/Homebrew/rubocops/extend/formula_cop.rb b/Library/Homebrew/rubocops/extend/formula_cop.rb index fccce0ded..7531e62b7 100644 --- a/Library/Homebrew/rubocops/extend/formula_cop.rb +++ b/Library/Homebrew/rubocops/extend/formula_cop.rb @@ -167,19 +167,19 @@ module RuboCop          type_match && name_match        end -      def_node_search :required_dependency?, <<-EOS.undent +      def_node_search :required_dependency?, <<~EOS          (send nil :depends_on ({str sym} _))        EOS -      def_node_search :required_dependency_name?, <<-EOS.undent +      def_node_search :required_dependency_name?, <<~EOS          (send nil :depends_on ({str sym} %1))        EOS -      def_node_search :dependency_type_hash_match?, <<-EOS.undent +      def_node_search :dependency_type_hash_match?, <<~EOS          (hash (pair ({str sym} _) ({str sym} %1)))        EOS -      def_node_search :dependency_name_hash_match?, <<-EOS.undent +      def_node_search :dependency_name_hash_match?, <<~EOS          (hash (pair ({str sym} %1) ({str sym} _)))        EOS diff --git a/Library/Homebrew/rubocops/formula_desc_cop.rb b/Library/Homebrew/rubocops/formula_desc_cop.rb index 2ef60303d..05f60c9d5 100644 --- a/Library/Homebrew/rubocops/formula_desc_cop.rb +++ b/Library/Homebrew/rubocops/formula_desc_cop.rb @@ -29,7 +29,7 @@ module RuboCop            desc_length = "#{@formula_name}: #{string_content(desc)}".length            max_desc_length = 80            return if desc_length <= max_desc_length -          problem <<-EOS.undent +          problem <<~EOS              Description is too long. "name: desc" should be less than #{max_desc_length} characters.              Length is calculated as #{@formula_name} + desc. (currently #{desc_length})            EOS diff --git a/Library/Homebrew/rubocops/lines_cop.rb b/Library/Homebrew/rubocops/lines_cop.rb index a45f673c6..4172aad96 100644 --- a/Library/Homebrew/rubocops/lines_cop.rb +++ b/Library/Homebrew/rubocops/lines_cop.rb @@ -109,7 +109,7 @@ module RuboCop            end            find_method_with_args(body_node, :skip_clean, :all) do -            problem <<-EOS.undent.chomp +            problem <<~EOS.chomp                `skip_clean :all` is deprecated; brew no longer strips symbols                        Pass explicit paths to prevent Homebrew from removing empty folders.              EOS @@ -131,7 +131,7 @@ module RuboCop          end          # Node Pattern search for Language::Node -        def_node_search :languageNodeModule?, <<-EOS.undent +        def_node_search :languageNodeModule?, <<~EOS            (const (const nil :Language) :Node)          EOS        end diff --git a/Library/Homebrew/rubocops/patches_cop.rb b/Library/Homebrew/rubocops/patches_cop.rb index 7ee1a127a..a752f1019 100644 --- a/Library/Homebrew/rubocops/patches_cop.rb +++ b/Library/Homebrew/rubocops/patches_cop.rb @@ -28,7 +28,7 @@ module RuboCop            gh_patch_param_pattern = %r{https?://github\.com/.+/.+/(?:commit|pull)/[a-fA-F0-9]*.(?:patch|diff)}            if regex_match_group(patch, gh_patch_param_pattern)              if patch_url !~ /\?full_index=\w+$/ -              problem <<-EOS.undent +              problem <<~EOS                  GitHub patches should use the full_index parameter:                    #{patch_url}?full_index=1                EOS @@ -41,7 +41,7 @@ module RuboCop                                              %r{gist\.githubusercontent\.com/.+/raw}])            if regex_match_group(patch, gh_patch_patterns)              if patch_url !~ /[a-fA-F0-9]{40}/ -              problem <<-EOS.undent.chomp +              problem <<~EOS.chomp                  GitHub/Gist patches should specify a revision:                  #{patch_url}                EOS @@ -50,7 +50,7 @@ module RuboCop            gh_patch_diff_pattern = %r{https?://patch-diff\.githubusercontent\.com/raw/(.+)/(.+)/pull/(.+)\.(?:diff|patch)}            if match_obj = regex_match_group(patch, gh_patch_diff_pattern) -            problem <<-EOS.undent +            problem <<~EOS                use GitHub pull request URLs:                  https://github.com/#{match_obj[1]}/#{match_obj[2]}/pull/#{match_obj[3]}.patch                Rather than patch-diff: @@ -59,21 +59,21 @@ module RuboCop            end            if regex_match_group(patch, %r{macports/trunk}) -            problem <<-EOS.undent.chomp +            problem <<~EOS.chomp                MacPorts patches should specify a revision instead of trunk:                #{patch_url}              EOS            end            if regex_match_group(patch, %r{^http://trac\.macports\.org}) -            problem <<-EOS.undent.chomp +            problem <<~EOS.chomp                Patches from MacPorts Trac should be https://, not http:                #{patch_url}              EOS            end            return unless regex_match_group(patch, %r{^http://bugs\.debian\.org}) -          problem <<-EOS.undent.chomp +          problem <<~EOS.chomp              Patches from Debian should be https://, not http:              #{patch_url}            EOS diff --git a/Library/Homebrew/rubocops/urls_cop.rb b/Library/Homebrew/rubocops/urls_cop.rb index 071a4c42d..414f633c9 100644 --- a/Library/Homebrew/rubocops/urls_cop.rb +++ b/Library/Homebrew/rubocops/urls_cop.rb @@ -104,7 +104,7 @@ module RuboCop              end              if url =~ %r{^https?://prdownloads\.} -              problem <<-EOS.undent.chomp +              problem <<~EOS.chomp                  Don't use prdownloads in SourceForge urls (url is #{url}).                          See: http://librelist.com/browser/homebrew/2011/1/12/prdownloads-is-bad/                EOS @@ -121,7 +121,7 @@ module RuboCop            # one out of the grab bag.            unsecure_deb_pattern = %r{^http://http\.debian\.net/debian/(.*)}i            audit_urls(urls, unsecure_deb_pattern) do |match, _| -            problem <<-EOS.undent +            problem <<~EOS                Please use a secure mirror for Debian URLs.                We recommend:                  https://mirrors.ocf.berkeley.edu/debian/#{match[1]} @@ -176,7 +176,7 @@ module RuboCop            # Don't use GitHub codeload URLs            codeload_gh_pattern = %r{https?://codeload\.github\.com/(.+)/(.+)/(?:tar\.gz|zip)/(.+)}            audit_urls(urls, codeload_gh_pattern) do |match, url| -            problem <<-EOS.undent +            problem <<~EOS                Use GitHub archive URLs:                  https://github.com/#{match[1]}/#{match[2]}/archive/#{match[3]}.tar.gz                Rather than codeload: diff --git a/Library/Homebrew/sandbox.rb b/Library/Homebrew/sandbox.rb index 7d23e5966..ea74fae09 100644 --- a/Library/Homebrew/sandbox.rb +++ b/Library/Homebrew/sandbox.rb @@ -138,7 +138,7 @@ class Sandbox    end    class SandboxProfile -    SEATBELT_ERB = <<-EOS.undent +    SEATBELT_ERB = <<~EOS.freeze        (version 1)        (debug deny) ; log all denied operations to /var/log/system.log        <%= rules.join("\n") %> diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb index c12c121e4..ebfc4cd80 100644 --- a/Library/Homebrew/tap.rb +++ b/Library/Homebrew/tap.rb @@ -267,7 +267,7 @@ class Tap      return if options[:clone_target]      return unless private?      return if quiet -    puts <<-EOS.undent +    puts <<~EOS        It looks like you tapped a private repository. To avoid entering your        credentials each time you update, you can use git HTTP credential        caching or issue the following command: diff --git a/Library/Homebrew/test/cask/artifact/app_spec.rb b/Library/Homebrew/test/cask/artifact/app_spec.rb index 4ead8b7f9..285cc4f31 100644 --- a/Library/Homebrew/test/cask/artifact/app_spec.rb +++ b/Library/Homebrew/test/cask/artifact/app_spec.rb @@ -82,12 +82,12 @@ describe Hbc::Artifact::App, :cask do          describe "target is both writable and user-owned" do            it "overwrites the existing app" do -            stdout = <<-EOS.undent +            stdout = <<~EOS                ==> Removing App '#{target_path}'.                ==> Moving App 'Caffeine.app' to '#{target_path}'.              EOS -            stderr = <<-EOS.undent +            stderr = <<~EOS                Warning: It seems there is already an App at '#{target_path}'; overwriting.              EOS @@ -117,12 +117,12 @@ describe Hbc::Artifact::App, :cask do              expect(command).to receive(:run).with("/usr/bin/chflags", args: ["-R", "--", "000", target_path], must_succeed: false)                .and_call_original -            stdout = <<-EOS.undent +            stdout = <<~EOS                ==> Removing App '#{target_path}'.                ==> Moving App 'Caffeine.app' to '#{target_path}'.              EOS -            stderr = <<-EOS.undent +            stderr = <<~EOS                Warning: It seems there is already an App at '#{target_path}'; overwriting.              EOS @@ -162,12 +162,12 @@ describe Hbc::Artifact::App, :cask do          let(:force) { true }          it "overwrites the existing app" do -          stdout = <<-EOS.undent +          stdout = <<~EOS              ==> Removing App '#{target_path}'.              ==> Moving App 'Caffeine.app' to '#{target_path}'.            EOS -          stderr = <<-EOS.undent +          stderr = <<~EOS              Warning: It seems there is already an App at '#{target_path}'; overwriting.            EOS diff --git a/Library/Homebrew/test/cask/artifact/pkg_spec.rb b/Library/Homebrew/test/cask/artifact/pkg_spec.rb index 7f1b64d1a..89916d283 100644 --- a/Library/Homebrew/test/cask/artifact/pkg_spec.rb +++ b/Library/Homebrew/test/cask/artifact/pkg_spec.rb @@ -29,7 +29,7 @@ describe Hbc::Artifact::Pkg, :cask do        file = double(path: Pathname.new("/tmp/choices.xml")) -      expect(file).to receive(:write).with(<<-EOS.undent) +      expect(file).to receive(:write).with(<<~EOS)          <?xml version="1.0" encoding="UTF-8"?>          <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">          <plist version="1.0"> diff --git a/Library/Homebrew/test/cask/artifact/two_apps_correct_spec.rb b/Library/Homebrew/test/cask/artifact/two_apps_correct_spec.rb index 7f2ef75b3..8367dc27d 100644 --- a/Library/Homebrew/test/cask/artifact/two_apps_correct_spec.rb +++ b/Library/Homebrew/test/cask/artifact/two_apps_correct_spec.rb @@ -61,7 +61,7 @@ describe Hbc::Artifact::App, :cask do          target_path_mini.mkpath          expect { -          expect(install_phase).to output(<<-EOS.undent).to_stdout +          expect(install_phase).to output(<<~EOS).to_stdout              ==> Moving App 'Caffeine Pro.app' to '#{target_path_pro}'            EOS          }.to raise_error(Hbc::CaskError, "It seems there is already an App at '#{target_path_mini}'.") @@ -75,7 +75,7 @@ describe Hbc::Artifact::App, :cask do          target_path_pro.mkpath          expect { -          expect(install_phase).to output(<<-EOS.undent).to_stdout +          expect(install_phase).to output(<<~EOS).to_stdout              ==> Moving App 'Caffeine Mini.app' to '#{target_path_mini}'            EOS          }.to raise_error(Hbc::CaskError, "It seems there is already an App at '#{target_path_pro}'.") diff --git a/Library/Homebrew/test/cask/artifact/uninstall_zap_shared_examples.rb b/Library/Homebrew/test/cask/artifact/uninstall_zap_shared_examples.rb index b9872ab9e..7edfb9e1c 100644 --- a/Library/Homebrew/test/cask/artifact/uninstall_zap_shared_examples.rb +++ b/Library/Homebrew/test/cask/artifact/uninstall_zap_shared_examples.rb @@ -11,7 +11,7 @@ shared_examples "#uninstall_phase or #zap_phase" do      let(:launchctl_remove_cmd) { %w[/bin/launchctl remove my.fancy.package.service] }      let(:unknown_response) { "launchctl list returned unknown response\n" }      let(:service_info) do -      <<-EOS.undent +      <<~EOS          {                  "LimitLoadToSessionType" = "Aqua";                  "Label" = "my.fancy.package.service"; diff --git a/Library/Homebrew/test/cask/cli/cat_spec.rb b/Library/Homebrew/test/cask/cli/cat_spec.rb index 6b54a2e4b..e1db1b17d 100644 --- a/Library/Homebrew/test/cask/cli/cat_spec.rb +++ b/Library/Homebrew/test/cask/cli/cat_spec.rb @@ -7,7 +7,7 @@ describe Hbc::CLI::Cat, :cask do    describe "given a basic Cask" do      let(:basic_cask_content) { -      <<-EOS.undent +      <<~EOS          cask 'basic-cask' do            version '1.2.3'            sha256 '8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b' diff --git a/Library/Homebrew/test/cask/cli/cleanup_spec.rb b/Library/Homebrew/test/cask/cli/cleanup_spec.rb index 7cf00352d..cbef71be8 100644 --- a/Library/Homebrew/test/cask/cli/cleanup_spec.rb +++ b/Library/Homebrew/test/cask/cli/cleanup_spec.rb @@ -32,7 +32,7 @@ describe Hbc::CLI::Cleanup, :cask do        expect {          subject.run -      }.to output(<<-EOS.undent).to_stdout +      }.to output(<<~EOS).to_stdout          ==> Removing cached downloads for #{cask_token}          #{cached_downloads[0]}          ==> This operation has freed approximately #{disk_usage_readable(cleanup_size)} of disk space. @@ -52,7 +52,7 @@ describe Hbc::CLI::Cleanup, :cask do          expect {            subject.run -        }.to output(<<-EOS.undent).to_stdout +        }.to output(<<~EOS).to_stdout            ==> Removing cached downloads            #{cached_download}            ==> This operation has freed approximately #{disk_usage_readable(cleanup_size)} of disk space. @@ -70,7 +70,7 @@ describe Hbc::CLI::Cleanup, :cask do            expect {              subject.run -          }.to output(<<-EOS.undent).to_stdout +          }.to output(<<~EOS).to_stdout              ==> Removing cached downloads older than 10 days old              Nothing to do            EOS diff --git a/Library/Homebrew/test/cask/cli/create_spec.rb b/Library/Homebrew/test/cask/cli/create_spec.rb index 60c03db75..1b15ecd40 100644 --- a/Library/Homebrew/test/cask/cli/create_spec.rb +++ b/Library/Homebrew/test/cask/cli/create_spec.rb @@ -28,7 +28,7 @@ describe Hbc::CLI::Create, :cask do    it "drops a template down for the specified Cask" do      described_class.run("new-cask")      template = File.read(Hbc::CaskLoader.path("new-cask")) -    expect(template).to eq <<-EOS.undent +    expect(template).to eq <<~EOS        cask 'new-cask' do          version ''          sha256 '' diff --git a/Library/Homebrew/test/cask/cli/info_spec.rb b/Library/Homebrew/test/cask/cli/info_spec.rb index e24eead11..0fc751e06 100644 --- a/Library/Homebrew/test/cask/cli/info_spec.rb +++ b/Library/Homebrew/test/cask/cli/info_spec.rb @@ -8,7 +8,7 @@ describe Hbc::CLI::Info, :cask do    it "displays some nice info about the specified Cask" do      expect {        described_class.run("local-caffeine") -    }.to output(<<-EOS.undent).to_stdout +    }.to output(<<~EOS).to_stdout        local-caffeine: 1.2.3        http://example.com/local-caffeine        Not installed @@ -22,7 +22,7 @@ describe Hbc::CLI::Info, :cask do    describe "given multiple Casks" do      let(:expected_output) { -      <<-EOS.undent +      <<~EOS          local-caffeine: 1.2.3          http://example.com/local-caffeine          Not installed @@ -52,7 +52,7 @@ describe Hbc::CLI::Info, :cask do    it "should print caveats if the Cask provided one" do      expect {        described_class.run("with-caveats") -    }.to output(<<-EOS.undent).to_stdout +    }.to output(<<~EOS).to_stdout        with-caveats: 1.2.3        http://example.com/local-caffeine        Not installed @@ -78,7 +78,7 @@ describe Hbc::CLI::Info, :cask do    it 'should not print "Caveats" section divider if the caveats block has no output' do      expect {        described_class.run("with-conditional-caveats") -    }.to output(<<-EOS.undent).to_stdout +    }.to output(<<~EOS).to_stdout        with-conditional-caveats: 1.2.3        http://example.com/local-caffeine        Not installed @@ -93,7 +93,7 @@ describe Hbc::CLI::Info, :cask do    it "prints languages specified in the Cask" do      expect {        described_class.run("with-languages") -    }.to output(<<-EOS.undent).to_stdout +    }.to output(<<~EOS).to_stdout        with-languages: 1.2.3        http://example.com/local-caffeine        Not installed @@ -110,7 +110,7 @@ describe Hbc::CLI::Info, :cask do    it 'does not print "Languages" section divider if the languages block has no output' do      expect {        described_class.run("without-languages") -    }.to output(<<-EOS.undent).to_stdout +    }.to output(<<~EOS).to_stdout        without-languages: 1.2.3        http://example.com/local-caffeine        Not installed diff --git a/Library/Homebrew/test/cask/cli/install_spec.rb b/Library/Homebrew/test/cask/cli/install_spec.rb index c918a3529..25d6cdc93 100644 --- a/Library/Homebrew/test/cask/cli/install_spec.rb +++ b/Library/Homebrew/test/cask/cli/install_spec.rb @@ -6,7 +6,7 @@ describe Hbc::CLI::Install, :cask do    it_behaves_like "a command that handles invalid options"    it "displays the installation progress" do -    output = Regexp.new <<-EOS.undent +    output = Regexp.new <<~EOS        ==> Downloading file:.*caffeine.zip        ==> Verifying checksum for Cask local-caffeine        ==> Installing Cask local-caffeine diff --git a/Library/Homebrew/test/cask/cli/list_spec.rb b/Library/Homebrew/test/cask/cli/list_spec.rb index 301ca9b89..eef233acc 100644 --- a/Library/Homebrew/test/cask/cli/list_spec.rb +++ b/Library/Homebrew/test/cask/cli/list_spec.rb @@ -12,7 +12,7 @@ describe Hbc::CLI::List, :cask do      expect {        described_class.run -    }.to output(<<-EOS.undent).to_stdout +    }.to output(<<~EOS).to_stdout        local-caffeine        local-transmission      EOS @@ -31,7 +31,7 @@ describe Hbc::CLI::List, :cask do      expect {        described_class.run("--full-name") -    }.to output(<<-EOS.undent).to_stdout +    }.to output(<<~EOS).to_stdout        local-caffeine        local-transmission        third-party/tap/third-party-cask @@ -41,7 +41,7 @@ describe Hbc::CLI::List, :cask do    describe "lists versions" do      let(:casks) { ["local-caffeine", "local-transmission"] }      let(:expected_output) { -      <<-EOS.undent +      <<~EOS          local-caffeine 1.2.3          local-transmission 2.61        EOS @@ -78,7 +78,7 @@ describe Hbc::CLI::List, :cask do        expect {          described_class.run("local-transmission", "local-caffeine") -      }.to output(<<-EOS.undent).to_stdout +      }.to output(<<~EOS).to_stdout          ==> Apps          #{Hbc.appdir.join("Transmission.app")} (#{Hbc.appdir.join("Transmission.app").abv})          ==> Apps diff --git a/Library/Homebrew/test/cask/cli/outdated_spec.rb b/Library/Homebrew/test/cask/cli/outdated_spec.rb index 5bbf18d21..1ee6a6d7d 100644 --- a/Library/Homebrew/test/cask/cli/outdated_spec.rb +++ b/Library/Homebrew/test/cask/cli/outdated_spec.rb @@ -23,7 +23,7 @@ describe Hbc::CLI::Outdated, :cask do      it "checks all the installed Casks when no token is provided" do        expect {          described_class.run -      }.to output(<<-EOS.undent).to_stdout +      }.to output(<<~EOS).to_stdout          local-caffeine (1.2.2) != 1.2.3          local-transmission (2.60) != 2.61        EOS @@ -32,7 +32,7 @@ describe Hbc::CLI::Outdated, :cask do      it "checks only the tokens specified in the command line" do        expect {          described_class.run("local-caffeine") -      }.to output(<<-EOS.undent).to_stdout +      }.to output(<<~EOS).to_stdout          local-caffeine (1.2.2) != 1.2.3        EOS      end @@ -40,7 +40,7 @@ describe Hbc::CLI::Outdated, :cask do      it 'ignores "auto_updates" and "latest" Casks even when their tokens are provided in the command line' do        expect {          described_class.run("local-caffeine", "auto-updates", "version-latest-string") -      }.to output(<<-EOS.undent).to_stdout +      }.to output(<<~EOS).to_stdout          local-caffeine (1.2.2) != 1.2.3        EOS      end @@ -54,7 +54,7 @@ describe Hbc::CLI::Outdated, :cask do      it "lists only the names (no versions) of the outdated Casks with --quiet" do        expect {          described_class.run("--verbose", "--quiet") -      }.to output(<<-EOS.undent).to_stdout +      }.to output(<<~EOS).to_stdout          local-caffeine          local-transmission        EOS @@ -65,7 +65,7 @@ describe Hbc::CLI::Outdated, :cask do      it 'includes the Casks with "auto_updates true" or "version latest" with --greedy' do        expect {          described_class.run("--greedy") -      }.to output(<<-EOS.undent).to_stdout +      }.to output(<<~EOS).to_stdout          auto-updates (2.57) != 2.61          local-caffeine (1.2.2) != 1.2.3          local-transmission (2.60) != 2.61 @@ -79,7 +79,7 @@ describe Hbc::CLI::Outdated, :cask do        expect {          described_class.run("--greedy") -      }.to output(<<-EOS.undent).to_stdout +      }.to output(<<~EOS).to_stdout          local-caffeine (1.2.2) != 1.2.3          local-transmission (2.60) != 2.61          version-latest-string (latest) != latest diff --git a/Library/Homebrew/test/cask/cli/reinstall_spec.rb b/Library/Homebrew/test/cask/cli/reinstall_spec.rb index 95294b695..5e551e5b5 100644 --- a/Library/Homebrew/test/cask/cli/reinstall_spec.rb +++ b/Library/Homebrew/test/cask/cli/reinstall_spec.rb @@ -8,7 +8,7 @@ describe Hbc::CLI::Reinstall, :cask do      Hbc::Installer.new(caffeine).install -    output = Regexp.new <<-EOS.undent +    output = Regexp.new <<~EOS        ==> Downloading file:.*caffeine.zip        Already downloaded: .*local-caffeine--1.2.3.zip        ==> Verifying checksum for Cask local-caffeine diff --git a/Library/Homebrew/test/cask/cli/search_spec.rb b/Library/Homebrew/test/cask/cli/search_spec.rb index a4f796f3c..cd1a7bd43 100644 --- a/Library/Homebrew/test/cask/cli/search_spec.rb +++ b/Library/Homebrew/test/cask/cli/search_spec.rb @@ -12,7 +12,7 @@ describe Hbc::CLI::Search, :cask do      expect {        Hbc::CLI::Search.run("local") -    }.to output(<<-EOS.undent).to_stdout.as_tty +    }.to output(<<~EOS).to_stdout.as_tty        ==> Partial Matches        local-caffeine        local-transmission @@ -24,7 +24,7 @@ describe Hbc::CLI::Search, :cask do      expect {        Hbc::CLI::Search.run("local") -    }.to output(<<-EOS.undent).to_stdout +    }.to output(<<~EOS).to_stdout        local-caffeine        local-transmission      EOS @@ -35,7 +35,7 @@ describe Hbc::CLI::Search, :cask do      expect {        Hbc::CLI::Search.run("local") -    }.to output(<<-EOS.undent).to_stdout +    }.to output(<<~EOS).to_stdout        local-caffeine        local-transmission      EOS @@ -45,7 +45,7 @@ describe Hbc::CLI::Search, :cask do    it "shows that there are no Casks matching a search term that did not result in anything" do      expect {        Hbc::CLI::Search.run("foo-bar-baz") -    }.to output(<<-EOS.undent).to_stdout.as_tty +    }.to output(<<~EOS).to_stdout.as_tty        No Cask found for "foo-bar-baz".      EOS    end @@ -84,7 +84,7 @@ describe Hbc::CLI::Search, :cask do    it "accepts a regexp argument" do      expect {        Hbc::CLI::Search.run("/^local-c[a-z]ffeine$/") -    }.to output(<<-EOS.undent).to_stdout.as_tty +    }.to output(<<~EOS).to_stdout.as_tty        ==> Regexp Matches        local-caffeine      EOS @@ -93,7 +93,7 @@ describe Hbc::CLI::Search, :cask do    it "returns both exact and partial matches" do      expect {        Hbc::CLI::Search.run("test-opera") -    }.to output(<<-EOS.undent).to_stdout.as_tty +    }.to output(<<~EOS).to_stdout.as_tty        ==> Exact Match        test-opera        ==> Partial Matches @@ -104,7 +104,7 @@ describe Hbc::CLI::Search, :cask do    it "does not search the Tap name" do      expect {        Hbc::CLI::Search.run("caskroom") -    }.to output(<<-EOS.undent).to_stdout.as_tty +    }.to output(<<~EOS).to_stdout.as_tty        No Cask found for "caskroom".      EOS    end diff --git a/Library/Homebrew/test/cask/cli/uninstall_spec.rb b/Library/Homebrew/test/cask/cli/uninstall_spec.rb index 80b7edbd3..1ab8f7e4d 100644 --- a/Library/Homebrew/test/cask/cli/uninstall_spec.rb +++ b/Library/Homebrew/test/cask/cli/uninstall_spec.rb @@ -10,7 +10,7 @@ describe Hbc::CLI::Uninstall, :cask do      Hbc::Installer.new(caffeine).install -    output = Regexp.new <<-EOS.undent +    output = Regexp.new <<~EOS        ==> Uninstalling Cask local-caffeine        ==> Removing App '.*Caffeine.app'.      EOS @@ -107,7 +107,7 @@ describe Hbc::CLI::Uninstall, :cask do        timestamped_versions.each do |timestamped_version|          caskroom_path.join(".metadata", *timestamped_version, "Casks").tap(&:mkpath)                       .join("#{token}.rb").open("w") do |caskfile| -                       caskfile.puts <<-EOS.undent +                       caskfile.puts <<~EOS                           cask '#{token}' do                             version '#{timestamped_version[0]}'                           end @@ -153,7 +153,7 @@ describe Hbc::CLI::Uninstall, :cask do        saved_caskfile.dirname.mkpath -      IO.write saved_caskfile, <<-EOS.undent +      IO.write saved_caskfile, <<~EOS          cask 'ive-been-renamed' do            version :latest diff --git a/Library/Homebrew/test/cask/dsl_spec.rb b/Library/Homebrew/test/cask/dsl_spec.rb index 28cf6f4b2..a17acfca6 100644 --- a/Library/Homebrew/test/cask/dsl_spec.rb +++ b/Library/Homebrew/test/cask/dsl_spec.rb @@ -20,7 +20,7 @@ describe Hbc::DSL, :cask do      }      it "prints a warning that it has encountered an unexpected method" do -      expected = Regexp.compile(<<-EOS.undent.lines.map(&:chomp).join("")) +      expected = Regexp.compile(<<~EOS.lines.map(&:chomp).join(""))          (?m)          Warning:          .* @@ -232,7 +232,7 @@ describe Hbc::DSL, :cask do        expect(cask.caveats).to be_empty        cask = Hbc::Cask.new("cask-with-caveats") do -        def caveats; <<-EOS.undent +        def caveats; <<~EOS            When you install this Cask, you probably want to know this.            EOS          end diff --git a/Library/Homebrew/test/cask/pkg_spec.rb b/Library/Homebrew/test/cask/pkg_spec.rb index 07443e76e..f92d6854e 100644 --- a/Library/Homebrew/test/cask/pkg_spec.rb +++ b/Library/Homebrew/test/cask/pkg_spec.rb @@ -123,7 +123,7 @@ describe Hbc::Pkg, :cask do      end      let(:pkg_info_plist) do -      <<-EOS.undent +      <<~EOS          <?xml version="1.0" encoding="UTF-8"?>          <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">          <plist version="1.0"> diff --git a/Library/Homebrew/test/cask/system_command_result_spec.rb b/Library/Homebrew/test/cask/system_command_result_spec.rb index 4a077de7b..d09f1220c 100644 --- a/Library/Homebrew/test/cask/system_command_result_spec.rb +++ b/Library/Homebrew/test/cask/system_command_result_spec.rb @@ -5,7 +5,7 @@ describe Hbc::SystemCommand::Result, :cask do      subject { described_class._parse_plist(command, input) }      let(:command) { Hbc::SystemCommand.new("/usr/bin/true", {}) }      let(:plist) { -      <<-EOS.undent +      <<~EOS          <?xml version="1.0" encoding="UTF-8"?>          <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">          <plist version="1.0"> @@ -54,7 +54,7 @@ describe Hbc::SystemCommand::Result, :cask do      context "when output contains garbage" do        let(:input) { -        <<-EOS.undent +        <<~EOS            Hello there! I am in no way XML am I?!?!              That's a little silly... you were expexting XML here! diff --git a/Library/Homebrew/test/cmd/custom-external-command_spec.rb b/Library/Homebrew/test/cmd/custom-external-command_spec.rb index d649786ec..8e6ffe2ff 100644 --- a/Library/Homebrew/test/cmd/custom-external-command_spec.rb +++ b/Library/Homebrew/test/cmd/custom-external-command_spec.rb @@ -4,7 +4,7 @@ describe "brew custom-external-command", :integration_test do        cmd = "custom-external-command-#{rand}"        file = path/"brew-#{cmd}" -      file.write <<-EOS.undent +      file.write <<~EOS          #!/bin/sh          echo 'I am #{cmd}.'        EOS diff --git a/Library/Homebrew/test/cmd/install_spec.rb b/Library/Homebrew/test/cmd/install_spec.rb index b6030f26a..8a9f7a0d2 100644 --- a/Library/Homebrew/test/cmd/install_spec.rb +++ b/Library/Homebrew/test/cmd/install_spec.rb @@ -56,7 +56,7 @@ describe "brew install", :integration_test do    end    specify "install failures" do -    path = setup_test_formula "testball1", <<-EOS.undent +    path = setup_test_formula "testball1", <<~EOS        version "1.0"      EOS @@ -66,7 +66,7 @@ describe "brew install", :integration_test do        .and be_a_success      FileUtils.rm path -    setup_test_formula "testball1", <<-EOS.undent +    setup_test_formula "testball1", <<~EOS        version "2.0"        devel do @@ -120,7 +120,7 @@ describe "brew install", :integration_test do    end    it "can install keg-only Formulae" do -    path_keg_only = setup_test_formula "testball1", <<-EOS.undent +    path_keg_only = setup_test_formula "testball1", <<~EOS        version "1.0"        keg_only "test reason" @@ -132,7 +132,7 @@ describe "brew install", :integration_test do        .and be_a_success      FileUtils.rm path_keg_only -    setup_test_formula "testball1", <<-EOS.undent +    setup_test_formula "testball1", <<~EOS        version "2.0"        keg_only "test reason" @@ -162,7 +162,7 @@ describe "brew install", :integration_test do        system "git", "commit", "-m", "Initial repo commit"      end -    setup_test_formula "testball1", <<-EOS.undent +    setup_test_formula "testball1", <<~EOS        version "1.0"        head "file://#{repo_path}", :using => :git @@ -205,7 +205,7 @@ describe "brew install", :integration_test do    end    it "succeeds when a non-fatal requirement isn't satisfied" do -    setup_test_formula "testball1", <<-EOS.undent +    setup_test_formula "testball1", <<~EOS        class NonFatalRequirement < Requirement          satisfy { false }        end @@ -220,7 +220,7 @@ describe "brew install", :integration_test do    end    it "fails when a fatal requirement isn't satisfied" do -    setup_test_formula "testball1", <<-EOS.undent +    setup_test_formula "testball1", <<~EOS        class FatalRequirement < Requirement          fatal true          satisfy { false } diff --git a/Library/Homebrew/test/cmd/irb_spec.rb b/Library/Homebrew/test/cmd/irb_spec.rb index 44410fabe..0423c6ab7 100644 --- a/Library/Homebrew/test/cmd/irb_spec.rb +++ b/Library/Homebrew/test/cmd/irb_spec.rb @@ -3,7 +3,7 @@ describe "brew irb", :integration_test do      setup_test_formula "testball"      irb_test = HOMEBREW_TEMP/"irb-test.rb" -    irb_test.write <<-EOS.undent +    irb_test.write <<~EOS        "testball".f        :testball.f        exit diff --git a/Library/Homebrew/test/cmd/link_spec.rb b/Library/Homebrew/test/cmd/link_spec.rb index 78942b7a8..bde321e4c 100644 --- a/Library/Homebrew/test/cmd/link_spec.rb +++ b/Library/Homebrew/test/cmd/link_spec.rb @@ -36,7 +36,7 @@ describe "brew link", :integration_test do    end    it "refuses to link keg-only Formulae" do -    setup_test_formula "testball1", <<-EOS.undent +    setup_test_formula "testball1", <<~EOS        keg_only "just because"      EOS diff --git a/Library/Homebrew/test/cmd/options_spec.rb b/Library/Homebrew/test/cmd/options_spec.rb index 33fe8b107..bb6b98a47 100644 --- a/Library/Homebrew/test/cmd/options_spec.rb +++ b/Library/Homebrew/test/cmd/options_spec.rb @@ -1,6 +1,6 @@  describe "brew options", :integration_test do    it "prints a given Formula's options" do -    setup_test_formula "testball", <<-EOS.undent +    setup_test_formula "testball", <<~EOS        depends_on "bar" => :recommended      EOS diff --git a/Library/Homebrew/test/cmd/style_spec.rb b/Library/Homebrew/test/cmd/style_spec.rb index 9bc8fcab1..5c118f32e 100644 --- a/Library/Homebrew/test/cmd/style_spec.rb +++ b/Library/Homebrew/test/cmd/style_spec.rb @@ -19,7 +19,7 @@ describe "brew style" do      it "returns RubocopResults when RuboCop reports offenses" do        formula = dir/"my-formula.rb" -      formula.write <<-'EOS'.undent +      formula.write <<~'EOS'          class MyFormula < Formula          end diff --git a/Library/Homebrew/test/cmd/switch_spec.rb b/Library/Homebrew/test/cmd/switch_spec.rb index 00fe4ace6..48d7dcdd0 100644 --- a/Library/Homebrew/test/cmd/switch_spec.rb +++ b/Library/Homebrew/test/cmd/switch_spec.rb @@ -10,7 +10,7 @@ describe "brew switch", :integration_test do        .and not_to_output.to_stdout        .and be_a_failure -    setup_test_formula "testball", <<-EOS.undent +    setup_test_formula "testball", <<~EOS        keg_only "just because"      EOS diff --git a/Library/Homebrew/test/cmd/uses_spec.rb b/Library/Homebrew/test/cmd/uses_spec.rb index 2a6f48cb7..4a8c446a5 100644 --- a/Library/Homebrew/test/cmd/uses_spec.rb +++ b/Library/Homebrew/test/cmd/uses_spec.rb @@ -2,7 +2,7 @@ describe "brew uses", :integration_test do    it "prints the Formulae a given Formula is used by" do      setup_test_formula "foo"      setup_test_formula "bar" -    setup_test_formula "baz", <<-EOS.undent +    setup_test_formula "baz", <<~EOS        url "https://example.com/baz-1.0"        depends_on "bar"      EOS diff --git a/Library/Homebrew/test/deps_spec.rb b/Library/Homebrew/test/deps_spec.rb index 4c892c93d..f0ec514d9 100644 --- a/Library/Homebrew/test/deps_spec.rb +++ b/Library/Homebrew/test/deps_spec.rb @@ -2,7 +2,7 @@ describe "brew deps", :integration_test do    before(:each) do      setup_test_formula "foo"      setup_test_formula "bar" -    setup_test_formula "baz", <<-EOS.undent +    setup_test_formula "baz", <<~EOS        url "https://example.com/baz-1.0"        depends_on "bar"      EOS diff --git a/Library/Homebrew/test/descriptions_spec.rb b/Library/Homebrew/test/descriptions_spec.rb index e873c73b4..c4f67cc4c 100644 --- a/Library/Homebrew/test/descriptions_spec.rb +++ b/Library/Homebrew/test/descriptions_spec.rb @@ -19,7 +19,7 @@ describe Descriptions do      descriptions_hash["somedev/external/foo"] = "External foo"      expect { subject.print }.to output( -      <<-EOS.undent +      <<~EOS          homebrew/core/foo: Core foo          somedev/external/foo: External foo        EOS @@ -32,7 +32,7 @@ describe Descriptions do      descriptions_hash["otherdev/external/foo"] = "Other external foo"      expect { subject.print }.to output( -      <<-EOS.undent +      <<~EOS          homebrew/core/foo: Core foo          otherdev/external/foo: Other external foo          somedev/external/foo: External foo diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index 3e99bd06b..8dd3aee72 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -18,7 +18,7 @@ describe FormulaText do    def formula_text(name, body = nil, options = {})      path = dir/"#{name}.rb" -    path.write <<-EOS.undent +    path.write <<~EOS        class #{Formulary.class_s(name)} < Formula          #{body}        end @@ -29,7 +29,7 @@ describe FormulaText do    end    specify "simple valid Formula" do -    ft = formula_text "valid", <<-EOS.undent +    ft = formula_text "valid", <<~EOS        url "http://www.example.com/valid-1.0.tar.gz"      EOS @@ -49,7 +49,7 @@ describe FormulaText do    end    specify "#data?" do -    ft = formula_text "data", <<-EOS.undent +    ft = formula_text "data", <<~EOS        patch :DATA      EOS @@ -77,7 +77,7 @@ describe FormulaAuditor do    describe "#problems" do      it "is empty by default" do -      fa = formula_auditor "foo", <<-EOS.undent +      fa = formula_auditor "foo", <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"          end @@ -91,7 +91,7 @@ describe FormulaAuditor do      specify "file permissions" do        allow(File).to receive(:umask).and_return(022) -      fa = formula_auditor "foo", <<-EOS.undent +      fa = formula_auditor "foo", <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"          end @@ -106,7 +106,7 @@ describe FormulaAuditor do      end      specify "DATA but no __END__" do -      fa = formula_auditor "foo", <<-EOS.undent +      fa = formula_auditor "foo", <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            patch :DATA @@ -118,7 +118,7 @@ describe FormulaAuditor do      end      specify "__END__ but no DATA" do -      fa = formula_auditor "foo", <<-EOS.undent +      fa = formula_auditor "foo", <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"          end @@ -138,7 +138,7 @@ describe FormulaAuditor do      end      specify "no issue" do -      fa = formula_auditor "foo", <<-EOS.undent +      fa = formula_auditor "foo", <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            homepage "http://example.com" @@ -152,7 +152,7 @@ describe FormulaAuditor do    describe "#line_problems" do      specify "pkgshare" do -      fa = formula_auditor "foo", <<-EOS.undent, strict: true +      fa = formula_auditor "foo", <<~EOS, strict: true          class Foo < Formula            url "http://example.com/foo-1.0.tgz"          end @@ -184,7 +184,7 @@ describe FormulaAuditor do      # Formulae with "++" in their name would break various audit regexps:      #   Error: nested *?+ in regexp: /^libxml++3\s/      specify "++ in name" do -      fa = formula_auditor "foolibc++", <<-EOS.undent, strict: true +      fa = formula_auditor "foolibc++", <<~EOS, strict: true          class Foolibcxx < Formula            desc "foolibc++ is a test"            url "http://example.com/foo-1.0.tgz" @@ -205,7 +205,7 @@ describe FormulaAuditor do      specify "#audit_github_repository when HOMEBREW_NO_GITHUB_API is set" do        ENV["HOMEBREW_NO_GITHUB_API"] = "1" -      fa = formula_auditor "foo", <<-EOS.undent, strict: true, online: true +      fa = formula_auditor "foo", <<~EOS, strict: true, online: true          class Foo < Formula            homepage "https://github.com/example/example"            url "http://example.com/foo-1.0.tgz" @@ -219,7 +219,7 @@ describe FormulaAuditor do    describe "#audit_keg_only_style" do      specify "keg_only_needs_downcasing" do -      fa = formula_auditor "foo", <<-EOS.undent, strict: true +      fa = formula_auditor "foo", <<~EOS, strict: true          class Foo < Formula            url "http://example.com/foo-1.0.tgz" @@ -233,7 +233,7 @@ describe FormulaAuditor do      end      specify "keg_only_redundant_period" do -      fa = formula_auditor "foo", <<-EOS.undent, strict: true +      fa = formula_auditor "foo", <<~EOS, strict: true          class Foo < Formula            url "http://example.com/foo-1.0.tgz" @@ -247,11 +247,11 @@ describe FormulaAuditor do      end      specify "keg_only_handles_block_correctly" do -      fa = formula_auditor "foo", <<-EOS.undent, strict: true +      fa = formula_auditor "foo", <<~EOS, strict: true          class Foo < Formula            url "http://example.com/foo-1.0.tgz" -          keg_only <<-EOF.undent +          keg_only <<~EOF              this line starts with a lowercase word.              This line does not but that shouldn't be a @@ -266,7 +266,7 @@ describe FormulaAuditor do      end      specify "keg_only_handles_whitelist_correctly" do -      fa = formula_auditor "foo", <<-EOS.undent, strict: true +      fa = formula_auditor "foo", <<~EOS, strict: true          class Foo < Formula            url "http://example.com/foo-1.0.tgz" @@ -290,7 +290,7 @@ describe FormulaAuditor do      before(:each) do        @foo_version = Count.increment -      origin_formula_path.write <<-EOS.undent +      origin_formula_path.write <<~EOS          class Foo#{@foo_version} < Formula            url "https://example.com/foo-1.0.tar.gz"            revision 2 diff --git a/Library/Homebrew/test/dev-cmd/test_spec.rb b/Library/Homebrew/test/dev-cmd/test_spec.rb index 9ff365bfb..6e5d822bc 100644 --- a/Library/Homebrew/test/dev-cmd/test_spec.rb +++ b/Library/Homebrew/test/dev-cmd/test_spec.rb @@ -23,7 +23,7 @@ describe "brew test", :integration_test do    end    it "tests a given Formula" do -    setup_test_formula "testball", <<-EOS.undent +    setup_test_formula "testball", <<~EOS        head "https://github.com/example/testball2.git"        devel do diff --git a/Library/Homebrew/test/formula_installer_spec.rb b/Library/Homebrew/test/formula_installer_spec.rb index 7b729312b..1e3c04b68 100644 --- a/Library/Homebrew/test/formula_installer_spec.rb +++ b/Library/Homebrew/test/formula_installer_spec.rb @@ -100,7 +100,7 @@ describe FormulaInstaller do    specify "check installation sanity pinned dependency" do      dep_name = "dependency"      dep_path = CoreTap.new.formula_dir/"#{dep_name}.rb" -    dep_path.write <<-EOS.undent +    dep_path.write <<~EOS        class #{Formulary.class_s(dep_name)} < Formula          url "foo"          version "0.2" diff --git a/Library/Homebrew/test/formulary_spec.rb b/Library/Homebrew/test/formulary_spec.rb index 3180ad9a7..f091fdd03 100644 --- a/Library/Homebrew/test/formulary_spec.rb +++ b/Library/Homebrew/test/formulary_spec.rb @@ -6,7 +6,7 @@ describe Formulary do    let(:formula_name) { "testball_bottle" }    let(:formula_path) { CoreTap.new.formula_dir/"#{formula_name}.rb" }    let(:formula_content) do -    <<-EOS.undent +    <<~EOS        class #{subject.class_s(formula_name)} < Formula          url "file://#{TEST_FIXTURE_DIR}/tarballs/testball-0.1.tbz"          sha256 TESTBALL_SHA256 @@ -66,7 +66,7 @@ describe Formulary do      context "if the Formula has the wrong class" do        let(:formula_name) { "giraffe" }        let(:formula_content) do -        <<-EOS.undent +        <<~EOS            class Wrong#{subject.class_s(formula_name)} < Formula            end          EOS diff --git a/Library/Homebrew/test/gpg2_requirement_spec.rb b/Library/Homebrew/test/gpg2_requirement_spec.rb index a5501c84e..8b9040b82 100644 --- a/Library/Homebrew/test/gpg2_requirement_spec.rb +++ b/Library/Homebrew/test/gpg2_requirement_spec.rb @@ -7,7 +7,7 @@ describe GPG2Requirement do    describe "#satisfied?" do      it "returns true if GPG2 is installed" do        ENV["PATH"] = dir/"bin" -      (dir/"bin/gpg").write <<-EOS.undent +      (dir/"bin/gpg").write <<~EOS          #!/bin/bash          echo 2.1.20        EOS diff --git a/Library/Homebrew/test/inreplace_spec.rb b/Library/Homebrew/test/inreplace_spec.rb index 5be44f50d..330943be4 100644 --- a/Library/Homebrew/test/inreplace_spec.rb +++ b/Library/Homebrew/test/inreplace_spec.rb @@ -9,7 +9,7 @@ describe StringInreplaceExtension do      context "flag" do        context "with spaces" do          let(:string) do -          <<-EOS.undent +          <<~EOS              OTHER=def              FLAG = abc              FLAG2=abc @@ -18,7 +18,7 @@ describe StringInreplaceExtension do          it "is successfully replaced" do            subject.change_make_var! "FLAG", "def" -          expect(subject).to eq <<-EOS.undent +          expect(subject).to eq <<~EOS              OTHER=def              FLAG=def              FLAG2=abc @@ -27,7 +27,7 @@ describe StringInreplaceExtension do          it "is successfully appended" do            subject.change_make_var! "FLAG", "\\1 def" -          expect(subject).to eq <<-EOS.undent +          expect(subject).to eq <<~EOS              OTHER=def              FLAG=abc def              FLAG2=abc @@ -37,7 +37,7 @@ describe StringInreplaceExtension do        context "with tabs" do          let(:string) do -          <<-EOS.undent +          <<~EOS              CFLAGS\t=\t-Wall -O2              LDFLAGS\t=\t-lcrypto -lssl            EOS @@ -45,7 +45,7 @@ describe StringInreplaceExtension do          it "is successfully replaced" do            subject.change_make_var! "CFLAGS", "-O3" -          expect(subject).to eq <<-EOS.undent +          expect(subject).to eq <<~EOS              CFLAGS=-O3              LDFLAGS\t=\t-lcrypto -lssl            EOS @@ -55,7 +55,7 @@ describe StringInreplaceExtension do      context "empty flag between other flags" do        let(:string) do -        <<-EOS.undent +        <<~EOS            OTHER=def            FLAG =            FLAG2=abc @@ -64,7 +64,7 @@ describe StringInreplaceExtension do        it "is successfully replaced" do          subject.change_make_var! "FLAG", "def" -        expect(subject).to eq <<-EOS.undent +        expect(subject).to eq <<~EOS            OTHER=def            FLAG=def            FLAG2=abc @@ -74,7 +74,7 @@ describe StringInreplaceExtension do      context "empty flag" do        let(:string) do -        <<-EOS.undent +        <<~EOS            FLAG =            mv file_a file_b          EOS @@ -82,7 +82,7 @@ describe StringInreplaceExtension do        it "is successfully replaced" do          subject.change_make_var! "FLAG", "def" -        expect(subject).to eq <<-EOS.undent +        expect(subject).to eq <<~EOS            FLAG=def            mv file_a file_b          EOS @@ -91,7 +91,7 @@ describe StringInreplaceExtension do      context "shell-style variable" do        let(:string) do -        <<-EOS.undent +        <<~EOS            OTHER=def            FLAG=abc            FLAG2=abc @@ -100,7 +100,7 @@ describe StringInreplaceExtension do        it "is successfully replaced" do          subject.change_make_var! "FLAG", "def" -        expect(subject).to eq <<-EOS.undent +        expect(subject).to eq <<~EOS            OTHER=def            FLAG=def            FLAG2=abc @@ -113,7 +113,7 @@ describe StringInreplaceExtension do      context "flag" do        context "with spaces" do          let(:string) do -          <<-EOS.undent +          <<~EOS              OTHER=def              FLAG = abc              FLAG2 = def @@ -122,7 +122,7 @@ describe StringInreplaceExtension do          it "is successfully removed" do            subject.remove_make_var! "FLAG" -          expect(subject).to eq <<-EOS.undent +          expect(subject).to eq <<~EOS              OTHER=def              FLAG2 = def            EOS @@ -131,7 +131,7 @@ describe StringInreplaceExtension do        context "with tabs" do          let(:string) do -          <<-EOS.undent +          <<~EOS              CFLAGS\t=\t-Wall -O2              LDFLAGS\t=\t-lcrypto -lssl            EOS @@ -139,7 +139,7 @@ describe StringInreplaceExtension do          it "is successfully removed" do            subject.remove_make_var! "LDFLAGS" -          expect(subject).to eq <<-EOS.undent +          expect(subject).to eq <<~EOS              CFLAGS\t=\t-Wall -O2            EOS          end @@ -148,7 +148,7 @@ describe StringInreplaceExtension do      context "multiple flags" do        let(:string) do -        <<-EOS.undent +        <<~EOS            OTHER=def            FLAG = abc            FLAG2 = def @@ -158,7 +158,7 @@ describe StringInreplaceExtension do        specify "are be successfully removed" do          subject.remove_make_var! ["FLAG", "FLAG2"] -        expect(subject).to eq <<-EOS.undent +        expect(subject).to eq <<~EOS            OTHER=def            OTHER2=def          EOS @@ -169,7 +169,7 @@ describe StringInreplaceExtension do    describe "#get_make_var" do      context "with spaces" do        let(:string) do -        <<-EOS.undent +        <<~EOS            CFLAGS = -Wall -O2            LDFLAGS = -lcrypto -lssl          EOS @@ -182,7 +182,7 @@ describe StringInreplaceExtension do      context "with tabs" do        let(:string) do -        <<-EOS.undent +        <<~EOS            CFLAGS\t=\t-Wall -O2            LDFLAGS\t=\t-lcrypto -lssl          EOS @@ -217,7 +217,7 @@ describe Utils::Inreplace do    let(:file) { Tempfile.new("test") }    before(:each) do -    file.write <<-EOS.undent +    file.write <<~EOS        a        b        c diff --git a/Library/Homebrew/test/java_requirement_spec.rb b/Library/Homebrew/test/java_requirement_spec.rb index 05d4f3cda..685e250e0 100644 --- a/Library/Homebrew/test/java_requirement_spec.rb +++ b/Library/Homebrew/test/java_requirement_spec.rb @@ -50,7 +50,7 @@ describe JavaRequirement do        let(:java) { path/"java" }        def setup_java_with_version(version) -        IO.write java, <<-EOS.undent +        IO.write java, <<~EOS            #!/bin/sh            echo 'java version "#{version}"'          EOS diff --git a/Library/Homebrew/test/language/python_spec.rb b/Library/Homebrew/test/language/python_spec.rb index 02f6bf8d2..d384ce602 100644 --- a/Library/Homebrew/test/language/python_spec.rb +++ b/Library/Homebrew/test/language/python_spec.rb @@ -41,7 +41,7 @@ describe Language::Python::Virtualenv::Virtualenv do                "--no-binary", ":all:", "--ignore-installed", "foo", "bar")          .and_return(true) -      subject.pip_install <<-EOS.undent +      subject.pip_install <<~EOS          foo          bar        EOS diff --git a/Library/Homebrew/test/missing_formula_spec.rb b/Library/Homebrew/test/missing_formula_spec.rb index 0a905004b..830ecb6aa 100644 --- a/Library/Homebrew/test/missing_formula_spec.rb +++ b/Library/Homebrew/test/missing_formula_spec.rb @@ -116,7 +116,7 @@ describe Homebrew::MissingFormula do        Tap.clear_cache        tap_path = Tap::TAP_DIRECTORY/"homebrew/homebrew-foo"        tap_path.mkpath -      (tap_path/"tap_migrations.json").write <<-EOS.undent +      (tap_path/"tap_migrations.json").write <<~EOS          { "migrated-formula": "homebrew/bar" }        EOS      end diff --git a/Library/Homebrew/test/pathname_spec.rb b/Library/Homebrew/test/pathname_spec.rb index 69314e5f4..1349e602b 100644 --- a/Library/Homebrew/test/pathname_spec.rb +++ b/Library/Homebrew/test/pathname_spec.rb @@ -79,12 +79,12 @@ describe Pathname do        touch file        file.append_lines("CONTENT") -      expect(File.read(file)).to eq <<-EOS.undent +      expect(File.read(file)).to eq <<~EOS          CONTENT        EOS        file.append_lines("CONTENTS") -      expect(File.read(file)).to eq <<-EOS.undent +      expect(File.read(file)).to eq <<~EOS          CONTENT          CONTENTS        EOS diff --git a/Library/Homebrew/test/rubocops/bottle_block_cop_spec.rb b/Library/Homebrew/test/rubocops/bottle_block_cop_spec.rb index b1afdc3f9..659750858 100644 --- a/Library/Homebrew/test/rubocops/bottle_block_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/bottle_block_cop_spec.rb @@ -8,7 +8,7 @@ describe RuboCop::Cop::FormulaAuditStrict::BottleBlock do    context "When auditing Bottle Block" do      it "When there is revision in bottle block" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            bottle do @@ -41,7 +41,7 @@ describe RuboCop::Cop::FormulaAuditStrict::BottleBlock do    context "When auditing Bottle Block with auto correct" do      it "When there is revision in bottle block" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            bottle do @@ -50,7 +50,7 @@ describe RuboCop::Cop::FormulaAuditStrict::BottleBlock do            end          end        EOS -      corrected_source = <<-EOS.undent +      corrected_source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            bottle do diff --git a/Library/Homebrew/test/rubocops/caveats_cop_spec.rb b/Library/Homebrew/test/rubocops/caveats_cop_spec.rb index 4dbe65cfb..68f79e08a 100644 --- a/Library/Homebrew/test/rubocops/caveats_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/caveats_cop_spec.rb @@ -8,20 +8,19 @@ describe RuboCop::Cop::FormulaAudit::Caveats do    context "When auditing caveats" do      it "When there is setuid mentioned in caveats" do -      source = <<-EOS.undent -      class Foo < Formula -        homepage "http://example.com/foo" -        url "http://example.com/foo-1.0.tgz" - -        def caveats -          "setuid" +      source = <<~EOS +        class Foo < Formula +          homepage "http://example.com/foo" +          url "http://example.com/foo-1.0.tgz" +           def caveats +            "setuid" +          end          end -      end        EOS        expected_offenses = [{  message: "Don't recommend setuid in the caveats, suggest sudo instead.",                                severity: :convention, -                              line: 6, +                              line: 5,                                column: 5,                                source: source }] diff --git a/Library/Homebrew/test/rubocops/checksum_cop_spec.rb b/Library/Homebrew/test/rubocops/checksum_cop_spec.rb index 2f508bbf5..ab70f2dcf 100644 --- a/Library/Homebrew/test/rubocops/checksum_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/checksum_cop_spec.rb @@ -8,7 +8,7 @@ describe RuboCop::Cop::FormulaAudit::Checksum do    context "When auditing spec checksums" do      it "When the checksum is empty" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            stable do @@ -42,7 +42,7 @@ describe RuboCop::Cop::FormulaAudit::Checksum do      end      it "When the checksum is not 64 characters" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            stable do @@ -76,7 +76,7 @@ describe RuboCop::Cop::FormulaAudit::Checksum do      end      it "When the checksum has invalid chars" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            stable do @@ -116,7 +116,7 @@ describe RuboCop::Cop::FormulaAudit::ChecksumCase do    context "When auditing spec checksums" do      it "When the checksum has upper case characters" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            stable do @@ -150,7 +150,7 @@ describe RuboCop::Cop::FormulaAudit::ChecksumCase do      end      it "When auditing stable blocks outside spec blocks" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            resource "foo-outside" do @@ -185,7 +185,7 @@ describe RuboCop::Cop::FormulaAudit::ChecksumCase do    context "When auditing checksum with autocorrect" do      it "When there is uppercase sha256" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            stable do @@ -200,7 +200,7 @@ describe RuboCop::Cop::FormulaAudit::ChecksumCase do          end        EOS -      corrected_source = <<-EOS.undent +      corrected_source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            stable do diff --git a/Library/Homebrew/test/rubocops/class_cop_spec.rb b/Library/Homebrew/test/rubocops/class_cop_spec.rb index 59252587c..3f210af11 100644 --- a/Library/Homebrew/test/rubocops/class_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/class_cop_spec.rb @@ -17,10 +17,10 @@ describe RuboCop::Cop::FormulaAudit::ClassName do        }]        formulas.each do |formula| -        source = <<-EOS.undent -        class Foo < #{formula["class"]} -          url 'http://example.com/foo-1.0.tgz' -        end +        source = <<~EOS +          class Foo < #{formula["class"]} +            url 'http://example.com/foo-1.0.tgz' +          end          EOS          expected_offenses = [{  message: "#{formula["class"]} is deprecated, use Formula instead", @@ -38,12 +38,12 @@ describe RuboCop::Cop::FormulaAudit::ClassName do      end      it "with deprecated inheritance and autocorrect" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < AmazonWebServicesFormula            url 'http://example.com/foo-1.0.tgz'          end        EOS -      corrected_source = <<-EOS.undent +      corrected_source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'          end @@ -60,7 +60,7 @@ describe RuboCop::Cop::FormulaAuditStrict::Test do    context "When auditing formula" do      it "without a test block" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'          end diff --git a/Library/Homebrew/test/rubocops/components_order_cop_spec.rb b/Library/Homebrew/test/rubocops/components_order_cop_spec.rb index f093f4927..a4726c001 100644 --- a/Library/Homebrew/test/rubocops/components_order_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/components_order_cop_spec.rb @@ -8,7 +8,7 @@ describe RuboCop::Cop::FormulaAuditStrict::ComponentsOrder do    context "When auditing formula components order" do      it "When url precedes homepage" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            homepage "http://example.com" @@ -29,7 +29,7 @@ describe RuboCop::Cop::FormulaAuditStrict::ComponentsOrder do      end      it "When `resource` precedes `depends_on`" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "https://example.com/foo-1.0.tgz" @@ -55,7 +55,7 @@ describe RuboCop::Cop::FormulaAuditStrict::ComponentsOrder do      end      it "When `test` precedes `plist`" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "https://example.com/foo-1.0.tgz" @@ -82,7 +82,7 @@ describe RuboCop::Cop::FormulaAuditStrict::ComponentsOrder do      end      it "When only one of many `depends_on` precedes `conflicts_with`" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            depends_on "autoconf" => :build            conflicts_with "visionmedia-watch" @@ -116,13 +116,13 @@ describe RuboCop::Cop::FormulaAuditStrict::ComponentsOrder do    context "When auditing formula components order with autocorrect" do      it "When url precedes homepage" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            homepage "http://example.com"          end        EOS -      correct_source = <<-EOS.undent +      correct_source = <<~EOS          class Foo < Formula            homepage "http://example.com"            url "http://example.com/foo-1.0.tgz" @@ -134,7 +134,7 @@ describe RuboCop::Cop::FormulaAuditStrict::ComponentsOrder do      end      it "When `resource` precedes `depends_on`" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "https://example.com/foo-1.0.tgz" @@ -145,7 +145,7 @@ describe RuboCop::Cop::FormulaAuditStrict::ComponentsOrder do            depends_on "openssl"          end        EOS -      correct_source = <<-EOS.undent +      correct_source = <<~EOS          class Foo < Formula            url "https://example.com/foo-1.0.tgz" diff --git a/Library/Homebrew/test/rubocops/components_redundancy_cop_spec.rb b/Library/Homebrew/test/rubocops/components_redundancy_cop_spec.rb index 9fbe15904..e899a9b07 100644 --- a/Library/Homebrew/test/rubocops/components_redundancy_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/components_redundancy_cop_spec.rb @@ -8,7 +8,7 @@ describe RuboCop::Cop::FormulaAuditStrict::ComponentsRedundancy do    context "When auditing formula components common errors" do      it "When url outside stable block" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            stable do @@ -31,7 +31,7 @@ describe RuboCop::Cop::FormulaAuditStrict::ComponentsRedundancy do      end      it "When both `head` and `head do` are present" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            head "http://example.com/foo.git"            head do @@ -54,7 +54,7 @@ describe RuboCop::Cop::FormulaAuditStrict::ComponentsRedundancy do      end      it "When both `bottle :modifier` and `bottle do` are present" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            bottle do diff --git a/Library/Homebrew/test/rubocops/conflicts_cop_spec.rb b/Library/Homebrew/test/rubocops/conflicts_cop_spec.rb index 8874ecc96..40efe8545 100644 --- a/Library/Homebrew/test/rubocops/conflicts_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/conflicts_cop_spec.rb @@ -8,7 +8,7 @@ describe RuboCop::Cop::FormulaAudit::Conflicts do    context "When auditing formula for conflicts with" do      it "multiple conflicts_with" do -      source = <<-EOS.undent +      source = <<~EOS          class FooAT20 < Formula            url 'http://example.com/foo-2.0.tgz'            conflicts_with "mysql", "mariadb", "percona-server", @@ -30,7 +30,7 @@ describe RuboCop::Cop::FormulaAudit::Conflicts do      end      it "no conflicts_with" do -      source = <<-EOS.undent +      source = <<~EOS          class FooAT20 < Formula            url 'http://example.com/foo-2.0.tgz'            desc 'Bar' diff --git a/Library/Homebrew/test/rubocops/formula_desc_cop_spec.rb b/Library/Homebrew/test/rubocops/formula_desc_cop_spec.rb index 4816c3b26..0f0189aa8 100644 --- a/Library/Homebrew/test/rubocops/formula_desc_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/formula_desc_cop_spec.rb @@ -8,7 +8,7 @@ describe RuboCop::Cop::FormulaAuditStrict::DescLength do    context "When auditing formula desc" do      it "When there is no desc" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'          end @@ -28,7 +28,7 @@ describe RuboCop::Cop::FormulaAuditStrict::DescLength do      end      it "reports an offense when desc is an empty string" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            desc '' @@ -49,14 +49,14 @@ describe RuboCop::Cop::FormulaAuditStrict::DescLength do      end      it "When desc is too long" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            desc 'Bar#{"bar" * 29}'          end        EOS -      msg = <<-EOS.undent +      msg = <<~EOS          Description is too long. "name: desc" should be less than 80 characters.          Length is calculated as foo + desc. (currently 95)        EOS @@ -73,7 +73,7 @@ describe RuboCop::Cop::FormulaAuditStrict::DescLength do      end      it "When desc is multiline string" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            desc 'Bar#{"bar" * 9}'\ @@ -81,7 +81,7 @@ describe RuboCop::Cop::FormulaAuditStrict::DescLength do          end        EOS -      msg = <<-EOS.undent +      msg = <<~EOS          Description is too long. "name: desc" should be less than 80 characters.          Length is calculated as foo + desc. (currently 98)        EOS @@ -104,7 +104,7 @@ describe RuboCop::Cop::FormulaAuditStrict::Desc do    context "When auditing formula desc" do      it "When wrong \"command-line\" usage in desc" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            desc 'command line' @@ -124,7 +124,7 @@ describe RuboCop::Cop::FormulaAuditStrict::Desc do      end      it "When an article is used in desc" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            desc 'An ' @@ -144,7 +144,7 @@ describe RuboCop::Cop::FormulaAuditStrict::Desc do      end      it "When an lowercase letter starts a desc" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            desc 'bar' @@ -164,7 +164,7 @@ describe RuboCop::Cop::FormulaAuditStrict::Desc do      end      it "When formula name is in desc" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            desc 'Foo is a foobar' @@ -184,13 +184,13 @@ describe RuboCop::Cop::FormulaAuditStrict::Desc do      end      it "autocorrects all rules" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            desc ' an bar: commandline foo '          end        EOS -      correct_source = <<-EOS.undent +      correct_source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            desc 'an bar: command-line' diff --git a/Library/Homebrew/test/rubocops/homepage_cop_spec.rb b/Library/Homebrew/test/rubocops/homepage_cop_spec.rb index 6c7f248ba..be9dddae6 100644 --- a/Library/Homebrew/test/rubocops/homepage_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/homepage_cop_spec.rb @@ -8,7 +8,7 @@ describe RuboCop::Cop::FormulaAudit::Homepage do    context "When auditing homepage" do      it "When there is no homepage" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'          end @@ -28,7 +28,7 @@ describe RuboCop::Cop::FormulaAudit::Homepage do      end      it "Homepage with ftp" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            homepage "ftp://example.com/foo"            url "http://example.com/foo-1.0.tgz" @@ -65,7 +65,7 @@ describe RuboCop::Cop::FormulaAudit::Homepage do        }        formula_homepages.each do |name, homepage| -        source = <<-EOS.undent +        source = <<~EOS            class #{name.capitalize} < Formula              homepage "#{homepage}"              url "http://example.com/#{name}-1.0.tgz" diff --git a/Library/Homebrew/test/rubocops/lines_cop_spec.rb b/Library/Homebrew/test/rubocops/lines_cop_spec.rb index af816a5a9..7e93bee75 100644 --- a/Library/Homebrew/test/rubocops/lines_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/lines_cop_spec.rb @@ -25,11 +25,11 @@ describe RuboCop::Cop::FormulaAudit::Lines do        }]        formulae.each do |formula| -        source = <<-EOS.undent -        class Foo < Formula -          url 'http://example.com/foo-1.0.tgz' -          depends_on :#{formula["dependency"]} -        end +        source = <<~EOS +          class Foo < Formula +            url 'http://example.com/foo-1.0.tgz' +            depends_on :#{formula["dependency"]} +          end          EOS          if formula.key?("correct")            offense = ":#{formula["dependency"]} is deprecated. Usage should be \"#{formula["correct"]}\"" @@ -57,7 +57,7 @@ describe RuboCop::Cop::FormulaAudit::ClassInheritance do    context "When auditing lines" do      it "with no space in class inheritance" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo<Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -84,7 +84,7 @@ describe RuboCop::Cop::FormulaAudit::Comments do    context "When auditing formulae" do      it "with commented cmake call" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -106,7 +106,7 @@ describe RuboCop::Cop::FormulaAudit::Comments do      end      it "with default template comments" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            # PLEASE REMOVE            desc "foo" @@ -128,7 +128,7 @@ describe RuboCop::Cop::FormulaAudit::Comments do      end      it "with commented out depends_on" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -156,7 +156,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do    context "When auditing formulae" do      it "with FileUtils" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -178,7 +178,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with long inreplace block vars" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -202,7 +202,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with invalid rebuild" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -227,7 +227,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with OS.linux? check" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -254,7 +254,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with fails_with :llvm" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -282,7 +282,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with def test" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -307,7 +307,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with def options" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -332,7 +332,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with deprecated skip_clean call" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -340,9 +340,9 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do          end        EOS -      expected_offenses = [{ message: <<-EOS.undent.chomp, -                              `skip_clean :all` is deprecated; brew no longer strips symbols -                                      Pass explicit paths to prevent Homebrew from removing empty folders. +      expected_offenses = [{ message: <<~EOS.chomp, +        `skip_clean :all` is deprecated; brew no longer strips symbols +                Pass explicit paths to prevent Homebrew from removing empty folders.                               EOS                               severity: :convention,                               line: 4, @@ -357,7 +357,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with build.universal?" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -381,7 +381,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with a build.universal? exemption reports no offenses" do -      source = <<-EOS.undent +      source = <<~EOS          class Wine < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -396,7 +396,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with ENV.universal_binary" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -420,7 +420,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with an ENV.universal_binary exemption reports no offenses" do -      source = <<-EOS.undent +      source = <<~EOS          class Wine < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -435,7 +435,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with ENV.x11" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -459,7 +459,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with ruby-macho alternatives" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -481,7 +481,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with ruby-macho alternatives audit exempted formula" do -      source = <<-EOS.undent +      source = <<~EOS          class Cctools < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -494,7 +494,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with npm install without language::Node args" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' @@ -516,7 +516,7 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do      end      it "with npm install without language::Node args in kibana" do -      source = <<-EOS.undent +      source = <<~EOS          class KibanaAT44 < Formula            desc "foo"            url 'http://example.com/foo-1.0.tgz' diff --git a/Library/Homebrew/test/rubocops/options_cop_spec.rb b/Library/Homebrew/test/rubocops/options_cop_spec.rb index c27389a68..1ed6ee740 100644 --- a/Library/Homebrew/test/rubocops/options_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/options_cop_spec.rb @@ -8,7 +8,7 @@ describe RuboCop::Cop::FormulaAudit::Options do    context "When auditing options" do      it "32-bit" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            option "32-bit", "with 32-bit" @@ -35,7 +35,7 @@ describe RuboCop::Cop::FormulaAuditStrict::Options do    context "When auditing options strictly" do      it "with universal" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            option :universal @@ -56,7 +56,7 @@ describe RuboCop::Cop::FormulaAuditStrict::Options do      end      it "with deprecated options" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            option :cxx11 @@ -80,7 +80,7 @@ describe RuboCop::Cop::FormulaAuditStrict::Options do      end      it "with misc deprecated options" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            option "without-check" @@ -109,7 +109,7 @@ describe RuboCop::Cop::NewFormulaAudit::Options do    context "When auditing options for a new formula" do      it "with deprecated options" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'            deprecated_option "examples" => "with-examples" diff --git a/Library/Homebrew/test/rubocops/patches_cop_spec.rb b/Library/Homebrew/test/rubocops/patches_cop_spec.rb index 4f9ca2df8..fdecb676e 100644 --- a/Library/Homebrew/test/rubocops/patches_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/patches_cop_spec.rb @@ -8,7 +8,7 @@ describe RuboCop::Cop::FormulaAudit::Patches do    context "When auditing legacy patches" do      it "When there is no legacy patch" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url 'http://example.com/foo-1.0.tgz'          end @@ -18,7 +18,7 @@ describe RuboCop::Cop::FormulaAudit::Patches do      end      it "Formula with `def patches`" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            homepage "ftp://example.com/foo"            url "http://example.com/foo-1.0.tgz" @@ -51,7 +51,7 @@ describe RuboCop::Cop::FormulaAudit::Patches do          "https://github.com/dlang/dub/pull/1221.patch",        ]        patch_urls.each do |patch_url| -        source = <<-EOS.undent +        source = <<~EOS            class Foo < Formula              homepage "ftp://example.com/foo"              url "http://example.com/foo-1.0.tgz" @@ -63,56 +63,56 @@ describe RuboCop::Cop::FormulaAudit::Patches do          inspect_source(source)          expected_offense = if patch_url =~ %r{/raw\.github\.com/} -          [{ message: <<-EOS.undent.chomp, -               GitHub/Gist patches should specify a revision: -               #{patch_url} +          [{ message: <<~EOS.chomp, +            GitHub/Gist patches should specify a revision: +            #{patch_url}               EOS               severity: :convention,               line: 5,               column: 12,               source: source }]          elsif patch_url =~ %r{macports/trunk} -          [{ message: <<-EOS.undent.chomp, -               MacPorts patches should specify a revision instead of trunk: -               #{patch_url} +          [{ message: <<~EOS.chomp, +            MacPorts patches should specify a revision instead of trunk: +            #{patch_url}               EOS               severity: :convention,               line: 5,               column: 33,               source: source }]          elsif patch_url =~ %r{^http://trac\.macports\.org} -          [{ message: <<-EOS.undent.chomp, -               Patches from MacPorts Trac should be https://, not http: -               #{patch_url} +          [{ message: <<~EOS.chomp, +            Patches from MacPorts Trac should be https://, not http: +            #{patch_url}               EOS               severity: :convention,               line: 5,               column: 5,               source: source }]          elsif patch_url =~ %r{^http://bugs\.debian\.org} -          [{ message: <<-EOS.undent.chomp, -               Patches from Debian should be https://, not http: -               #{patch_url} +          [{ message: <<~EOS.chomp, +            Patches from Debian should be https://, not http: +            #{patch_url}               EOS               severity: :convention,               line: 5,               column: 5,               source: source }]          elsif patch_url =~ %r{https?://patch-diff\.githubusercontent\.com/raw/(.+)/(.+)/pull/(.+)\.(?:diff|patch)} -          [{ message: <<-EOS.undent, -               use GitHub pull request URLs: -                 https://github.com/foo/foo-bar/pull/100.patch -               Rather than patch-diff: -                 https://patch-diff.githubusercontent.com/raw/foo/foo-bar/pull/100.patch +          [{ message: <<~EOS, +            use GitHub pull request URLs: +              https://github.com/foo/foo-bar/pull/100.patch +            Rather than patch-diff: +              https://patch-diff.githubusercontent.com/raw/foo/foo-bar/pull/100.patch               EOS               severity: :convention,               line: 5,               column: 5,               source: source }]          elsif patch_url =~ %r{https?://github\.com/.+/.+/(?:commit|pull)/[a-fA-F0-9]*.(?:patch|diff)} -          [{ message: <<-EOS.undent, -               GitHub patches should use the full_index parameter: -                 #{patch_url}?full_index=1 +          [{ message: <<~EOS, +            GitHub patches should use the full_index parameter: +              #{patch_url}?full_index=1               EOS               severity: :convention,               line: 5, @@ -126,7 +126,7 @@ describe RuboCop::Cop::FormulaAudit::Patches do      end      it "Formula with nested `def patches`" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            homepage "ftp://example.com/foo"            url "http://example.com/foo-1.0.tgz" @@ -145,9 +145,9 @@ describe RuboCop::Cop::FormulaAudit::Patches do                               line: 4,                               column: 2,                               source: source }, -                           { message: <<-EOS.undent.chomp, -                               Patches from MacPorts Trac should be https://, not http: -                               http://trac.macports.org/export/68507/trunk/dports/net/trafshow/files/ +                           { message: <<~EOS.chomp, +                             Patches from MacPorts Trac should be https://, not http: +                             http://trac.macports.org/export/68507/trunk/dports/net/trafshow/files/                               EOS                               severity: :convention,                               line: 8, @@ -172,7 +172,7 @@ describe RuboCop::Cop::FormulaAudit::Patches do          "https://patch-diff.githubusercontent.com/raw/foo/foo-bar/pull/100.patch",        ]        patch_urls.each do |patch_url| -        source = <<-EOS.undent +        source = <<~EOS            class Foo < Formula              homepage "ftp://example.com/foo"              url "http://example.com/foo-1.0.tgz" @@ -185,47 +185,47 @@ describe RuboCop::Cop::FormulaAudit::Patches do          inspect_source(source)          expected_offense = if patch_url =~ %r{/raw\.github\.com/} -          [{ message: <<-EOS.undent.chomp, -               GitHub/Gist patches should specify a revision: -               #{patch_url} +          [{ message: <<~EOS.chomp, +            GitHub/Gist patches should specify a revision: +            #{patch_url}               EOS               severity: :convention,               line: 5,               column: 16,               source: source }]          elsif patch_url =~ %r{macports/trunk} -          [{ message: <<-EOS.undent.chomp, -               MacPorts patches should specify a revision instead of trunk: -               #{patch_url} +          [{ message: <<~EOS.chomp, +            MacPorts patches should specify a revision instead of trunk: +            #{patch_url}               EOS               severity: :convention,               line: 5,               column: 37,               source: source }]          elsif patch_url =~ %r{^http://trac\.macports\.org} -          [{ message: <<-EOS.undent.chomp, -               Patches from MacPorts Trac should be https://, not http: -               #{patch_url} +          [{ message: <<~EOS.chomp, +            Patches from MacPorts Trac should be https://, not http: +            #{patch_url}               EOS               severity: :convention,               line: 5,               column: 9,               source: source }]          elsif patch_url =~ %r{^http://bugs\.debian\.org} -          [{ message: <<-EOS.undent.chomp, -               Patches from Debian should be https://, not http: -               #{patch_url} +          [{ message: <<~EOS.chomp, +            Patches from Debian should be https://, not http: +            #{patch_url}               EOS               severity: :convention,               line: 5,               column: 9,               source: source }]          elsif patch_url =~ %r{https?://patch-diff\.githubusercontent\.com/raw/(.+)/(.+)/pull/(.+)\.(?:diff|patch)} -          [{ message: <<-EOS.undent, -               use GitHub pull request URLs: -                 https://github.com/foo/foo-bar/pull/100.patch -               Rather than patch-diff: -                 https://patch-diff.githubusercontent.com/raw/foo/foo-bar/pull/100.patch +          [{ message: <<~EOS, +            use GitHub pull request URLs: +              https://github.com/foo/foo-bar/pull/100.patch +            Rather than patch-diff: +              https://patch-diff.githubusercontent.com/raw/foo/foo-bar/pull/100.patch               EOS               severity: :convention,               line: 5, diff --git a/Library/Homebrew/test/rubocops/text_cop_spec.rb b/Library/Homebrew/test/rubocops/text_cop_spec.rb index 490801770..dbddff1ad 100644 --- a/Library/Homebrew/test/rubocops/text_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/text_cop_spec.rb @@ -8,7 +8,7 @@ describe RuboCop::Cop::FormulaAudit::Text do    context "When auditing formula text" do      it "with both openssl and libressl optional dependencies" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            homepage "http://example.com" @@ -32,7 +32,7 @@ describe RuboCop::Cop::FormulaAudit::Text do      end      it "with both openssl and libressl dependencies" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            homepage "http://example.com" @@ -56,7 +56,7 @@ describe RuboCop::Cop::FormulaAudit::Text do      end      it "When xcodebuild is called without SYMROOT" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            homepage "http://example.com" @@ -81,7 +81,7 @@ describe RuboCop::Cop::FormulaAudit::Text do      end      it "When xcodebuild is called without any args" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            homepage "http://example.com" @@ -106,7 +106,7 @@ describe RuboCop::Cop::FormulaAudit::Text do      end      it "When go get is executed" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            homepage "http://example.com" @@ -131,7 +131,7 @@ describe RuboCop::Cop::FormulaAudit::Text do      end      it "When xcodebuild is executed" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            homepage "http://example.com" @@ -156,7 +156,7 @@ describe RuboCop::Cop::FormulaAudit::Text do      end      it "When scons is executed" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            homepage "http://example.com" @@ -180,8 +180,8 @@ describe RuboCop::Cop::FormulaAudit::Text do        end      end -    it "When plist_options are not defined when using a formula-defined plist" do -      source = <<-EOS.undent +    it "When plist_options are not defined when using a formula-defined plist", :ruby23 do +      source = <<~RUBY          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            homepage "http://example.com" @@ -190,19 +190,20 @@ describe RuboCop::Cop::FormulaAudit::Text do              system "xcodebuild", "foo", "bar"            end -          def plist; <<-EOS.undent -            <?xml version="1.0" encoding="UTF-8"?> -            <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -            <plist version="1.0"> -            <dict> -              <key>Label</key> -              <string>org.nrpe.agent</string> -            </dict> -            </plist> -            \EOS +          def plist +            <<~XML +              <?xml version="1.0" encoding="UTF-8"?> +              <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +              <plist version="1.0"> +              <dict> +                <key>Label</key> +                <string>org.nrpe.agent</string> +              </dict> +              </plist> +            XML            end          end -      EOS +      RUBY        expected_offenses = [{  message: "Please set plist_options when using a formula-defined plist.",                                severity: :convention, @@ -218,7 +219,7 @@ describe RuboCop::Cop::FormulaAudit::Text do      end      it "When language/go is require'd" do -      source = <<-EOS.undent +      source = <<~EOS          require "language/go"          class Foo < Formula @@ -245,7 +246,7 @@ describe RuboCop::Cop::FormulaAudit::Text do      end      it "When formula uses virtualenv and also `setuptools` resource" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            homepage "http://example.com" @@ -275,7 +276,7 @@ describe RuboCop::Cop::FormulaAudit::Text do      end      it "When Formula.factory(name) is used" do -      source = <<-EOS.undent +      source = <<~EOS          class Foo < Formula            url "http://example.com/foo-1.0.tgz"            homepage "http://example.com" diff --git a/Library/Homebrew/test/rubocops/urls_cop_spec.rb b/Library/Homebrew/test/rubocops/urls_cop_spec.rb index ad939a1a2..0bda7f110 100644 --- a/Library/Homebrew/test/rubocops/urls_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/urls_cop_spec.rb @@ -54,7 +54,7 @@ describe RuboCop::Cop::FormulaAudit::Urls do          "col" => 2,        }, {          "url" => "http://prdownloads.sourceforge.net/foo/foo-1.tar.gz", -        "msg" => <<-EOS.undent.chomp, +        "msg" => <<~EOS.chomp,            Don't use prdownloads in SourceForge urls (url is http://prdownloads.sourceforge.net/foo/foo-1.tar.gz).                    See: http://librelist.com/browser/homebrew/2011/1/12/prdownloads-is-bad/          EOS @@ -69,7 +69,7 @@ describe RuboCop::Cop::FormulaAudit::Urls do          "col" => 2,        }, {          "url" => "http://http.debian.net/debian/dists/foo/", -        "msg" => <<-EOS.undent, +        "msg" => <<~EOS,            Please use a secure mirror for Debian URLs.            We recommend:              https://mirrors.ocf.berkeley.edu/debian/dists/foo/ @@ -101,7 +101,7 @@ describe RuboCop::Cop::FormulaAudit::Urls do          "col" => 2,        }, {          "url" => "https://codeload.github.com/foo/bar/tar.gz/v0.1.1", -        "msg" => <<-EOS.undent, +        "msg" => <<~EOS,            Use GitHub archive URLs:              https://github.com/foo/bar/archive/v0.1.1.tar.gz            Rather than codeload: @@ -114,7 +114,7 @@ describe RuboCop::Cop::FormulaAudit::Urls do          "col" => 2,        }]        formulas.each do |formula| -        source = <<-EOS.undent +        source = <<~EOS            class Foo < Formula              desc "foo"              url "#{formula["url"]}" @@ -141,7 +141,7 @@ describe RuboCop::Cop::FormulaAudit::Urls do          "col" => 4,        }]        formulas.each do |formula| -        source = <<-EOS.undent +        source = <<~EOS            class Foo < Formula              desc "foo"              url "https://foo.com" @@ -169,12 +169,12 @@ describe RuboCop::Cop::FormulaAudit::Urls do      end      it "with duplicate mirror" do -      source = <<-EOS.undent -          class Foo < Formula -            desc "foo" -            url "https://ftpmirror.fnu.org/foo/foo-1.0.tar.gz" -            mirror "https://ftpmirror.fnu.org/foo/foo-1.0.tar.gz" -          end +      source = <<~EOS +        class Foo < Formula +          desc "foo" +          url "https://ftpmirror.fnu.org/foo/foo-1.0.tar.gz" +          mirror "https://ftpmirror.fnu.org/foo/foo-1.0.tar.gz" +        end        EOS        expected_offenses = [{ message: "URL should not be duplicated as a mirror: https://ftpmirror.fnu.org/foo/foo-1.0.tar.gz", @@ -204,13 +204,13 @@ describe RuboCop::Cop::FormulaAuditStrict::PyPiUrls do          "corrected_url" =>"https://files.pythonhosted.org/packages/source/foo/foo-0.1.tar.gz",        }]        formulas.each do |formula| -        source = <<-EOS.undent +        source = <<~EOS            class Foo < Formula              desc "foo"              url "#{formula["url"]}"            end          EOS -        corrected_source = <<-EOS.undent +        corrected_source = <<~EOS            class Foo < Formula              desc "foo"              url "#{formula["corrected_url"]}" diff --git a/Library/Homebrew/test/sandbox_spec.rb b/Library/Homebrew/test/sandbox_spec.rb index 38ff4da75..774337967 100644 --- a/Library/Homebrew/test/sandbox_spec.rb +++ b/Library/Homebrew/test/sandbox_spec.rb @@ -49,7 +49,7 @@ describe Sandbox do      it "ignores bogus Python error" do        ENV["HOMEBREW_VERBOSE"] = "1" -      with_bogus_error = <<-EOS.undent +      with_bogus_error = <<~EOS          foo          Mar 17 02:55:06 sandboxd[342]: Python(49765) deny file-write-unlink /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/errors.pyc          bar diff --git a/Library/Homebrew/test/spec_helper.rb b/Library/Homebrew/test/spec_helper.rb index a4ac84547..a5821ee14 100644 --- a/Library/Homebrew/test/spec_helper.rb +++ b/Library/Homebrew/test/spec_helper.rb @@ -131,7 +131,7 @@ RSpec.configure do |config|        files_after_test = find_files        diff = Set.new(@__files_before_test) ^ Set.new(files_after_test) -      expect(diff).to be_empty, <<-EOS.undent +      expect(diff).to be_empty, <<~EOS          file leak detected:          #{diff.map { |f| "  #{f}" }.join("\n")}        EOS diff --git a/Library/Homebrew/test/string_spec.rb b/Library/Homebrew/test/string_spec.rb index ce26d70d4..dba6753bf 100644 --- a/Library/Homebrew/test/string_spec.rb +++ b/Library/Homebrew/test/string_spec.rb @@ -22,11 +22,11 @@ describe String do      end      it "can be nested" do -      nested_string = <<-EOS.undent +      nested_string = <<~EOS          goodbye        EOS -      string = <<-EOS.undent +      string = <<~EOS          hello          #{nested_string}        EOS diff --git a/Library/Homebrew/test/support/fixtures/cask/Casks/with-caveats.rb b/Library/Homebrew/test/support/fixtures/cask/Casks/with-caveats.rb index d5d90114a..5624f486e 100644 --- a/Library/Homebrew/test/support/fixtures/cask/Casks/with-caveats.rb +++ b/Library/Homebrew/test/support/fixtures/cask/Casks/with-caveats.rb @@ -8,7 +8,7 @@ cask 'with-caveats' do    app 'Caffeine.app'    # simple string is evaluated at compile-time -  caveats <<-EOS.undent +  caveats <<~EOS      Here are some things you might want to know.    EOS    # do block is evaluated at install-time diff --git a/Library/Homebrew/test/support/fixtures/cask/Casks/with-uninstall-script-app.rb b/Library/Homebrew/test/support/fixtures/cask/Casks/with-uninstall-script-app.rb index f5f3ae5dd..885f3b157 100644 --- a/Library/Homebrew/test/support/fixtures/cask/Casks/with-uninstall-script-app.rb +++ b/Library/Homebrew/test/support/fixtures/cask/Casks/with-uninstall-script-app.rb @@ -8,7 +8,7 @@ cask 'with-uninstall-script-app' do    app 'MyFancyApp/MyFancyApp.app'    postflight do -    IO.write "#{appdir}/MyFancyApp.app/uninstall.sh", <<-EOS.undent +    IO.write "#{appdir}/MyFancyApp.app/uninstall.sh", <<~EOS        #!/bin/sh        /bin/rm -r "#{appdir}/MyFancyApp.app"      EOS diff --git a/Library/Homebrew/test/support/helper/spec/shared_context/integration_test.rb b/Library/Homebrew/test/support/helper/spec/shared_context/integration_test.rb index 7bf2ce96a..da01580c2 100644 --- a/Library/Homebrew/test/support/helper/spec/shared_context/integration_test.rb +++ b/Library/Homebrew/test/support/helper/spec/shared_context/integration_test.rb @@ -123,7 +123,7 @@ RSpec.shared_context "integration test" do    def setup_test_formula(name, content = nil)      case name      when /^testball/ -      content = <<-EOS.undent +      content = <<~EOS          desc "Some test"          homepage "https://example.com/#{name}"          url "file://#{TEST_FIXTURE_DIR}/tarballs/testball-0.1.tbz" @@ -145,18 +145,18 @@ RSpec.shared_context "integration test" do          # something here        EOS      when "foo" -      content = <<-EOS.undent +      content = <<~EOS          url "https://example.com/#{name}-1.0"        EOS      when "bar" -      content = <<-EOS.undent +      content = <<~EOS          url "https://example.com/#{name}-1.0"          depends_on "foo"        EOS      end      Formulary.core_path(name).tap do |formula_path| -      formula_path.write <<-EOS.undent +      formula_path.write <<~EOS          class #{Formulary.class_s(name)} < Formula            #{content}          end diff --git a/Library/Homebrew/test/tap_spec.rb b/Library/Homebrew/test/tap_spec.rb index 957f9bdd2..d69eb615c 100644 --- a/Library/Homebrew/test/tap_spec.rb +++ b/Library/Homebrew/test/tap_spec.rb @@ -19,7 +19,7 @@ describe Tap do    end    def setup_tap_files -    formula_file.write <<-EOS.undent +    formula_file.write <<~EOS        class Foo < Formula          url "https://example.com/foo-1.0.tar.gz"        end @@ -28,11 +28,11 @@ describe Tap do      alias_file.parent.mkpath      ln_s formula_file, alias_file -    (path/"formula_renames.json").write <<-EOS.undent +    (path/"formula_renames.json").write <<~EOS        { "oldname": "foo" }      EOS -    (path/"tap_migrations.json").write <<-EOS.undent +    (path/"tap_migrations.json").write <<~EOS        { "removed-formula": "homebrew/foo" }      EOS @@ -327,7 +327,7 @@ describe CoreTap do    specify "files" do      formula_file = subject.formula_dir/"foo.rb" -    formula_file.write <<-EOS.undent +    formula_file.write <<~EOS        class Foo < Formula          url "https://example.com/foo-1.0.tar.gz"        end diff --git a/Library/Homebrew/test/utils_spec.rb b/Library/Homebrew/test/utils_spec.rb index 3b5355b15..0c2ae5161 100644 --- a/Library/Homebrew/test/utils_spec.rb +++ b/Library/Homebrew/test/utils_spec.rb @@ -98,7 +98,7 @@ describe "globally-scoped helper methods" do      let(:shell) { dir/"myshell" }      it "starts an interactive shell session" do -      IO.write shell, <<-EOS.undent +      IO.write shell, <<~EOS          #!/bin/sh          echo called > "#{dir}/called"        EOS diff --git a/Library/Homebrew/test/version_spec.rb b/Library/Homebrew/test/version_spec.rb index d0393afa6..7d3e129f6 100644 --- a/Library/Homebrew/test/version_spec.rb +++ b/Library/Homebrew/test/version_spec.rb @@ -248,9 +248,9 @@ describe Version do        end        failure_message do |expected| -        message = <<-EOS -        expected: %s -        detected: %s +        message = <<~EOS +          expected: %s +          detected: %s          EOS          format(message, expected, detected)        end diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index 237ffa74e..2211ed75b 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -93,7 +93,7 @@ def odeprecated(method, replacement = nil, disable: false, disable_on: nil, call    end    caller_message ||= backtrace[1] -  message = <<-EOS.undent +  message = <<~EOS      Calling #{method} is #{verb}!      #{replacement_message}      #{caller_message}#{tap_message} @@ -223,7 +223,7 @@ module Homebrew      end      return if which(executable) -    odie <<-EOS.undent +    odie <<~EOS        The '#{name}' gem is installed but couldn't find '#{executable}' in the PATH:        #{ENV["PATH"]}      EOS @@ -347,7 +347,7 @@ def which_editor    end    editor ||= "/usr/bin/vim" -  opoo <<-EOS.undent +  opoo <<~EOS      Using #{editor} because no editor was set in the environment.      This may change in the future, so we recommend setting EDITOR,      or HOMEBREW_EDITOR to your preferred text editor. diff --git a/Library/Homebrew/utils/github.rb b/Library/Homebrew/utils/github.rb index df0811e95..f88d52403 100644 --- a/Library/Homebrew/utils/github.rb +++ b/Library/Homebrew/utils/github.rb @@ -16,7 +16,7 @@ module GitHub    class RateLimitExceededError < Error      def initialize(reset, error) -      super <<-EOS.undent +      super <<~EOS          GitHub API Error: #{error}          Try again in #{pretty_ratelimit_reset(reset)}, or create a personal access token:            #{ALL_SCOPES_URL} @@ -33,12 +33,12 @@ module GitHub      def initialize(error)        message = "GitHub #{error}\n"        if ENV["HOMEBREW_GITHUB_API_TOKEN"] -        message << <<-EOS.undent +        message << <<~EOS            HOMEBREW_GITHUB_API_TOKEN may be invalid or expired; check:            #{Formatter.url("https://github.com/settings/tokens")}          EOS        else -        message << <<-EOS.undent +        message << <<~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 @@ -104,7 +104,7 @@ module GitHub          case GitHub.api_credentials_type          when :keychain -          onoe <<-EOS.undent +          onoe <<~EOS              Your macOS keychain GitHub credentials do not have sufficient scope!              Scopes they need: #{needed_human_scopes}              Scopes they have: #{credentials_scopes} @@ -112,7 +112,7 @@ module GitHub              and then set HOMEBREW_GITHUB_API_TOKEN as the authentication method instead.            EOS          when :environment -          onoe <<-EOS.undent +          onoe <<~EOS              Your HOMEBREW_GITHUB_API_TOKEN does not have sufficient scope!              Scopes they need: #{needed_human_scopes}              Scopes it has: #{credentials_scopes} diff --git a/Library/Homebrew/utils/link.rb b/Library/Homebrew/utils/link.rb index 095dba209..96bfd602e 100644 --- a/Library/Homebrew/utils/link.rb +++ b/Library/Homebrew/utils/link.rb @@ -22,7 +22,7 @@ module Utils        end        return if conflicts.empty? -      onoe <<-EOS.undent +      onoe <<~EOS          Could not link:          #{conflicts.join("\n")} | 
