rf_app_serializer 0.0.0 → 0.1.0
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/rf_app_serializer.rb +19 -7
- data/lib/rf_app_serializer/phase.rb +19 -4
- metadata +24 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1e1aeb2b93fed5e509b5a1945d4d704f66dc752
|
4
|
+
data.tar.gz: 2ac873676b9980f8ede48919a921564a8353f872
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdafdae803ce879613195cbf6e1c56771c15735bd900ac05bde53597006084bb18cad3ac056ada1cce8cbb849c3c3bb1daf10cbcebd2c497c9fcd8178df954d9
|
7
|
+
data.tar.gz: 1716892e6604614de898505bcc3aa20b3498f21e833af496a174e37517c5befc218d698ea0483dc3d670d4d667ec1e8dc6e217494c638266dedd6f07e48e75b6
|
data/lib/rf_app_serializer.rb
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
require 'rf_app_serializer/phase'
|
2
|
+
require "active_support/core_ext/hash/indifferent_access"
|
2
3
|
|
3
4
|
class RfAppSerializer
|
4
5
|
attr_accessor :phases
|
5
6
|
|
6
7
|
def initialize(phases)
|
7
|
-
@phases = phases.each_with_index.map
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
@phases = phases.each_with_index.map do |phase, index|
|
9
|
+
Phase.new(
|
10
|
+
name: phase.with_indifferent_access[:name],
|
11
|
+
steps: phase.with_indifferent_access[:steps],
|
12
|
+
index: index
|
13
|
+
)
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
@@ -21,6 +22,17 @@ class RfAppSerializer
|
|
21
22
|
end
|
22
23
|
|
23
24
|
def active_step
|
24
|
-
find_active_phase.
|
25
|
+
find_active_phase.active_step
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def find_active_phase
|
31
|
+
phases.find { |phase| phase.is_current? } || last_completed_phase
|
32
|
+
end
|
33
|
+
|
34
|
+
# For out of sync applications (i.e, NLS)
|
35
|
+
def last_completed_phase
|
36
|
+
phases.find { |phase| phase.most_recent_step }
|
25
37
|
end
|
26
38
|
end
|
@@ -1,5 +1,8 @@
|
|
1
|
+
require "active_support/core_ext/hash/indifferent_access"
|
2
|
+
|
1
3
|
class Phase
|
2
|
-
attr_accessor :
|
4
|
+
attr_accessor :name, :steps, :index
|
5
|
+
|
3
6
|
def initialize(name:, steps:, index:)
|
4
7
|
@name = name
|
5
8
|
@steps = steps
|
@@ -7,18 +10,30 @@ class Phase
|
|
7
10
|
end
|
8
11
|
|
9
12
|
def is_complete?
|
10
|
-
steps.all? { |step| step[:completed_at] }
|
13
|
+
steps.all? { |step| step.with_indifferent_access[:completed_at] }
|
11
14
|
end
|
12
15
|
|
13
16
|
def is_started?
|
14
|
-
steps.any? { |step| step[:started_at] }
|
17
|
+
steps.any? { |step| step.with_indifferent_access[:started_at] }
|
15
18
|
end
|
16
19
|
|
17
20
|
def is_current?
|
18
21
|
is_started? && !is_complete?
|
19
22
|
end
|
20
23
|
|
24
|
+
def active_step
|
25
|
+
most_recent_step.with_indifferent_access[:name]
|
26
|
+
end
|
27
|
+
|
21
28
|
def most_recent_step
|
22
|
-
|
29
|
+
in_process_step || last_completed_step
|
30
|
+
end
|
31
|
+
|
32
|
+
def in_process_step
|
33
|
+
steps.find { |step| step.with_indifferent_access[:started_at] && !step.with_indifferent_access[:completed_at] }
|
34
|
+
end
|
35
|
+
|
36
|
+
def last_completed_step
|
37
|
+
steps.select { |step| step.with_indifferent_access[:completed_at] }.last
|
23
38
|
end
|
24
39
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rf_app_serializer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Duncombe, Alex
|
@@ -14,42 +14,56 @@ dependencies:
|
|
14
14
|
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: pry-byebug
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: activesupport
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '0'
|
55
69
|
description: It serializes our financing applications!
|
@@ -70,17 +84,17 @@ require_paths:
|
|
70
84
|
- lib
|
71
85
|
required_ruby_version: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- -
|
87
|
+
- - ">="
|
74
88
|
- !ruby/object:Gem::Version
|
75
89
|
version: '0'
|
76
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
91
|
requirements:
|
78
|
-
- -
|
92
|
+
- - ">="
|
79
93
|
- !ruby/object:Gem::Version
|
80
94
|
version: '0'
|
81
95
|
requirements: []
|
82
96
|
rubyforge_project:
|
83
|
-
rubygems_version: 2.
|
97
|
+
rubygems_version: 2.2.2
|
84
98
|
signing_key:
|
85
99
|
specification_version: 4
|
86
100
|
summary: Application serializer
|