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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 254483f2d453c88df108e640de3f7794005b4fa6f65f30f45dfadc940ffcf757
4
- data.tar.gz: ae495f9491b9029700efa5f4496824fe3de492ccd5804b85cd411fb31ed34eae
3
+ metadata.gz: 8c043e0aa263bea50c8e81884287f814b6de268cf757d03fb5390da52b229f38
4
+ data.tar.gz: c4d12b4b083643d8991a3f82e63864a2e8636a0e202b10b99643a42dc577d547
5
5
  SHA512:
6
- metadata.gz: af107137fcf8241adf6a5efaae45cdaf30fc6f86747e4f0c031828bce6c952afdbd8a3b7fbb3ebc251365518bc897aa3b76ef75c841a960c892de53189d44c87
7
- data.tar.gz: 7edbd7bba66785a9430b01e49e6b520648030f7e559328127af2d9ff38cc3e225f2308823fa2a3aa531705c3ee4fc334c8debd01735cc21c0fc59b833e515fc0
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.44.pre
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-06-28 00:00:00.000000000 Z
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