Sha256: 910dcee6df15f112bc7e49c73bb0d4fbda59f4ae7d1102d005971f948cf718e7

Contents?: true

Size: 699 Bytes

Versions: 7

Compression:

Stored size: 699 Bytes

Contents

module Ramaze
  module CoreExtensions
    # Extensions for String
    module String
      # Useful for writing indented String and unindent on demand, based on the
      # first line with indentation.
      def unindent
        find_indent = proc{ |l| l.find{|l| !l.strip.empty?}.to_s[/^(\s+)/, 1] }

        lines = self.split("\n")
        space = find_indent[lines]
        space = find_indent[lines.reverse] unless space

        strip.gsub(/^#{space}/, '')
      end
      alias ui unindent

      # Destructive variant of undindent, replacing the String
      def unindent!
        self.replace unindent
      end
      alias ui! unindent!
    end # String
  end # CoreExtensions
end # Ramaze

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ramaze-2023.01.06 lib/ramaze/snippets/string/unindent.rb
ramaze-2012.12.08 lib/ramaze/snippets/string/unindent.rb
ramaze-2012.12.08b lib/ramaze/snippets/string/unindent.rb
ramaze-2012.04.14 lib/ramaze/snippets/string/unindent.rb
ramaze-2012.03.07 lib/ramaze/snippets/string/unindent.rb
ramaze-2011.12.28 lib/ramaze/snippets/string/unindent.rb
ramaze-2011.10.23 lib/ramaze/snippets/string/unindent.rb