In Files

  • rdoc/markup/to_ansi.rb

Class/Module Index [+]

Quicksearch

RDoc::Markup::ToAnsi

Outputs RDoc markup with vibrant ANSI color!

Public Class Methods

new(markup = nil) click to toggle source

Creates a new ToAnsi visitor that is ready to output vibrant ANSI color!

 
               # File rdoc/markup/to_ansi.rb, line 9
def initialize markup = nil
  super

  @headings.clear
  @headings[1] = ["\e[1;32m", "\e[m"] # bold
  @headings[2] = ["\e[4;32m", "\e[m"] # underline
  @headings[3] = ["\e[32m",   "\e[m"] # just green
end
            

Public Instance Methods

accept_list_item_end(list_item) click to toggle source

Overrides indent width to ensure output lines up correctly.

 
               # File rdoc/markup/to_ansi.rb, line 30
def accept_list_item_end list_item
  width = case @list_type.last
          when :BULLET then
            2
          when :NOTE, :LABEL then
            if @prefix then
              @res << @prefix.strip
              @prefix = nil
            end

            @res << "\n" unless res.length == 1
            2
          else
            bullet = @list_index.last.to_s
            @list_index[-1] = @list_index.last.succ
            bullet.length + 2
          end

  @indent -= width
end
            
accept_list_item_start(list_item) click to toggle source

Adds coloring to note and label list items

 
               # File rdoc/markup/to_ansi.rb, line 54
def accept_list_item_start list_item
  bullet = case @list_type.last
           when :BULLET then
             '*'
           when :NOTE, :LABEL then
             labels = Array(list_item.label).map do |label|
               attributes(label).strip
             end.join "\n"

             labels << ":\n" unless labels.empty?

             labels
           else
             @list_index.last.to_s + '.'
           end

  case @list_type.last
  when :NOTE, :LABEL then
    @indent += 2
    @prefix = bullet + (' ' * @indent)
  else
    @prefix = (' ' * @indent) + bullet.ljust(bullet.length + 1)

    width = bullet.gsub(/\e\[[\d;]*m/, '').length + 1

    @indent += width
  end
end
            
init_tags() click to toggle source

Maps attributes to ANSI sequences

 
               # File rdoc/markup/to_ansi.rb, line 21
def init_tags
  add_tag :BOLD, "\e[1m", "\e[m"
  add_tag :TT,   "\e[7m", "\e[m"
  add_tag :EM,   "\e[4m", "\e[m"
end
            
start_accepting() click to toggle source

Starts accepting with a reset screen

 
               # File rdoc/markup/to_ansi.rb, line 86
def start_accepting
  super

  @res = ["\e[0m"]
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus