metadata_presenter 2.14.0 → 2.14.1
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7184f97740de68d7fb003316d4d2bc5a822ccdfa13749c858b638b64b7f59e6
|
4
|
+
data.tar.gz: 6d540b23868160de18de5c3ef87c5a9ef2f7ecc279ed72e4e2c9ab5bb3c0369d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 10c4c37e567f4b1c58546627c480ceda59a1c65bdafeacf65014c044a380a03a7f22f40180674054f5614adc742fd95aca4624b6d8a1af3ac2158b96a0ebbac0
|
7
|
+
data.tar.gz: 3eb7004878552017ce8c9e180675330d824461234ad410f11384b788eeb5ab46a480526020a7edf4efd6ece8d1f7588d0cfd2ed3561fe9270d2c936717072b4b
|
@@ -9,6 +9,10 @@ module MetadataPresenter
|
|
9
9
|
|
10
10
|
def number
|
11
11
|
if service.flow_object(uuid).branch?
|
12
|
+
# Even though we are associating the column number to a specific flow object
|
13
|
+
# in the Coordinates model we do not use column_number + 1 as we are
|
14
|
+
# updating the position for the Spacers that exist for a branch which
|
15
|
+
# are always in the same column as the branch object itself.
|
12
16
|
coordinates.set_branch_spacers_column(uuid, column_number)
|
13
17
|
end
|
14
18
|
|
@@ -39,7 +39,7 @@ module MetadataPresenter
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def set_branch_spacers_column(branch_uuid, column)
|
42
|
-
branch_spacers[branch_uuid].each do |position|
|
42
|
+
branch_spacers[branch_uuid].each do |_, position|
|
43
43
|
position[:column] = column
|
44
44
|
end
|
45
45
|
end
|
@@ -50,7 +50,7 @@ module MetadataPresenter
|
|
50
50
|
# to draw an arrow therefore we increment the row number from the branches
|
51
51
|
# calculated starting row
|
52
52
|
def set_branch_spacers_row(branch_uuid, starting_row)
|
53
|
-
branch_spacers[branch_uuid].each.with_index(starting_row) do |position, row|
|
53
|
+
branch_spacers[branch_uuid].each.with_index(starting_row) do |(_, position), row|
|
54
54
|
position[:row] = row
|
55
55
|
end
|
56
56
|
end
|
@@ -64,12 +64,14 @@ module MetadataPresenter
|
|
64
64
|
service.flow.keys.index_with { |_uuid| { row: nil, column: nil } }
|
65
65
|
end
|
66
66
|
|
67
|
-
# This also takes into account the '
|
67
|
+
# This also takes into account the 'OR' expressions which
|
68
68
|
# need an additional line for an arrow.
|
69
69
|
def setup_branch_spacers
|
70
70
|
service.branches.each.with_object({}) do |branch, hash|
|
71
71
|
destinations = exiting_destinations_from_branch(branch)
|
72
|
-
hash[branch.uuid] = destinations.
|
72
|
+
hash[branch.uuid] = destinations.index_with do |_uuid|
|
73
|
+
{ row: nil, column: nil }
|
74
|
+
end
|
73
75
|
end
|
74
76
|
end
|
75
77
|
end
|
@@ -28,7 +28,7 @@ module MetadataPresenter
|
|
28
28
|
|
29
29
|
return ROW_ZERO if place_on_row_zero?
|
30
30
|
|
31
|
-
existing_row || [current_row, potential_row].compact.max
|
31
|
+
existing_row || [current_row, potential_row, branch_spacer_row].compact.max
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -36,27 +36,60 @@ module MetadataPresenter
|
|
36
36
|
@existing_row ||= coordinates.uuid_row(uuid)
|
37
37
|
end
|
38
38
|
|
39
|
+
# This looks for any branches in the current column and checks that there is
|
40
|
+
# enough space for the any branch conditionals before returning a row number.
|
39
41
|
def potential_row
|
40
42
|
return if branches_in_column.empty?
|
41
43
|
|
42
|
-
row_numbers = branches_in_column.map do |
|
43
|
-
coordinates.branch_spacers[
|
44
|
+
row_numbers = branches_in_column.map do |branch_uuid, _|
|
45
|
+
coordinates.branch_spacers[branch_uuid].map { |_, position| position[:row] }
|
44
46
|
end
|
45
47
|
row_numbers.flatten.max + 1
|
46
48
|
end
|
47
49
|
|
50
|
+
# This looks at the previous column and finds any branches that link to the
|
51
|
+
# current object. If any are found it checks for rows numbers that relate
|
52
|
+
# to the current objects UUID in the branch spacers hash and defaults to
|
53
|
+
# returning the highest row number.
|
54
|
+
def branch_spacer_row
|
55
|
+
return if spacers_for_current_object.empty?
|
56
|
+
|
57
|
+
spacers_for_current_object.map { |position| position[:row] }.max
|
58
|
+
end
|
59
|
+
|
48
60
|
def first_row?
|
49
61
|
@first_row ||= route.row.zero?
|
50
62
|
end
|
51
63
|
|
52
64
|
def branches_in_column
|
53
|
-
@branches_in_column ||=
|
65
|
+
@branches_in_column ||= branches(uuid_column)
|
66
|
+
end
|
67
|
+
|
68
|
+
def branches_in_previous_column
|
69
|
+
@branches_in_previous_column ||= branches(uuid_column - 1)
|
70
|
+
end
|
71
|
+
|
72
|
+
def branches(column_number)
|
73
|
+
coordinates.positions_in_column(column_number).select do |key, position|
|
54
74
|
next if uuid == key || position[:row].blank?
|
55
75
|
|
56
76
|
service.flow_object(key).branch?
|
57
77
|
end
|
58
78
|
end
|
59
79
|
|
80
|
+
def spacers_for_current_object
|
81
|
+
@spacers_for_current_object ||= begin
|
82
|
+
spacer_positions = branches_in_previous_column.select do |key, _|
|
83
|
+
coordinates.branch_spacers[key]
|
84
|
+
end
|
85
|
+
|
86
|
+
current_object_spacers = spacer_positions.map do |branch_uuid, _|
|
87
|
+
coordinates.branch_spacers[branch_uuid][uuid]
|
88
|
+
end
|
89
|
+
current_object_spacers.compact
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
60
93
|
def uuid_column
|
61
94
|
@uuid_column ||= coordinates.uuid_column(uuid)
|
62
95
|
end
|