trailblazer-macro 2.1.13 → 2.1.14

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: 5cdf91d3afe4c31815401fd46ca1b6a8778dd2b1b89db4871c7dcff708cc73ff
4
- data.tar.gz: 48c050c6086a5be67804385a427a95e0df1ab4cf0802de5004b61a96a8e54ced
3
+ metadata.gz: bdbc731c17b52586de5a713605423d506a6ea91866db65f4a04be858fa5afb1e
4
+ data.tar.gz: 254f4e89aca81b120e6f1392c99ac30dfe9dd70cde79e2f2a9aa669a88448bfb
5
5
  SHA512:
6
- metadata.gz: 3a27a00484972d2c65a6ffad50bd34e1fff0cfee69382bb5fabd3a06f20e15f818f95d44ce03a13727095fe352901ca0fdfcc544e15ec066bc73e43d14b8b6df
7
- data.tar.gz: c64786889c195182f399c9df157f67926622ae7c032d9ef8c8de47db89b37750544721b1261a7ea5fe5f731208eccb3192aac2fe2c92b77036cbcd3ce68e4070
6
+ metadata.gz: d0b26e20fe1f14def81e30ca0a39a37cf58b6257530307bb9db1f80d914c04b8c5dfb4143f98c012a0605074f31c1cf42b91930aeaecd1cf8f820158cfac6ee4
7
+ data.tar.gz: cdee315a8ac8900bf438694f7320b88cd3ceb32436baf544826bb550289f56a466ef18da3142ef15e1bde8eb3fc575eadb87e6670106c6be204e921d1285ab00
@@ -1,6 +1,3 @@
1
- ## This file is managed by Terraform.
2
- ## Do not modify this file directly, as it may be overwritten.
3
- ## Please open an issue instead.
4
1
  name: CI
5
2
  on: [push, pull_request]
6
3
  jobs:
@@ -8,7 +5,7 @@ jobs:
8
5
  strategy:
9
6
  fail-fast: false
10
7
  matrix:
11
- ruby: [2.7, '3.0', '3.1']
8
+ ruby: [2.5, 2.6, 2.7, '3.0', '3.1', '3.2', 'jruby']
12
9
  runs-on: ubuntu-latest
13
10
  steps:
14
11
  - uses: actions/checkout@v3
data/CHANGES.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 2.1.14
2
+
3
+ * Use `trailblazer-activity-dsl-linear-1.2.0` and change internal API as required.
4
+
1
5
  # 2.1.13
2
6
 
3
7
  * Fix an introspect bug in `Each()` where we couldn't look into `"invoke_block_activity"`.
data/Gemfile CHANGED
@@ -6,12 +6,12 @@ gemspec
6
6
  # gem "trailblazer-developer", github: "trailblazer/trailblazer-developer"
7
7
  # gem "trailblazer-activity", github: "trailblazer/trailblazer-activity"
8
8
  # gem "trailblazer-activity-dsl-linear", github: "trailblazer/trailblazer-activity-dsl-linear"
9
- # gem "trailblazer-activity-dsl-linear", path: "../trailblazer-activity-dsl-linear"
10
- # gem "trailblazer-developer", path: "../trailblazer-developer"
11
- # gem "trailblazer-activity", path: "../trailblazer-activity"
12
9
  # gem "trailblazer-macro-contract", git: "https://github.com/trailblazer/trailblazer-macro-contract"
13
- # gem "trailblazer-context", path: "../trailblazer-context"
14
- # gem "trailblazer-option", path: "../trailblazer-option"
10
+
11
+ # gem "trailblazer-activity-dsl-linear", path: "../trailblazer-activity-dsl-linear"
12
+ # gem "trailblazer-developer", path: "../trailblazer-developer"
13
+ # gem "trailblazer-activity", path: "../trailblazer-activity"
14
+ # gem "trailblazer-operation", path: "../trailblazer-operation"
15
15
 
16
16
  gem "minitest-line"
17
17
  # gem "trailblazer-core-utils", path: "../trailblazer-core-utils"
data/Rakefile CHANGED
@@ -3,7 +3,7 @@ require "rake/testtask"
3
3
 
4
4
  Rake::TestTask.new(:test) do |test|
