ecoportal-api 0.4.1 → 0.4.2
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/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
|