Class: Tkn2::ANSIReader

Inherits:
Object
  • Object
show all
Defined in:
lib/tkn2/ansi_reader.rb

Direct Known Subclasses

Remover, Screen

Defined Under Namespace

Classes: Remover, Screen

Constant Summary collapse

SText =
0
SCode =
1

Instance Method Summary collapse

Instance Method Details

#parse(content) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/tkn2/ansi_reader.rb', line 8

def parse(content)
  io = StringIO.new(content)
  state = SText
  buffer = ''
  while c = io.getc
    case state
    when SCode
      if c == 'm'
        code(buffer)
        state = SText
      else
        buffer << c
      end
    when SText
      if c == ?\e
        state = SCode
        buffer = ''
      else
        char(c)
      end
    end
  end
end