ecoportal-api 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ecoportal/api/common/base_model.rb +27 -14
- data/lib/ecoportal/api/v1/person_details.rb +2 -2
- data/lib/ecoportal/api/version.rb +1 -1
- 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: d1914cfc85642ce0eb960a35e6dc4d97282940945e8a366cd2151a69fc6b7ce8
|
4
|
+
data.tar.gz: 31d89929059068830b89ccae88343a20643531d5165ca0e62464bf2f9a4f0576
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9325950d7ea384111f5905635b879ce83ebbc9174409f54ef63b172ad4da1d35aee37e37d97593e161c9a62449266dbcd05a1ba2da194ae2a3cbcdce72831f55
|
7
|
+
data.tar.gz: 68e5c643263e021dbd88eb26710c9cd549913d57164b6a53aebbb98cf8b38809525c88f0f709680fed8e926fdce88310a20956585b97d829f0fe7c86d5e5b333
|
@@ -53,14 +53,14 @@ module Ecoportal
|
|
53
53
|
|
54
54
|
def doc
|
55
55
|
raise UnlinkedModel.new unless linked?
|
56
|
-
return
|
57
|
-
|
56
|
+
return @doc if is_root?
|
57
|
+
_parent.doc.dig(*[_key].flatten)
|
58
58
|
end
|
59
59
|
|
60
60
|
def original_doc
|
61
61
|
raise UnlinkedModel.new unless linked?
|
62
|
-
return
|
63
|
-
|
62
|
+
return @original_doc if is_root?
|
63
|
+
_parent.original_doc.dig(*[_key].flatten)
|
64
64
|
end
|
65
65
|
|
66
66
|
def as_json
|
@@ -82,21 +82,21 @@ module Ecoportal
|
|
82
82
|
|
83
83
|
def consolidate!
|
84
84
|
raise UnlinkedModel.new unless linked?
|
85
|
-
|
86
|
-
|
87
|
-
@original_doc =
|
85
|
+
new_doc = JSON.parse(doc.to_json)
|
86
|
+
if is_root?
|
87
|
+
@original_doc = new_doc
|
88
88
|
else
|
89
|
-
_parent.original_doc[_key]
|
89
|
+
dig_set(_parent.original_doc, [_key].flatten, new_doc)
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
93
|
def reset!
|
94
94
|
raise UnlinkedModel.new unless linked?
|
95
|
-
|
96
|
-
|
97
|
-
@doc =
|
95
|
+
new_doc = JSON.parse(original_doc.to_json)
|
96
|
+
if is_root?
|
97
|
+
@doc = new_doc
|
98
98
|
else
|
99
|
-
_parent.doc[_key]
|
99
|
+
dig_set(_parent.doc, [_key].flatten, new_doc)
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
@@ -107,9 +107,22 @@ module Ecoportal
|
|
107
107
|
|
108
108
|
protected
|
109
109
|
|
110
|
+
def is_root?
|
111
|
+
_parent == self && !!defined?(@doc)
|
112
|
+
end
|
113
|
+
|
110
114
|
def linked?
|
111
|
-
is_root
|
112
|
-
|
115
|
+
is_root? || !!_parent.doc.dig(*[_key].flatten)
|
116
|
+
end
|
117
|
+
|
118
|
+
private
|
119
|
+
|
120
|
+
def dig_set(obj, keys, value)
|
121
|
+
if keys.length == 1
|
122
|
+
obj[keys.first] = value
|
123
|
+
else
|
124
|
+
dig_set(obj[keys.first], keys.slice(1..-1), value)
|
125
|
+
end
|
113
126
|
end
|
114
127
|
|
115
128
|
end
|
@@ -22,8 +22,8 @@ module Ecoportal
|
|
22
22
|
# @return [Array<SchemaFieldValue>] the array of fields of the schema.
|
23
23
|
def fields
|
24
24
|
return @fields if defined?(@fields)
|
25
|
-
@fields = (doc["fields"] || []).map do |field|
|
26
|
-
schema_field_value_class.new(field)
|
25
|
+
@fields = (doc["fields"] || []).each_with_index.map do |field, i|
|
26
|
+
schema_field_value_class.new(field, parent: self, key: ["fields", i])
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ecoportal-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tapio Saarinen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-04-
|
11
|
+
date: 2019-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|