Module: TraceVisualization::Reorder

Defined in:
lib/trace_visualization/reorder.rb

Class Method Summary collapse

Class Method Details

.process(data) ⇒ Object

Assign new values (ord field) in order to reduce the distance between min and max values. It’s necessary to reduce the size of the alphabet.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/trace_visualization/reorder.rb', line 6

def self.process(data)
  sorted = data.sort do |a, b|
    c = a.value - b.value
    c == 0 ? 0 : (c < 0 ? -1 : 1) 
  end
  
  idx = 0
  prev = nil
  
  sorted.each do |item|
    if prev != item.value
      prev = item.value
      idx += 1
    end

    item.ord = idx
  end
end