business_flow 0.17.0 → 0.17.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 30ea0891a62bcdd44afbf082b704e4a3deb7e5b1
4
- data.tar.gz: 6cc8b240e591ffe7d9415cbc0293a1b466c880d7
2
+ SHA256:
3
+ metadata.gz: 57b8b055c5e74f6c55285b6b2c1514a062fb8f7ed5370538a482bae1f6319a21
4
+ data.tar.gz: 40b01f4b0e319225ae99890ebe3f9a93a2360f9a31ffe4379fe4b0b87afd91f0
5
5
  SHA512:
6
- metadata.gz: 8d706886574479bc3c9bbd2cf1b1c444bf76737473d612b0beb429fcfbfb23de2e26b1c86428095bdeab950beefc7aff647f65be2584f86ed511e370cd3a8ce5
7
- data.tar.gz: e480293a62820301a174da33c9264b81db9c098a9715d1aaac65c67b09e7290f7e859a1de83420c800ba0bf9fdf7a5f06e099e2db43a3f96418580bcd0892309
6
+ metadata.gz: 6c3fc8bf70de03131787d8973e77117a80f824810a92f08abec20ec20ae2d10e5dd04eb7b3afdb9c759c01bdf97f87b440358f6ae5bbf3ad3c81a6375b350492
7
+ data.tar.gz: 332391d394a721cbcb5c3b212cae333daea82e7f2c34bc51dc1142c5d0f4c7b5438c06df7e9e22dd72f94a573fc39254763e33cff85bdb044eaaa85e1ca0c69a
data/Gemfile.lock CHANGED
@@ -1,104 +1,91 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- business_flow (0.17.0)
5
- activemodel (>= 3.0)
6
- activesupport (>= 3.0)
4
+ business_flow (0.17.3)
5
+ activemodel (~> 4.2)
6
+ activesupport (~> 4.2)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activemodel (5.1.6)
12
- activesupport (= 5.1.6)
13
- activesupport (5.1.6)
14
- concurrent-ruby (~> 1.0, >= 1.0.2)
15
- i18n (>= 0.7, < 2)
11
+ activemodel (4.2.11.3)
12
+ activesupport (= 4.2.11.3)
13
+ builder (~> 3.1)
14
+ activesupport (4.2.11.3)
15
+ i18n (~> 0.7)
16
16
  minitest (~> 5.1)
17
+ thread_safe (~> 0.3, >= 0.3.4)
17
18
  tzinfo (~> 1.1)
18
- ast (2.4.0)
19
- axiom-types (0.1.1)
20
- descendants_tracker (~> 0.0.4)
21
- ice_nine (~> 0.11.0)
22
- thread_safe (~> 0.3, >= 0.3.1)
23
- codeclimate-engine-rb (0.4.1)
24
- virtus (~> 1.0)
25
- coercible (1.0.0)
26
- descendants_tracker (~> 0.0.1)
27
- concurrent-ruby (1.0.5)
28
- descendants_tracker (0.0.4)
29
- thread_safe (~> 0.3, >= 0.3.1)
30
- diff-lcs (1.3)
31
- docile (1.1.5)
32
- equalizer (0.0.11)
33
- i18n (1.0.0)
19
+ ast (2.4.2)
20
+ builder (3.2.4)
21
+ concurrent-ruby (1.1.9)
22
+ diff-lcs (1.4.4)
23
+ docile (1.3.5)
24
+ i18n (0.9.5)
34
25
  concurrent-ruby (~> 1.0)
35
- ice_nine (0.11.2)
36
- json (2.1.0)
37
- minitest (5.11.3)
38
- parallel (1.12.1)
39
- parser (2.5.0.4)
40
- ast (~> 2.4.0)
41
- powerpack (0.1.1)
26
+ kwalify (0.7.2)
27
+ minitest (5.14.4)
28
+ parallel (1.20.1)
29
+ parser (3.0.2.0)
30
+ ast (~> 2.4.1)
42
31
  rainbow (3.0.0)
