Merge pull request #16451 from dduugg/no-string-indent
Remove ActiveSupport String#indent core extension
This commit is contained in:
		
						commit
						8c73ceb757
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -72,7 +72,6 @@
 | 
			
		||||
!**/vendor/bundle/ruby/*/gems/activesupport-*/lib/active_support/core_ext/object/deep_dup.rb
 | 
			
		||||
!**/vendor/bundle/ruby/*/gems/activesupport-*/lib/active_support/core_ext/object/duplicable.rb
 | 
			
		||||
!**/vendor/bundle/ruby/*/gems/activesupport-*/lib/active_support/core_ext/string/exclude.rb
 | 
			
		||||
!**/vendor/bundle/ruby/*/gems/activesupport-*/lib/active_support/core_ext/string/indent.rb
 | 
			
		||||
 | 
			
		||||
# Ignore partially included gems where we don't need all files
 | 
			
		||||
**/vendor/gems/mechanize-*/.*
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,6 @@ require "active_support/core_ext/file/atomic"
 | 
			
		||||
require "active_support/core_ext/hash/deep_merge"
 | 
			
		||||
require "active_support/core_ext/hash/keys"
 | 
			
		||||
require "active_support/core_ext/string/exclude"
 | 
			
		||||
require "active_support/core_ext/string/indent"
 | 
			
		||||
 | 
			
		||||
HOMEBREW_API_DEFAULT_DOMAIN = ENV.fetch("HOMEBREW_API_DEFAULT_DOMAIN").freeze
 | 
			
		||||
HOMEBREW_BOTTLE_DEFAULT_DOMAIN = ENV.fetch("HOMEBREW_BOTTLE_DEFAULT_DOMAIN").freeze
 | 
			
		||||
 | 
			
		||||
@ -511,11 +511,11 @@ describe "brew bottle" do
 | 
			
		||||
        bottle.sha256(catalina: "109c0cb581a7b5d84da36d84b221fb9dd0f8a927b3044d82611791c9907e202e")
 | 
			
		||||
 | 
			
		||||
        expect(homebrew.bottle_output(bottle, nil)).to eq(
 | 
			
		||||
          <<~RUBY.indent(2),
 | 
			
		||||
            bottle do
 | 
			
		||||
              root_url "https://example.com"
 | 
			
		||||
              sha256 catalina: "109c0cb581a7b5d84da36d84b221fb9dd0f8a927b3044d82611791c9907e202e"
 | 
			
		||||
            end
 | 
			
		||||
          <<-RUBY,
 | 
			
		||||
  bottle do
 | 
			
		||||
    root_url "https://example.com"
 | 
			
		||||
    sha256 catalina: "109c0cb581a7b5d84da36d84b221fb9dd0f8a927b3044d82611791c9907e202e"
 | 
			
		||||
  end
 | 
			
		||||
          RUBY
 | 
			
		||||
        )
 | 
			
		||||
      end
 | 
			
		||||
@ -526,12 +526,12 @@ describe "brew bottle" do
 | 
			
		||||
        bottle.sha256(catalina: "109c0cb581a7b5d84da36d84b221fb9dd0f8a927b3044d82611791c9907e202e")
 | 
			
		||||
 | 
			
		||||
        expect(homebrew.bottle_output(bottle, "ExampleStrategy")).to eq(
 | 
			
		||||
          <<~RUBY.indent(2),
 | 
			
		||||
            bottle do
 | 
			
		||||
              root_url "https://example.com",
 | 
			
		||||
                using: ExampleStrategy
 | 
			
		||||
              sha256 catalina: "109c0cb581a7b5d84da36d84b221fb9dd0f8a927b3044d82611791c9907e202e"
 | 
			
		||||
            end
 | 
			
		||||
          <<-RUBY,
 | 
			
		||||
  bottle do
 | 
			
		||||
    root_url "https://example.com",
 | 
			
		||||
      using: ExampleStrategy
 | 
			
		||||
    sha256 catalina: "109c0cb581a7b5d84da36d84b221fb9dd0f8a927b3044d82611791c9907e202e"
 | 
			
		||||
  end
 | 
			
		||||
          RUBY
 | 
			
		||||
        )
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
@ -177,7 +177,7 @@ RSpec.shared_context "integration test" do # rubocop:disable RSpec/ContextWordin
 | 
			
		||||
    Formulary.core_path(name).tap do |formula_path|
 | 
			
		||||
      formula_path.write <<~RUBY
 | 
			
		||||
        class #{Formulary.class_s(name)} < Formula
 | 
			
		||||
        #{content.indent(2)}
 | 
			
		||||
        #{content.gsub(/^(?!$)/, "  ")}
 | 
			
		||||
        end
 | 
			
		||||
      RUBY
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
@ -5,12 +5,12 @@ require "utils/ast"
 | 
			
		||||
