3 def self.convert (ansi_text)
6 ansi_text.gsub!(/\e\[(.*?)m/) do |i|
11 i_flags = $1.split(';')
12 i_flags.collect! {|f| f.to_i}
18 4 => 'ansi_underline',
32 40 => 'ansi_black_bg',
34 42 => 'ansi_green_bg',
35 43 => 'ansi_yellow_bg',
37 45 => 'ansi_magenta_bg',
42 if i_flags.include?(0)
43 span_tags << '</span>' * @open_tag_count
47 ansi_mapping.each do |ansi_code, id|
48 span_ids << id if i_flags.include?(ansi_code)
51 span_tags << span_ids.collect do |t|
52 @open_tag_count = @open_tag_count.next