Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

let String#strip_heredoc handle blank lines even if they are not inde…

…nted
  • Loading branch information...
commit b422cda2ebfff4032f4c18271e96ad329c413dcc 1 parent 58d0e2c
@fxn fxn authored
View
8 activesupport/lib/active_support/core_ext/string/strip.rb
@@ -1,3 +1,5 @@
+require 'active_support/core_ext/object/try'
+
class String
# Strips indentation in heredocs.
#
@@ -18,7 +20,7 @@ class String
# Technically, it looks for the least indented line in the whole string, and removes
# that amount of leading whitespace.
def strip_heredoc
- indent = chomp.scan(/^\s*/).min.size
- gsub(/^\s{#{indent}}/, '')
+ indent = scan(/^[ \t]*(?=\S)/).min.try(:size) || 0
+ gsub(/^[ \t]{#{indent}}/, '')
end
-end
+end
View
9 activesupport/test/core_ext/string_ext_test.rb
@@ -33,6 +33,15 @@ def test_strip_heredoc_on_a_regular_indented_heredoc
EOS
end
+ def test_strip_heredoc_on_a_regular_indented_heredoc_with_blank_lines
+ assert_equal "foo\n bar\n\nbaz\n", <<-EOS.strip_heredoc
+ foo
+ bar
+
+ baz
+ EOS
+ end
+
def test_pluralize
SingularToPlural.each do |singular, plural|
assert_equal(plural, singular.pluralize)
Please sign in to comment.
Something went wrong with that request. Please try again.