trailblazer-developer 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c162908350116143c05730ff70ef9336d826214f9a3fca7d159e5487ad4814a3
4
- data.tar.gz: 07dc4b9adccc4a6b302f4b1382791a1b7001244b4ecb6e600dd6e67986eb13be
3
+ metadata.gz: a335d20215b1a63a952f0e94df992dd342cbf24dc20b91f7b70d41c120cb8dd3
4
+ data.tar.gz: 79f2dc801129d1f23b08ff48ec0f57c2384c07a60d91d938c0e2295f83e0a542
5
5
  SHA512:
6
- metadata.gz: 45b8781d48450057467840d4742c9499b7d75bc26cb7ec7afda25ea6b57adfdae01ee93383ac2680203b50f33242c725d298f639f7aac342b018c4364054ba03
7
- data.tar.gz: 0343ef1ffdc8b5cdda41991112f968e45b80e25b5fdd30c47ffa259296b4ca56eed7209f05697fa16d91a91286c2f39d0b6ade72122d00b0b3799ac1cd0f668e
6
+ metadata.gz: 9ae845e9b99bc30d96da9bba11e8b46e439bc1f103b5823402b363ac57fa517baf7a0cf3c189b827ab58cfff1176938215f4af5350a1232a5100577b9ded9f0c
7
+ data.tar.gz: 2fc6c5fb824f423489ae41031aa4544172bbe56163681cc4944ee6cb0fd88d24ba173badf6516901fcc359ea4ce208d123f65fe4d6196362d169001a556b92d1
@@ -1,3 +1,7 @@
1
+ # 0.0.3
2
+
3
+ * Add `Developer.railway`.
4
+
1
5
  # 0.0.2
2
6
 
3
7
  * Add `Developer.render` shortcut to `Render::Circuit`.
@@ -0,0 +1,71 @@
1
+ module Trailblazer
2
+ # Operation-specific circuit rendering. This is optimized for a linear railway circuit.
3
+ #
4
+ # @private
5
+ #
6
+ # NOTE: this is absolutely to be considered as prototyping and acts more like a test helper ATM as
7
+
8
+ module Developer
9
+ def self.railway(*args)
10
+ Render::Linear.(*args)
11
+ end
12
+
13
+ module Render
14
+ module Linear
15
+ module_function
16
+
17
+ def call(operation, options = {style: :line})
18
+ graph = Activity::Introspect::Graph(operation)
19
+
20
+ rows = graph.collect do |node, i|
21
+ next if node[:data][:stop_event] # DISCUSS: show this?
22
+
23
+ created_by = node[:data][:dsl_track] || :pass
24
+
25
+ [i, [created_by, node.id]]
26
+ end.compact
27
+
28
+ rows = rows[1..-1] # remove start
29
+
30
+ return inspect_line(rows) if options[:style] == :line
31
+
32
+ return inspect_rows(rows)
33
+ end
34
+
35
+ def inspect_func(step)
36
+ @inspect[step]
37
+ end
38
+
39
+ Operator = {fail: "<<", pass: ">>", step: ">"}
40
+
41
+ def inspect_line(names)
42
+ string = names.collect { |i, (end_of_edge, name)| "#{Operator[end_of_edge]}#{name}" }.join(",")
43
+ "[#{string}]"
44
+ end
45
+
46
+ def inspect_rows(names)
47
+ string = names.collect do |i, (end_of_edge, name)|
48
+ operator = Operator[end_of_edge]
49
+
50
+ op = "#{operator}#{name}"
51
+ padding = 38
52
+
53
+ proc = if operator == "<<"
54
+ sprintf("%- #{padding}s", op)
55
+ elsif [">", ">>", "&"].include?(operator.to_s)
56
+ sprintf("% #{padding}s", op)
57
+ else
58
+ pad = " " * ((padding - op.length) / 2)
59
+ "#{pad}#{op}#{pad}"
60
+ end
61
+
62
+ proc = proc.gsub(" ", "=")
63
+
64
+ sprintf("%2d %s", i, proc)
65
+ end.join("\n")
66
+ "\n#{string}"
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -1,7 +1,7 @@
1
1
  module Trailblazer
2
2
  module Version
3
3
  module Developer
4
- VERSION = "0.0.2".freeze
4
+ VERSION = "0.0.3"
5
5
  end
6
6
  end
7
7
  end
@@ -9,5 +9,6 @@ end
9
9
  require "trailblazer/developer/wtf"
10
10
  require "trailblazer/developer/generate"
11
11
  require "trailblazer/developer/render/circuit"
12
+ require "trailblazer/developer/render/linear"
12
13
 
13
14
  # require "trailblazer/developer/client"
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.2
4
+ version: 0.0.3
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-06-16 00:00:00.000000000 Z
11
+ date: 2019-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -130,6 +130,7 @@ files:
130
130
  - lib/trailblazer/developer/client.rb
131
131
  - lib/trailblazer/developer/generate.rb
132
132
  - lib/trailblazer/developer/render/circuit.rb
133
+ - lib/trailblazer/developer/render/linear.rb
133
134
  - lib/trailblazer/developer/version.rb
134
135
  - lib/trailblazer/developer/wtf.rb
135
136
  - lib/trailblazer/diagram/bpmn.rb