Class: RI::AttributeFormatter

Class | RI::AttributeFormatter
In: | rdoc/ri/ri_formatter.rb
Parent: | TextFormatter

Handle text with attributes. We‘re a base class: there are different presentation classes (one, for example, uses overstrikes to handle bold and underlining, while another using ANSI escape sequences

### Methods

wrap

### Classes and Modules

Class RI::AttributeFormatter::AttrChar
Class RI::AttributeFormatter::AttributeString

### Constants

BOLD | = | 1
ITALIC | = | 2
CODE | = | 4
ATTR_MAP | = | { "b" => BOLD, "code" => CODE, "em" => ITALIC, "i" => ITALIC, "tt" => CODE

### Public Instance methods

wrap(txt, prefix=@indent, linelen=@width)

overrides base class. Looks for `…` etc sequences and generates an array of AttrChars. This array is then used as the basis for the split

[Source]

    # File rdoc/ri/ri_formatter.rb, line 305
        def wrap(txt,  prefix=@indent, linelen=@width)
          return unless txt && !txt.empty?

          txt = add_attributes_to(txt)
          next_prefix = prefix.tr("^ ", " ")
          linelen -= prefix.size

          line = []

          until txt.empty?
            word = txt.next_word
            if word.size + line.size > linelen
              write_attribute_text(prefix, line)
              prefix = next_prefix
              line = []
            end
            line.concat(word)
          end

          write_attribute_text(prefix, line) if line.length > 0
        end

[Validate]