Class: RI::AttributeFormatter

Inherits:
TextFormatter show all
Defined in:
lib/rdoc/ri/ri_formatter.rb

Overview

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

Direct Known Subclasses

AnsiFormatter, HtmlFormatter, OverstrikeFormatter

Defined Under Namespace

Classes: AttrChar, AttributeString

Constant Summary collapse

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

Constants inherited from TextFormatter

TextFormatter::FORMATTERS

Instance Attribute Summary

Attributes inherited from TextFormatter

#indent

Instance Method Summary collapse

Methods inherited from TextFormatter

#blankline, #break_to_newline, #conv_html, #conv_markup, #display_flow, #display_flow_item, #display_heading, #display_list, #display_verbatim_flow_item, #draw_line, for, #initialize, list, #raw_print_line, #strip_attributes

Constructor Details

This class inherits a constructor from RI::TextFormatter

Instance Method Details

#wrap(txt, prefix = @indent, linelen = @width) ⇒ Object

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



305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
# File 'lib/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