11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/trace_visualization/visualization/console_color_print.rb', line 11
def self.hl(str, repetition)
raise "repetition must be instance of TraceVisualization::Data::Repetition" if not repetition.instance_of? TraceVisualization::Data::Repetition
result = ""
prev_position = 0
positions = repetition.build_positions
positions.each do |position|
result += str[prev_position ... position[0][0]]
for i in 0 ... position.size
pos, len = position[i]
result += GRN + "#{str[pos ... pos + len]}" + FNSH
result += YLW + "#{str[pos + len ... position[i + 1][0]]}" + FNSH if i < position.size - 1
end
prev_position = position[-1][0] + position[-1][1]
end
result += str[prev_position .. -1]
end
|