trailblazer-operation 0.5.0 → 0.5.1

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: d01fa1d700a2dd5435e8f166189be31b2da6ec460eec204c6aac8b02887c9ad6
4
- data.tar.gz: a0f41c6afd8f2e85ff86ceab11be439b8ea0ef3340b8e33ada6c34bcf2f5bca6
3
+ metadata.gz: 72f9bed867af38feb73cc3cd6eae06ac1621870649d315d93c17ef2fb2f01c9d
4
+ data.tar.gz: e4c512de05dd2dda4c670d0322455d9e0e2b8b3e646e237c553e4e49d8db70cd
5
5
  SHA512:
6
- metadata.gz: c7f95eed76ec2109879d2750636e43d82da24f42af7d58e037538565cd115ff04e9cf2cbeb9d4f2170cb614fb0585d2edbe98ce2a7c94d7d732c8d1ded6e60f8
7
- data.tar.gz: efd28f9dff2d79bfea21d2438119d8e619410333a904ba50dcccc13d450ae42efd1d71639068bd40168f2283c9c34f1fb9834f8ae56b866d16b2bc0e1b425526
6
+ metadata.gz: 808122f1bb28e26261afa083fd9718811d2c578a9e230cc59f091f623b447d17daece7f8caad233b8069bce50e99e45f04670f4037cef01d5e8ee697a795cd44
7
+ data.tar.gz: 7161f4c1341072a67c9d02fca6b1fb8d8c11befe66f722ab65a455bfbf0a226dc19dce8c1d6adb9beb6a490b753d7722b077e9a7d63b6ae10a3cc6ff01e617a1
data/CHANGES.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.5.1
2
+
3
+ * Remove Inspect. this now sits in the `developer` gem as `Developer.railway`.
4
+
1
5
  ## 0.5.0
2
6
 
3
7
  * Minimal API around `Activity::FastTrack` to support the old public call style.
data/Gemfile CHANGED
@@ -10,7 +10,7 @@ gem "dry-auto_inject"
10
10
  gem "benchmark-ips"
11
11
  gem "minitest-line"
12
12
 
13
- # gem "trailblazer-developer", path: "../developer"
13
+ gem "trailblazer-developer", path: "../trailblazer-developer"
14
14
  # gem "trailblazer-developer", git: "https://github.com/trailblazer/trailblazer-developer"
15
15
  # gem "trailblazer-activity", path: "../trailblazer-activity"
16
16
  # gem "trailblazer-activity-dsl-linear", path: "../trailblazer-activity-dsl-linear"
@@ -62,8 +62,6 @@ module Trailblazer
62
62
  end
63
63
  end
64
64
 
65
- require "trailblazer/operation/inspect"
66
-
67
65
  require "trailblazer/operation/class_dependencies"
68
66
  require "trailblazer/operation/deprecated_macro" # TODO: remove in 2.2.
69
67
 
@@ -1,7 +1,7 @@
1
1
  module Trailblazer
2
2
  module Version
3
3
  module Operation
4
- VERSION = "0.5.0"
4
+ VERSION = "0.5.1"
5
5
  end
6
6
  end
7
7
  end
@@ -287,119 +287,6 @@ describe all options :pass_fast, :fast_track and emiting signals directly, like
287
287
  end
288
288
  end
289
289
 
