ecoportal-api-v2 0.9.5 → 0.9.7

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: b4a2c3d92ddeb876e56bd7059d4ca1b3a9a9ce5537371b69a6eebf6f78c7e577
4
- data.tar.gz: c973b20893ac8e57b066d4cda1e685235caaf9dbda60dee8b5e943062eaee831
3
+ metadata.gz: cd61279f012c243d8ac7dc7168273fb76ad2555871f464c17c38a2a54147aea8
4
+ data.tar.gz: a7837403a1df3d5e386d9fd71a24cb29eb98c43ea12637c9a4dd19301ac13bec
5
5
  SHA512:
6
- metadata.gz: 4234c62329be25117a0e40fa7576f038e314480f10be190bf0c5492e9dfd4798683f7dec2a5e60cfd9cd5eaff63104e7ec49db2264b207915bd355b5bcc3585c
7
- data.tar.gz: fb7c035cbb19dfa76f63140c5dc2a256b826d88cfbbc5ddf2e14936c68b4dbeab42afec1687813606c363a3bc1ce9739b811f09aaab4905fa58b40405192ee6c
6
+ metadata.gz: bb9cdb7833b7eae455274cd89348e395c01bd423d8d9591c62b1f66a129b8e3ef9a13f6301870cf75b4707be6306e4ee83299b6bcc9ce05d3224741d44141019
7
+ data.tar.gz: 9009e8341f147df8610777d99026f6a2107b2fe64d5e0e0c5fa0b7623d632982899e00728a02c6a737395a6755a40f19a54e805b86ab6648cef51e46e3c3c9a4
data/CHANGELOG.md CHANGED
@@ -1,12 +1,35 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
- ## [0.9.6] - 2022-11-xx
4
+ ## [0.9.8] - 2022-11-xx
5
5
 
6
6
  ### Added
7
7
  ### Changed
8
8
  ### Fixed
9
9
 
10
+ ## [0.9.7] - 2022-11-29
11
+
12
+ ### Added
13
+ - `Ecoportal::API::V2::Page::Component::ReferenceField` added methods `#delete` and `#clear`
14
+
15
+ ### Changed
16
+ - `Ecoportal::API::V2::Page::Component::ReferenceField#add`
17
+ - be able to add multiple references
18
+ - prevent double-ups, just in case the server doesn't handle this
19
+
20
+ ### Fixed
21
+ - `Ecoportal::API::V2::Page::Component#bindings`
22
+
23
+ ## [0.9.6] - 2022-11-18
24
+
25
+ ### Added
26
+ - `Ecoportal::API::V2::Page::Stage#components`
27
+ - `Ecoportal::API::V2::Page::Component#replace`
28
+ - `Ecoportal::API::V2::Page::Force::Binding#replace`
29
+
30
+ ### Fixed
31
+ - `Ecoportal::API::V2::Page::Component#bindings`
32
+
10
33
  ## [0.9.5] - 2022-11-17
11
34
 
12
35
  ### Fixed
@@ -175,7 +175,7 @@ module Ecoportal
175
175
  # @return [Object] the `items_class` element object
176
176
  def upsert!(value, pos: NOT_USED, before: NOT_USED, after: NOT_USED)
177
177
  unless value.is_a?(Hash) || value.is_a?(Content::DoubleModel)
178
- raise "'Content::DoubleModel' or 'Hash' doc required"
178
+ raise "'Content::DoubleModel' or 'Hash' doc required. Given #{value.class}"
179
179
  end
180
180
  item_doc = value.is_a?(Content::DoubleModel)? value.doc : value
181
181
  item_doc = JSON.parse(item_doc.to_json)
@@ -13,19 +13,36 @@ module Ecoportal
13
13
  def empty?
14
14
  reference_ids.empty?
15
15
  end
16
-
16
+
17
17
  def reference_ids
18
18
  references.map do |ref|
19
19
  ref["id"]
20
20
  end
21
21
  end
22
22
 
23
- def add(ref_id)
24
- doc["references"].push({
25
- "id" => ref_id,
26
- "weight" => 0,
27
- "patch_ver" => 0
28
- })
23
+ def add(*ref_ids)
24
+ doc["references"].tap do |refs|
25
+ ref_ids.each do |ref_id|
26
+ next if reference_ids.include?(ref_id)
27
+ refs.push({
28
+ "id" => ref_id,
29
+ "weight" => 0,
30
+ "patch_ver" => 0
31
+ })
32
+ end
33
+ end
34
+ end
35
+
36
+ def clear
37
+ delete(*reference_ids)
38
+ end
39
+
40
+ def delete(*ref_ids)
41
+ ref_ids.each do |ref_id|
42
+ if doc_ref = doc["references"].find {|doc_ref| doc_ref["id"] == ref_id}
43
+ doc["references"].delete(doc_ref)
44
+ end
45
+ end
29
46
  end
30
47
 
31
48
  def to_s(delimiter: "\n")
@@ -139,7 +139,6 @@ module Ecoportal
139
139
  ooze.forces.each_with_object([]) do |force, out|
140
140
  out.push(*force.bindings.get_by_reference(self))
141
141
  end
142
- out
143
142
  end
144
143
 
145
144
  # @return [Array<Ecoportal::API::V2::Page::Force] the forces this component is bound to if any.
@@ -154,6 +153,22 @@ module Ecoportal
154
153
  forces.count > 0
155
154
  end
156
155
 
156
+ # If the field has bindings they are replaced by this new field
157
+ # @note careful with this, depending what's done in the force, this may brake the force.
158
+ def replace(fld)
159
+ if fld.section
160
+ fld.move(section: self.section, before: self)
161
+ else
162
+ self.section.add(fld, before: self)
163
+ end
164
+ replace_bindings(fld)
165
+ self.delete!
166
+ end
167
+
168
+ def replace_bindings(fld)
169
+ bindings.map {|b| b.replace(fld)}
170
+ end
171
+
157
172
  def delete!
158
173
  bindings.each {|b| b.delete!}
159
174
  self.unattach!
@@ -53,6 +53,12 @@ module Ecoportal
53
53
  self.component? ? component : section
54
54
  end
55
55
 
56
+ def replace(mem_sec)
57
+ self._parent.add(mem_sec, name: self.name, before: self) do |bind|
58
+ self.delete! if bind
59
+ end
60
+ end
61
+
56
62
  def delete!
57
63
  self._parent.delete!(self)
58
64
  end
@@ -21,6 +21,10 @@ module Ecoportal
21
21
  self._parent.ooze
22
22
  end
23
23
 
24
+ def components
25
+ sections.map(&:components).flatten(1).uniq
26
+ end
27
+
24
28
  # @yield [section] do some stuff with section.
25
29
  # @yieldparam section [Ecoportal::API::V2::Page::Section] one of the sections of this stage
26
30
  # @return [Array<Ecoportal::API::V2::Page::Section>] sections attached to this stage.
@@ -1,5 +1,5 @@
1
1
  module Ecoportal
2
2
  module API
3
- GEM2_VERSION = "0.9.5"
3
+ GEM2_VERSION = "0.9.7"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecoportal-api-v2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5
4
+ version: 0.9.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-17 00:00:00.000000000 Z
11
+ date: 2022-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler