5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'app/controllers/hyperlayer/events_controller.rb', line 5
def index
@spec = Spec.find(params[:spec_id])
@example_group = @spec.example_groups.find(params[:example_group_id])
@events = @example_group.events
.call
.includes(:path)
.where(path: { spec: nil })
.order(id: :asc)
.select { |e| e.path.path.include?(APP_DIR) }
@groups = []
used_ids = []
@events.each.with_index do |event, index|
next if used_ids.flatten.include?(event.id)
batch = { event.defined_class => [] }
count = index
while true do
next_event = @events[count]
break if next_event.nil? || next_event.defined_class != event.defined_class
batch[event.defined_class] << @events[count]
count += 1
end
@groups << batch
used_ids << batch.values.flatten.map(&:id)
used_ids.flatten
end
@tree = BuildTree.call(@events)
end
|