Class: RDoc::RI::AnsiFormatter

Inherits:
AttributeFormatter show all
Defined in:
lib/rdoc/ri/formatter.rb

Overview

This formatter uses ANSI escape sequences to colorize stuff works with pagers such as man and less.

Constant Summary collapse

HEADINGS =
{
  1 => ["\033[1;32m", "\033[m"],
  2 => ["\033[4;32m", "\033[m"],
  3 => ["\033[32m",   "\033[m"],
}

Constants inherited from AttributeFormatter

RDoc::RI::AttributeFormatter::BOLD, RDoc::RI::AttributeFormatter::CODE, RDoc::RI::AttributeFormatter::ITALIC

Constants inherited from Formatter

Formatter::FORMATTERS

Instance Attribute Summary

Attributes inherited from Formatter

#indent, #output

Instance Method Summary collapse

Methods inherited from AttributeFormatter

#wrap

Methods inherited from Formatter

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

Constructor Details

#initialize(*args) ⇒ AnsiFormatter

Returns a new instance of AnsiFormatter.



382
383
384
385
# File 'lib/rdoc/ri/formatter.rb', line 382

def initialize(*args)
  super
  @output.print "\033[0m"
end

Instance Method Details

#bold_print(txt) ⇒ Object



402
403
404
# File 'lib/rdoc/ri/formatter.rb', line 402

def bold_print(txt)
  @output.print "\033[1m#{txt}\033[m"
end

#display_heading(text, level, indent) ⇒ Object



412
413
414
415
416
417
418
419
# File 'lib/rdoc/ri/formatter.rb', line 412

def display_heading(text, level, indent)
  level = 3 if level > 3
  heading = HEADINGS[level]
  @output.print indent
  @output.print heading[0]
  @output.print strip_attributes(text)
  @output.puts heading[1]
end

#write_attribute_text(prefix, line) ⇒ Object



387
388
389
390
391
392
393
394
395
396
397
398
399
400
# File 'lib/rdoc/ri/formatter.rb', line 387

def write_attribute_text(prefix, line)
  @output.print prefix
  curr_attr = 0
  line.each do |achar|
    attr = achar.attr
    if achar.attr != curr_attr
      update_attributes(achar.attr)
      curr_attr = achar.attr
    end
    @output.print achar.char
  end
  update_attributes(0) unless curr_attr.zero?
  @output.puts
end