From b0d5e17906229e95f2bc548e4b607297e7e907ab Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Wed, 26 Aug 2015 16:50:36 -0400 Subject: [PATCH] tweak String#undent so that only leading whitespace up to the first indentation level is gsubbed, change test_undent to reflect change and add test_undent_nested to test new behavior --- Library/Homebrew/extend/string.rb | 2 +- Library/Homebrew/test/test_string.rb | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/extend/string.rb b/Library/Homebrew/extend/string.rb index fc507e151c..632d8ae8a3 100644 --- a/Library/Homebrew/extend/string.rb +++ b/Library/Homebrew/extend/string.rb @@ -1,6 +1,6 @@ class String def undent - gsub(/^.{#{(slice(/^ +/) || '').length}}/, "") + gsub(/^[ \t]{#{(slice(/^[ \t]+/) || '').length}}/, "") end # eg: diff --git a/Library/Homebrew/test/test_string.rb b/Library/Homebrew/test/test_string.rb index 1d8c3c2466..44582c5104 100644 --- a/Library/Homebrew/test/test_string.rb +++ b/Library/Homebrew/test/test_string.rb @@ -8,7 +8,7 @@ class StringTest < Homebrew::TestCase ....my friend over there EOS - assert_equal "hi\nmy friend over\nthere\n", undented + assert_equal "hi\n....my friend over\nthere\n", undented end def test_undent_not_indented @@ -18,4 +18,17 @@ I'm not indented EOS assert_equal "hi\nI'm not indented\n", undented end + + def test_undent_nested + nest = <<-EOS.undent + goodbye + EOS + + undented = <<-EOS.undent + hello + #{nest} + EOS + + assert_equal "hello\ngoodbye\n\n", undented + end end