procedure 0.0.4 → 0.0.5
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/lib/procedure/organizer.rb +3 -2
- data/lib/procedure/outcome.rb +10 -10
- data/lib/procedure/process.rb +6 -6
- data/lib/procedure/version.rb +1 -1
- metadata +20 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c458faddf925c1111b375c756b44a34174fdcfeed4d90211dd8adca6b7639e29
|
4
|
+
data.tar.gz: 0b84a6265afa0f2324e248d9614bb4aa0559bace68b61bac2cbe6f2052ddfe9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afca081ce6fba7a2bd748dbb25677df3b0dcf9268490c3c4533737101f1ef67e41b9415fbcac5448bd3f33e090a584bf98eeaf73f09688090c17adee76299235
|
7
|
+
data.tar.gz: 3173f16e423bb214772b79c1c138b896160717b5acfd4fce6ddde0c44a262ccf4a638bd23a36288db1c89d40576e44c3af28cdadc00ccaacf54a021d2c548e44
|
data/lib/procedure/organizer.rb
CHANGED
@@ -12,12 +12,13 @@ module Procedure
|
|
12
12
|
@step_classes = step_classes
|
13
13
|
end
|
14
14
|
|
15
|
-
def call(context
|
15
|
+
def call(context: {}, options: {})
|
16
|
+
base_options = { fail_fast: true }.merge(options)
|
16
17
|
params = { execution_time: Time.now }.merge(context)
|
17
18
|
fake_open_struct = Struct.new(*params.keys).new(*params.values)
|
18
19
|
|
19
20
|
Procedure::Process.new(fake_open_struct, @step_classes).tap do |process|
|
20
|
-
process.call
|
21
|
+
process.call(base_options[:fail_fast])
|
21
22
|
end
|
22
23
|
end
|
23
24
|
end
|
data/lib/procedure/outcome.rb
CHANGED
@@ -2,7 +2,7 @@ module Procedure
|
|
2
2
|
class Outcome
|
3
3
|
def initialize(step_classes)
|
4
4
|
@step_classes = step_classes
|
5
|
-
@
|
5
|
+
@failed_steps = []
|
6
6
|
@passed_steps = []
|
7
7
|
end
|
8
8
|
|
@@ -10,28 +10,28 @@ module Procedure
|
|
10
10
|
if step.passed?
|
11
11
|
@passed_steps << step
|
12
12
|
else
|
13
|
-
@
|
13
|
+
@failed_steps << step
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
18
|
-
return unless failure?
|
17
|
+
def failure_messages
|
18
|
+
return [] unless failure?
|
19
19
|
|
20
|
-
@
|
20
|
+
@failed_steps.map(&:failure_message)
|
21
21
|
end
|
22
22
|
|
23
|
-
def
|
24
|
-
return unless failure?
|
23
|
+
def failure_codes
|
24
|
+
return [] unless failure?
|
25
25
|
|
26
|
-
@
|
26
|
+
@failed_steps.map(&:failure_code)
|
27
27
|
end
|
28
28
|
|
29
29
|
def failure?
|
30
|
-
|
30
|
+
@failed_steps.size.positive?
|
31
31
|
end
|
32
32
|
|
33
33
|
def positive?
|
34
|
-
@
|
34
|
+
@failed_steps.size.zero? && @step_classes.size == @passed_steps.size
|
35
35
|
end
|
36
36
|
|
37
37
|
def passed_steps
|
data/lib/procedure/process.rb
CHANGED
@@ -14,24 +14,24 @@ module Procedure
|
|
14
14
|
!success?
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
18
|
-
outcome.
|
17
|
+
def failure_messages
|
18
|
+
outcome.failure_messages
|
19
19
|
end
|
20
20
|
|
21
|
-
def
|
22
|
-
outcome.
|
21
|
+
def failure_codes
|
22
|
+
outcome.failure_codes
|
23
23
|
end
|
24
24
|
|
25
25
|
def passed_steps
|
26
26
|
outcome.passed_steps
|
27
27
|
end
|
28
28
|
|
29
|
-
def call
|
29
|
+
def call(fail_fast)
|
30
30
|
@steps.each do |step_class|
|
31
31
|
step = step_class.new(@context)
|
32
32
|
outcome.add(step)
|
33
33
|
|
34
|
-
break if outcome.failure?
|
34
|
+
break if outcome.failure? && fail_fast
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
data/lib/procedure/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: procedure
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paweł Dąbrowski
|
@@ -14,22 +14,36 @@ dependencies:
|
|
14
14
|
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.7'
|
17
20
|
- - ">="
|
18
21
|
- !ruby/object:Gem::Version
|
19
22
|
version: 3.7.0
|
23
|
+
type: :development
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
20
27
|
- - "~>"
|
21
28
|
- !ruby/object:Gem::Version
|
22
29
|
version: '3.7'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.7.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: pry
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
23
40
|
type: :development
|
24
41
|
prerelease: false
|
25
42
|
version_requirements: !ruby/object:Gem::Requirement
|
26
43
|
requirements:
|
27
44
|
- - ">="
|
28
45
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
30
|
-
- - "~>"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '3.7'
|
46
|
+
version: '0'
|
33
47
|
description: Mariage of policy object and interactor patterns
|
34
48
|
email: dziamber@gmail.com
|
35
49
|
executables: []
|
@@ -61,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
61
75
|
- !ruby/object:Gem::Version
|
62
76
|
version: '0'
|
63
77
|
requirements: []
|
64
|
-
rubygems_version: 3.
|
78
|
+
rubygems_version: 3.2.11
|
65
79
|
signing_key:
|
66
80
|
specification_version: 4
|
67
81
|
summary: Mariage of policy object and interactor patterns
|