trailblazer-developer 0.0.5 → 0.0.6
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/lib/trailblazer/developer/CHANGES.md +7 -0
- data/lib/trailblazer/developer/client.rb +6 -6
- data/lib/trailblazer/developer/config.rb +30 -0
- data/lib/trailblazer/developer/generate.rb +1 -35
- data/lib/trailblazer/developer/version.rb +1 -1
- data/lib/trailblazer/developer/wtf.rb +20 -26
- data/lib/trailblazer/developer.rb +1 -0
- data/trailblazer-developer.gemspec +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4457d9f0cca19b8f72a8e492f8d155c5d8a3459015201d03548a71b26911f0b2
|
4
|
+
data.tar.gz: f6035eaca82336afb3d836f40c96910b37298e2c5eee8b90fac93a2d5c563b5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7c7243f9b266f750a47046e5fce4ad73c08b8e44dcf6ea5bf7b40f008565130bec440ab1c372dcfc312436c7b5ac44b9113a3411677b87954aa4d232696d804
|
7
|
+
data.tar.gz: ebcd6ebbf1b448a306566b07c1042324eac3291b077cafc62c389cf78533034f187fd467a33e2142ac89d3a7d9b954c873dc31915d1278c71b4ffb7b7921d44e
|
@@ -1,5 +1,12 @@
|
|
1
|
+
# 0.0.6
|
2
|
+
|
3
|
+
* Remove ID extraction logic from `Generate`, this is done on the server-side.
|
4
|
+
* Print `wtf` trace in all cases (with or without exception)
|
5
|
+
* Allow color configuration in `wtf` trace
|
6
|
+
|
1
7
|
# 0.0.5
|
2
8
|
|
9
|
+
* Introduce `:query` option for `Client.import`.
|
3
10
|
* In `Generate`, added `Element.parent` field.
|
4
11
|
* No more magic is applied when extracting the ID/semantic. We just use the plain string.
|
5
12
|
|
@@ -24,14 +24,14 @@ module Trailblazer::Developer
|
|
24
24
|
export_diagram(id: id, token: token, query: query, **options)
|
25
25
|
end
|
26
26
|
|
27
|
-
def retrieve_token(email:,
|
28
|
-
body = JSON.generate({
|
27
|
+
def retrieve_token(email:, api_key:, url: "/signin", **options)
|
28
|
+
body = JSON.generate({email: email, api_key: api_key})
|
29
29
|
|
30
|
-
response = request(token: nil, method: :
|
30
|
+
response = request(token: nil, method: :get, url: url, body: body, **options)
|
31
|
+
return false unless response.status == 200
|
31
32
|
|
32
|
-
|
33
|
-
|
34
|
-
token = CGI::Cookie.parse(response.headers["set-cookie"])["token"][0]
|
33
|
+
# token = CGI::Cookie.parse(response.headers["set-cookie"])["token"][0]
|
34
|
+
token = JSON.parse(response.body)["token"]
|
35
35
|
end
|
36
36
|
|
37
37
|
def export_diagram(id:, query:, **options)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Trailblazer::Developer
|
2
|
+
# {config} gives global settings for Developer
|
3
|
+
# Trailblazer::Developer.configure do |config|
|
4
|
+
# config.trace_color_map[Trailblazer::Activity::Right] = :green
|
5
|
+
# config.trace_color_map.default = :green
|
6
|
+
# end
|
7
|
+
|
8
|
+
class << self
|
9
|
+
def configure
|
10
|
+
yield config
|
11
|
+
end
|
12
|
+
|
13
|
+
def config
|
14
|
+
@config ||= Config.new
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
class Config
|
19
|
+
attr_reader :trace_color_map
|
20
|
+
|
21
|
+
def initialize
|
22
|
+
@trace_color_map = {
|
23
|
+
Trailblazer::Activity::Right => :green,
|
24
|
+
Trailblazer::Activity::Left => :brown
|
25
|
+
}
|
26
|
+
|
27
|
+
@trace_color_map.default = :green
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -24,14 +24,13 @@ module Trailblazer
|
|
24
24
|
property :data, default: {}
|
25
25
|
|
26
26
|
property :label
|
27
|
-
property :parent
|
27
|
+
property :parent # TODO: remove?
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
def call(hash)
|
33
33
|
elements = transform_from_hash(hash)
|
34
|
-
elements = remap_ids(elements)
|
35
34
|
|
36
35
|
compute_intermediate(elements)
|
37
36
|
end
|
@@ -69,8 +68,6 @@ module Trailblazer
|
|
69
68
|
|
70
69
|
# private
|
71
70
|
|
72
|
-
|
73
|
-
|
74
71
|
# We currently use the {:label} field of an arrow to encode an output semantic.
|
75
72
|
# The {:symbol_style} part will be filtered out as semantic. Defaults to {:success}.
|
76
73
|
def semantic_for(label:nil, **)
|
@@ -82,37 +79,6 @@ module Trailblazer
|
|
82
79
|
def extract_semantic(label)
|
83
80
|
label.to_sym
|
84
81
|
end
|
85
|
-
|
86
|
-
def extract_string_id(label)
|
87
|
-
m = label.match(/"(.+)"/) or return
|
88
|
-
return m[1].to_sym
|
89
|
-
end
|
90
|
-
|
91
|
-
def extract_id(label)
|
92
|
-
extract_string_id(label) || extract_semantic(label)
|
93
|
-
end
|
94
|
-
|
95
|
-
# remap {id}
|
96
|
-
def remap_ids(elements)
|
97
|
-
map = {}
|
98
|
-
|
99
|
-
elements.collect do |el|
|
100
|
-
id = (el.label && semantic = extract_id(el.label)) ? semantic : el.id.to_sym
|
101
|
-
|
102
|
-
map[el.id] = id
|
103
|
-
|
104
|
-
el.id = id
|
105
|
-
end
|
106
|
-
|
107
|
-
# remap {linksTo}
|
108
|
-
elements.collect do |el|
|
109
|
-
el.linksTo.collect do |link|
|
110
|
-
link.target = map[link.target]
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
elements
|
115
|
-
end
|
116
82
|
end
|
117
83
|
end
|
118
84
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'trailblazer/activity'
|
2
|
+
|
1
3
|
module Trailblazer::Developer
|
2
4
|
module_function
|
3
5
|
|
@@ -12,6 +14,8 @@ module Trailblazer::Developer
|
|
12
14
|
module Wtf
|
13
15
|
module_function
|
14
16
|
|
17
|
+
COLOR_MAP = Trailblazer::Developer.config.trace_color_map
|
18
|
+
|
15
19
|
# Run {activity} with tracing enabled and inject a mutable {Stack} instance.
|
16
20
|
# This allows to display the trace even when an exception happened
|
17
21
|
def invoke(activity, (ctx, flow_options), *args)
|
@@ -22,45 +26,35 @@ module Trailblazer::Developer
|
|
22
26
|
stack = Trailblazer::Activity::Trace::Stack.new
|
23
27
|
|
24
28
|
begin
|
25
|
-
_returned_stack, *returned = Trailblazer::Activity::Trace.invoke(
|
29
|
+
_returned_stack, *returned = Trailblazer::Activity::Trace.invoke(
|
30
|
+
activity,
|
26
31
|
[
|
27
32
|
ctx,
|
28
33
|
flow_options.merge(stack: stack)
|
29
34
|
],
|
30
35
|
*args
|
31
36
|
)
|
32
|
-
|
33
|
-
# DISCUSS: we shouldn't use internal knowledge of the Stack/Level API here.
|
34
|
-
closest = stack.to_a
|
35
|
-
while closest.is_a?(Trailblazer::Activity::Trace::Level) && closest = closest.last do # FIXME: deep-dive via Stack API.
|
36
|
-
end
|
37
|
-
|
38
|
-
# pp closest.task # this was the last executed task
|
37
|
+
puts Trailblazer::Activity::Trace::Present.(stack, renderer: method(:renderer))
|
39
38
|
|
40
|
-
|
39
|
+
rescue => exception
|
40
|
+
puts Trailblazer::Activity::Trace::Present.(stack, renderer: method(:renderer))
|
41
|
+
raise(exception)
|
41
42
|
end
|
42
43
|
|
43
|
-
|
44
|
-
|
45
|
-
returned # FIXME: test me
|
46
|
-
end
|
47
|
-
|
48
|
-
def exception_renderer(stack:, level:, input:, name:, closest_task:)
|
49
|
-
return [ level, %{#{fmt(fmt(name, :red), :bold)}} ] if input.task == closest_task
|
50
|
-
[ level, %{#{name}} ]
|
44
|
+
returned
|
51
45
|
end
|
52
46
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
puts " #{exception.backtrace[0]}"
|
58
|
-
puts " #{exception.backtrace[1]}"
|
59
|
-
puts
|
60
|
-
puts Trailblazer::Activity::Trace::Present.(stack, closest_task: closest_task, renderer: method(:exception_renderer))
|
61
|
-
end
|
47
|
+
def renderer(task_node:, position:, tree:)
|
48
|
+
if task_node[:output].nil? && tree[position.next].nil? # i.e. when exception raised
|
49
|
+
return [ task_node[:level], %{#{fmt(fmt(task_node[:name], :red), :bold)}} ]
|
50
|
+
end
|
62
51
|
|
52
|
+
if task_node[:output].nil? # i.e. on entry/exit point of activity
|
53
|
+
return [ task_node[:level], %{#{fmt(task_node[:name], COLOR_MAP.default)}} ]
|
54
|
+
end
|
63
55
|
|
56
|
+
[ task_node[:level], %{#{fmt(task_node[:name], COLOR_MAP[task_node[:output].data])}} ]
|
57
|
+
end
|
64
58
|
|
65
59
|
def fmt(line, style)
|
66
60
|
String.send(style, line)
|
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "rake"
|
24
24
|
spec.add_development_dependency "rubocop"
|
25
25
|
|
26
|
-
spec.add_dependency "trailblazer-activity", "
|
26
|
+
spec.add_dependency "trailblazer-activity", ">= 0.8.4"
|
27
27
|
spec.add_dependency "trailblazer-activity-dsl-linear"
|
28
28
|
spec.add_dependency "representable"
|
29
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.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Sutterer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -84,16 +84,16 @@ dependencies:
|
|
84
84
|
name: trailblazer-activity
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 0.8.4
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 0.8.4
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: trailblazer-activity-dsl-linear
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,6 +142,7 @@ files:
|
|
142
142
|
- lib/trailblazer/developer/CHANGES.md
|
143
143
|
- lib/trailblazer/developer/activity.rb
|
144
144
|
- lib/trailblazer/developer/client.rb
|
145
|
+
- lib/trailblazer/developer/config.rb
|
145
146
|
- lib/trailblazer/developer/generate.rb
|
146
147
|
- lib/trailblazer/developer/render/circuit.rb
|
147
148
|
- lib/trailblazer/developer/render/linear.rb
|