5
5
  test.libs << 'test'
6
- test.test_files = FileList['test/**/*_test.rb']
6
+ test.test_files = FileList['test/**/*_test.rb'] #- FileList['test/docs/autogenerated/*_test.rb']
7
7
  test.verbose = true
8
8
  end
9
9
 
@@ -68,7 +68,7 @@ module Trailblazer
68
68
  # Gets included in Debugger's Normalizer. Results in IDs like {invoke_block_activity.1}.
69
69
  def self.compute_runtime_id(ctx, captured_node:, activity:, compile_id:, **)
70
70
  # activity is the host activity
71
- return compile_id unless activity[:each] == true
71
+ return compile_id unless activity.to_h[:config][:each] == true
72
72
 
73
73
  index = captured_node.captured_input.data[:ctx_snapshot].fetch(:index)
74
74
 
@@ -94,16 +94,20 @@ module Trailblazer
94
94
  # This activity is passed into the {Runner} for each iteration of {block_activity}.
95
95
  container_activity = Activity::TaskWrap.container_activity_for(
96
96
  block_activity,
97
- each: true, # mark this activity for {compute_runtime_id}.
98
- nodes: [Activity::NodeAttributes.new("invoke_block_activity", nil, block_activity)], # TODO: use TaskMap::TaskAttributes
99
- outputs: outputs_from_block_activity,
97
+ id: "invoke_block_activity",
98
+ # merged into {:config}:
99
+ each: true, # mark this activity for {compute_runtime_id}.
100
100
  ).merge(
101
- # FIXME: we can't pass {wrap_static: wrap_static_for_block_activity} into {#container_activity_for}
102
- # because when patching, the container_activity is not recompiled, so we need the Hash here
103
- # with defaulting.
104
- wrap_static: Hash.new(wrap_static_for_block_activity)
101
+ outputs: outputs_from_block_activity,
105
102
  )
106
103
 
104
+ # FIXME: we can't pass {wrap_static: wrap_static_for_block_activity} into {#container_activity_for}
105
+ # because when patching, the container_activity is not recompiled, so we need the Hash here
106
+ # with defaulting.
107
+ # FIXME: this "hack" is only here to satify patching.
108
+ config = container_activity[:config].merge(wrap_static: Hash.new(wrap_static_for_block_activity))
109
+ container_activity.merge!(config: config)
110
+
107
111
  # DISCUSS: move to Wrap.
108
112
  termini_from_block_activity =
109
113
  outputs_from_block_activity.
@@ -113,7 +113,7 @@ module Trailblazer
113
113
  def self.host_activity_for(activity:)
114
114
  Activity::TaskWrap.container_activity_for(
115
115
  activity,
116
- nodes: [Trailblazer::Activity::NodeAttributes.new(activity.to_s, nil, activity)],
116
+ id: activity.to_s
117
117
  )
118
118
  end
119
119
 
@@ -127,7 +127,7 @@ module Trailblazer
127
127
  # this will help when semantics overlap.
128
128
  #
129
129
  def self.Static(decider, id:, auto_wire:)
130
- decider_outputs = auto_wire.collect do |activity|
130
+ decider_connectors = auto_wire.collect do |activity|
131
131
  [Activity::Railway.Output(activity, "decision:#{activity}"), Activity::Railway.Track(activity)]
132
132
  end.to_h
133
133
 
@@ -136,7 +136,7 @@ module Trailblazer
136
136
  {
137
137
  task: Static.method(:return_route_signal),
138
138
  id: :route_to_nested_activity, # returns the {nested_activity} signal
139
- }.merge(decider_outputs)
139
+ }.merge(decider_connectors)
140
140
  )
141
141
 
142
142
  auto_wire.each do |activity|
@@ -1,7 +1,7 @@
1
1
  module Trailblazer
2
2
  module Version
3
3
  module Macro
4
- VERSION = "2.1.13"
4
+ VERSION = "2.1.14"
5
5
  end
6
6
  end
7
7
  end
@@ -54,10 +54,11 @@ class EachTest < Minitest::Spec
54
54
  def composers_for_each(ctx, model:, **)
55
55
  model.composers
56
56
  end
57
-
57
+ #:iterated-value
58
58
  def notify_composers(ctx, index:, item:, **)
