Sha256: a381fc6e619f2b7b897cce9566eb247262c52c00c0900d7fc5049a4bb0d1c2ef

Contents?: true

Size: 1.07 KB

Versions: 5

Compression:

Stored size: 1.07 KB

Contents

class Ginst::ConsoleToHtml

  def self.convert(input_text)
    output = convert_returns(input_text)
    output = convert_lines(output)
    output = convert_colors(output)
  end

  def self.convert_returns(input)
    input.split("\n").map{ |l|
      if l.include? "\r"
       l.split("\r").last
      else
       l
      end
    }.join("\n")
  end

  def self.convert_lines(input)
    input.gsub("\n",'<br/>')
  end

  def self.convert_colors(input)
    open = false
    input.split("\e").map{ |e|
      if e =~ /^\[(\d*)m(.*)/m
        color = $1.to_i
        open_tag_for_color(color)+$2+close_tag_for_color(color)
      else
        e
      end
    }.join
  end

  def self.open_tag_for_color(color)
    color = colors[color] or return ''
    "<span style=\"color: #{color};\">"
  end

  def self.close_tag_for_color(color)
    color = colors[color] or return ''
    "</span>"
  end

  def self.colors
    {
      30 => 'black',
      31 => 'red', 
      32 => 'green',
      33 => 'brown',
      34 => 'blue', 
      35 => 'magenta',
      36 => 'cyan', 
      37 => 'gray'
    }  
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ginst-2009.12.8 lib/ginst/console_to_html.rb
ginst-2009.11.24 lib/ginst/console_to_html.rb
ginst-2009.11.23 lib/ginst/console_to_html.rb
ginst-2.0.1 lib/ginst/console_to_html.rb
ginst-2.0.0 lib/ginst/console_to_html.rb