linearly 0.1.0 → 0.1.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
  SHA1:
3
- metadata.gz: eac2749b4aad79a7f0a3720eb59024d1b1761747
4
- data.tar.gz: 920e5ac7f405ac7326d439a7815c18ce353b3795
3
+ metadata.gz: c9c772fe40a7e770ddaa6e198b2e727a50ab95fe
4
+ data.tar.gz: f47f4acec7c61e455e1c75964d09f58d04681666
5
5
  SHA512:
6
- metadata.gz: f9e00e9d2d3064c3cf2934c080a77c43643e2c4375ce92bb335c45895502ab938b3021f0285a9470be171195db4e8a7a916cbb3aa48309a40f2e27b5573c5538
7
- data.tar.gz: 622bde992eacf7a3c30bf2a0cfaae44fc0462e380b21038a4b56f24da010bb62e7b8d10033640cb1fd0b8d192b1d0783c2af18eb8b7e002f7d9c8c312f0fb06a
6
+ metadata.gz: 4ba4441eea7248bc05c734f085df9a1cf317b0a8315378a2ffb3f44777ecd8f12a851082d604507dcee0dc342a68bb2f03c31d10bd2f9ee6713ca7378629ddf2
7
+ data.tar.gz: d688fb77d8793d1ed65c345949e9ffc971efd8437338c94cb0271acd7de1b41c4e7778868e2c0959b3aacac1d9c52b6bb8e13ace5dae900dfe36a427f3c8c163
@@ -61,7 +61,7 @@ module Linearly
61
61
  def copy
62
62
  'failed input expectations'
63
63
  end
64
- end # class Inputs
64
+ end
65
65
 
66
66
  # {Outputs} means a {BrokenContract} on outputs.
67
67
  class Outputs < BrokenContract
@@ -74,7 +74,7 @@ module Linearly
74
74
  def copy
75
75
  'failed output expectations'
76
76
  end
77
- end # class Outputs
78
- end # class BrokenContract
79
- end # module Errors
80
- end # module Linearly
77
+ end
78
+ end
79
+ end
80
+ end
@@ -24,6 +24,6 @@ module Linearly
24
24
  super("#{value.class.name} is not a Statefully::State")
25
25
  @value = value
26
26
  end
27
- end # class StateNotReturned
28
- end # module Errors
29
- end # module Linearly
27
+ end
28
+ end
29
+ end
data/lib/linearly/flow.rb CHANGED
@@ -138,7 +138,7 @@ module Linearly
138
138
  end
139
139
  @outputs.merge!(step.outputs)
140
140
  end
141
- end # class Contract
141
+ end
142
142
  private_constant :Contract
143
- end # class Flow
144
- end # module Linearly
143
+ end
144
+ end
@@ -16,7 +16,7 @@ module Linearly
16
16
  def >>(other)
17
17
  Flow.new(self, other)
18
18
  end
19
- end # module FlowBuilder
20
- end # module Mixins
19
+ end
20
+ end
21
21
  private_constant :Mixins
22
- end # module Linearly
22
+ end
@@ -26,7 +26,7 @@ module Linearly
26
26
  current.fail(Errors::StateNotReturned.new(step))
27
27
  end
28
28
  end
29
- end # module Reducer
30
- end # module Mixins
29
+ end
30
+ end
31
31
  private_constant :Mixins
32
- end # module Linearly
32
+ end
@@ -33,6 +33,6 @@ module Linearly
33
33
  Validation::Outputs.new(step.outputs),
34
34
  ]
35
35
  end
36
- end # class Runner
36
+ end
37
37
  private_constant :Runner
38
- end # module Linearly
38
+ end
@@ -28,7 +28,7 @@ module Linearly
28
28
  # FindUser.new.outputs
29
29
  # => { user: User }
30
30
  def outputs
31
- raise NotImplementedError
31
+ {}
32
32
  end
33
33
 
34
34
  # User-defined logic for this +Step+
@@ -45,6 +45,6 @@ module Linearly
45
45
  def call(_state)
46
46
  raise NotImplementedError
47
47
  end
48
- end # module Dynamic
49
- end # module Step
50
- end # module Linearly
48
+ end
49
+ end
50
+ end
@@ -33,7 +33,7 @@ module Linearly
33
33
  # def call
34
34
  # succeed(user: User.find(user_id))
35
35
  # end
36
- # end # class FindUser
36
+ # end
37
37
  # FindUser.call(Statefully::State.create(user_id: params[:id]))
38
38
  def self.call(state)
39
39
  new(state).call
@@ -68,7 +68,7 @@ module Linearly
68
68
  # FindUser.outputs
69
69
  # => { user: User }
70
70
  def self.outputs
71
- raise NotImplementedError
71
+ {}
72
72
  end
73
73
 
74
74
  private
@@ -88,7 +88,7 @@ module Linearly
88
88
  end
89
89
  private_class_method :new
90
90
 
91
- # Dynamically pass unknown messages to the wrapped +State+
91
+ # Dynamically pass valid inputs to the wrapped +State+
92
92
  #
93
93
  # @param name [Symbol|String]
94
94
  # @param args [Array<Object>]
@@ -98,9 +98,8 @@ module Linearly
98
98
  # @raise [NoMethodError]
99
99
  # @api private
100
100
  def method_missing(name, *args, &block)
101
- state.send(name, *args, &block)
102
- rescue NoMethodError
103
- super
101
+ allowed = (state.methods + self.class.inputs.keys).include?(name)
102
+ allowed ? state.send(name, *args, &block) : super
104
103
  end
105
104
 
106
105
  # Companion to `method_missing`
@@ -115,6 +114,6 @@ module Linearly
115
114
  def respond_to_missing?(name, include_private = false)
116
115
  state.send(:respond_to_missing?, name, include_private)
117
116
  end
118
- end # class Static
119
- end # module Step
120
- end # module Linearly
117
+ end
118
+ end
119
+ end
@@ -51,7 +51,7 @@ module Linearly
51
51
  def error_class
52
52
  Errors::BrokenContract::Inputs
53
53
  end
54
- end # class Inputs
54
+ end
55
55
 
56
56
  # {Inputs} is a post-flight {Validation} of {State} outputs
57
57
  class Outputs < Validation
@@ -64,7 +64,7 @@ module Linearly
64
64
  def error_class
65
65
  Errors::BrokenContract::Outputs
66
66
  end
67
- end # class Outputs
67
+ end
68
68
 
69
69
  # {Validator} is a stateful helper applying expecations to a {State}
70
70
  class Validator
@@ -118,7 +118,7 @@ module Linearly
118
118
  .map { |key| [key, Failure::Missing.instance] }
119
119
  .to_h
120
120
  end
121
- end # class Validator
121
+ end
122
122
  private_constant :Validator
123
123
 
124
124
  # {Failure} is a representation of a problem encountered when validating a
@@ -149,7 +149,7 @@ module Linearly
149
149
  def missing?
150
150
  true
151
151
  end
152
- end # class Missing
152
+ end
153
153
 
154
154
  # {Unexpected} is a type of {Failure} when a field exists, but its value
155
155
  # does not match expectations.
@@ -164,8 +164,8 @@ module Linearly
164
164
  def missing?
165
165
  false
166
166
  end
167
- end # class Unexpected
168
- end # class Failure
167
+ end
168
+ end
169
169
 
170
170
  # {Expectation} is a helper module to turn various types of expectations
171
171
  # into {Proc}s.
@@ -185,6 +185,6 @@ module Linearly
185
185
  expectation
186
186
  end
187
187
  module_function :to_proc
188
- end # module Expectation
189
- end # class Validation
190
- end # module Linearly
188
+ end
189
+ end
190
+ end
@@ -1,3 +1,3 @@
1
1
  module Linearly
