Class: String

### Home Classes Methods

### In Files

- lib/loquacious/core_ext/string.rb

### Parent

Object

### Methods

- #gutter
- #gutter!
- #indent
- #reduce

### Files

- History.txt
- README.rdoc

### Class/Module Index

Quicksearch

- Loquacious
- Loquacious::Configuration
- Loquacious::Configuration::DSL
- Loquacious::Configuration::Help
- Loquacious::Configuration::Iterator
- Loquacious::Undefined
- String

No matching classes.

# String

### Public Instance Methods

" | foo\n | bar".gutter! #=> " foo\n bar" click to toggle source

Removes a leading gutter from all lines in the string. The gutter is defined leading whitespace followed by a single pipe character. This method is very useful with heredocs.

    # File lib/loquacious/core_ext/string.rb, line 70
    def gutter
      self.dup.gutter!
    end

" | foo\n | bar".gutter! #=> " foo\n bar" click to toggle source

Removes a leading gutter from all lines in the string. The gutter is defined leading whitespace followed by a single pipe character. This method is very useful with heredocs.

The string will be altered by this method.

    # File lib/loquacious/core_ext/string.rb, line 58
    def gutter!
      gsub! /^[\t\f\r ]*\|?/, ''
      self
    end

"foo".indent( 2 ) #=> " foo" click to toggle source
"foo".indent( '# ' ) #=> "# foo"

Indent the string by the given number of spaces. Alternately, if a leader string is given it will be used to indent with instead of spaces. Indentation is performed at the beginning of the string and after every newline character.

    "foo\nbar".indent( 2 )    #=> "  foo\n  bar"

    # File lib/loquacious/core_ext/string.rb, line 41
    def indent( leader )
      leader =
          Numeric === leader ? ' ' * leader.to_i : leader.to_s
      str = self.gsub("\n", "\n"+leader)
      str.insert(0, leader)
      str
    end

reduce( width, ellipses = '...' ) #=> string click to toggle source

Reduce the size of the current string to the given width by removing characters from the middle of the string and replacing them with ellipses. If the width is greater than the length of the string, the string is returned unchanged. If the width is less than the length of the ellipses, then the ellipses are returned.

    # File lib/loquacious/core_ext/string.rb, line 13
    def reduce( width, ellipses = '...')
      raise ArgumentError, "width cannot be negative: #{width}" if width < 0

      return self if length <= width

      remove = length - width + ellipses.length
      return ellipses.dup if remove >= length

      left_end = (length + 1 - remove) / 2
      right_start = left_end + remove

      left = self[0,left_end]
      right = self[right_start,length-right_start]

      left << ellipses << right
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.