trailblazer-activity-dsl-linear 1.2.4 → 1.2.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|