2
- VERSION = '0.1.0'.freeze
3
- end # module Linearly
2
+ VERSION = '0.1.1'.freeze
3
+ end
data/spec/dynamic_step.rb CHANGED
@@ -10,6 +10,6 @@ module Linearly
10
10
  def outputs
11
11
  {}
12
12
  end
13
- end # class Valid
14
- end # class DynamicStep
15
- end # module Linearly
13
+ end
14
+ end
15
+ end
@@ -16,14 +16,14 @@ module Linearly
16
16
 
17
17
  it { expect(error.message).to eq message }
18
18
  it { expect(error.failures).to eq failures }
19
- end # describe BrokenContract::Inputs
19
+ end
20
20
 
21
21
  describe BrokenContract::Outputs do
22
22
  let(:message) { 'failed output expectations: [missing, unexpected]' }
23
23
 
24
24
  it { expect(error.message).to eq message }
25
25
  it { expect(error.failures).to eq failures }
26
- end # describe BrokenContract::Outputs
27
- end # describe BrokenContract
28
- end # module Errors
29
- end # module Linearly
26
+ end
27
+ end
28
+ end
29
+ end
@@ -8,6 +8,6 @@ module Linearly
8
8
 
9
9
  it { expect(error.message).to eq 'String is not a Statefully::State' }
10
10
  it { expect(error.value).to eq value }
11
- end # describe StateNotReturned
12
- end # module Errors
13
- end # module Linearly
11
+ end
12
+ end
13
+ end
data/spec/flow_spec.rb CHANGED
@@ -25,18 +25,18 @@ module Linearly
25
25
  it { expect(inputs.length).to eq 2 }
26
26
  it { expect(inputs.fetch(:key)).to eq String }
27
27
  it { expect(inputs.fetch(:other)).to eq Numeric }
28
- end # describe '#inputs'
28
+ end
29
29
 
30
30
  describe '#outputs' do
31
31
  let(:outputs) { flow.outputs }
32
32
 
33
33
  it { expect(outputs.length).to eq 1 }
34
34
  it { expect(outputs.fetch(:new_key)).to eq Symbol }
35
- end # describe '#outputs'
35
+ end
36
36
 
37
37
  describe '#>>' do
38
38
  it { expect(flow.>>(step1)).to be_a Flow }
39
- end # describe '#>>'
39
+ end
40
40
 
41
41
  describe '#call' do
42
42
  let(:state) { Statefully::State.create(**args) }
@@ -53,15 +53,15 @@ module Linearly
53
53
 
54
54
  it { expect(result).not_to be_successful }
55
55
  it { expect(result.error).to be_a RuntimeError }
56
- end # context 'with a throwing step'
56
+ end
57
57
 
58
58
  context 'with a step not returning State' do
59
59
  let(:step1_proc) { ->(_) { 'surprise!' } }
60
60
 
61
61
  it { expect(result).not_to be_successful }
62
62
  it { expect(result.error).to be_a Errors::StateNotReturned }
63
- end # context 'with a step not returning State'
64
- end # context 'with correct input'
63
+ end
64
+ end
65
65
 
66
66
  context 'with missing initial state' do
67
67
  let(:args) { { key: 'val' } }
@@ -69,7 +69,7 @@ module Linearly
69
69
  it { expect(result).to be_failed }
70
70
  it { expect(result.error).to be_a Errors::BrokenContract::Inputs }
71
71
  it { expect(result.history.length).to eq 2 }
72
- end # context 'with missing initial state'
73
- end # describe '#call'
74
- end # describe Flow
75
- end # module Linearly
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,11 @@
1
+ module Linearly
2
+ class ImplicitStep < Step::Static
3
+ def self.inputs
4
+ {}
5
+ end
6
+
7
+ def call
8
+ succeed(string: (number + 1).to_s)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ module Linearly
4
+ describe ImplicitStep do
5
+ describe '.call' do
6
+ let(:state) { Statefully::State.create(number: 7) }
7
+ let(:result) { described_class.call(state) }
8
+
9
+ it { expect { result.resolve }.to raise_error NameError }
10
+ end
11
+ end
12
+ end
data/spec/runner_spec.rb CHANGED
@@ -13,35 +13,35 @@ module Linearly
13
13
  it { expect(result).to be_successful }
