trailblazer-activity-dsl-linear 1.2.4 → 1.2.5
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 +4 -4
- data/CHANGES.md +12 -0
- data/Gemfile +2 -2
- data/lib/trailblazer/activity/dsl/linear/helper/path.rb +21 -6
- data/lib/trailblazer/activity/dsl/linear/normalizer.rb +1 -0
- data/lib/trailblazer/activity/dsl/linear/strategy.rb +0 -1
- data/lib/trailblazer/activity/dsl/linear/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b99e0c72f1c402fc56bf48c302d04d5749e47f159ce9d7b10a2537665a0af62e
|
4
|
+
data.tar.gz: f3c35842ae2631b358a1decaad27bb32785e578f0f99cf2597757c2e4485a120
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2035d707ca689d84923de40eaccd48b08c355be9351172804dc45d80ded9a141088b26b2d7a464727c5b9c49082018d02085aa3754d0bdca19ad13c6bf70a161
|
7
|
+
data.tar.gz: cfdf092b175fdefd34a0321248aa95f4a5a8c768b18e3f23f9285be10c0f1c720dd633e061b9d079a60d610ef743ad6544597af0bf5adb3cf7cb53b6b9b91502
|
data/CHANGES.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 1.2.5
|
2
|
+
|
3
|
+
* Fix a bug where, within a helper `Path()`, the last step couldn't
|
4
|
+
explicitly define additional `Output()`, e.g. for `:failure`.
|
5
|
+
|
6
|
+
```ruby
|
7
|
+
... => Path(connect_to: Track(:success)) do
|
8
|
+
step :upload,
|
9
|
+
Output(Trailblazer::Activity::Left, :failure) => Track(:failure) # FIXME: this configuration gets lost.
|
10
|
+
end
|
11
|
+
```
|
12
|
+
|
1
13
|
# 1.2.4
|
2
14
|
|
3
15
|
* Fix a bug where using `fail_fast: true` (same with `:pass_fast`) would result in a
|
data/Gemfile
CHANGED
@@ -5,7 +5,7 @@ gemspec
|
|
5
5
|
|
6
6
|
gem "minitest-line"
|
7
7
|
|
8
|
-
|
8
|
+
gem "trailblazer-developer", path: "../trailblazer-developer"
|
9
9
|
# gem "trailblazer-developer", github: "trailblazer/trailblazer-developer"
|
10
10
|
# gem "trailblazer-declarative", path: "../trailblazer-declarative"
|
11
11
|
# gem "trailblazer-activity", path: "../trailblazer-activity"
|
@@ -15,4 +15,4 @@ gem "minitest-line"
|
|
15
15
|
# gem "benchmark-ips"
|
16
16
|
# gem "stackprof"
|
17
17
|
# gem "standard"
|
18
|
-
|
18
|
+
gem "trailblazer-core-utils", path: "../trailblazer-core-utils"
|
@@ -97,14 +97,29 @@ module Trailblazer
|
|
97
97
|
# Connect last row of the {sequence} to the given step via its {Id}
|
98
98
|
# Useful when steps needs to be inserted in between {Start} and {connect Id()}.
|
99
99
|
private def connect_for_sequence(sequence, connect_to:)
|
100
|
-
|
100
|
+
last_step_on_path = sequence[-1]
|
101
|
+
output_searches = last_step_on_path[2]
|
102
|
+
|
103
|
+
last_step_outputs =
|
104
|
+
output_searches.collect do |search_strategy|
|
105
|
+
# TODO: introduce {search_strategy.to_h} so we don't need to execute it here.
|
106
|
+
output, _ = search_strategy.(sequence, last_step_on_path) # FIXME: the Forward() proc contains the row's Output, and the only current way to retrieve it is calling the search strategy. It should be Forward#to_h
|
107
|
+
output
|
108
|
+
end
|
109
|
+
|
110
|
+
# we want to reconnect the last step's {:success} output, everything else we keep.
|
111
|
+
success_output = last_step_outputs.find { |output| output.to_h[:semantic] == :success } or raise
|
112
|
+
|
113
|
+
# FIXME: what about End()?
|
114
|
+
success_search = Sequence::Search.ById(success_output, connect_to.value) if connect_to.instance_of?(Linear::Normalizer::OutputTuples::Id)
|
115
|
+
success_search = Sequence::Search.Forward(success_output, connect_to.color) if connect_to.instance_of?(Linear::Normalizer::OutputTuples::Track) # FIXME: use existing mapping logic!
|
116
|
+
|
117
|
+
success_output_index = last_step_outputs.index(success_output)
|
101
118
|
|
102
|
-
#
|
103
|
-
searches = [Sequence::Search.ById(output, connect_to.value)] if connect_to.instance_of?(Linear::Normalizer::OutputTuples::Id)
|
104
|
-
searches = [Sequence::Search.Forward(output, connect_to.color)] if connect_to.instance_of?(Linear::Normalizer::OutputTuples::Track) # FIXME: use existing mapping logic!
|
119
|
+
output_searches[success_output_index] = success_search # replace the success search strategy. # DISCUSS: a bit cryptical with this index.
|
105
120
|
|
106
|
-
row =
|
107
|
-
row = row[0..1] + [
|
121
|
+
row = last_step_on_path
|
122
|
+
row = row[0..1] + [output_searches] + [row[3]] # FIXME: not mutating an array is so hard: we only want to replace the "searches" element, index 2
|
108
123
|
row = Sequence::Row[*row]
|
109
124
|
|
110
125
|
sequence[0..-2] + [row]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trailblazer-activity-dsl-linear
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Sutterer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: trailblazer-activity
|