43
- rake (10.5.0)
44
- reek (4.8.0)
45
- codeclimate-engine-rb (~> 0.4.0)
46
- parser (>= 2.5.0.0, < 2.6)
47
- rainbow (~> 3.0)
48
- retryable (3.0.4)
49
- rspec (3.7.0)
50
- rspec-core (~> 3.7.0)
51
- rspec-expectations (~> 3.7.0)
52
- rspec-mocks (~> 3.7.0)
53
- rspec-core (3.7.1)
54
- rspec-support (~> 3.7.0)
55
- rspec-expectations (3.7.0)
32
+ reek (6.0.6)
33
+ kwalify (~> 0.7.0)
34
+ parser (~> 3.0.0)
35
+ rainbow (>= 2.0, < 4.0)
36
+ regexp_parser (2.1.1)
37
+ retryable (3.0.5)
38
+ rexml (3.2.5)
39
+ rspec (3.10.0)
40
+ rspec-core (~> 3.10.0)
41
+ rspec-expectations (~> 3.10.0)
42
+ rspec-mocks (~> 3.10.0)
43
+ rspec-core (3.10.1)
44
+ rspec-support (~> 3.10.0)
45
+ rspec-expectations (3.10.1)
56
46
  diff-lcs (>= 1.2.0, < 2.0)
57
- rspec-support (~> 3.7.0)
58
- rspec-mocks (3.7.0)
47
+ rspec-support (~> 3.10.0)
48
+ rspec-mocks (3.10.2)
59
49
  diff-lcs (>= 1.2.0, < 2.0)
60
- rspec-support (~> 3.7.0)
61
- rspec-support (3.7.1)
62
- rubocop (0.53.0)
50
+ rspec-support (~> 3.10.0)
51
+ rspec-support (3.10.2)
52
+ rubocop (0.93.1)
63
53
  parallel (~> 1.10)
64
- parser (>= 2.5)
65
- powerpack (~> 0.1)
54
+ parser (>= 2.7.1.5)
66
55
  rainbow (>= 2.2.2, < 4.0)
56
+ regexp_parser (>= 1.8)
57
+ rexml
58
+ rubocop-ast (>= 0.6.0)
67
59
  ruby-progressbar (~> 1.7)
68
- unicode-display_width (~> 1.0, >= 1.0.1)
69
- rubocop-rspec (1.24.0)
70
- rubocop (>= 0.53.0)
71
- ruby-progressbar (1.9.0)
72
- simplecov (0.15.1)
73
- docile (~> 1.1.0)
74
- json (>= 1.8, < 3)
75
- simplecov-html (~> 0.10.0)
76
- simplecov-html (0.10.2)
60
+ unicode-display_width (>= 1.4.0, < 2.0)
61
+ rubocop-ast (1.4.1)
62
+ parser (>= 2.7.1.5)
63
+ rubocop-rspec (1.44.1)
64
+ rubocop (~> 0.87)
65
+ rubocop-ast (>= 0.7.1)
66
+ ruby-progressbar (1.11.0)
67
+ simplecov (0.18.5)
68
+ docile (~> 1.1)
69
+ simplecov-html (~> 0.11)
70
+ simplecov-html (0.12.3)
77
71
  thread_safe (0.3.6)
78
- timecop (0.9.1)
79
- tzinfo (1.2.5)
72
+ timecop (0.9.4)
73
+ tzinfo (1.2.9)
80
74
  thread_safe (~> 0.1)
81
- unicode-display_width (1.3.0)
82
- virtus (1.0.5)
83
- axiom-types (~> 0.1)
84
- coercible (~> 1.0)
85
- descendants_tracker (~> 0.0, >= 0.0.3)
86
- equalizer (~> 0.0, >= 0.0.9)
75
+ unicode-display_width (1.7.0)
87
76
 
88
77
  PLATFORMS
89
78
  ruby
90
79
 
91
80
  DEPENDENCIES
92
- bundler (~> 1.16)
93
81
  business_flow!
94
- rake (~> 10.0)
95
- reek (~> 4.8)
82
+ reek (~> 6)
96
83
  retryable (~> 3.0.4)
97
84
  rspec (~> 3.0)
98
85
  rubocop (~> 0.53)
99
- rubocop-rspec (~> 1.24.0)
100
- simplecov (~> 0.15.1)
101
- timecop (~> 0.9.1)
86
+ rubocop-rspec (~> 1.24)
87
+ simplecov (~> 0.15)
88
+ timecop (~> 0.9)
102
89
 
103
90
  BUNDLED WITH
104
- 1.16.1
91
+ 1.16.6
@@ -20,16 +20,14 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ['lib']
22
22
 
23
- spec.add_dependency 'activemodel', '>= 3.0'
24
- spec.add_dependency 'activesupport', '>= 3.0'
23
+ spec.add_dependency 'activemodel', '~> 4.2'
24
+ spec.add_dependency 'activesupport', '~> 4.2'
25
25
 
26
- spec.add_development_dependency 'bundler', '~> 1.16'
27
- spec.add_development_dependency 'rake', '~> 10.0'
28
- spec.add_development_dependency 'reek', '~> 4.8'
26
+ spec.add_development_dependency 'reek', '~> 6'
29
27
  spec.add_development_dependency 'retryable', '~> 3.0.4'