describe Utils::AST do
 | 
			
		||||
  describe ".stanza_text" do
 | 
			
		||||
    let(:compound_license) do
 | 
			
		||||
      <<~RUBY.chomp
 | 
			
		||||
        license all_of: [
 | 
			
		||||
          :public_domain,
 | 
			
		||||
          "MIT",
 | 
			
		||||
          "GPL-3.0-or-later" => { with: "Autoconf-exception-3.0" },
 | 
			
		||||
        ]
 | 
			
		||||
      <<-RUBY
 | 
			
		||||
  license all_of: [
 | 
			
		||||
    :public_domain,
 | 
			
		||||
    "MIT",
 | 
			
		||||
    "GPL-3.0-or-later" => { with: "Autoconf-exception-3.0" },
 | 
			
		||||
  ]
 | 
			
		||||
      RUBY
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
@ -36,14 +36,14 @@ describe Utils::AST do
 | 
			
		||||
    it "adds indent to stanza text if specified" do
 | 
			
		||||
      expect(described_class.stanza_text(:revision, "revision 1", indent: 2)).to eq("  revision 1")
 | 
			
		||||
      expect(described_class.stanza_text(:license, 'license "MIT"', indent: 2)).to eq('  license "MIT"')
 | 
			
		||||
      expect(described_class.stanza_text(:license, compound_license, indent: 2)).to eq(compound_license.indent(2))
 | 
			
		||||
      expect(described_class.stanza_text(:license, compound_license, indent: 2)).to eq(compound_license)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it "does not add indent if already indented" do
 | 
			
		||||
      expect(described_class.stanza_text(:revision, "  revision 1", indent: 2)).to eq("  revision 1")
 | 
			
		||||
      expect(
 | 
			
		||||
        described_class.stanza_text(:license, compound_license.indent(2), indent: 2),
 | 
			
		||||
      ).to eq(compound_license.indent(2))
 | 
			
		||||
        described_class.stanza_text(:license, compound_license, indent: 2),
 | 
			
		||||
      ).to eq(compound_license)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@ -248,10 +248,10 @@ describe Utils::AST::FormulaAST do
 | 
			
		||||
 | 
			
		||||
  describe "#add_bottle_block" do
 | 
			
		||||
    let(:bottle_output) do
 | 
			
		||||
      <<~RUBY.chomp.indent(2)
 | 
			
		||||
        bottle do
 | 
			
		||||
          sha256 "f7b1fc772c79c20fddf621ccc791090bc1085fcef4da6cca03399424c66e06ca" => :sierra
 | 
			
		||||
        end
 | 
			
		||||
      <<-RUBY
 | 
			
		||||
  bottle do
 | 
			
		||||
    sha256 "f7b1fc772c79c20fddf621ccc791090bc1085fcef4da6cca03399424c66e06ca" => :sierra
 | 
			
		||||
  end
 | 
			
		||||
      RUBY
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -35,7 +35,7 @@ module Utils
 | 
			
		||||
        value if (node.is_a?(SendNode) || node.is_a?(BlockNode)) && node.method_name == name
 | 
			
		||||
      end
 | 
			
		||||
      text ||= "#{name} #{value.inspect}"
 | 
			
		||||
      text = text.indent(indent) if indent && !text.match?(/\A\n* +/)
 | 
			
		||||
      text = text.gsub(/^(?!$)/, " " * indent) if indent && !text.match?(/\A\n* +/)
 | 
			
		||||
      text
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,45 +0,0 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class String
 | 
			
		||||
  # Same as +indent+, except it indents the receiver in-place.
 | 
			
		||||
  #
 | 
			
		||||
  # Returns the indented string, or +nil+ if there was nothing to indent.
 | 
			
		||||
  def indent!(amount, indent_string = nil, indent_empty_lines = false)
 | 
			
		||||
    indent_string = indent_string || self[/^[ \t]/] || " "
 | 
			
		||||
    re = indent_empty_lines ? /^/ : /^(?!$)/
 | 
			
		||||
    gsub!(re, indent_string * amount)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Indents the lines in the receiver:
 | 
			
		||||
  #
 | 
			
		||||
  #   <<EOS.indent(2)
 | 
			
		||||
  #   def some_method
 | 
			
		||||
  #     some_code
 | 
			
		||||
  #   end
 | 
			
		||||
  #   EOS
 | 
			
		||||
  #   # =>
 | 
			
		||||
  #     def some_method
 | 
			
		||||
  #       some_code
 | 
			
		||||
  #     end
 | 
			
		||||
  #
 | 
			
		||||
  # The second argument, +indent_string+, specifies which indent string to
 | 
			
		||||
  # use. The default is +nil+, which tells the method to make a guess by
 | 
			
		||||
  # peeking at the first indented line, and fallback to a space if there is
 | 
			
		||||
  # none.
 | 
			
		||||
  #
 | 
			
		||||
  #   "  foo".indent(2)        # => "    foo"
 | 
			
		||||
  #   "foo\n\t\tbar".indent(2) # => "\t\tfoo\n\t\t\t\tbar"
 | 
			
		||||
  #   "foo".indent(2, "\t")    # => "\t\tfoo"
 | 
			
		||||
  #
 | 
			
		||||
  # While +indent_string+ is typically one space or tab, it may be any string.
 | 
			
		||||
  #
 | 
			
		||||
  # The third argument, +indent_empty_lines+, is a flag that says whether
 | 
			
		||||
  # empty lines should be indented. Default is false.
 | 
			
		||||
  #
 | 
			
		||||
  #   "foo\n\nbar".indent(2)            # => "  foo\n\n  bar"
 | 
			
		||||
  #   "foo\n\nbar".indent(2, nil, true) # => "  foo\n  \n  bar"
 | 
			
		||||
  #
 | 
			
		||||
  def indent(amount, indent_string = nil, indent_empty_lines = false)
 | 
			
		||||
    dup.tap { |_| _.indent!(amount, indent_string, indent_empty_lines) }
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user