Class: TermColor::MyListener

### Home Classes Methods

### In Files

- lib/termcolor.rb

### Parent

Object

### Methods

- ::new
- #tag_end
- #tag_start
- #text
- #to_esc_seq

### Included Modules

- REXML::StreamListener

### Files

- History.txt
- README.rdoc

### Class/Module Index

Quicksearch

- TermColor
- TermColor::MyListener
- String

No matching classes.

# TermColor::MyListener

### Attributes

result[R]

### Public Class Methods

new() click to toggle source

    # File lib/termcolor.rb, line 69
    def initialize
      @result = ''
      @tag_stack = []
    end

### Public Instance Methods

tag_end(name) click to toggle source

    # File lib/termcolor.rb, line 86
    def tag_end(name)
      @tag_stack.pop
      @result << HighLine::CLEAR
      @result << @tag_stack.map{|i| to_esc_seq(i)}.join unless @tag_stack.empty?
    end

tag_start(name, attrs) click to toggle source

    # File lib/termcolor.rb, line 74
    def tag_start(name, attrs)
      esc_seq = to_esc_seq(name)
      if esc_seq
        @result << esc_seq
        @tag_stack.push(name)
      end
    end

text(text) click to toggle source

    # File lib/termcolor.rb, line 82
    def text(text)
      @result << CGI.unescapeHTML(text)
    end

to_esc_seq(name) click to toggle source

    # File lib/termcolor.rb, line 92
    def to_esc_seq(name)
      if (HighLine.const_defined?(name.upcase) rescue false)
        HighLine.const_get(name.upcase)
      else
        case name
        when /^([fb])(\d+)$/
          fb = $1 == 'f' ? 38 : 48
          color = $2.size == 3 ? 16 + $2.to_i(6) : 232 + $2.to_i
          "\e[#{fb};5;#{color}m"
        when /^[^0-9]?(\d+)$/
          "\e[#{$1}m"
        end
      end
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.