trailblazer-developer 0.0.17 → 0.0.23
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/.github/workflows/ci.yml +17 -0
- data/CHANGES.md +17 -0
- data/Gemfile +0 -4
- data/LICENSE +1 -1
- data/gems.local.rb +3 -0
- data/lib/trailblazer/developer/render/circuit.rb +3 -3
- data/lib/trailblazer/developer/trace/focusable.rb +0 -2
- data/lib/trailblazer/developer/trace/present.rb +5 -3
- data/lib/trailblazer/developer/version.rb +1 -1
- data/lib/trailblazer/developer/wtf/renderer.rb +3 -0
- data/lib/trailblazer/developer/wtf.rb +10 -9
- data/lib/trailblazer/developer.rb +0 -3
- data/trailblazer-developer.gemspec +3 -4
- metadata +14 -24
- data/.travis.yml +0 -7
- data/lib/trailblazer/developer/client.rb +0 -95
- data/lib/trailblazer/developer/generate.rb +0 -98
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fabb29823b1f8422ec156cc7b8fc2878aef438281457fcaf0040dccf9cd179ed
|
4
|
+
data.tar.gz: dfe238f09fcd0635268ecc47112f50c99134d0a8435fd38321cf6d6de1625da8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d35b2029fb0165b313ef78505a356e0a3549f49fa311e52a2f4c32ae7dbba3d976b404e2d5293bbf9e55aed83d88efd57be6f0176affcfa64af9b0b93ae5f123
|
7
|
+
data.tar.gz: 2cc21b452b8ddd2b72338c854938f548b952dd8ab4fef59e83387194bc18cab8311593d6bce747cff34f70ed92ddde73d501154882edaa6a35d372c9818a0536
|
@@ -0,0 +1,17 @@
|
|
1
|
+
name: CI
|
2
|
+
on: [push, pull_request]
|
3
|
+
jobs:
|
4
|
+
test:
|
5
|
+
strategy:
|
6
|
+
fail-fast: false
|
7
|
+
matrix:
|
8
|
+
# Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
|
9
|
+
ruby: [2.5, 2.6, 2.7, '3.0', head, jruby, jruby-head]
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
steps:
|
12
|
+
- uses: actions/checkout@v2
|
13
|
+
- uses: ruby/setup-ruby@v1
|
14
|
+
with:
|
15
|
+
ruby-version: ${{ matrix.ruby }}
|
16
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
17
|
+
- run: bundle exec rake
|
data/CHANGES.md
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
# 0.0.23
|
2
|
+
|
3
|
+
* Remove `representable` dependency.
|
4
|
+
* Moved all editor-specific code to the `pro` gem.
|
5
|
+
|
6
|
+
# 0.0.22
|
7
|
+
|
8
|
+
* Upgrade trb-activity, trb-activity-dsl-linear and representable versions.
|
9
|
+
|
10
|
+
# 0.0.21
|
11
|
+
|
12
|
+
* Ruby 3.0 support. :sunset:
|
13
|
+
|
14
|
+
# 0.0.20
|
15
|
+
|
16
|
+
* Ruby 2.7 support
|
17
|
+
|
1
18
|
# 0.0.17
|
2
19
|
|
3
20
|
* Add `Arrow.target_lane` field in the `Generate` component.
|
data/Gemfile
CHANGED
@@ -7,7 +7,3 @@ gemspec
|
|
7
7
|
# gem "trailblazer-activity", path: "../trailblazer-activity"
|
8
8
|
# gem "trailblazer-activity-dsl-linear", path: "../trailblazer-activity-dsl-linear"
|
9
9
|
# gem "trailblazer-activity-dsl-linear", github: "trailblazer/trailblazer-activity-dsl-linear"
|
10
|
-
|
11
|
-
gem "representable"
|
12
|
-
gem "faraday"
|
13
|
-
gem "multi_json"
|
data/LICENSE
CHANGED
data/gems.local.rb
CHANGED
@@ -2,8 +2,8 @@ module Trailblazer
|
|
2
2
|
module Developer
|
3
3
|
module_function
|
4
4
|
|
5
|
-
def render(activity)
|
6
|
-
Render::Circuit.(activity)
|
5
|
+
def render(activity, **options)
|
6
|
+
Render::Circuit.(activity, **options)
|
7
7
|
end
|
8
8
|
|
9
9
|
module Render
|
@@ -28,7 +28,7 @@ module Trailblazer
|
|
28
28
|
|
29
29
|
content = content.join("\n")
|
30
30
|
|
31
|
-
|
31
|
+
"\n#{content}".gsub(/0x\w+/, "0x")
|
32
32
|
end
|
33
33
|
|
34
34
|
# If Ruby had pattern matching, this function wasn't necessary.
|
@@ -14,7 +14,8 @@ module Trailblazer::Developer
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def tree(stack, level, tree:, renderer:, **options)
|
17
|
-
|
17
|
+
opts = options.merge(tree: tree)
|
18
|
+
tree_for(stack, level, **opts)
|
18
19
|
|
19
20
|
nodes = tree.each_with_index.map do |task_node, position|
|
20
21
|
renderer.(task_node: task_node, position: position, tree: tree)
|
@@ -27,10 +28,11 @@ module Trailblazer::Developer
|
|
27
28
|
stack.each do |lvl| # always a Stack::Task[input, ..., output]
|
28
29
|
input, output, nested = Trace::Level.input_output_nested_for_level(lvl)
|
29
30
|
|
30
|
-
tree.push(*TreeNodes.for(level, options.merge(input: input, output: output)))
|
31
|
+
tree.push(*TreeNodes.for(level, **options.merge(input: input, output: output)))
|
31
32
|
|
32
33
|
if nested.any? # nesting
|
33
|
-
|
34
|
+
opts = options.merge(tree: tree)
|
35
|
+
tree_for(nested, level + 1, **opts)
|
34
36
|
end
|
35
37
|
|
36
38
|
tree
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Trailblazer::Developer
|
2
2
|
module_function
|
3
3
|
|
4
|
-
def wtf(activity, *args)
|
5
|
-
Wtf.invoke(activity, *args)
|
4
|
+
def wtf(activity, *args, **circuit_options)
|
5
|
+
Wtf.invoke(activity, *args, **circuit_options)
|
6
6
|
end
|
7
7
|
|
8
8
|
class << self
|
@@ -16,11 +16,11 @@ module Trailblazer::Developer
|
|
16
16
|
# This allows to display the trace even when an exception happened
|
17
17
|
def invoke(activity, (ctx, flow_options), **circuit_options)
|
18
18
|
activity, (ctx, flow_options), circuit_options = Wtf.arguments_for_trace(
|
19
|
-
activity, [ctx, flow_options], circuit_options
|
19
|
+
activity, [ctx, flow_options], **circuit_options
|
20
20
|
)
|
21
21
|
|
22
22
|
_returned_stack, signal, (ctx, flow_options) = Trace.invoke(
|
23
|
-
activity, [ctx, flow_options], circuit_options
|
23
|
+
activity, [ctx, flow_options], **circuit_options
|
24
24
|
)
|
25
25
|
|
26
26
|
return signal, [ctx, flow_options], circuit_options
|
@@ -52,7 +52,7 @@ module Trailblazer::Developer
|
|
52
52
|
variables: Array( flow_options.dig(:focus_on, :variables) ),
|
53
53
|
}
|
54
54
|
|
55
|
-
|
55
|
+
[activity, [ ctx, flow_options ], circuit_options]
|
56
56
|
end
|
57
57
|
|
58
58
|
# Overring default input and output data collectors to collect/capture
|
@@ -61,7 +61,7 @@ module Trailblazer::Developer
|
|
61
61
|
def trace_input_data_collector(wrap_config, (ctx, flow_options), circuit_options)
|
62
62
|
data = Trace.default_input_data_collector(wrap_config, [ctx, flow_options], circuit_options)
|
63
63
|
|
64
|
-
if Wtf.
|
64
|
+
if Wtf.capture_variables?(step_name: data[:task_name], **flow_options)
|
65
65
|
data[:focused_variables] = Trace::Focusable.capture_variables_from(ctx, **flow_options)
|
66
66
|
end
|
67
67
|
|
@@ -72,7 +72,7 @@ module Trailblazer::Developer
|
|
72
72
|
data = Trace.default_output_data_collector(wrap_config, [ctx, flow_options], circuit_options)
|
73
73
|
input = flow_options[:stack].top
|
74
74
|
|
75
|
-
if Wtf.
|
75
|
+
if Wtf.capture_variables?(step_name: input.data[:task_name], **flow_options)
|
76
76
|
data[:focused_variables] = Trace::Focusable.capture_variables_from(ctx, **flow_options)
|
77
77
|
end
|
78
78
|
|
@@ -80,10 +80,11 @@ module Trailblazer::Developer
|
|
80
80
|
end
|
81
81
|
|
82
82
|
# private
|
83
|
-
def
|
83
|
+
def capture_variables?(step_name:, focus_on:, **)
|
84
84
|
return true if focus_on[:steps].include?(step_name) # For given step
|
85
85
|
return true if focus_on[:steps].empty? && focus_on[:variables].any? # For selected vars but all steps
|
86
|
-
|
86
|
+
|
87
|
+
false
|
87
88
|
end
|
88
89
|
end
|
89
90
|
end
|
@@ -12,8 +12,5 @@ require "trailblazer/developer/trace"
|
|
12
12
|
require "trailblazer/developer/trace/present"
|
13
13
|
require "trailblazer/developer/trace/focusable"
|
14
14
|
require "trailblazer/developer/trace/inspector"
|
15
|
-
require "trailblazer/developer/generate"
|
16
15
|
require "trailblazer/developer/render/circuit"
|
17
16
|
require "trailblazer/developer/render/linear"
|
18
|
-
|
19
|
-
# require "trailblazer/developer/client"
|
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.email = ["apotonick@gmail.com"]
|
10
10
|
|
11
11
|
spec.summary = "Developer tools for Trailblazer."
|
12
|
-
spec.description = "Developer tools for Trailblazer: debugger,
|
12
|
+
spec.description = "Developer tools for Trailblazer: debugger, activity visualizer and tracing."
|
13
13
|
spec.homepage = "http://trailblazer.to"
|
14
14
|
spec.license = "LGPL-3.0"
|
15
15
|
|
@@ -23,8 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "minitest-line"
|
24
24
|
spec.add_development_dependency "rake"
|
25
25
|
|
26
|
-
spec.add_dependency "trailblazer-activity", ">= 0.
|
27
|
-
spec.add_dependency "trailblazer-activity-dsl-linear"
|
28
|
-
spec.add_dependency "representable"
|
26
|
+
spec.add_dependency "trailblazer-activity", ">= 0.12.2", "< 1.0.0"
|
27
|
+
spec.add_dependency "trailblazer-activity-dsl-linear", ">= 0.4.1", "< 1.0.0"
|
29
28
|
spec.add_dependency "hirb"
|
30
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trailblazer-developer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.23
|
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: 2022-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,7 +72,7 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: 0.12.2
|
76
76
|
- - "<"
|
77
77
|
- !ruby/object:Gem::Version
|
78
78
|
version: 1.0.0
|
@@ -82,7 +82,7 @@ dependencies:
|
|
82
82
|
requirements:
|
83
83
|
- - ">="
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version: 0.
|
85
|
+
version: 0.12.2
|
86
86
|
- - "<"
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: 1.0.0
|
@@ -92,28 +92,20 @@ dependencies:
|
|
92
92
|
requirements:
|
93
93
|
- - ">="
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version:
|
96
|
-
|
97
|
-
prerelease: false
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - ">="
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '0'
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: representable
|
105
|
-
requirement: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
107
|
-
- - ">="
|
95
|
+
version: 0.4.1
|
96
|
+
- - "<"
|
108
97
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
98
|
+
version: 1.0.0
|
110
99
|
type: :runtime
|
111
100
|
prerelease: false
|
112
101
|
version_requirements: !ruby/object:Gem::Requirement
|
113
102
|
requirements:
|
114
103
|
- - ">="
|
115
104
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
105
|
+
version: 0.4.1
|
106
|
+
- - "<"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: 1.0.0
|
117
109
|
- !ruby/object:Gem::Dependency
|
118
110
|
name: hirb
|
119
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,15 +120,15 @@ dependencies:
|
|
128
120
|
- - ">="
|
129
121
|
- !ruby/object:Gem::Version
|
130
122
|
version: '0'
|
131
|
-
description: 'Developer tools for Trailblazer: debugger,
|
123
|
+
description: 'Developer tools for Trailblazer: debugger, activity visualizer and tracing.'
|
132
124
|
email:
|
133
125
|
- apotonick@gmail.com
|
134
126
|
executables: []
|
135
127
|
extensions: []
|
136
128
|
extra_rdoc_files: []
|
137
129
|
files:
|
130
|
+
- ".github/workflows/ci.yml"
|
138
131
|
- ".gitignore"
|
139
|
-
- ".travis.yml"
|
140
132
|
- CHANGES.md
|
141
133
|
- Gemfile
|
142
134
|
- LICENSE
|
@@ -146,8 +138,6 @@ files:
|
|
146
138
|
- bin/setup
|
147
139
|
- gems.local.rb
|
148
140
|
- lib/trailblazer/developer.rb
|
149
|
-
- lib/trailblazer/developer/client.rb
|
150
|
-
- lib/trailblazer/developer/generate.rb
|
151
141
|
- lib/trailblazer/developer/render/circuit.rb
|
152
142
|
- lib/trailblazer/developer/render/linear.rb
|
153
143
|
- lib/trailblazer/developer/trace.rb
|
@@ -178,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
178
168
|
- !ruby/object:Gem::Version
|
179
169
|
version: '0'
|
180
170
|
requirements: []
|
181
|
-
rubygems_version: 3.
|
171
|
+
rubygems_version: 3.2.3
|
182
172
|
signing_key:
|
183
173
|
specification_version: 4
|
184
174
|
summary: Developer tools for Trailblazer.
|
data/.travis.yml
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
require "faraday"
|
2
|
-
require "base64"
|
3
|
-
require "json"
|
4
|
-
require "representable/json"
|
5
|
-
|
6
|
-
module Trailblazer::Developer
|
7
|
-
module Client
|
8
|
-
Diagram = Struct.new(:id, :body)
|
9
|
-
|
10
|
-
class Diagram::Representer < Representable::Decorator
|
11
|
-
include Representable::JSON
|
12
|
-
property :id
|
13
|
-
property :body, as: :diagram
|
14
|
-
end
|
15
|
-
|
16
|
-
module_function
|
17
|
-
|
18
|
-
def Diagram(id, body)
|
19
|
-
Diagram.new(id, body).freeze
|
20
|
-
end
|
21
|
-
|
22
|
-
def import(id:, query:"", **options)
|
23
|
-
token = retrieve_token(**options)
|
24
|
-
export_diagram(id: id, token: token, query: query, **options)
|
25
|
-
end
|
26
|
-
|
27
|
-
def retrieve_token(email:, api_key:, url: "/signin", **options)
|
28
|
-
body = JSON.generate({email: email, api_key: api_key})
|
29
|
-
|
30
|
-
response = request(token: nil, method: :get, url: url, body: body, **options)
|
31
|
-
return false unless response.status == 200
|
32
|
-
|
33
|
-
# token = CGI::Cookie.parse(response.headers["set-cookie"])["token"][0]
|
34
|
-
JSON.parse(response.body)["token"]
|
35
|
-
end
|
36
|
-
|
37
|
-
def export_diagram(id:, query:, **options)
|
38
|
-
response = request(body: nil, url: "/api/v1/diagrams/#{id}/export#{query}", method: :get, **options)
|
39
|
-
|
40
|
-
# parse_response(response)
|
41
|
-
response.body
|
42
|
-
end
|
43
|
-
|
44
|
-
def duplicate(id:, **options)
|
45
|
-
token = retrieve_token(**options)
|
46
|
-
|
47
|
-
response = request(body: nil, token: token, url: "/api/v1/diagrams/#{id}/duplicate", method: :get, **options)
|
48
|
-
parse_response(response)
|
49
|
-
end
|
50
|
-
|
51
|
-
# DISCUSS: do we need that?
|
52
|
-
def new_diagram(token:, **options)
|
53
|
-
response = request(body: nil, url: "/api/v1/diagrams/new", method: :get, token: token, **options)
|
54
|
-
|
55
|
-
# TODO: use Dry::Struct
|
56
|
-
# TODO: handle unauthorized/errors
|
57
|
-
parse_response(response)
|
58
|
-
end
|
59
|
-
|
60
|
-
def request(host:, url:, method:, token:, body:, **)
|
61
|
-
conn = Faraday.new(url: host)
|
62
|
-
|
63
|
-
conn.send(method) do |req|
|
64
|
-
req.url url
|
65
|
-
req.headers["Content-Type"] = "application/json"
|
66
|
-
req.body = body
|
67
|
-
req.headers["Authorization"] = token
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
def parse_response(response)
|
72
|
-
diagram = Diagram.new
|
73
|
-
Diagram::Representer.new(diagram).from_json(response.body) # a parsed hash would be cooler?
|
74
|
-
|
75
|
-
diagram
|
76
|
-
end
|
77
|
-
|
78
|
-
# TODO: remove me!
|
79
|
-
def self.push(operation:, name:)
|
80
|
-
xml = Trailblazer::Diagram::BPMN.to_xml(operation["__activity__"], operation["__sequence__"].map(&:id))
|
81
|
-
token = "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJpZCI6MywidXNlcm5hbWUiOiJhcG90b25pY2siLCJlbWFpbCI6Im5pY2tAdHJhaWxibGF6ZXIudG8ifQ." # rubocop:disable Metrics/LineLength
|
82
|
-
conn = Faraday.new(url: "https://api.trb.to")
|
83
|
-
response = conn.post do |req|
|
84
|
-
req.url "/dev/v1/import"
|
85
|
-
req.headers["Content-Type"] = "application/json"
|
86
|
-
req.headers["Authorization"] = token
|
87
|
-
require "base64"
|
88
|
-
|
89
|
-
req.body = %({ "name": "#{name}", "xml":"#{Base64.strict_encode64(xml)}" })
|
90
|
-
end
|
91
|
-
|
92
|
-
puts response.status.inspect
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
@@ -1,98 +0,0 @@
|
|
1
|
-
require "representable/hash"
|
2
|
-
require "trailblazer/activity/dsl/linear" # Railway.
|
3
|
-
|
4
|
-
module Trailblazer
|
5
|
-
module Developer
|
6
|
-
# Computes an {Intermediate} data structure from a TRB-editor.js file.
|
7
|
-
module Generate
|
8
|
-
module_function
|
9
|
-
|
10
|
-
Element = Struct.new(:id, :type, :linksTo, :data, :label, :parent)
|
11
|
-
Arrow = Struct.new(:target, :label, :message, :target_lane)
|
12
|
-
|
13
|
-
module Representer
|
14
|
-
class Activity < Representable::Decorator
|
15
|
-
include Representable::Hash
|
16
|
-
|
17
|
-
collection :elements, class: Element do
|
18
|
-
property :id
|
19
|
-
property :type
|
20
|
-
collection :linksTo, class: Arrow, default: ::Declarative::Variables::Append([]) do
|
21
|
-
property :target
|
22
|
-
property :label
|
23
|
-
property :message
|
24
|
-
property :target_lane
|
25
|
-
end
|
26
|
-
property :data, default: {}
|
27
|
-
|
28
|
-
property :label
|
29
|
-
property :parent # TODO: remove?
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def call(hash)
|
35
|
-
_, (ctx, _) = Activity::TaskWrap.invoke(Pipeline, hash: hash)
|
36
|
-
ctx[:intermediate]
|
37
|
-
end
|
38
|
-
|
39
|
-
def transform_from_hash(ctx, hash:, parser: Representer::Activity, **)
|
40
|
-
ctx[:elements] = parser.new(OpenStruct.new).from_hash(hash).elements
|
41
|
-
end
|
42
|
-
|
43
|
-
def find_start_events(ctx, elements:, **)
|
44
|
-
ctx[:start_events] = elements.find_all { |el| el.type == "Event" }
|
45
|
-
end
|
46
|
-
|
47
|
-
def compute_intermediate(ctx, elements:, start_events:, **)
|
48
|
-
end_events = elements.find_all { |el| el.type == "EndEventTerminate" } # DISCUSS: is it really called TERMINATE?
|
49
|
-
|
50
|
-
inter = Activity::Schema::Intermediate
|
51
|
-
|
52
|
-
wiring = elements.collect { |el|
|
53
|
-
data = data_for(el)
|
54
|
-
|
55
|
-
[inter.TaskRef(el.id, data), el.linksTo.collect { |arrow| inter.Out(semantic_for(**arrow.to_h), arrow.target) } ] }
|
56
|
-
wiring = Hash[wiring]
|
57
|
-
|
58
|
-
# end events need this stupid special handling
|
59
|
-
# DISCUSS: currently, the END-SEMANTIC is read from the event's label.
|
60
|
-
wiring = wiring.merge(Hash[
|
61
|
-
end_events.collect do |_end|
|
62
|
-
ref, = wiring.find { |ref, _| ref.id == _end.id }
|
63
|
-
|
64
|
-
[ref, [inter.Out(semantic_for(**_end.to_h)|| raise, nil)]] # TODO: test the raise, happens when the semantic of an End can't be distinguished. # TODO: don't extract semantic from :label but from :data.
|
65
|
-
end
|
66
|
-
])
|
67
|
-
# pp wiring
|
68
|
-
|
69
|
-
ctx[:intermediate] = inter.new(wiring, end_events.collect(&:id), start_events.collect(&:id))
|
70
|
-
end
|
71
|
-
|
72
|
-
# private
|
73
|
-
|
74
|
-
def data_for(element)
|
75
|
-
{type: element.type}.merge(element.data)
|
76
|
-
end
|
77
|
-
|
78
|
-
# We currently use the {:label} field of an arrow to encode an output semantic.
|
79
|
-
# The {:symbol_style} part will be filtered out as semantic. Defaults to {:success}.
|
80
|
-
def semantic_for(label:nil, **)
|
81
|
-
return :success unless label
|
82
|
-
|
83
|
-
extract_semantic(label)
|
84
|
-
end
|
85
|
-
|
86
|
-
def extract_semantic(label)
|
87
|
-
label.to_sym
|
88
|
-
end
|
89
|
-
|
90
|
-
class Pipeline < Trailblazer::Activity::Railway
|
91
|
-
step Generate.method(:transform_from_hash), id: :transform_from_hash
|
92
|
-
step Generate.method(:find_start_events), id: :find_start_events
|
93
|
-
step Generate.method(:compute_intermediate), id: :compute_intermediate
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
98
|
-
# [Inter::Out(:success, nil)]
|