14
14
  it { expect(result).not_to be_finished }
15
15
  it { expect(result.key).to eq 'val' }
16
- end # context 'when all goes well'
16
+ end
17
17
 
18
18
  shared_examples 'returns_error' do |error_class|
19
19
  it { expect(result).not_to be_successful }
20
20
  it { expect(result.error).to be_a error_class }
21
- end # shared_examples 'returns_error'
21
+ end
22
22
 
23
23
  context 'when input validation fails' do
24
24
  let(:inputs) { { other: true } }
25
25
 
26
26
  it_behaves_like 'returns_error', Errors::BrokenContract::Inputs
27
- end # context 'when input validation fails'
27
+ end
28
28
 
29
29
  context 'when step fails' do
30
30
  let(:behavior) { ->(state) { state.fail(RuntimeError.new('Boom!')) } }
31
31
 
32
32
  it_behaves_like 'returns_error', RuntimeError
33
- end # context 'when step fails'
33
+ end
34
34
 
35
35
  context 'when step finishes' do
36
36
  let(:behavior) { ->(state) { state.finish } }
37
37
 
38
38
  it { expect(result).to be_finished }
39
- end # context 'when step finishes'
39
+ end
40
40
 
41
41
  context 'when output validation fails' do
42
42
  let(:outputs) { { other: true } }
43
43
 
44
44
  it_behaves_like 'returns_error', Errors::BrokenContract::Outputs
45
- end # context 'when output validation fails'
46
- end # describe Runner
47
- end # module Linearly
45
+ end
46
+ end
47
+ end
data/spec/spec_helper.rb CHANGED
@@ -14,5 +14,6 @@ end
14
14
  require 'linearly'
15
15
 
16
16
  require 'dynamic_step'
17
+ require 'implicit_step'
17
18
  require 'static_step'
18
19
  require 'test_step'
data/spec/static_step.rb CHANGED
@@ -11,5 +11,5 @@ module Linearly
11
11
  def call
12
12
  succeed(string: (number + 1).to_s)
13
13
  end
14
- end # class StaticStep
15
- end # module Linearly
14
+ end
15
+ end
@@ -7,23 +7,23 @@ module Linearly
7
7
 
8
8
  describe '#inputs' do
9
9
  it { expect { step.inputs }.to raise_error NotImplementedError }
10
- end # describe '#inputs'
10
+ end
11
11
 
12
12
  describe '#outputs' do
13
- it { expect { step.outputs }.to raise_error NotImplementedError }
14
- end # describe '#outputs'
13
+ it { expect(step.outputs).to eq({}) }
14
+ end
15
15
 
16
16
  describe '#call' do
17
17
  let(:state) { Statefully::State.create }
18
18
 
19
19
  it { expect { step.call(state) }.to raise_error NotImplementedError }
20
- end # describe '#call'
20
+ end
21
21
 
22
22
  describe '#>>' do
23
23
  let(:step) { DynamicStep::Valid.new }
24
24
 
25
25
  it { expect(step.>>(step)).to be_a Flow }
26
- end # describe '#>>'
27
- end # describe Dynamic
28
- end # module Step
29
- end # module Linearly
26
+ end
27
+ end
28
+ end
29
+ end
@@ -6,13 +6,13 @@ module Linearly
6
6
  let(:state) { Statefully::State.create(**args) }
7
7
 
8
8
  it { expect { described_class.inputs }.to raise_error NotImplementedError }
9
- it { expect { described_class.outputs }.to raise_error NotImplementedError }
9
+ it { expect(described_class.outputs).to eq({}) }
10
10
 
11
11
  describe '.call' do
12
12
  let(:result) { described_class.call(state) }
13
13
 
14
14
  it { expect { result }.to raise_error NotImplementedError }
15
- end # describe '.call'
15
+ end
16
16
 