30
28
  spec.add_development_dependency 'rspec', '~> 3.0'
31
29
  spec.add_development_dependency 'rubocop', '~> 0.53'
32
- spec.add_development_dependency 'rubocop-rspec', '~> 1.24.0'
33
- spec.add_development_dependency 'simplecov', '~> 0.15.1'
34
- spec.add_development_dependency 'timecop', '~> 0.9.1'
30
+ spec.add_development_dependency 'rubocop-rspec', '~> 1.24'
31
+ spec.add_development_dependency 'simplecov', '~> 0.15'
32
+ spec.add_development_dependency 'timecop', '~> 0.9'
35
33
  end
@@ -75,7 +75,7 @@ module BusinessFlow
75
75
 
76
76
  # Declares that you will expose a field to the outside world.
77
77
  def provides(*fields)
78
- @provides ||= FieldList.new([], PublicField, [self, @result_klass])
78
+ @provides ||= FieldList.new([], PublicField, [self, const_get(:Result)])
79
79
  @result_copy ||= FROM_FLOW_PREAMBLE
80
80
  @result_copy += fields.map { |field| "\n@#{field} = flow.#{field}" }
81
81
  .join
@@ -147,14 +147,14 @@ module BusinessFlow
147
147
  # We use instance_variable_get here instead of making it part of
148
148
  # from_flow to ensure that we do not create the errors object unless
149
149
  # we need it.
150
- result = @result_klass.new(flow.instance_variable_get(:@errors))
150
+ result = const_get(:Result).new(flow.instance_variable_get(:@errors))
151
151
  result.from_flow(flow) if @result_copy
152
152
  result
153
153
  end
154
154
 
155
155
  def finalize_result_provider
156
156
  return if @finalized_result_provider || !@result_copy
157
- @result_klass.class_eval "#{@result_copy}\nend", __FILE__, __LINE__
157
+ const_get(:Result).class_eval "#{@result_copy}\nend", __FILE__, __LINE__
158
158
  @finalized_result_provider = true
159
159
  end
160
160
 
@@ -199,7 +199,7 @@ module BusinessFlow
199
199
  def errors?
200
200
  # We're explicitly using the instance variable here so that if no
201
201
  # errors have been created, we don't initialize the error object.
202
- @errors && @errors.present?
202
+ !!@errors && @errors.present?
203
203
  end
204
204
 
205
205
  def valid?(_context = nil)
@@ -227,7 +227,6 @@ module BusinessFlow
227
227
  def self.included(klass)
228
228
  klass.extend(ClassMethods)
229
229
  klass.class_eval RESULT_DEF, __FILE__, __LINE__
230
- klass.instance_variable_set(:@result_klass, klass.const_get(:Result))
231
230
  klass.extend(ErrorSupport) unless klass.respond_to?(:human_attribute_name)
232
231
  end
233
232
 
@@ -361,8 +360,6 @@ module BusinessFlow
361
360
  def self.setter_factory(field, ivar_name)
362
361
  <<-SETTER
363
362
  #{ivar_name} = new_value