59
59
  ctx[:value] = [index, item.full_name]
60
60
  end
61
+ #:iterated-value end
61
62
 
62
63
  #~meths
63
64
  def model(ctx, params:, **)
@@ -590,9 +591,10 @@ class EachStrategyComplianceTest < Minitest::Spec
590
591
  EachPureTest::Mailer.send_options = []
591
592
 
592
593
  #:patch
593
- cover_patched = Trailblazer::Activity::DSL::Linear.Patch(
594
+ cover_patched = Trailblazer::Activity::DSL::Linear::Patch.(
594
595
  Song::Activity::Cover,
595
- ["Each/composers_for_each", "Each.iterate.block"] => -> { step :log_email }
596
+ ["Each/composers_for_each", "Each.iterate.block"],
597
+ -> { step :log_email }
596
598
  )
597
599
  #:patch end
598
600
  cover_patched.include(T.def_steps(:log_email, :notify_composers))
@@ -707,7 +709,7 @@ class EachIDTest < Minitest::Spec
707
709
  assert_equal Trailblazer::Developer::Introspect.find_path(activity, ["Each-1"])[0].id, "Each-1"
708
710
  assert_equal Trailblazer::Developer::Introspect.find_path(activity, ["Each/composers_for_each"])[0].id, "Each/composers_for_each"
709
711
 
710
- assert_match /Each\/\w+/, Trailblazer::Activity::Introspect::TaskMap(activity).values[1].id
712
+ assert_match /Each\/\w+/, Trailblazer::Activity::Introspect::Nodes(activity).values[1].id # FIXME: this test sucks.
711
713
  end
712
714
  end
713
715
 
@@ -650,9 +650,10 @@ class WrapUnitTest < Minitest::Spec
650
650
  %{#<Trailblazer::Activity::TaskBuilder::Task user_proc=validate>}
651
651
 
652
652
  #@ Patch interface
653
- patched_activity = Trailblazer::Activity::DSL::Linear.Patch(
653
+ patched_activity = Trailblazer::Activity::DSL::Linear::Patch.call(
654
654
  activity,
655
- ["Wrap/WrapUnitTest::HandleUnsafeProcess"] => -> { step mock_validation, replace: :validation, id: :validation }
655
+ ["Wrap/WrapUnitTest::HandleUnsafeProcess"],
656
+ -> { step mock_validation, replace: :validation, id: :validation }
656
657
  )
657
658
 
658
659
  #@ the original activity with Wrap is unchanged.
@@ -668,9 +669,10 @@ class WrapStrategyComplianceTest < Minitest::Spec
668
669
 
669
670
  it do
670
671
  #:patch
671
- upload_with_upsert = Trailblazer::Activity::DSL::Linear.Patch(
672
+ upload_with_upsert = Trailblazer::Activity::DSL::Linear::Patch.call(
672
673
  Song::Activity::Upload,
673
- ["Wrap/MyTransaction"] => -> { step :upsert, replace: :update }
674
+ ["Wrap/MyTransaction"],
675
+ -> { step :upsert, replace: :update }
674
676
  )
675
677
  #:patch end
676
678
  upload_with_upsert.include(T.def_steps(:upsert))
data/test/test_helper.rb CHANGED
@@ -1,31 +1,11 @@
1
1
  $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
- require "trailblazer/macro"
3
-
4
- require "delegate" # Ruby 2.2
5
2
  require "minitest/autorun"
6
3
 
4
+ require "trailblazer/macro"
7
5
  require "trailblazer/developer"
6
+ require "trailblazer/activity/testing"
8
7
 
9
- module Mock
10
- class Result
11
- def initialize(bool); @bool = bool end
12
- def success?; @bool end
13
- def errors; ["hihi"] end
14
- end
15
- end
16
-
17
- module Test
18
- module ReturnCall
19
- def self.included(includer)
20
- includer._insert :_insert, ReturnResult, {replace: Trailblazer::Operation::Result::Build}, ReturnResult, ""
21
- end
22
- end
23
- ReturnResult = ->(last, input, options) { input }
24
- end
25
-
26
- require "pp"
27
-
28
- # Minitest::Spec::Operation = Trailblazer::Operation
8
+ T = Trailblazer::Activity::Testing
29
9
 
30
10
  Memo = Struct.new(:id, :body) do
31
11
  def self.find(id)
@@ -34,9 +14,6 @@ Memo = Struct.new(:id, :body) do
34
14
  end
35
15
  end
36
16
 
37
- require "trailblazer/activity/testing"
38
- T = Trailblazer::Activity::Testing
39
-
40
17
  module Rehash
41
18
  def rehash(ctx, seq:, rehash_raise: false, **)
42
19
  seq << :rehash
@@ -53,23 +30,3 @@ Minitest::Spec.class_eval do
53
30
  return Trailblazer::Developer::Trace::Present.(stack, node_options: {stack.to_a[0]=>{label: "TOP"}}).gsub(/:\d+/, ""), signal, ctx
54
31
  end
55
32
  end
56
-
57
-
58
-
59
- # signal, (ctx, _) = Trailblazer::Activity.(Song::Activity::Create,
60
- # params: {title: "Olympia"}, # some random variable.
61
- # "model.class": Hit,
62
- # "model.action": :find_by,
63
- # "model.find_by_key": :title, seq: []
64
- # )
65
-
66
- # #:update-ok
67
- # signal, (ctx, _) = Trailblazer::Activity.(Song::Activity::Update, params: {id: 1}, seq: [])
68
- # ctx[:model] #=> #<Song id=1, ...>
69
- # puts signal #=> #<Trailblazer::Activity::End semantic=:success>
70
- # #:update-ok end
71
-
72
-
73
- # require "trailblazer/core"
74
- # Trailblazer::Core.convert_operation_test("test/docs/model_test.rb")
75
- # Trailblazer::Core.convert_operation_test("test/docs/each_test.rb")
@@ -5,8 +5,8 @@ require 'trailblazer/macro/version'
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "trailblazer-macro"
7
7
  spec.version = Trailblazer::Version::Macro::VERSION
8
- spec.authors = ["Nick Sutterer", "Marc Tich"]
9
- spec.email = ["apotonick@gmail.com", "marc@mudsu.com"]
8
+ spec.authors = ["Nick Sutterer"]
9
+ spec.email = ["apotonick@gmail.com"]
10
10
  spec.description = "Macros for Trailblazer's operation"
11
11
  spec.summary = "Macros for Trailblazer's operation: Policy, Wrap, Rescue and more."
12
12
  spec.homepage = "http://trailblazer.to"
@@ -20,9 +20,9 @@ Gem::Specification.new do |spec|
20
20
  spec.add_development_dependency "minitest"
21
21
  spec.add_development_dependency "rake"
22
22
  spec.add_development_dependency "trailblazer-developer"
23
+ spec.add_dependency "trailblazer-operation", ">= 0.10.0" # TODO: this dependency will be removed. currently needed for tests and for Guard::Result
23
24
 
24
- spec.add_dependency "trailblazer-activity-dsl-linear", ">= 1.1.0", "< 1.2.0"
25
- spec.add_dependency "trailblazer-operation", ">= 0.9.0" # TODO: this dependency will be removed. currently needed for tests?! and for Guard::Result
25
+ spec.add_dependency "trailblazer-activity-dsl-linear", ">= 1.2.0", "< 1.3.0"
26
26
 
27
- spec.required_ruby_version = ">= 2.2.0"
27
+ spec.required_ruby_version = ">= 2.5.0"
28
28
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trailblazer-macro
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.13
4
+ version: 2.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Sutterer
8
- - Marc Tich
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2022-12-19 00:00:00.000000000 Z
11
+ date: 2023-03-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: minitest
@@ -54,51 +53,47 @@ dependencies:
54
53
  - !ruby/object:Gem::Version
55
54
  version: '0'
56
55
  - !ruby/object:Gem::Dependency
57
- name: trailblazer-activity-dsl-linear
56
+ name: trailblazer-operation
58
57
  requirement: !ruby/object:Gem::Requirement
59
58
  requirements:
60
59
  - - ">="
61
60
  - !ruby/object:Gem::Version
62
- version: 1.1.0
63
- - - "<"
64
- - !ruby/object:Gem::Version
65
- version: 1.2.0
61
+ version: 0.10.0
66
62
  type: :runtime
67
63
  prerelease: false
68
64
  version_requirements: !ruby/object:Gem::Requirement
69
65
  requirements:
70
66
  - - ">="
71
67
  - !ruby/object:Gem::Version
72
- version: 1.1.0
73
- - - "<"
74
- - !ruby/object:Gem::Version
75
- version: 1.2.0
68
+ version: 0.10.0
76
69
  - !ruby/object:Gem::Dependency
77
- name: trailblazer-operation
70
+ name: trailblazer-activity-dsl-linear
78
71
  requirement: !ruby/object:Gem::Requirement
79
72
  requirements:
80
73
  - - ">="
81
74
  - !ruby/object:Gem::Version
82
- version: 0.9.0
75
+ version: 1.2.0
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: 1.3.0
83
79
  type: :runtime
84
80
  prerelease: false
85
81
  version_requirements: !ruby/object:Gem::Requirement
86
82
  requirements:
87
83
  - - ">="
88
84
  - !ruby/object:Gem::Version
89
- version: 0.9.0
85
+ version: 1.2.0
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: 1.3.0
90
89
  description: Macros for Trailblazer's operation
91
90
  email:
92
91
  - apotonick@gmail.com
93
- - marc@mudsu.com
94
92
  executables: []
95
93
  extensions: []
96
94
  extra_rdoc_files: []
97
95
  files:
98
96
  - ".github/workflows/ci.yml"
99
- - ".github/workflows/ci_jruby.yml"
100
- - ".github/workflows/ci_legacy.yml"
101
- - ".github/workflows/ci_truffleruby.yml"
102
97
  - ".gitignore"
103
98
  - CHANGES.md
104
99
  - Gemfile
@@ -143,7 +138,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
138
  requirements:
144
139
  - - ">="
145
140
  - !ruby/object:Gem::Version
146
- version: 2.2.0
141
+ version: 2.5.0
147
142
  required_rubygems_version: !ruby/object:Gem::Requirement
148
143
  requirements:
149
144
  - - ">="
@@ -1,19 +0,0 @@
1
- ## This file is managed by Terraform.
2
- ## Do not modify this file directly, as it may be overwritten.
3
- ## Please open an issue instead.
4
- name: CI JRuby
5
- on: [push, pull_request]
6
- jobs:
7
- test:
8
- strategy:
9
- fail-fast: false
10
- matrix:
11
- ruby: [jruby, jruby-head]
12
- runs-on: ubuntu-latest
13
- steps:
14
- - uses: actions/checkout@v3
15
- - uses: ruby/setup-ruby@v1
16
- with:
17
- ruby-version: ${{ matrix.ruby }}
18
- bundler-cache: true
19
- - run: bundle exec rake
@@ -1,19 +0,0 @@
1
- ## This file is managed by Terraform.
2
- ## Do not modify this file directly, as it may be overwritten.
3
- ## Please open an issue instead.
4
- name: CI with EOL ruby versions
5
- on: [push, pull_request]
6
- jobs:
7
- test:
8
- strategy:
9
- fail-fast: false
10
- matrix:
11
- ruby: [2.5, 2.6]
12
- runs-on: ubuntu-latest
13
- steps:
14
- - uses: actions/checkout@v3
15
- - uses: ruby/setup-ruby@v1
16
- with:
17
- ruby-version: ${{ matrix.ruby }}
18
- bundler-cache: true
19
- - run: bundle exec rake
@@ -1,19 +0,0 @@
1
- ## This file is managed by Terraform.
2
- ## Do not modify this file directly, as it may be overwritten.
3
- ## Please open an issue instead.
4
- name: CI TruffleRuby
5
- on: [push, pull_request]
6
- jobs:
7
- test:
8
- strategy:
9
- fail-fast: false
10
- matrix:
11
- ruby: [truffleruby, truffleruby-head]
12
- runs-on: ubuntu-latest
13
- steps:
14
- - uses: actions/checkout@v3
15
- - uses: ruby/setup-ruby@v1
16
- with:
17
- ruby-version: ${{ matrix.ruby }}
18
- bundler-cache: true
19
- - run: bundle exec rake