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 +5 -5
- data/Gemfile.lock +62 -75
- data/business_flow.gemspec +6 -8
- data/lib/business_flow/dsl.rb +4 -7
- data/lib/business_flow/step.rb +3 -1
- data/lib/business_flow/validations.rb +1 -1
- data/lib/business_flow/version.rb +1 -1
- metadata +23 -51
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 57b8b055c5e74f6c55285b6b2c1514a062fb8f7ed5370538a482bae1f6319a21
|
|
4
|
+
data.tar.gz: 40b01f4b0e319225ae99890ebe3f9a93a2360f9a31ffe4379fe4b0b87afd91f0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
5
|
-
activemodel (
|
|
6
|
-
activesupport (
|
|
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 (
|
|
12
|
-
activesupport (=
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
i18n (
|
|
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.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
retryable (3.0.
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
rspec-
|
|
52
|
-
rspec-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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.
|
|
58
|
-
rspec-mocks (3.
|
|
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.
|
|
61
|
-
rspec-support (3.
|
|
62
|
-
rubocop (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 (
|
|
69
|
-
rubocop-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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.
|
|
79
|
-
tzinfo (1.2.
|
|
72
|
+
timecop (0.9.4)
|
|
73
|
+
tzinfo (1.2.9)
|
|
80
74
|
thread_safe (~> 0.1)
|
|
81
|
-
unicode-display_width (1.
|
|
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
|
-
|
|
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
|
|
100
|
-
simplecov (~> 0.15
|
|
101
|
-
timecop (~> 0.9
|
|
86
|
+
rubocop-rspec (~> 1.24)
|
|
87
|
+
simplecov (~> 0.15)
|
|
88
|
+
timecop (~> 0.9)
|
|
102
89
|
|
|
103
90
|
BUNDLED WITH
|
|
104
|
-
1.16.
|
|
91
|
+
1.16.6
|
data/business_flow.gemspec
CHANGED
|
@@ -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', '
|
|
24
|
-
spec.add_dependency 'activesupport', '
|
|
23
|
+
spec.add_dependency 'activemodel', '~> 4.2'
|
|
24
|
+
spec.add_dependency 'activesupport', '~> 4.2'
|
|
25
25
|
|
|
26
|
-
spec.add_development_dependency '
|
|
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
|
|
33
|
-
spec.add_development_dependency 'simplecov', '~> 0.15
|
|
34
|
-
spec.add_development_dependency 'timecop', '~> 0.9
|
|
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
|
data/lib/business_flow/dsl.rb
CHANGED
|
@@ -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,
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
data/lib/business_flow/step.rb
CHANGED
|
@@ -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
|
|
10
|
+
validates field, options
|
|
11
11
|
::BusinessFlow::DSL::Field.new(field).add_to(self)
|
|
12
12
|
end
|
|
13
13
|
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.
|
|
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:
|
|
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: '
|
|
48
|
-
type: :
|
|
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: '
|
|
26
|
+
version: '4.2'
|
|
55
27
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
28
|
+
name: activesupport
|
|
57
29
|
requirement: !ruby/object:Gem::Requirement
|
|
58
30
|
requirements:
|
|
59
31
|
- - "~>"
|
|
60
32
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
62
|
-
type: :
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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: []
|