business_flow 0.9.0 → 0.9.1
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/business_flow/dsl.rb +15 -13
- data/lib/business_flow/flow_failed_exception.rb +2 -1
- data/lib/business_flow/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 906ebc5d02936ddd4dccc1072c69ac670c355f0b
|
4
|
+
data.tar.gz: 75ea233a078575ed6a81aa79688e8189d3da95f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dacf0e265b3c9554b0b4ba051ab073cff9656629627a4a039880cf03aca028efb733ef3a793178fcdb3269c2c40911708a7df099c8f6055125f0fbb3b2dae72d
|
7
|
+
data.tar.gz: 0354714d39967dfc9aa211682c77cf919d165bad3f4666f148ec74447df5fa1f4298f3e4e401e659cdfaaa29fe44a135cdb257bafe232e55146949637f25fada
|
data/Gemfile.lock
CHANGED
data/lib/business_flow/dsl.rb
CHANGED
@@ -24,7 +24,7 @@ module BusinessFlow
|
|
24
24
|
|
25
25
|
# Declares that you will expose a field to the outside world.
|
26
26
|
def provides(*fields)
|
27
|
-
@provides ||= FieldList.new([], PublicField, self)
|
27
|
+
@provides ||= FieldList.new([], PublicField, [self, const_get(:Result)])
|
28
28
|
@provides.add_fields(fields)
|
29
29
|
end
|
30
30
|
|
@@ -43,8 +43,7 @@ module BusinessFlow
|
|
43
43
|
.each { |field| Field.new(field).add_to(self) }
|
44
44
|
end
|
45
45
|
|
46
|
-
def call(parameter_object)
|
47
|
-
_business_flow_finalize_result_class
|
46
|
+
def call(parameter_object = {})
|
48
47
|
execute(build(parameter_object))
|
49
48
|
end
|
50
49
|
|
@@ -82,12 +81,6 @@ module BusinessFlow
|
|
82
81
|
end
|
83
82
|
end
|
84
83
|
|
85
|
-
def _business_flow_finalize_result_class
|
86
|
-
return if @result_finalized
|
87
|
-
FieldList.new(provides, PublicField, const_get(:Result))
|
88
|
-
@result_finalized = true
|
89
|
-
end
|
90
|
-
|
91
84
|
def result_from(flow)
|
92
85
|
result_class = const_get(:Result)
|
93
86
|
provides_hash = Hash[provides.map do |field|
|
@@ -177,21 +170,30 @@ module BusinessFlow
|
|
177
170
|
!valid?(context)
|
178
171
|
end
|
179
172
|
|
180
|
-
# Responsible for creating fields on
|
173
|
+
# Responsible for creating fields on one or more classes and noting the of
|
174
|
+
# field
|
181
175
|
class FieldList
|
182
176
|
attr_reader :field_list
|
183
177
|
|
184
|
-
def initialize(field_list, field_klass,
|
178
|
+
def initialize(field_list, field_klass, klasses)
|
185
179
|
@field_list = []
|
186
180
|
@field_klass = field_klass
|
187
|
-
@
|
181
|
+
@klasses = [klasses].flatten
|
188
182
|
add_fields(field_list)
|
189
183
|
end
|
190
184
|
|
191
185
|
def add_fields(fields)
|
192
|
-
fields.each
|
186
|
+
fields.each do |field|
|
187
|
+
add_field(@field_klass.new(field))
|
188
|
+
end
|
193
189
|
@field_list.concat(fields)
|
194
190
|
end
|
191
|
+
|
192
|
+
private
|
193
|
+
|
194
|
+
def add_field(field)
|
195
|
+
@klasses.each { |klass| field.add_to(klass) }
|
196
|
+
end
|
195
197
|
end
|
196
198
|
|
197
199
|
# Helper class to manage logic around adding fields
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: business_flow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Scarborough
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|