17
17
  describe 'implementation' do
18
18
  subject { StaticStep }
@@ -21,7 +21,7 @@ module Linearly
21
21
  let(:flow) { subject.>>(subject) }
22
22
 
23
23
  it { expect(flow).to be_a Flow }
24
- end # describe '.>>'
24
+ end
25
25
 
26
26
  describe '.call' do
27
27
  let(:result) { subject.call(state) }
@@ -31,22 +31,22 @@ module Linearly
31
31
 
32
32
  it { expect(result).not_to be_successful }
33
33
  it { expect(result.error).to be_a NoMethodError }
34
- end # context 'with missing input'
34
+ end
35
35
 
36
36
  context 'with correct input' do
37
37
  let(:args) { { number: 7 } }
38
38
 
39
39
  it { expect(result).to be_successful }
40
40
  it { expect(result.string).to eq '8' }
41
- end # context 'with correct input'
41
+ end
42
42
 
43
43
  context 'with incorrect input' do
44
44
  let(:args) { { number: '7' } }
45
45
 
46
46
  it { expect(result).not_to be_successful }
47
47
  it { expect(result.error).to be_a TypeError }
48
- end # context 'with incorrect input'
49
- end # describe '.call'
50
- end # describe 'implementation'
51
- end # describe Step::Static
52
- end # module Linearly
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
data/spec/test_step.rb CHANGED
@@ -12,5 +12,5 @@ module Linearly
12
12
  @outputs = outputs
13
13
  @behavior = behavior
14
14
  end
15
- end # class TestStep
16
- end # module Linearly
15
+ end
16
+ end
@@ -8,7 +8,7 @@ module Linearly
8
8
  shared_examples 'validation_fails' do |error_class|
9
9
  it { expect(validation).to be_failed }
10
10
  it { expect(validation.error).to be_a error_class }
11
- end # shared_examples 'validation_fails'
11
+ end
12
12
 
13
13
  shared_examples 'fails_when_missing_field' do |error_class|
14
14
  let(:field) { :other }
@@ -22,8 +22,8 @@ module Linearly
22
22
 
23
23
  it { expect(validation.error.failures).to have_key(field) }
24
24
  it { expect(validation.error.failures.fetch(field)).to be_missing }
25
- end # context 'with failures'
26
- end # shared_examples 'fails_when_missing_field'
25
+ end
26
+ end
27
27
 
28
28
  shared_examples 'fails_with_unexpected_value' do |error_class|
29
29
  it_behaves_like 'validation_fails', error_class
@@ -35,13 +35,13 @@ module Linearly
35
35
 
36
36
  it { expect(validation.error.failures).to have_key(field) }
37
37
  it { expect(validation.error.failures.fetch(field)).not_to be_missing }
38
- end # context 'with failures'
39
- end # shared_examples 'fails_with_unexpected_value'
38
+ end
39
+ end
40
40
 
41
41
  shared_examples 'succeeds_and_returns_state' do
42
42
  it { expect(validation).to be_successful }
43
43
  it { expect(validation).to eq state }
44
- end # shared_examples 'succeeds_and_returns_state'
44
+ end
45
45
 
46
46
  shared_examples 'supports_presence_expectation' do |error_class|
47
47
  let(:field) { :key }
@@ -49,7 +49,7 @@ module Linearly
49
49
 
50
50
  it_behaves_like 'fails_when_missing_field', error_class
51
51
  it_behaves_like 'succeeds_and_returns_state'
52
- end # shared_examples 'supports_presence_expectation'
52
+ end
53
53
 
54
54
  shared_examples 'supports_class_expectation' do |error_class|
55
55
  let(:field) { :key }
@@ -60,14 +60,14 @@ module Linearly
60
60
 
61
61
  context 'when expectation is met (default)' do
62
62
  it_behaves_like 'succeeds_and_returns_state'
63
- end # context 'when expectation is met (default)'
63
+ end
64
64
 
65
65
  context 'when expectation is not met' do
