flow 0.10.6 → 0.10.7.1.pre1

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.
data/lib/flow.rb CHANGED
@@ -5,11 +5,14 @@ require "active_record"
5
5
  require "active_support"
6
6
 
7
7
  require "spicery"
8
+ require "malfunction"
8
9
 
9
10
  require "flow/version"
10
11
 
11
12
  require "flow/concerns/transaction_wrapper"
12
13
 
14
+ require "flow/malfunction/base"
15
+
13
16
  require "flow/flow_base"
14
17
  require "flow/operation_base"
15
18
  require "flow/state_base"
@@ -7,12 +7,12 @@ module Flow
7
7
  extend ActiveSupport::Concern
8
8
 
9
9
  class_methods do
10
- def trigger!(*arguments)
11
- new(*arguments).trigger!
10
+ def trigger!(*arguments, **options)
11
+ new(*arguments, **options).trigger!
12
12
  end
13
13
 
14
- def trigger(*arguments)
15
- new(*arguments).trigger
14
+ def trigger(*arguments, **options)
15
+ new(*arguments, **options).trigger
16
16
  end
17
17
  end
18
18
 
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Flow
4
+ module Malfunction
5
+ class Base < ::Malfunction::MalfunctionBase
6
+ prefixed_with "Flow::Malfunction::"
7
+ suffixed_with nil
8
+ end
9
+ end
10
+ end
@@ -16,7 +16,7 @@ module Flow
16
16
  def state_proxy_class
17
17
  @state_proxy_class ||= Class.new(StateProxy).tap do |proxy_class|
18
18
  delegate_method_names = _state_writers.map { |method_name| "#{method_name}=" } + _state_readers
19
- proxy_class.delegate(*delegate_method_names, to: :state) if delegate_method_names.any?
19
+ proxy_class.delegate(*delegate_method_names, to: :_state) if delegate_method_names.any?
20
20
  end
21
21
  end
22
22
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # When an exception is raised during during execution, but a handler can rescue, it causes a failure instead.
3
+ # When an exception is raised during execution, but a handler can rescue, it causes a failure instead.
4
4
  module Flow
5
5
  module Operation
6
6
  module ErrorHandler
@@ -44,7 +44,12 @@ module Flow
44
44
 
45
45
  def matches?(object)
46
46
  @state_expectations.all? do |key, value|
47
- expect(object.state.public_send(key)).to match value
47
+ # If state is actually a StateProxy, we to access the state directly with _state
48
+ if object.state.respond_to?(:_state)
49
+ expect(object.state.__send__(:_state).public_send(key)).to match value
50
+ else
51
+ expect(object.state.public_send(key)).to match value
52
+ end
48
53
  end
49
54
  end
50
55
 
@@ -4,27 +4,27 @@
4
4
  module Flow
5
5
  class StateProxy
6
6
  def initialize(state)
7
- @state = state
7
+ @_state = state
8
8
  end
9
9
 
10
10
  # @deprecated
11
11
  def method_missing(method_name, *arguments, &block)
12
- return super unless state.respond_to?(method_name)
12
+ return super unless _state.respond_to?(method_name)
13
13
 
14
14
  ActiveSupport::Deprecation.warn(
15
- "Direct state access of `#{method_name}' on #{state.inspect} will be removed in a future version of flow. "\
15
+ "Direct state access of `#{method_name}' on #{_state.inspect} will be removed in a future version of flow. "\
16
16
  "Use a state accessor instead - for more information see github/freshly/flow/deprecation_notice"
17
17
  )
18
- state.public_send(method_name, *arguments, &block)
18
+ _state.public_send(method_name, *arguments, &block)
19
19
  end
20
20
 
21
21
  # @deprecated
22
22
  def respond_to_missing?(method_name, include_private = false)
23
- state.respond_to?(method_name) || super
23
+ _state.respond_to?(method_name) || super
24
24
  end
25
25
 
26
26
  private
27
27
 
28
- attr_reader :state
28
+ attr_reader :_state
29
29
  end
30
30
  end
data/lib/flow/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Flow
4
- VERSION = "0.10.6"
4
+ VERSION = "0.10.7.1.pre1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.6
4
+ version: 0.10.7.1.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Garside
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2020-01-09 00:00:00.000000000 Z
15
+ date: 2021-04-09 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: activemodel
@@ -62,7 +62,7 @@ dependencies:
62
62
  requirements:
63
63
  - - ">="
64
64
  - !ruby/object:Gem::Version
65
- version: 0.20.4
65
+ version: 0.21.0
66
66
  - - "<"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.0'
@@ -72,7 +72,27 @@ dependencies:
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 0.20.4
75
+ version: 0.21.0
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: '1.0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: malfunction
81
+ requirement: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: 0.2.0
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.0'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 0.2.0
76
96
  - - "<"
77
97
  - !ruby/object:Gem::Version
78
98
  version: '1.0'
@@ -80,14 +100,14 @@ dependencies:
80
100
  name: bundler
81
101
  requirement: !ruby/object:Gem::Requirement
82
102
  requirements:
83
- - - "~>"
103
+ - - ">="
84
104
  - !ruby/object:Gem::Version
85
105
  version: 2.0.1
86
106
  type: :development
87
107
  prerelease: false
88
108
  version_requirements: !ruby/object:Gem::Requirement
89
109
  requirements:
90
- - - "~>"
110
+ - - ">="
91
111
  - !ruby/object:Gem::Version
92
112
  version: 2.0.1
93
113
  - !ruby/object:Gem::Dependency
@@ -96,14 +116,14 @@ dependencies:
96
116
  requirements:
97
117
  - - "~>"
98
118
  - !ruby/object:Gem::Version
99
- version: '10.0'
119
+ version: '13.0'
100
120
  type: :development
101
121
  prerelease: false
102
122
  version_requirements: !ruby/object:Gem::Requirement
103
123
  requirements:
104
124
  - - "~>"
105
125
  - !ruby/object:Gem::Version
106
- version: '10.0'
126
+ version: '13.0'
107
127
  - !ruby/object:Gem::Dependency
108
128
  name: simplecov
109
129
  requirement: !ruby/object:Gem::Requirement
@@ -180,7 +200,7 @@ dependencies:
180
200
  requirements:
181
201
  - - ">="
182
202
  - !ruby/object:Gem::Version
183
- version: 0.20.4
203
+ version: 0.25.7
184
204
  - - "<"
185
205
  - !ruby/object:Gem::Version
186
206
  version: '1.0'
@@ -190,7 +210,7 @@ dependencies:
190
210
  requirements:
191
211
  - - ">="
192
212
  - !ruby/object:Gem::Version
193
- version: 0.20.4
213
+ version: 0.25.7
194
214
  - - "<"
195
215
  - !ruby/object:Gem::Version
196
216
  version: '1.0'
@@ -200,7 +220,7 @@ dependencies:
200
220
  requirements:
201
221
  - - ">="
202
222
  - !ruby/object:Gem::Version
203
- version: 0.20.4
223
+ version: 0.21.0
204
224
  - - "<"
205
225
  - !ruby/object:Gem::Version
206
226
  version: '1.0'
@@ -210,7 +230,7 @@ dependencies:
210
230
  requirements:
211
231
  - - ">="
212
232
  - !ruby/object:Gem::Version
213
- version: 0.20.4
233
+ version: 0.21.0
214
234
  - - "<"
215
235
  - !ruby/object:Gem::Version
216
236
  version: '1.0'
@@ -234,6 +254,7 @@ files:
234
254
  - lib/flow/flow/transactions.rb
235
255
  - lib/flow/flow/trigger.rb
236
256
  - lib/flow/flow_base.rb
257
+ - lib/flow/malfunction/base.rb
237
258
  - lib/flow/operation/accessors.rb
238
259
  - lib/flow/operation/callbacks.rb
239
260
  - lib/flow/operation/core.rb
@@ -316,12 +337,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
316
337
  version: '0'
317
338
  required_rubygems_version: !ruby/object:Gem::Requirement
318
339
  requirements:
319
- - - ">="
340
+ - - ">"
320
341
  - !ruby/object:Gem::Version
321
- version: '0'
342
+ version: 1.3.1
322
343
  requirements: []
323
- rubyforge_project:
324
- rubygems_version: 2.7.6
344
+ rubygems_version: 3.1.4
325
345
  signing_key:
326
346
  specification_version: 4
327
347
  summary: Write modular and reusable business logic that's understandable and maintainable.