business_flow 0.17.0 → 0.17.4

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
- 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: []