From 487bec957007612956ff97b3912f88768becaa32 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Sun, 15 Oct 2017 02:38:10 +0200 Subject: [PATCH] Move `String#undent` to `compat`. --- Library/Homebrew/compat.rb | 1 + Library/Homebrew/compat/extend/string.rb | 18 ++++++++++++ Library/Homebrew/extend/string.rb | 17 ----------- Library/Homebrew/test/string_spec.rb | 36 ------------------------ 4 files changed, 19 insertions(+), 53 deletions(-) create mode 100644 Library/Homebrew/compat/extend/string.rb diff --git a/Library/Homebrew/compat.rb b/Library/Homebrew/compat.rb index 3c080f6168..8b3d72ec7b 100644 --- a/Library/Homebrew/compat.rb +++ b/Library/Homebrew/compat.rb @@ -26,3 +26,4 @@ require "compat/ENV/shared" require "compat/ENV/std" require "compat/ENV/super" require "compat/utils/shell" +require "compat/extend/string" diff --git a/Library/Homebrew/compat/extend/string.rb b/Library/Homebrew/compat/extend/string.rb new file mode 100644 index 0000000000..6069a6bec4 --- /dev/null +++ b/Library/Homebrew/compat/extend/string.rb @@ -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 diff --git a/Library/Homebrew/extend/string.rb b/Library/Homebrew/extend/string.rb index 2e9e89b381..c94bfc8345 100644 --- a/Library/Homebrew/extend/string.rb +++ b/Library/Homebrew/extend/string.rb @@ -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 diff --git a/Library/Homebrew/test/string_spec.rb b/Library/Homebrew/test/string_spec.rb index dba6753bfa..6de89dc99a 100644 --- a/Library/Homebrew/test/string_spec.rb +++ b/Library/Homebrew/test/string_spec.rb @@ -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" }