Move String#undent to compat.
This commit is contained in:
parent
9bee9ca575
commit
487bec9570
@ -26,3 +26,4 @@ require "compat/ENV/shared"
|
||||
require "compat/ENV/std"
|
||||
require "compat/ENV/super"
|
||||
require "compat/utils/shell"
|
||||
require "compat/extend/string"
|
||||
|
||||
18
Library/Homebrew/compat/extend/string.rb
Normal file
18
Library/Homebrew/compat/extend/string.rb
Normal file
@ -0,0 +1,18 @@
|
||||
class String
|
||||
def undent
|
||||
gsub(/^[ \t]{#{(slice(/^[ \t]+/) || '').length}}/, "")
|
||||
end
|
||||
alias unindent undent
|
||||
|
||||
# eg:
|
||||
# if foo then <<-EOS.undent_________________________________________________________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
|
||||
# ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
|
||||
# voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
|
||||
# sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
|
||||
# mollit anim id est laborum.
|
||||
# EOS
|
||||
alias undent_________________________________________________________72 undent
|
||||
end
|
||||
@ -2,23 +2,6 @@
|
||||
require_relative "../vendor/backports/string"
|
||||
|
||||
class String
|
||||
def undent
|
||||
gsub(/^[ \t]{#{(slice(/^[ \t]+/) || '').length}}/, "")
|
||||
end
|
||||
alias unindent undent
|
||||
|
||||
# eg:
|
||||
# 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
|
||||
# ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
|
||||
# voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
|
||||
# sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
|
||||
# mollit anim id est laborum.
|
||||
# EOS
|
||||
alias undent_________________________________________________________72 undent
|
||||
|
||||
# String.chomp, but if result is empty: returns nil instead.
|
||||
# Allows `chuzzle || foo` short-circuits.
|
||||
def chuzzle
|
||||
|
||||
@ -1,41 +1,5 @@
|
||||
require "extend/string"
|
||||
|
||||
describe String do
|
||||
describe "#undent" do
|
||||
it "removes leading whitespace, taking the first line as reference" do
|
||||
string = <<-EOS.unindent
|
||||
hi
|
||||
........my friend over
|
||||
there
|
||||
EOS
|
||||
|
||||
expect(string).to eq("hi\n........my friend over\n there\n")
|
||||
end
|
||||
|
||||
it "removes nothing if the text is not indented" do
|
||||
string = <<-EOS.unindent
|
||||
hi
|
||||
I'm not indented
|
||||
EOS
|
||||
|
||||
expect(string).to eq("hi\nI'm not indented\n")
|
||||
end
|
||||
|
||||
it "can be nested" do
|
||||
nested_string = <<~EOS
|
||||
goodbye
|
||||
EOS
|
||||
|
||||
string = <<~EOS
|
||||
hello
|
||||
#{nested_string}
|
||||
EOS
|
||||
|
||||
expect(string).to eq("hello\ngoodbye\n\n")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe StringInreplaceExtension do
|
||||
subject { string.extend(described_class) }
|
||||
let(:string) { "foobar" }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user