66
66
  let(:klass) { Numeric }
67
67
 
68
68
  it_behaves_like 'fails_with_unexpected_value', error_class
69
- end # context 'when expectation is not met'
70
- end # shared_examples 'supports_class_expectation'
69
+ end
70
+ end
71
71
 
72
72
  shared_examples 'supports_proc_expectation' do |error_class|
73
73
  let(:field) { :key }
@@ -79,14 +79,14 @@ module Linearly
79
79
 
80
80
  context 'when expectation is met (default)' do
81
81
  it_behaves_like 'succeeds_and_returns_state'
82
- end # context 'when expectation is met (default)'
82
+ end
83
83
 
84
84
  context 'when expectation is not met' do
85
85
  let(:expectation) { ->(val) { val.length == 4 } }
86
86
 
87
87
  it_behaves_like 'fails_with_unexpected_value', error_class
88
- end # context 'when expectation is not met'
89
- end # shared_examples 'supports_proc_expectation'
88
+ end
89
+ end
90
90
 
91
91
  describe Validation::Inputs do
92
92
  error = Errors::BrokenContract::Inputs
@@ -94,7 +94,7 @@ module Linearly
94
94
  it_behaves_like 'supports_presence_expectation', error
95
95
  it_behaves_like 'supports_class_expectation', error
96
96
  it_behaves_like 'supports_proc_expectation', error
97
- end # describe Validation::Inputs
97
+ end
98
98
 
99
99
  describe Validation::Outputs do
100
100
  error = Errors::BrokenContract::Outputs
@@ -102,6 +102,6 @@ module Linearly
102
102
  it_behaves_like 'supports_presence_expectation', error
103
103
  it_behaves_like 'supports_class_expectation', error
104
104
  it_behaves_like 'supports_proc_expectation', error
105
- end # describe Validation::Outputs
106
- end # describe Validation
107
- end # module Linearly
105
+ end
106
+ end
107
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: linearly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcin Wyszynski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-29 00:00:00.000000000 Z
11
+ date: 2017-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: statefully
@@ -28,238 +28,170 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '1.14'
34
31
  - - ">="
35
32
  - !ruby/object:Gem::Version
36
- version: 1.14.6
33
+ version: '0'
37
34
  type: :development
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
- - - "~>"
42
- - !ruby/object:Gem::Version
43
- version: '1.14'
44
38
  - - ">="
45
39
  - !ruby/object:Gem::Version
46
- version: 1.14.6
47
- - !ruby/object:Gem::Dependency
48
- name: closing_comments
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: '0.1'
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: 0.1.1
57
- type: :development
58
- prerelease: false
59
- version_requirements: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - "~>"
62
- - !ruby/object:Gem::Version
63
- version: '0.1'
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 0.1.1
40
+ version: '0'
67
41
  - !ruby/object:Gem::Dependency
68
42
  name: codecov
69
43
  requirement: !ruby/object:Gem::Requirement
70
44
  requirements:
71
- - - "~>"
72
- - !ruby/object:Gem::Version
73
- version: '0.1'
74
45
  - - ">="
75
46
  - !ruby/object:Gem::Version
76
- version: 0.1.10
47
+ version: '0'
77
48
  type: :development
78
49
  prerelease: false
79
50
  version_requirements: !ruby/object:Gem::Requirement
80
51
  requirements:
81
- - - "~>"
82
- - !ruby/object:Gem::Version
83
- version: '0.1'
84
52
  - - ">="
85
53
  - !ruby/object:Gem::Version
86
- version: 0.1.10
54
+ version: '0'
87
55
  - !ruby/object:Gem::Dependency
88
56
  name: ensure_version_bump
89
57
  requirement: !ruby/object:Gem::Requirement
90
58
  requirements:
91
- - - "~>"
59
+ - - ">="
92
60
  - !ruby/object:Gem::Version
93
- version: '0.1'
61
+ version: '0'
94
62
  type: :development
95
63
  prerelease: false