364
- throw :halt_step unless valid?(:#{field})
365
- new_value
366
363
  SETTER
367
364
  end
368
365
 
@@ -62,9 +62,11 @@ module BusinessFlow
62
62
  # because that will run validations and a step may return a partially
63
63
  # constructed model. By instead pulling out the errors instance variable
64
64
  # we'll only merge errors if validations have already been run.
65
- elsif @result.class.include?(ActiveModel::Validations) &&
65
+ elsif @result.class.ancestors.include?(ActiveModel::Validations) &&
66
66
  @result.instance_variable_defined?(:@errors)
67
67
  @result.instance_variable_get(:@errors).present?
68
+ elsif @result.respond_to?(:errors)
69
+ @result.errors.present?
68
70
  else
69
71
  false
70
72
  end
@@ -7,7 +7,7 @@ module BusinessFlow
7
7
  # processing, and that it should meet the given ActiveModel
8
8
  # validations.
9
9
  def expects(field, options = {})
10
- validates field, options.merge(on: field)
10
+ validates field, options
11
11
  ::BusinessFlow::DSL::Field.new(field).add_to(self)
12
12
  end
13
13
  end
@@ -1,3 +1,3 @@
1
1
  module BusinessFlow
2
- VERSION = '0.17.0'.freeze
2
+ VERSION = '0.17.4'.freeze
3
3
  end
metadata CHANGED
@@ -1,85 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: business_flow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.17.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Scarborough
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-10 00:00:00.000000000 Z
11
+ date: 2021-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '3.0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '3.0'
27
- - !ruby/object:Gem::Dependency
28
- name: activesupport
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '3.0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '3.0'
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
43
15
  requirement: !ruby/object:Gem::Requirement
44
16
  requirements:
45
17
  - - "~>"
46
18
  - !ruby/object:Gem::Version
47
- version: '1.16'
48
- type: :development
19
+ version: '4.2'
20
+ type: :runtime
49
21
  prerelease: false
50
22
  version_requirements: !ruby/object:Gem::Requirement
51
23
  requirements:
52
24
  - - "~>"
53
25
  - !ruby/object:Gem::Version
54
- version: '1.16'
26
+ version: '4.2'
55
27
  - !ruby/object:Gem::Dependency
56
- name: rake
28
+ name: activesupport
57
29
  requirement: !ruby/object:Gem::Requirement
58
30
  requirements:
59
31
  - - "~>"
60
32
  - !ruby/object:Gem::Version
61
- version: '10.0'
62
- type: :development
33
+ version: '4.2'
34
+ type: :runtime
63
35
  prerelease: false
64
36
  version_requirements: !ruby/object:Gem::Requirement
65
37
  requirements:
66
38
  - - "~>"
67
39
  - !ruby/object:Gem::Version
68
- version: '10.0'
40
+ version: '4.2'
69
41
  - !ruby/object:Gem::Dependency
70
42
  name: reek
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
45
  - - "~>"
74
46
  - !ruby/object:Gem::Version
75
- version: '4.8'
47
+ version: '6'
76
48
  type: :development
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
80
52
  - - "~>"
81
53
  - !ruby/object:Gem::Version
82
- version: '4.8'
54
+ version: '6'
83
55
  - !ruby/object:Gem::Dependency
84
56
  name: retryable
85
57
  requirement: !ruby/object:Gem::Requirement
@@ -128,43 +100,43 @@ dependencies:
128
100
  requirements:
129
101
  - - "~>"
130
102
  - !ruby/object:Gem::Version
131
- version: 1.24.0
103
+ version: '1.24'
132
104
  type: :development
133
105
  prerelease: false
134
106
  version_requirements: !ruby/object:Gem::Requirement
135
107
  requirements:
136
108
  - - "~>"
137
109
  - !ruby/object:Gem::Version
138
- version: 1.24.0
110
+ version: '1.24'
139
111
  - !ruby/object:Gem::Dependency
140
112
  name: simplecov
141
113
  requirement: !ruby/object:Gem::Requirement
142
114
  requirements:
143
115
  - - "~>"
144
116
  - !ruby/object:Gem::Version
145
- version: 0.15.1
117
+ version: '0.15'
146
118
  type: :development
147
119
  prerelease: false
148
120
  version_requirements: !ruby/object:Gem::Requirement
149
121
  requirements:
150
122
  - - "~>"
151
123
  - !ruby/object:Gem::Version
152
- version: 0.15.1
124
+ version: '0.15'
153
125
  - !ruby/object:Gem::Dependency
154
126
  name: timecop
155
127
  requirement: !ruby/object:Gem::Requirement
156
128
  requirements:
157
129
  - - "~>"
158
130
  - !ruby/object:Gem::Version
159
- version: 0.9.1
131
+ version: '0.9'
160
132
  type: :development
161
133
  prerelease: false
162
134
  version_requirements: !ruby/object:Gem::Requirement
163
135
  requirements:
164
136
  - - "~>"
165
137
  - !ruby/object:Gem::Version
166
- version: 0.9.1
167
- description:
138
+ version: '0.9'
139
+ description:
168
140
  email:
169
141
  - alex@teak.io
170
142
  executables: []
@@ -200,7 +172,7 @@ homepage: https://teak.io
200
172
  licenses:
201
173
  - MIT
202
174
  metadata: {}
203
- post_install_message:
175
+ post_install_message:
204
176
  rdoc_options: []
205
177
  require_paths:
206
178
  - lib
@@ -215,9 +187,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
215
187
  - !ruby/object:Gem::Version
216
188
  version: '0'
217
189
  requirements: []
218
- rubyforge_project:
219
- rubygems_version: 2.6.11
220
- signing_key:
190
+ rubyforge_project:
191
+ rubygems_version: 2.7.10
192
+ signing_key:
221
193
  specification_version: 4
222
194
  summary: General purpose management of service object flows
223
195
  test_files: []