290
- =begin
291
- :before, :after, :replace, :delete, :group, :id
292
- =end
293
- class WiringsDocSeqOptionsTest < Minitest::Spec
294
- module Id
295
- Memo = Class.new(WiringDocsTest::Memo)
296
-
297
- #:id
298
- class Memo::Create < Trailblazer::Operation
299
- step :create_model, id: "create_memo"
300
- step :validate, id: "validate_params"
301
- step :save
302
- #~id-methods
303
- def create_model(options, **)
304
- end
305
-
306
- def validate(options, **)
307
- end
308
-
309
- def save(options, **)
310
- end
311
- #~id-methods end
312
- end
313
- #:id end
314
-
315
- #:delete
316
- class Memo::Create::Admin < Memo::Create
317
- step nil, delete: "validate_params", id: ""
318
- end
319
- #:delete end
320
-
321
- #:before
322
- class Memo::Create::Authorized < Memo::Create
323
- step :policy, before: "create_memo"
324
- #~before-methods
325
- def policy(options, **)
326
- end
327
- #~before-methods end
328
- end
329
- #:before end
330
-
331
- #:after
332
- class Memo::Create::Logging < Memo::Create
333
- step :logger, after: "validate_params"
334
- #~after-methods
335
- def logger(options, **)
336
- end
337
- #~after-methods end
338
- end
339
- #:after end
340
-
341
- #:replace
342
- class Memo::Update < Memo::Create
343
- step :find_model, replace: "create_memo", id: "update_memo"
344
- #~replace-methods
345
- def find_model(options, **)
346
- end
347
- #~replace-methods end
348
- end
349
- #:replace end
350
- end
351
-
352
- it ":id shows up in introspect" do
353
- Memo = Id::Memo
354
- #:id-inspect
355
- Trailblazer::Operation.introspect(Memo::Create)
356
- #=> [>create_memo,>validate_params,>save]
357
- #:id-inspect end
358
-
359
- Trailblazer::Operation.introspect(Memo::Create).must_equal %{[>create_memo,>validate_params,>save]}
360
- end
361
-
362
- it ":delete removes step" do
363
- Memo = Id::Memo
364
- #:delete-inspect
365
- Trailblazer::Operation.introspect(Memo::Create::Admin)
366
- #=> [>create_model,>save]
367
- #:delete-inspect end
368
-
369
- Trailblazer::Operation.introspect(Memo::Create::Admin).must_equal %{[>create_memo,>save]}
370
- end
371
-
372
- it ":before inserts" do
373
- Memo = Id::Memo
374
- #:before-inspect
375
- Trailblazer::Operation.introspect(Memo::Create::Authorized)
376
- #=> [>create_model,>save]
377
- #:before-inspect end
378
-
379
- Trailblazer::Operation.introspect(Memo::Create::Authorized).must_equal %{[>policy,>create_memo,>validate_params,>save]}
380
- end
381
-
382
- it ":after inserts" do
383
- Memo = Id::Memo
384
- #:after-inspect
385
- Trailblazer::Operation.introspect(Memo::Create::Logging)
386
- #=> [>create_memo,>validate_params,>logger,>save]
387
- #:after-inspect end
388
-
389
- Trailblazer::Operation.introspect(Memo::Create::Logging).must_equal %{[>create_memo,>validate_params,>logger,>save]}
390
- end
391
-
392
- it ":replace inserts" do
393
- Memo = Id::Memo
394
- #:replace-inspect
395
- Trailblazer::Operation.introspect(Memo::Update)
396
- #=> [>update_memo,>validate_params,>save]
397
- #:replace-inspect end
398
-
399
- Trailblazer::Operation.introspect(Memo::Update).must_equal %{[>update_memo,>validate_params,>save]}
400
- end
401
- end
402
-
403
290
  # @see https://github.com/trailblazer/trailblazer/issues/190#issuecomment-326992255
404
291
  class WiringsDocRecoverTest < Minitest::Spec
405
292
  Memo = WiringDocsTest::Memo
@@ -40,7 +40,7 @@ class StepTest < Minitest::Spec
40
40
 
41
41
  it { Create.(a: 1, b: 2, c: 3, d: 4, e: 5).inspect("a", "b", "c", "d", "e").must_equal "<Result:true [1, 2, 3, 4, 5] >" }
42
42
 
