rao-service_chain 0.0.36.pre → 0.0.38.pre
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/app/service_chains/rao/service_chain/base.rb +34 -29
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e5e8c17080f335d7dca5868c7ebb9b634ac4875dc3f0da34a980636bfefcb73
|
4
|
+
data.tar.gz: b0e57dd2954bfbbf1f4b2baeacc1f21a7f4e5163296547eea4073b61ad5ef65b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85191653db150a484fc6ec8af2146fc8d1d042711e775a45243ce7165a543753e1c18f3f06bba02b79151b0c8c1de27312837a5a42cd7d477ebf638084880907
|
7
|
+
data.tar.gz: 2b31b9257e8b961eca6f51c27084d72471b39dc8aa8b15a329f9568f137227f0e0b73902d89d5c455c0306ff0c89e17006d6a246b6fc4896ed9fe97c180bdf4a
|
@@ -1,29 +1,29 @@
|
|
1
1
|
module Rao
|
2
2
|
module ServiceChain
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
3
|
+
class Base
|
4
|
+
attr_accessor :steps
|
5
|
+
attr_accessor :actual_step
|
6
|
+
|
7
|
+
def initialize(options = {})
|
8
|
+
options.each do |key, value|
|
9
|
+
self.send("#{key}=", value)
|
10
|
+
end
|
11
11
|
wrap_actual_step! if @actual_step.present?
|
12
|
-
|
12
|
+
end
|
13
13
|
|
14
14
|
def wrap_actual_step!
|
15
15
|
@actual_step = wrap(@actual_step)
|
16
16
|
end
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
def steps=(steps)
|
19
|
+
@steps = steps.map { |s| wrap(s) }
|
20
|
+
end
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
def steps
|
23
|
+
raise "Child class responsiblity"
|
24
|
+
end
|
25
25
|
|
26
|
-
|
26
|
+
def step_index(step)
|
27
27
|
self.steps.map(&:service).index(step.try(:service))
|
28
28
|
end
|
29
29
|
|
@@ -36,17 +36,17 @@ module Rao
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def previous_step_index
|
39
|
-
|
39
|
+
self.steps.map(&:service).index(self.previous_step.try(:service))
|
40
40
|
end
|
41
41
|
|
42
42
|
def next_step_index
|
43
|
-
|
43
|
+
self.steps.map(&:service).index(self.next_step.try(:service))
|
44
44
|
end
|
45
45
|
|
46
46
|
def previous_step
|
47
47
|
return nil if self.actual_step_index.nil?
|
48
|
-
|
49
|
-
|
48
|
+
return nil if self.actual_step_index - 1 < 0
|
49
|
+
self.steps[self.actual_step_index - 1]
|
50
50
|
end
|
51
51
|
|
52
52
|
def previous_steps
|
@@ -57,8 +57,8 @@ module Rao
|
|
57
57
|
|
58
58
|
def next_step
|
59
59
|
return nil if self.actual_step_index.nil?
|
60
|
-
|
61
|
-
|
60
|
+
return nil if self.actual_step_index + 1 >= self.step_count
|
61
|
+
self.steps[self.actual_step_index + 1]
|
62
62
|
end
|
63
63
|
|
64
64
|
def next_steps
|
@@ -67,16 +67,16 @@ module Rao
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def next_step?
|
70
|
-
|
70
|
+
!!next_step
|
71
71
|
end
|
72
72
|
|
73
73
|
def previous_step?
|
74
|
-
|
74
|
+
!!previous_step
|
75
75
|
end
|
76
76
|
|
77
77
|
def next_step_url(options = {})
|
78
|
-
|
79
|
-
|
78
|
+
context = options.delete(:context)
|
79
|
+
self.next_step.url(context)
|
80
80
|
end
|
81
81
|
|
82
82
|
def steps_with_urls(context)
|
@@ -113,8 +113,13 @@ module Rao
|
|
113
113
|
private
|
114
114
|
|
115
115
|
def wrap(service, options = {})
|
116
|
-
|
117
|
-
|
118
|
-
|
116
|
+
wrapper_class = Rao::ServiceChain::Step::Base
|
117
|
+
if service.is_a?(wrapper_class)
|
118
|
+
service
|
119
|
+
else
|
120
|
+
wrapper_class.new(options.merge(service: service, chain: self))
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
119
124
|
end
|
120
125
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rao-service_chain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.38.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roberto Vasquez Angel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|