lib/core/facets/string/indent.rb in facets-2.8.4 vs lib/core/facets/string/indent.rb in facets-2.9.0.pre.1

- old
+ new

@@ -11,15 +11,57 @@ else gsub(/^#{Regexp.escape(c)}{0,#{-n}}/, "") end end - # Outdent just indents a negative number of spaces. + # Equivalent to String#indent, but modifies the receiver in place. + + def indent!(n, c=' ') + replace(indent(n,c)) + end + + # Remove excessive indentation. Useful for multi-line strings embeded in + # already indented code. # - # CREDIT: Noah Gibbs + # <<-END.unindent + # ohaie + # wurld + # END + # + # Outputs ... + # + # ohaie + # wurld + # + # Instead of ... + # + # ohaie + # wurld + # + # CREDIT: Noah Gibbs, mynyml - def outdent(n) - indent(-n) + def unindent(size=nil) + if size + indent(-size) + else + char = ' ' + self.scan(/^[\ \t]*\S/) do |m| + if size.nil? || m.size < size + size = m.size + char = m[0...-1] + end + end + size -= 1 + indent(-size, char) + end + end + + # Equivalent to String#unindent, but modifies the receiver in place. + # + # CREDIT: mynyml + + def unindent! + self.replace(self.unindent) end end