rao-service_chain 0.0.42.pre → 0.0.47.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eef27fc8f2a5fcc1a1d6434f39519976f2aa24f2736368713aafa4c02c030f2d
4
- data.tar.gz: d3777a94d300f861958d7dfef5ab83ff4a39d47ed30f62328a6f11ad9b88520c
3
+ metadata.gz: ecf77fe7992fdd61014ea7bba87c59b8a8b80fa5085be674d2dd4d959450729a
4
+ data.tar.gz: dee853b32bc4f1fe2cfd3a69c3fa86f10fdf5349f2e0efce6e6be5d8139eeb6b
5
5
  SHA512:
6
- metadata.gz: 37d0c350c1c86ed978ebabf283ff6d8090a6e8b6e3fd1ab48b10f45e8730486c83858464d231e8e3f02da0435ce59c22793d9c194b538014b5a0f2ea335ead01
7
- data.tar.gz: c8a355694e8aa24995ae03210522d6db0dfb1ff8d696d2ce93e38558b871b98e4da685f91bd90deae04a60f10c32552922849d5bed920d6b8a811ac1a9a3590b
6
+ metadata.gz: 9e7ba661288a87db0471166a6e0c5af09c0fafb58fb5b0ea1b1d6f091d318020ef324c579093845c06c2891d61a1457964adeeb4545a3d2907c661848be78e25
7
+ data.tar.gz: 693b33d7b9cda5c9e15ee649a2a1d9e8ed332af5e04d9d10cc297f4a61f8a0fee8452ab3033d10c223e0df7fd82ef24acd8c2c592d0ae800c7fcb138aa6e9cb1
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.42.pre
4
+ version: 0.0.47.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-05-20 00:00:00.000000000 Z
11
+ date: 2020-10-25 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
@@ -212,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
211
  - !ruby/object:Gem::Version
213
212
  version: 1.3.1
214
213
  requirements: []
215
- rubygems_version: 3.1.3
214
+ rubygems_version: 3.1.4
216
215
  signing_key:
217
216
  specification_version: 4
218
217
  summary: Service Chains for Ruby on Rails.
@@ -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