43
- it { Trailblazer::Operation::Inspect.(Create).gsub(/0x.+?step_test.rb/, "").must_equal %{[>#<Proc::30 (lambda)>,>StepTest::Callable,>#<Method: StepTest::Implementation.c>,>d,>MyMacro]} }
43
+ it { Trailblazer::Developer.railway(Create).gsub(/0x.+?step_test.rb/, "").must_equal %{[>#<Proc::30 (lambda)>,>StepTest::Callable,>#<Method: StepTest::Implementation.c>,>d,>MyMacro]} }
44
44
 
45
45
  #---
46
46
  #- :before, :after, :replace, :delete, :override
@@ -61,7 +61,7 @@ class StepTest < Minitest::Spec
61
61
  def d!(options, **); options["order"] << "d"; end
62
62
  end
63
63
 
64
- it { Trailblazer::Operation::Inspect.(B).must_equal %{[>b!,>d!,>c!,>a!]} }
64
+ it { Trailblazer::Developer.railway(B).must_equal %{[>b!,>d!,>c!,>a!]} }
65
65
 
66
66
  class C < B
67
67
  step :e!, replace: :c!
@@ -69,7 +69,7 @@ class StepTest < Minitest::Spec
69
69
  def e!(options, **); options["order"] << "e"; end
70
70
  end
71
71
 
72
- it { Trailblazer::Operation::Inspect.(C).must_equal %{[>b!,>e!,>a!]} }
72
+ it { Trailblazer::Developer.railway(C).must_equal %{[>b!,>e!,>a!]} }
73
73
  it { C.("order" => []).inspect("order").must_equal %{<Result:true [["b", "e", "a"]] >} }
74
74
 
75
75
  #---
@@ -84,7 +84,7 @@ class StepTest < Minitest::Spec
84
84
  def add!(options, **); options["a"] << :b; end
85
85
  end
86
86
 
87
- it { Trailblazer::Operation::Inspect.(D).must_equal %{[>a!,>add!,>another_add!]} }
87
+ it { Trailblazer::Developer.railway(D).must_equal %{[>a!,>add!,>another_add!]} }
88
88
  it { D.().inspect("a").must_equal %{<Result:true [[:b, :b]] >} }
89
89
 
90
90
  class E < Trailblazer::Operation
@@ -97,7 +97,7 @@ class StepTest < Minitest::Spec
97
97
  include T.def_steps(:a)
98
98
  end
99
99
 
100
- it { Trailblazer::Operation::Inspect.(E).must_equal %{[>a,>b]} }
100
+ it { Trailblazer::Developer.railway(E).must_equal %{[>a,>b]} }
101
101
  it { E.(seq: []).inspect(:seq).must_equal %{<Result:true [[:a, :b]] >} }
102
102
 
103
103
  #- with proc
@@ -109,7 +109,7 @@ class StepTest < Minitest::Spec
109
109
  def a!(options, **); options["a"] = []; end
110
110
  end
111
111
 
112
- it { Trailblazer::Operation::Inspect.(F).must_equal %{[>a!,>add!!!]} }
112
+ it { Trailblazer::Developer.railway(F).must_equal %{[>a!,>add!!!]} }
113
113
  it { F.().inspect("a").must_equal %{<Result:true [[:b]] >} }
114
114
 
115
115
  #- with macro
@@ -126,7 +126,7 @@ class StepTest < Minitest::Spec
126
126
  def a!(options, **); options["a"] = []; end
127
127
  end
128
128
 
129
- it { Trailblazer::Operation::Inspect.(G).must_equal %{[>a!,>add]} }
129
+ it { Trailblazer::Developer.railway(G).must_equal %{[>a!,>add]} }
130
130
  it { G.().inspect("a").must_equal %{<Result:true [[:b]] >} }
131
131
 
132
132
  # override: true in inherited class with macro
@@ -135,7 +135,7 @@ class StepTest < Minitest::Spec
135
135
  step task: MyMacro, override: true, id: "add"
136
136
  end
137
137
 
138
- it { Trailblazer::Operation::Inspect.(Go).must_equal %{[>a!,>add]} }
138
+ it { Trailblazer::Developer.railway(Go).must_equal %{[>a!,>add]} }
139
139
  it { Go.().inspect("a").must_equal %{<Result:true [[:m]] >} }
140
140
 
141
141
  #- with inheritance
@@ -154,7 +154,7 @@ class StepTest < Minitest::Spec
154
154
  def _add!(options, **); options["a"] << :hh; end
155
155
  end
156
156
 
157
- it { Trailblazer::Operation::Inspect.(Hh).must_equal %{[>a!,>_add!]} }
157
+ it { Trailblazer::Developer.railway(Hh).must_equal %{[>a!,>_add!]} }
158
158
  it { Hh.().inspect("a").must_equal %{<Result:true [[:hh]] >} }
159
159
 
160
160
  #- inheritance unit test
@@ -190,20 +190,20 @@ class StepTest < Minitest::Spec
190
190
  step({task: "MyMacro", id: "I win!"}, id: "No, I do!")
191
191
  end
192
192
 
193
- it { Trailblazer::Operation::Inspect.(Index).must_equal %{[>my validate,>persist!,>I win!,>No, I do!]} }
193
+ it { Trailblazer::Developer.railway(Index).must_equal %{[>my validate,>persist!,>I win!,>No, I do!]} }
194
194
 
195
195
  #---
196
196
  #- inheritance
197
197
  class New < Create
198
198
  end
199
199
 
200
- it { Trailblazer::Operation::Inspect.(New).gsub(/0x.+?step_test.rb/, "").must_equal %{[>#<Proc::30 (lambda)>,>StepTest::Callable,>#<Method: StepTest::Implementation.c>,>d,>MyMacro]} }
200
+ it { Trailblazer::Developer.railway(New).gsub(/0x.+?step_test.rb/, "").must_equal %{[>#<Proc::30 (lambda)>,>StepTest::Callable,>#<Method: StepTest::Implementation.c>,>d,>MyMacro]} }
201
201
 
202
202
  class Update < Create
203
203
  step :after_save!
204
204
  end
205
205
 
206
- it { Trailblazer::Operation::Inspect.(Update).gsub(/0x.+?step_test.rb/, "").must_equal %{[>#<Proc::30 (lambda)>,>StepTest::Callable,>#<Method: StepTest::Implementation.c>,>d,>MyMacro,>after_save!]} }
206
+ it { Trailblazer::Developer.railway(Update).gsub(/0x.+?step_test.rb/, "").must_equal %{[>#<Proc::30 (lambda)>,>StepTest::Callable,>#<Method: StepTest::Implementation.c>,>d,>MyMacro,>after_save!]} }
207
207
  end
208
208
 
209
209
  #---
@@ -226,7 +226,7 @@ class StepWithDeprecatedMacroTest < Minitest::Spec
226
226
  step [AnotherOldMacro, id: :oldie]
227
227
  end
228
228
 
229
- it { skip; Trailblazer::Operation::Inspect.(Create).gsub(/0x.+?step_test.rb/, "").must_equal %{[>outdated,>oldie]} }
229
+ it { skip; Trailblazer::Developer.railway(Create).gsub(/0x.+?step_test.rb/, "").must_equal %{[>outdated,>oldie]} }
230
230
  it { skip; Create.().inspect("x", "y").must_equal %{<Result:true [StepWithDeprecatedMacroTest::Create, StepWithDeprecatedMacroTest::Create] >} }
231
231
  end
232
232
 
@@ -3,6 +3,7 @@ require "pp"
3
3
  require "minitest/autorun"
4
4
  require "trailblazer/operation"
5
5
  require "trailblazer/activity/testing"
6
+ require "trailblazer/developer/render/linear"
6
7
 
7
8
  Minitest::Spec.class_eval do
8
9
  Activity = Trailblazer::Activity
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "minitest"
25
25
  spec.add_development_dependency "rake"
26
26
  spec.add_development_dependency "rubocop"
27
+ spec.add_development_dependency "trailblazer-developer", ">= 0.0.3"
27
28
 
28
29
  spec.required_ruby_version = ">= 2.1.0"
29
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trailblazer-operation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
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: trailblazer-activity-dsl-linear
@@ -106,6 +106,20 @@ dependencies:
106
106
  - - ">="
107
107
  - !ruby/object:Gem::Version
108
108
  version: '0'
109
+ - !ruby/object:Gem::Dependency
110
+ name: trailblazer-developer
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: 0.0.3
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 0.0.3
109
123
  description: Trailblazer's operation object.
110
124
  email:
111
125
  - apotonick@gmail.com
@@ -126,7 +140,6 @@ files:
126
140
  - lib/trailblazer/operation/class_dependencies.rb
127
141
  - lib/trailblazer/operation/container.rb
128
142
  - lib/trailblazer/operation/deprecated_macro.rb
129
- - lib/trailblazer/operation/inspect.rb
130
143
  - lib/trailblazer/operation/public_call.rb
131
144
  - lib/trailblazer/operation/railway.rb
132
145
  - lib/trailblazer/operation/railway/macaroni.rb
@@ -148,7 +161,6 @@ files:
148
161
  - test/gemfiles/Gemfile.ruby-2.0.lock
149
162
  - test/gemfiles/Gemfile.ruby-2.3
150
163
  - test/inheritance_test.rb
151
- - test/inspect_test.rb
152
164
  - test/introspect_test.rb
153
165
  - test/operation_test.rb
154
166
  - test/result_test.rb
@@ -202,7 +214,6 @@ test_files:
202
214
  - test/gemfiles/Gemfile.ruby-2.0.lock
203
215
  - test/gemfiles/Gemfile.ruby-2.3
204
216
  - test/inheritance_test.rb
205
- - test/inspect_test.rb
206
217
  - test/introspect_test.rb
207
218
  - test/operation_test.rb
208
219
  - test/result_test.rb
@@ -1,69 +0,0 @@
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
- # Inspect is not a mission-critical part.
8
- class Operation
9
- def self.introspect(*args)
10
- Operation::Inspect.(*args)
11
- end
12
- end
13
-
14
- module Operation::Inspect
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
@@ -1,42 +0,0 @@
1
- require "test_helper"
2
-
3
- class InspectTest < Minitest::Spec
4
- # Test: #to_table
5
- class Create < Trailblazer::Operation
6
- step :decide!
7
- pass :wasnt_ok!
8
- pass :was_ok!
9
- fail :return_true!
10
- fail :return_false!
11
- step :finalize!
12
- end
13
-
14
- #---
15
- #- to_table
16
-
17
- # pp Create.instance_variable_get(:@builder)
18
-
19
- it do
20
- Trailblazer::Operation.introspect(Create).must_equal %{[>decide!,>>wasnt_ok!,>>was_ok!,<<return_true!,<<return_false!,>finalize!]}
21
- end
22
-
23
- it do
24
- Trailblazer::Operation::Inspect.call(Create, style: :rows).must_equal %{
25
- 1 ==============================>decide!
26
- 2 ===========================>>wasnt_ok!
27
- 3 =============================>>was_ok!
28
- 4 <<return_true!========================
29
- 5 <<return_false!=======================
30
- 6 ============================>finalize!}
31
- end
32
-
33
- describe "step with only one output (happens with Nested)" do
34
- class Present < Trailblazer::Operation
35
- pass :ok!, outputs: {:success => Trailblazer::Activity::Output("signal", :success)}
36
- end
37
-
38
- it do
39
- Trailblazer::Operation.introspect(Present).must_equal %{[>>ok!]}
40
- end
41
- end
42
- end