96
64
  version_requirements: !ruby/object:Gem::Requirement
97
65
  requirements:
98
- - - "~>"
66
+ - - ">="
99
67
  - !ruby/object:Gem::Version
100
- version: '0.1'
68
+ version: '0'
101
69
  - !ruby/object:Gem::Dependency
102
70
  name: pry
103
71
  requirement: !ruby/object:Gem::Requirement
104
72
  requirements:
105
- - - "~>"
106
- - !ruby/object:Gem::Version
107
- version: '0.10'
108
73
  - - ">="
109
74
  - !ruby/object:Gem::Version
110
- version: 0.10.4
75
+ version: '0'
111
76
  type: :development
112
77
  prerelease: false
113
78
  version_requirements: !ruby/object:Gem::Requirement
114
79
  requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '0.10'
118
80
  - - ">="
119
81
  - !ruby/object:Gem::Version
120
- version: 0.10.4
82
+ version: '0'
121
83
  - !ruby/object:Gem::Dependency
122
84
  name: rake
123
85
  requirement: !ruby/object:Gem::Requirement
124
86
  requirements:
125
- - - "~>"
87
+ - - ">="
126
88
  - !ruby/object:Gem::Version
127
- version: '12.0'
89
+ version: '0'
128
90
  type: :development
129
91
  prerelease: false
130
92
  version_requirements: !ruby/object:Gem::Requirement
131
93
  requirements:
132
- - - "~>"
94
+ - - ">="
133
95
  - !ruby/object:Gem::Version
134
- version: '12.0'
96
+ version: '0'
135
97
  - !ruby/object:Gem::Dependency
136
98
  name: reek
137
99
  requirement: !ruby/object:Gem::Requirement
138
100
  requirements:
139
- - - "~>"
140
- - !ruby/object:Gem::Version
141
- version: '4.6'
142
101
  - - ">="
143
102
  - !ruby/object:Gem::Version
144
- version: 4.6.2
103
+ version: '0'
145
104
  type: :development
146
105
  prerelease: false
147
106
  version_requirements: !ruby/object:Gem::Requirement
148
107
  requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: '4.6'
152
108
  - - ">="
153
109
  - !ruby/object:Gem::Version
154
- version: 4.6.2
110
+ version: '0'
155
111
  - !ruby/object:Gem::Dependency
156
112
  name: rspec
157
113
  requirement: !ruby/object:Gem::Requirement
158
114
  requirements:
159
- - - "~>"
115
+ - - ">="
160
116
  - !ruby/object:Gem::Version
161
- version: '3.6'
117
+ version: '0'
162
118
  type: :development
163
119
  prerelease: false
164
120
  version_requirements: !ruby/object:Gem::Requirement
165
121
  requirements:
166
- - - "~>"
122
+ - - ">="
167
123
  - !ruby/object:Gem::Version
168
- version: '3.6'
124
+ version: '0'
169
125
  - !ruby/object:Gem::Dependency
170
126
  name: rubocop
171
127
  requirement: !ruby/object:Gem::Requirement
172
128
  requirements:
173
- - - "~>"
129
+ - - ">="
174
130
  - !ruby/object:Gem::Version
175
- version: '0.49'
131
+ version: '0'
176
132
  type: :development
177
133
  prerelease: false
178
134
  version_requirements: !ruby/object:Gem::Requirement
179
135
  requirements:
180
- - - "~>"
136
+ - - ">="
181
137
  - !ruby/object:Gem::Version
182
- version: '0.49'
138
+ version: '0'
183
139
  - !ruby/object:Gem::Dependency
184
140
  name: rubocop-rspec
185
141
  requirement: !ruby/object:Gem::Requirement
186
142
  requirements:
187
- - - "~>"
188
- - !ruby/object:Gem::Version
189
- version: '1.15'
190
143
  - - ">="
191
144
  - !ruby/object:Gem::Version
192
- version: 1.15.1
145
+ version: '0'
193
146
  type: :development
194
147
  prerelease: false
