metadata_presenter 2.14.0 → 2.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
|