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/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/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/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
|
# Ignore partially included gems where we don't need all files
|
||||||
**/vendor/gems/mechanize-*/.*
|
**/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/deep_merge"
|
||||||
require "active_support/core_ext/hash/keys"
|
require "active_support/core_ext/hash/keys"
|
||||||
require "active_support/core_ext/string/exclude"
|
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_API_DEFAULT_DOMAIN = ENV.fetch("HOMEBREW_API_DEFAULT_DOMAIN").freeze
|
||||||
HOMEBREW_BOTTLE_DEFAULT_DOMAIN = ENV.fetch("HOMEBREW_BOTTLE_DEFAULT_DOMAIN").freeze
|
HOMEBREW_BOTTLE_DEFAULT_DOMAIN = ENV.fetch("HOMEBREW_BOTTLE_DEFAULT_DOMAIN").freeze
|
||||||
|
|||||||
@ -511,7 +511,7 @@ describe "brew bottle" do
|
|||||||
bottle.sha256(catalina: "109c0cb581a7b5d84da36d84b221fb9dd0f8a927b3044d82611791c9907e202e")
|
bottle.sha256(catalina: "109c0cb581a7b5d84da36d84b221fb9dd0f8a927b3044d82611791c9907e202e")
|
||||||
|
|
||||||
expect(homebrew.bottle_output(bottle, nil)).to eq(
|
expect(homebrew.bottle_output(bottle, nil)).to eq(
|
||||||
<<~RUBY.indent(2),
|
<<-RUBY,
|
||||||
bottle do
|
bottle do
|
||||||
root_url "https://example.com"
|
root_url "https://example.com"
|
||||||
sha256 catalina: "109c0cb581a7b5d84da36d84b221fb9dd0f8a927b3044d82611791c9907e202e"
|
sha256 catalina: "109c0cb581a7b5d84da36d84b221fb9dd0f8a927b3044d82611791c9907e202e"
|
||||||
@ -526,7 +526,7 @@ describe "brew bottle" do
|
|||||||
bottle.sha256(catalina: "109c0cb581a7b5d84da36d84b221fb9dd0f8a927b3044d82611791c9907e202e")
|
bottle.sha256(catalina: "109c0cb581a7b5d84da36d84b221fb9dd0f8a927b3044d82611791c9907e202e")
|
||||||
|
|
||||||
expect(homebrew.bottle_output(bottle, "ExampleStrategy")).to eq(
|
expect(homebrew.bottle_output(bottle, "ExampleStrategy")).to eq(
|
||||||
<<~RUBY.indent(2),
|
<<-RUBY,
|
||||||
bottle do
|
bottle do
|
||||||
root_url "https://example.com",
|
root_url "https://example.com",
|
||||||
using: ExampleStrategy
|
using: ExampleStrategy
|
||||||
|
|||||||
@ -177,7 +177,7 @@ RSpec.shared_context "integration test" do # rubocop:disable RSpec/ContextWordin
|
|||||||
Formulary.core_path(name).tap do |formula_path|
|
Formulary.core_path(name).tap do |formula_path|
|
||||||
formula_path.write <<~RUBY
|
formula_path.write <<~RUBY
|
||||||
class #{Formulary.class_s(name)} < Formula
|
class #{Formulary.class_s(name)} < Formula
|
||||||
#{content.indent(2)}
|
#{content.gsub(/^(?!$)/, " ")}
|
||||||
end
|
end
|
||||||
RUBY
|
RUBY
|
||||||
end
|
end
|
||||||
|
|||||||
@ -5,7 +5,7 @@ require "utils/ast"
|
|||||||
describe Utils::AST do
|
describe Utils::AST do
|
||||||
describe ".stanza_text" do
|
describe ".stanza_text" do
|
||||||
let(:compound_license) do
|
let(:compound_license) do
|
||||||
<<~RUBY.chomp
|
<<-RUBY
|
||||||
license all_of: [
|
license all_of: [
|
||||||
:public_domain,
|
:public_domain,
|
||||||
"MIT",
|
"MIT",
|
||||||
@ -36,14 +36,14 @@ describe Utils::AST do
|
|||||||
it "adds indent to stanza text if specified" 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(: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, '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
|
end
|
||||||
|
|
||||||
it "does not add indent if already indented" do
|
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(:revision, " revision 1", indent: 2)).to eq(" revision 1")
|
||||||
expect(
|
expect(
|
||||||
described_class.stanza_text(:license, compound_license.indent(2), indent: 2),
|
described_class.stanza_text(:license, compound_license, indent: 2),
|
||||||
).to eq(compound_license.indent(2))
|
).to eq(compound_license)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -248,7 +248,7 @@ describe Utils::AST::FormulaAST do
|
|||||||
|
|
||||||
describe "#add_bottle_block" do
|
describe "#add_bottle_block" do
|
||||||
let(:bottle_output) do
|
let(:bottle_output) do
|
||||||
<<~RUBY.chomp.indent(2)
|
<<-RUBY
|
||||||
bottle do
|
bottle do
|
||||||
sha256 "f7b1fc772c79c20fddf621ccc791090bc1085fcef4da6cca03399424c66e06ca" => :sierra
|
sha256 "f7b1fc772c79c20fddf621ccc791090bc1085fcef4da6cca03399424c66e06ca" => :sierra
|
||||||
end
|
end
|
||||||
|
|||||||
@ -35,7 +35,7 @@ module Utils
|
|||||||
value if (node.is_a?(SendNode) || node.is_a?(BlockNode)) && node.method_name == name
|
value if (node.is_a?(SendNode) || node.is_a?(BlockNode)) && node.method_name == name
|
||||||
end
|
end
|
||||||
text ||= "#{name} #{value.inspect}"
|
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
|
text
|
||||||
end
|
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