195
148
  version_requirements: !ruby/object:Gem::Requirement
196
149
  requirements:
197
- - - "~>"
198
- - !ruby/object:Gem::Version
199
- version: '1.15'
200
150
  - - ">="
201
151
  - !ruby/object:Gem::Version
202
- version: 1.15.1
152
+ version: '0'
203
153
  - !ruby/object:Gem::Dependency
204
154
  name: simplecov
205
155
  requirement: !ruby/object:Gem::Requirement
206
156
  requirements:
207
- - - "~>"
208
- - !ruby/object:Gem::Version
209
- version: '0.14'
210
157
  - - ">="
211
158
  - !ruby/object:Gem::Version
212
- version: 0.14.1
159
+ version: '0'
213
160
  type: :development
214
161
  prerelease: false
215
162
  version_requirements: !ruby/object:Gem::Requirement
216
163
  requirements:
217
- - - "~>"
218
- - !ruby/object:Gem::Version
219
- version: '0.14'
220
164
  - - ">="
221
165
  - !ruby/object:Gem::Version
222
- version: 0.14.1
166
+ version: '0'
223
167
  - !ruby/object:Gem::Dependency
224
168
  name: yard
225
169
  requirement: !ruby/object:Gem::Requirement
226
170
  requirements:
227
- - - "~>"
228
- - !ruby/object:Gem::Version
229
- version: '0.9'
230
171
  - - ">="
231
172
  - !ruby/object:Gem::Version
232
- version: 0.9.9
173
+ version: '0'
233
174
  type: :development
234
175
  prerelease: false
235
176
  version_requirements: !ruby/object:Gem::Requirement
236
177
  requirements:
237
- - - "~>"
238
- - !ruby/object:Gem::Version
239
- version: '0.9'
240
178
  - - ">="
241
179
  - !ruby/object:Gem::Version
242
- version: 0.9.9
180
+ version: '0'
243
181
  - !ruby/object:Gem::Dependency
244
182
  name: yardstick
245
183
  requirement: !ruby/object:Gem::Requirement
246
184
  requirements:
247
- - - "~>"
248
- - !ruby/object:Gem::Version
249
- version: '0.9'
250
185
  - - ">="
251
186
  - !ruby/object:Gem::Version
252
- version: 0.9.9
187
+ version: '0'
253
188
  type: :development
254
189
  prerelease: false
255
190
  version_requirements: !ruby/object:Gem::Requirement
256
191
  requirements:
257
- - - "~>"
258
- - !ruby/object:Gem::Version
259
- version: '0.9'
260
192
  - - ">="
261
193
  - !ruby/object:Gem::Version
262
- version: 0.9.9
194
+ version: '0'
263
195
  description:
264
196
  email: marcinw [at] gmx.com
265
197
  executables: []
@@ -281,6 +213,8 @@ files:
281
213
  - spec/errors/broken_contract_spec.rb
282
214
  - spec/errors/state_not_returned_spec.rb
283
215
  - spec/flow_spec.rb
216
+ - spec/implicit_step.rb
217
+ - spec/implicit_step_spec.rb
284
218
  - spec/runner_spec.rb
285
219
  - spec/spec_helper.rb
286
220
  - spec/static_step.rb
@@ -309,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
309
243
  version: '0'
310
244
  requirements: []
311
245
  rubyforge_project:
312
- rubygems_version: 2.6.12
246
+ rubygems_version: 2.6.13
313
247
  signing_key:
314
248
  specification_version: 4
315
249
  summary: Linear workflow framework based on immutable state
@@ -318,6 +252,8 @@ test_files:
318
252
  - spec/errors/broken_contract_spec.rb
319
253
  - spec/errors/state_not_returned_spec.rb
320
254
  - spec/flow_spec.rb
255
+ - spec/implicit_step.rb
256
+ - spec/implicit_step_spec.rb
321
257
  - spec/runner_spec.rb
322
258
  - spec/spec_helper.rb
323
259
  - spec/static_step.rb