rao-service_chain 0.0.44.pre → 0.0.45.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
- metadata +2 -3
- data/app/service_chains/rao/service_chain/base~.rb +0 -151
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c043e0aa263bea50c8e81884287f814b6de268cf757d03fb5390da52b229f38
|
4
|
+
data.tar.gz: c4d12b4b083643d8991a3f82e63864a2e8636a0e202b10b99643a42dc577d547
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0701e57bc3950614b428f1706735047c37853b592deb742a08e422d4d27332f1413ae3e272a3e6aa75bb0a69de433bfaba148ff39085e2a21b8bf26816e0577
|
7
|
+
data.tar.gz: 173f592cf1e00bf09f2aa2634045ed4c0ee15fe6b65f4845c88becd9ae203b7a73625ae0c6bccdf7a7a7a36ee46248b0596021231c22d231496c82401efcb106
|
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.45.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: 2020-
|
11
|
+
date: 2020-07-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -181,7 +181,6 @@ files:
|
|
181
181
|
- app/service_chains/rao/service_chain/aasm.rb
|
182
182
|
- app/service_chains/rao/service_chain/aasm/base.rb
|
183
183
|
- app/service_chains/rao/service_chain/base.rb
|
184
|
-
- app/service_chains/rao/service_chain/base~.rb
|
185
184
|
- app/service_steps/rao/service_chain/step/base.rb
|
186
185
|
- app/view_helpers/rao/service_chain/application_view_helper.rb
|
187
186
|
- app/views/rao/service_chain/application_view_helper/render_progress/_bootstrap4.html.haml
|
@@ -1,151 +0,0 @@
|
|
1
|
-
module Rao
|
2
|
-
module ServiceChain
|
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
|
-
if @actual_step.present?
|
12
|
-
actual_service = unwrap(@actual_step)
|
13
|
-
@actual_step = find_step_by_service(actual_service)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def wrap_actual_step!
|
18
|
-
@actual_step = wrap(@actual_step)
|
19
|
-
end
|
20
|
-
|
21
|
-
def steps=(steps)
|
22
|
-
@steps = steps.map { |s| wrap(s) }
|
23
|
-
end
|
24
|
-
|
25
|
-
def steps
|
26
|
-
raise "Child class responsiblity"
|
27
|
-
end
|
28
|
-
|
29
|
-
def step_index(step)
|
30
|
-
self.steps.map(&:service).index(step.try(:service))
|
31
|
-
end
|
32
|
-
|
33
|
-
def service_index(service)
|
34
|
-
self.steps.map(&:service).index(service)
|
35
|
-
end
|
36
|
-
|
37
|
-
def find_step_by_service(service)
|
38
|
-
self.steps[(service_index(service))]
|
39
|
-
end
|
40
|
-
|
41
|
-
def actual_step_index
|
42
|
-
self.steps.map(&:service).index(self.actual_step.try(:service))
|
43
|
-
end
|
44
|
-
|
45
|
-
def step_count
|
46
|
-
self.steps.size
|
47
|
-
end
|
48
|
-
|
49
|
-
def previous_step_index
|
50
|
-
self.steps.map(&:service).index(self.previous_step.try(:service))
|
51
|
-
end
|
52
|
-
|
53
|
-
def next_step_index
|
54
|
-
self.steps.map(&:service).index(self.next_step.try(:service))
|
55
|
-
end
|
56
|
-
|
57
|
-
def previous_step
|
58
|
-
return nil if self.actual_step_index.nil?
|
59
|
-
return nil if self.actual_step_index - 1 < 0
|
60
|
-
self.steps[self.actual_step_index - 1]
|
61
|
-
end
|
62
|
-
|
63
|
-
def previous_steps
|
64
|
-
return [] if self.actual_step_index.nil?
|
65
|
-
return [] if self.actual_step_index == 0
|
66
|
-
self.steps[0..(self.actual_step_index - 1)]
|
67
|
-
end
|
68
|
-
|
69
|
-
def next_step
|
70
|
-
if self.actual_step.try(:next_step).respond_to?(:call)
|
71
|
-
find_step_by_service(self.actual_step.next_step.call(self.actual_step))
|
72
|
-
else
|
73
|
-
return nil if self.actual_step_index.nil?
|
74
|
-
return nil if self.actual_step_index + 1 >= self.step_count
|
75
|
-
self.steps[self.actual_step_index + 1]
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
def next_steps
|
80
|
-
return [] if self.actual_step_index.nil?
|
81
|
-
self.steps[(self.actual_step_index + 1)..-1]
|
82
|
-
end
|
83
|
-
|
84
|
-
def next_step?
|
85
|
-
!!next_step
|
86
|
-
end
|
87
|
-
|
88
|
-
def previous_step?
|
89
|
-
!!previous_step
|
90
|
-
end
|
91
|
-
|
92
|
-
def next_step_url(options = {})
|
93
|
-
context = options.delete(:context)
|
94
|
-
self.next_step.url(context)
|
95
|
-
end
|
96
|
-
|
97
|
-
def steps_with_urls(context)
|
98
|
-
self.steps.map { |s| s.url(context); s }
|
99
|
-
end
|
100
|
-
|
101
|
-
def to_hash(context = nil)
|
102
|
-
{
|
103
|
-
actual_step: self.actual_step.to_hash(context),
|
104
|
-
steps: self.steps.map { |s| s.to_hash(context) }
|
105
|
-
}
|
106
|
-
end
|
107
|
-
|
108
|
-
def completed_steps
|
109
|
-
self.steps.collect { |s| s.completed? ? s : nil }.compact
|
110
|
-
end
|
111
|
-
|
112
|
-
def pending_steps
|
113
|
-
self.steps.collect { |s| s.pending? ? s : nil }.compact
|
114
|
-
end
|
115
|
-
|
116
|
-
def before_actual?(step)
|
117
|
-
return false if self.actual_step.nil?
|
118
|
-
return false if (si = step_index(wrap(step))).nil?
|
119
|
-
self.actual_step_index > si
|
120
|
-
end
|
121
|
-
|
122
|
-
def after_actual?(step)
|
123
|
-
return false if self.actual_step.nil?
|
124
|
-
return false if (si = step_index(wrap(step))).nil?
|
125
|
-
self.actual_step_index < si
|
126
|
-
end
|
127
|
-
|
128
|
-
private
|
129
|
-
|
130
|
-
def wrap(service, options = {})
|
131
|
-
if service.is_a?(wrapper_base_class)
|
132
|
-
service
|
133
|
-
else
|
134
|
-
wrapper_base_class.new(options.merge(service: service, chain: self))
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
def unwrap(step_or_service)
|
139
|
-
if step_or_service.is_a?(wrapper_base_class)
|
140
|
-
step_or_service.service
|
141
|
-
else
|
142
|
-
step_or_service
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
|
-
def wrapper_base_class
|
147
|
-
Rao::ServiceChain::Step::Base
|
148
|
-
end
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|