Module: JobInvocationOutputHelper
- Defined in:
- app/helpers/job_invocation_output_helper.rb
Constant Summary collapse
- COLOR_PATTERN =
/\e\[.*?m/.freeze
- CONSOLE_COLOR =
{ '31' => 'red', '32' => 'lightgreen', '33' => 'orange', '34' => 'deepskyblue', '35' => 'mediumpurple', '36' => 'cyan', '37' => 'grey', '91' => 'red', '92' => 'lightgreen', '93' => 'yellow', '94' => 'lightblue', '95' => 'violet', '96' => 'turquoise', '0' => 'default', }.tap { |h| h.default = 'default' }.freeze
Instance Method Summary collapse
Instance Method Details
#colorize_line(line) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/helpers/job_invocation_output_helper.rb', line 20 def colorize_line(line) line = line.gsub(COLOR_PATTERN) do |seq| color = seq[/(\d+)m/,1] "{{{format color:#{color}}}}" end @current_color ||= 'default' out = %{<span style="color: #{@current_color}">} parts = line.split(/({{{format.*?}}})/) parts.each do |console_line| if console_line.include?('{{{format') if (color_index = console_line[/color:(\d+)/, 1]).present? @current_color = CONSOLE_COLOR[color_index] out << %{</span><span style="color: #{@current_color}">} end else out << h(console_line) end end out << %{</span>} out end |