ecoportal-api-v2 1.1.7 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/.markdownlint.json +4 -0
  3. data/.rubocop.yml +54 -15
  4. data/.ruby-version +1 -0
  5. data/CHANGELOG.md +485 -373
  6. data/ecoportal-api-v2.gemspec +13 -12
  7. data/lib/ecoportal/api/common/concerns/benchmarkable.rb +47 -34
  8. data/lib/ecoportal/api/common/concerns/threadable.rb +41 -0
  9. data/lib/ecoportal/api/common/concerns.rb +1 -0
  10. data/lib/ecoportal/api/common/content/array_model.rb +85 -79
  11. data/lib/ecoportal/api/common/content/class_helpers.rb +34 -31
  12. data/lib/ecoportal/api/common/content/collection_model.rb +77 -65
  13. data/lib/ecoportal/api/common/content/double_model.rb +105 -87
  14. data/lib/ecoportal/api/common/content/wrapped_response.rb +11 -11
  15. data/lib/ecoportal/api/v2/page/component/reference_field.rb +17 -13
  16. data/lib/ecoportal/api/v2/page/component.rb +67 -68
  17. data/lib/ecoportal/api/v2/page/components.rb +9 -9
  18. data/lib/ecoportal/api/v2/page/force.rb +6 -7
  19. data/lib/ecoportal/api/v2/page/stages.rb +5 -6
  20. data/lib/ecoportal/api/v2/page.rb +35 -33
  21. data/lib/ecoportal/api/v2/pages/page_stage.rb +22 -20
  22. data/lib/ecoportal/api/v2/pages.rb +18 -14
  23. data/lib/ecoportal/api/v2/people.rb +2 -3
  24. data/lib/ecoportal/api/v2/registers.rb +28 -13
  25. data/lib/ecoportal/api/v2/s3/data.rb +27 -0
  26. data/lib/ecoportal/api/v2/s3/files/batch_upload.rb +110 -0
  27. data/lib/ecoportal/api/v2/s3/files/poll.rb +82 -0
  28. data/lib/ecoportal/api/v2/s3/files/poll_status.rb +52 -0
  29. data/lib/ecoportal/api/v2/s3/files.rb +132 -0
  30. data/lib/ecoportal/api/v2/s3/upload.rb +154 -0
  31. data/lib/ecoportal/api/v2/s3.rb +66 -0
  32. data/lib/ecoportal/api/v2.rb +10 -3
  33. data/lib/ecoportal/api/v2_version.rb +1 -1
  34. metadata +53 -54
data/CHANGELOG.md CHANGED
@@ -1,691 +1,803 @@
1
1
  # Change Log
2
+
2
3
  All notable changes to this project will be documented in this file.
3
4
 
4
- ## [1.1.8] - 2024-03-xx
5
+ ## [2.0.0] - 2024-08-01
5
6
 
6
7
  ### Added
8
+
9
+ - File upload to S3 and register it to ecoPortal
10
+ - `Ecoportal::API::Common::Content::DoubleModel`
11
+ - Allow update on `external_id`
12
+
13
+ ### Changed
14
+
15
+ - require `ruby 3`
16
+
17
+ ### Fixed
18
+
19
+ ## [1.1.8] - 2024-03-23
20
+
7
21
  ### Changed
22
+
23
+ - A lot of code tidy up
24
+
8
25
  ### Fixed
9
26
 
10
- ## [1.1.7] - 2024-03-xx
27
+ - `Ecoportal::API::Common::Conent::CollectionModel`
28
+ - correct `item` `klass` resolution
29
+
30
+ ## [1.1.7] - 2024-03-13
11
31
 
12
32
  ### Added
13
- - `Ecoportal::API::Common::Concerns::Benchmarkable`
14
- - `Ecoportal::API::Common::Conent::CollectionModel`
15
- - added ability to define **default** value for `read_only`
33
+
34
+ - `Ecoportal::API::Common::Concerns::Benchmarkable`
35
+ - `Ecoportal::API::Common::Conent::CollectionModel`
36
+ - added ability to define **default** value for `read_only`
16
37
 
17
38
  ### Fixed
18
- - `Ecoportal::API::Common::Content::CollectionModel` tidied up item `klass` scoping
19
- - **added** some benchmarking too
20
- - memoize `@_items`
39
+
40
+ - `Ecoportal::API::Common::Content::CollectionModel` tidied up item `klass` scoping
41
+ - **added** some benchmarking too
42
+ - memoize `@_items`
21
43
 
22
44
  ## [1.1.6] - 2024-02-29
23
45
 
24
46
  ### Added
25
- - A bit of **specs** on object retrieval for `Ecoportal::API::Common::Conent::CollectionModel`
26
- - `Ecoportal::API::Registers::PageResult` exposed `membranes`
27
- - with new object `Ecoportal::API::Registers::PageResult::MembraneDroplet`
47
+
48
+ - A bit of **specs** on object retrieval for `Ecoportal::API::Common::Conent::CollectionModel`
49
+ - `Ecoportal::API::Registers::PageResult` exposed `membranes`
50
+ - with new object `Ecoportal::API::Registers::PageResult::MembraneDroplet`
28
51
 
29
52
  ### Fixed
30
- - `Ecoportal::API::Common::Conent::CollectionModel`
53
+
54
+ - `Ecoportal::API::Common::Conent::CollectionModel`
31
55
 
32
56
  ## [1.1.5] - 2024-02-03
33
57
 
34
58
  ### Changed
35
- - Upgrade gem dependencies
59
+
60
+ - Upgrade gem dependencies
36
61
 
37
62
  ## [1.1.4] - 2024-02-01
38
63
 
39
64
  ### Added
40
- - Support for new fields
41
- - `Ecoportal::API::V2::Page::Component::ActionsField`
42
- - `Ecoportal::API::V2::Page::Component::MailboxField`
65
+
66
+ - Support for new fields
67
+ - `Ecoportal::API::V2::Page::Component::ActionsField`
68
+ - `Ecoportal::API::V2::Page::Component::MailboxField`
43
69
 
44
70
  ## [1.1.3] - 2023-06-28
45
71
 
46
72
  ### Added
47
- - `Ecoportal::API::V2::Page::Component::ContractorEntitiesField`
48
- - Added support for contractor entities fields.
73
+
74
+ - `Ecoportal::API::V2::Page::Component::ContractorEntitiesField`
75
+ - Added support for contractor entities fields.
49
76
 
50
77
  ## [1.1.2] - 2023-04-17
51
78
 
52
79
  ### Changed
53
- - Require ruby version `2.7.2`
54
- - Soften max version on **gem** dependencies
55
- - Upgrade core `ecoportal-api` gem
80
+
81
+ - Require ruby version `2.7.2`
82
+ - Soften max version on **gem** dependencies
83
+ - Upgrade core `ecoportal-api` gem
56
84
 
57
85
  ### Fixed
58
- - `Ecoportal::API::Common::Content::DoubleModel` was not copying `doc` at root level
86
+
87
+ - `Ecoportal::API::Common::Content::DoubleModel` was not copying `doc` at root level
59
88
 
60
89
  ## [1.1.1] - 2023-03-09
61
90
 
62
91
  ### Added
92
+
63
93
  ### Changed
64
- - upgraded core gem `ecoportal-api`
94
+
95
+ - upgraded core gem `ecoportal-api`
65
96
 
66
97
  ### Fixed
67
98
 
68
99
  ## [1.0.1] - 2023-02-24
69
100
 
70
101
  ### Added
71
- - Allowed `read_only` mode to support `emdeds_many` with item class without `method_key`
72
- - `Ecoportal::API::Common::Content::DoubleModel`
73
- - `Ecoportal::API::Common::Content::CollectionModel`
74
- - `Ecoportal::API::Common::Content::ArrayModel`
102
+
103
+ - Allowed `read_only` mode to support `emdeds_many` with item class without `method_key`
104
+ - `Ecoportal::API::Common::Content::DoubleModel`
105
+ - `Ecoportal::API::Common::Content::CollectionModel`
106
+ - `Ecoportal::API::Common::Content::ArrayModel`
75
107
 
76
108
  ### Changed
77
- - It is a risky change (so treated as a **braking change**)
109
+
110
+ - It is a risky change (so treated as a **braking change**)
78
111
 
79
112
  ## [0.9.7] - 2022-11-29
80
113
 
81
114
  ### Added
82
- - `Ecoportal::API::V2::Page::Component::ReferenceField` added methods `#delete` and `#clear`
115
+
116
+ - `Ecoportal::API::V2::Page::Component::ReferenceField` added methods `#delete` and `#clear`
83
117
 
84
118
  ### Changed
85
- - `Ecoportal::API::V2::Page::Component::ReferenceField#add`
86
- - be able to add multiple references
87
- - prevent double-ups, just in case the server doesn't handle this
119
+
120
+ - `Ecoportal::API::V2::Page::Component::ReferenceField#add`
121
+ - be able to add multiple references
122
+ - prevent double-ups, just in case the server doesn't handle this
88
123
 
89
124
  ### Fixed
90
- - `Ecoportal::API::V2::Page::Component#bindings`
125
+
126
+ - `Ecoportal::API::V2::Page::Component#bindings`
91
127
 
92
128
  ## [0.9.6] - 2022-11-18
93
129
 
94
130
  ### Added
95
- - `Ecoportal::API::V2::Page::Stage#components`
96
- - `Ecoportal::API::V2::Page::Component#replace`
97
- - `Ecoportal::API::V2::Page::Force::Binding#replace`
131
+
132
+ - `Ecoportal::API::V2::Page::Stage#components`
133
+ - `Ecoportal::API::V2::Page::Component#replace`
134
+ - `Ecoportal::API::V2::Page::Force::Binding#replace`
98
135
 
99
136
  ### Fixed
100
- - `Ecoportal::API::V2::Page::Component#bindings`
137
+
138
+ - `Ecoportal::API::V2::Page::Component#bindings`
101
139
 
102
140
  ## [0.9.5] - 2022-11-17
103
141
 
104
142
  ### Fixed
105
- - `Ecoportal::API::V2::Page::Component::ImagesField#empty?` missed to add this one.
143
+
144
+ - `Ecoportal::API::V2::Page::Component::ImagesField#empty?` missed to add this one.
106
145
 
107
146
  ## [0.9.4] - 2022-11-15
108
147
 
109
148
  ### Added
110
- - `Ecoportal::API::V2::Page::Component::ImagesField#add_image`
111
- - `empty?` method to components
149
+
150
+ - `Ecoportal::API::V2::Page::Component::ImagesField#add_image`
151
+ - `empty?` method to components
112
152
 
113
153
  ## [0.9.3] - 2022-10-11
114
154
 
115
155
  ### Added
116
- - `Ecoportal::API::V2::Page` **methods** `#mark_as_submit` and `#mark_as_sign_off`
156
+
157
+ - `Ecoportal::API::V2::Page` **methods** `#mark_as_submit` and `#mark_as_sign_off`
117
158
 
118
159
  ### Changed
119
- - `Ecoportal::API::V2::Pages#get_new`, to return an object of class `Ecoportal::API::V2::Pages::PageStage`
160
+
161
+ - `Ecoportal::API::V2::Pages#get_new`, to return an object of class `Ecoportal::API::V2::Pages::PageStage`
120
162
 
121
163
  ### Fixed
122
- - Remove debugging message
164
+
165
+ - Remove debugging message
123
166
 
124
167
  ## [0.9.2] - 2022-09-29
125
168
 
126
169
  ### Added
127
- - `Ecoportal::API::V2::Page::Component::SelectionOption#delete!`
128
- - `Ecoportal::API::V2::Page::Component#delete!`
129
- - `Ecoportal::API::V2::Page::Component#move` to move to another section or side of the same
130
- - `Ecoportal::API::V2::Page::Component#unattach!` to detach the component from any section
131
- - `Ecoportal::API::V2::Page::Component::SelectionOption#delete!`
132
- - `Ecoportal::API::V2::Page::Component::Binding#delete!`
133
- - `Ecoportal::API::V2::Page::Section#remove_component!` to simplify the removal of a field from the section
170
+
171
+ - `Ecoportal::API::V2::Page::Component::SelectionOption#delete!`
172
+ - `Ecoportal::API::V2::Page::Component#delete!`
173
+ - `Ecoportal::API::V2::Page::Component#move` to move to another section or side of the same
174
+ - `Ecoportal::API::V2::Page::Component#unattach!` to detach the component from any section
175
+ - `Ecoportal::API::V2::Page::Component::SelectionOption#delete!`
176
+ - `Ecoportal::API::V2::Page::Component::Binding#delete!`
177
+ - `Ecoportal::API::V2::Page::Section#remove_component!` to simplify the removal of a field from the section
134
178
 
135
179
  ### Changed
136
- - `Ecoportal::API::V2::Page::Component::SelectionField#options`
137
- - **added** and moved logics to `Ecoportal::API::V2::Page::Component::SelectionOptions`
138
- - `Ecoportal::API::V2::Page::Component::SelectionOption#name` to return `#value` when it's empty
180
+
181
+ - `Ecoportal::API::V2::Page::Component::SelectionField#options`
182
+ - **added** and moved logics to `Ecoportal::API::V2::Page::Component::SelectionOptions`
183
+ - `Ecoportal::API::V2::Page::Component::SelectionOption#name` to return `#value` when it's empty
139
184
 
140
185
  ### Fixed
141
- - Remove debugging message
186
+
187
+ - Remove debugging message
142
188
 
143
189
  ## [0.9.1] - 2022-09-26
144
190
 
145
191
  ### Added
146
- - `Ecoportal::API::V2::Page::Force::Helper`
192
+
193
+ - `Ecoportal::API::V2::Page::Force::Helper`
147
194
 
148
195
  ### Changed
149
- - `Ecoportal::API::V2::Page::Force`, logic around `helpers` (remote forces)
150
- - **breaking change**: `script` is not writable anymore. You should use `custom_script` instead.
196
+
197
+ - `Ecoportal::API::V2::Page::Force`, logic around `helpers` (remote forces)
198
+ - **breaking change**: `script` is not writable anymore. You should use `custom_script` instead.
151
199
 
152
200
  ## [0.8.33] - 2022-09-23
153
201
 
154
202
  ### Changed
155
- - `Ecoportal::API::Common::Content::DoubleModel#embeds_many`: added new_class name collision prevention
203
+
204
+ - `Ecoportal::API::Common::Content::DoubleModel#embeds_many`: added new_class name collision prevention
156
205
 
157
206
  ### Fixed
158
- - `Ecoportal::API::Common::ClassHelpers.new_class`: should accept `name` parameter to be a class itself
159
207
 
208
+ - `Ecoportal::API::Common::ClassHelpers.new_class`: should accept `name` parameter to be a class itself
160
209
 
161
210
  ## [0.8.32] - 2022-09-19
162
211
 
163
212
  ### Added
164
- - `Ecoportal::API::V2::Pages::PageCreateResponse` to wrap the response on creation
213
+
214
+ - `Ecoportal::API::V2::Pages::PageCreateResponse` to wrap the response on creation
165
215
 
166
216
  ### Changed
167
- - `Ecoportal::API::V2::Pages#create` to rather return a `PageCreateResponse`
217
+
218
+ - `Ecoportal::API::V2::Pages#create` to rather return a `PageCreateResponse`
168
219
 
169
220
  ### Fixed
170
- - `Ecoportal::API::V2::Pages#create` to make sure new page with no changes can be created.
171
221
 
222
+ - `Ecoportal::API::V2::Pages#create` to make sure new page with no changes can be created.
172
223
 
173
224
  ## [0.8.31] - 2022-09-15
174
225
 
175
226
  ### Added
176
- - `Ecoportal::API::Common::Content::ClassHelpers.uid` to generate a random uid
227
+
228
+ - `Ecoportal::API::Common::Content::ClassHelpers.uid` to generate a random uid
177
229
 
178
230
  ### Changed
179
- - added **inheritable attributes** to
180
- - `Ecoportal::API::Common::Content::ArrayModel` (:order_matteres, :uniq)
181
- - `Ecoportal::API::Common::Content::CollectionModel` (klass, :order_matters, :order_key, :items_key, :new_item)
182
- - `Ecoportal::API::Common::Content::DoubleModel` (:key)
183
- - moved `SecureRandom` dependency to `Ecoportal::API::Common::Content::ClassHelpers`
231
+
232
+ - added **inheritable attributes** to
233
+ - `Ecoportal::API::Common::Content::ArrayModel` (:order_matteres, :uniq)
234
+ - `Ecoportal::API::Common::Content::CollectionModel` (klass, :order_matters, :order_key, :items_key, :new_item)
235
+ - `Ecoportal::API::Common::Content::DoubleModel` (:key)
236
+ - moved `SecureRandom` dependency to `Ecoportal::API::Common::Content::ClassHelpers`
184
237
 
185
238
  ### Fixed
186
- - `Ecoportal::API::V2::Page::Component::SelectionOption#numeric!` fix conversion
187
- - `Ecoportal::API::Common::Content::ClassHelpers`, `new_class`
188
- - **Added** parameter `namespace` (default: the class `inherits` parameter): it's purpose is to define the namespace where the new class will sit
189
- - **Fixed** also the namespace where the new class constant will sit (it was using always the source class `self`)
190
- - **Improved** `name` parameter to have a default value that is randomized. This is useful when we just want to do something like `SomeClass.new_class`, where the name of the new class doesn't really matter.
191
- - **Fixed** lost reference of class resolvers when using `embeds_many`
192
- - `Ecoportal::API::Common::Content::ClassHelpers`, `resolve_class` accepts now a `Hash` with `key` referrer class, and `value` any of the previously accepted ones (i.e. `Symbol` or `String`). To this purpose, `source_class` parameter has been added.
193
- - This has been natively wrapped in `Ecoportal::API::Common::Content::DoubleModel.embeds_many`, as it naturally shares the `class_resolver` with a third party class that loses the reference.
239
+
240
+ - `Ecoportal::API::V2::Page::Component::SelectionOption#numeric!` fix conversion
241
+ - `Ecoportal::API::Common::Content::ClassHelpers`, `new_class`
242
+ - **Added** parameter `namespace` (default: the class `inherits` parameter): it's purpose is to define the namespace where the new class will sit
243
+ - **Fixed** also the namespace where the new class constant will sit (it was using always the source class `self`)
244
+ - **Improved** `name` parameter to have a default value that is randomized. This is useful when we just want to do something like `SomeClass.new_class`, where the name of the new class doesn't really matter.
245
+ - **Fixed** lost reference of class resolvers when using `embeds_many`
246
+ - `Ecoportal::API::Common::Content::ClassHelpers`, `resolve_class` accepts now a `Hash` with `key` referrer class, and `value` any of the previously accepted ones (i.e. `Symbol` or `String`). To this purpose, `source_class` parameter has been added.
247
+ - This has been natively wrapped in `Ecoportal::API::Common::Content::DoubleModel.embeds_many`, as it naturally shares the `class_resolver` with a third party class that loses the reference.
194
248
 
195
249
  ## [0.8.30] - 2022-07-11
196
250
 
197
251
  ### Added
198
- - `Ecoportal::API::V2::Page::MoultCounter`
199
- - Available on `Ecoportal::API::V2::Pages::PageStage`
200
- - `Ecoportal::API::V2::Page::Component#Law` added support for `LawField` content
201
- - where `Ecoportal::API::V2::Page::Component#LawField` has many of
202
- - `Ecoportal::API::V2::Component` added parameter `any_length:` for
203
- - `#ref` and `#indexable_label` (aiming to enhance data exportability)
252
+
253
+ - `Ecoportal::API::V2::Page::MoultCounter`
254
+ - Available on `Ecoportal::API::V2::Pages::PageStage`
255
+ - `Ecoportal::API::V2::Page::Component#Law` added support for `LawField` content
256
+ - where `Ecoportal::API::V2::Page::Component#LawField` has many of
257
+ - `Ecoportal::API::V2::Component` added parameter `any_length:` for
258
+ - `#ref` and `#indexable_label` (aiming to enhance data exportability)
204
259
 
205
260
  ### Changed
206
- - Reviewed `to_s` method on multiple components, to ensure smooth export
261
+
262
+ - Reviewed `to_s` method on multiple components, to ensure smooth export
207
263
 
208
264
  ### Fixed
209
- - `Ecoportal::API::V2::Pages::PageStage#uid`
210
- - Should check if `mould_conter` exists
211
- - Should return `id` if `mould_counter` does not exist
212
- - **Exports**
213
- - `Ecoportal::API::V2::Pages::Component::PeopleField#to_s`: fix type conversion
214
- - `Ecoportal::API::V2::Pages::Component::DateField#to_s`: make time to work to the local timezone where the client script runs
265
+
266
+ - `Ecoportal::API::V2::Pages::PageStage#uid`
267
+ - Should check if `mould_conter` exists
268
+ - Should return `id` if `mould_counter` does not exist
269
+ - **Exports**
270
+ - `Ecoportal::API::V2::Pages::Component::PeopleField#to_s`: fix type conversion
271
+ - `Ecoportal::API::V2::Pages::Component::DateField#to_s`: make time to work to the local timezone where the client script runs
215
272
 
216
273
  ## [0.8.29] - 2022-07-07
217
274
 
218
275
  ### Added
219
- - `Ecoportal::API::V2::Page::Component::ActionField#permitted_person_schema_ids`
220
- - Integration for the new feature
221
- - `Ecoportal::API::V2::Pages::PageStage#uid` new method for directly rendering the uid
276
+
277
+ - `Ecoportal::API::V2::Page::Component::ActionField#permitted_person_schema_ids`
278
+ - Integration for the new feature
279
+ - `Ecoportal::API::V2::Pages::PageStage#uid` new method for directly rendering the uid
222
280
 
223
281
  ### Changed
224
- - `Ecoportal::API::V2::Page::Component::PeopleField#configure_permits`
225
- - Allow for `can_view` to prevent unnecessary errors
282
+
283
+ - `Ecoportal::API::V2::Page::Component::PeopleField#configure_permits`
284
+ - Allow for `can_view` to prevent unnecessary errors
226
285
 
227
286
  ### Fixed
228
- - `Ecoportal::API::V2::Page::PermissionFlags#configure` fixed typo
287
+
288
+ - `Ecoportal::API::V2::Page::PermissionFlags#configure` fixed typo
229
289
 
230
290
  ## [0.8.28] - 2022-05-31
231
291
 
232
292
  ### Added
233
- - `Ecoportal::API::V2::Page::Component::File` added `label`
234
- - `Ecoportal::API::V2::Page::Component::Image` added `upload_id` and `file_file_name`
293
+
294
+ - `Ecoportal::API::V2::Page::Component::File` added `label`
295
+ - `Ecoportal::API::V2::Page::Component::Image` added `upload_id` and `file_file_name`
235
296
 
236
297
  ## [0.8.27] - 2022-04-25
237
298
 
238
299
  ### Added
239
- - `Ecoportal::API::Common::Content::CollectionModel#clear`
240
- - It calls `#delete!` on each item from an `Array` copy
241
- - `Ecoportal::API::V2::Page::Components#add`
242
- - Now it allows to use a `Hash` _doc_ model to create the `Component`
243
- - `Ecoportal::API::V2::Page::Component::SelectionField` **added** some methods:
244
- - `#numeric?`, `#text?` to check the `data_type` of the _selection options_
245
- - `#switch_type!` to switch the `data_type` between `txt` and `num`
246
- - `#deselect` to mark as `false` the property `selected` of some _selection option_
247
- - `#name` counterpart of `#value`
248
- - `#values` and `#names` they return always an `Array` (no matter if the field is **not** `multiple`)
249
- - `#options_by_value` which returns a `Hash` with all the options by their `value`
250
- - `#options_by_name` which returns a `Hash` with all the options by their `name`
251
- - `Ecoportal::API::V2::Page::Component` **added** some methods:
252
- - `#forces`, `#bindings` and `#bindings?` to check if a _Component_ has bindings in what forces and what those bindings are.
253
- - `Ecoportal::API::V2::Page::Force#bind` to add a _binding_
254
- - `Ecoportal::API::V2::Page::Force::Binding` **added** a couple of methods:
255
- - `#force` to refer to the _Force_ object of a binding
256
- - `#reference` to retrieve the _component_ or _section_ the binding refers to
257
- - `Ecoportal::API::V2::Page::Force::Bindings` **added** some methods:
258
- - `#force` to refer to the _Force_ object of the bindings
259
- - `#by_name` and `#by_reference` to obtain a `Hash` with all the _bindings_
260
- - `#reference?` to check if a _section_ or _component_ have a binding to the _force_
261
- - `#get_by_reference` to retrieve an `Array` with all the _bindings_ to one _section_ or _component_
262
- - `Ecoportal::API::V2::Page::Forces#bindings_by_reference`
263
- - For (script) **optimization** purposes. It gets all the _bindings_ as a `Hash` of _reference_ to `Array<Binding>`
264
- - `Ecoportal::API::V2::Page::Section` **added** some methods:
265
- - `#shared?` to know if the _section_ is shared by multiple stages
266
- - `#bindings` to obtain the _bindings_ of the _section_ in any _force_
267
- - `#forces` all the _forces_ that this _section_ has a _binding_ to
268
- - `#bindings?` whether or not the _section_ has any force _binding_
269
- - `Ecoportal::API::V2::Page::Sections` **added** some methods:
270
- - `#any_shared?` whether or not there are shared sections
271
- - `#move` to **move** the _section_ to some specific position
272
-
273
- ### Changed
274
- - `ecoportal-api` dependency upgrade
275
- - `Ecoportal::API::V2::Page::PermissionFlags#configure`
276
- - Added option to pass a `Hash` with pairs `Symbol`, `Boolean`
277
- - `flags.configure {subscribed: true}`
278
- - `Ecoportal::API::Common::Content::ModelHelpers#same_string?`
279
- - Added parameter `mild:` to compare the strings with only alphabetic characters
280
- - `Ecoportal::API::V2::Page::Component::SelectionField` **added** some methods:
281
- - `#selected` **added** parameters to modify the _returned_ value
282
- - `by_name:` and `by_value:` to return a `Hash`
283
- - `value:` and `name:` which combines respectively with the above, to cast them in the `Hash`
284
- - `Ecoportal::API::V2::Page::Sections#get_by_heading`
285
- - added `mild:` option to allow more flexibility on searches
286
-
287
- ### Fixed
288
- - `Ecoportall::API::Common::Content::DoubleModel#dirty?`
289
- - It was checking that `#as_update` equaled `{}`. Now it also checks on `null` too.
290
- - `Ecoportal::API::V2::Page::Component::SelectionOption#numeric!`
291
- - It was using `to_i` which would return `0` when the source `value` was not numeric.
292
- - Now it uses `Float(value)`, provided that it can throw an exception
293
- - `Ecoportal::API::V2::Pages::Stages#get`
294
- - The _page_ `id` and `stage_id` were used exchanged in the message
295
- - `Ecoportal::API::V2::Page::Forces` fixed the `weight` (position) scoping
296
- - It was not positioning correctly
297
- - `Ecoportal::API::V2::Page::Sections` fixed the `weight` (position) scoping
298
- - It was not positioning correctly
300
+
301
+ - `Ecoportal::API::Common::Content::CollectionModel#clear`
302
+ - It calls `#delete!` on each item from an `Array` copy
303
+ - `Ecoportal::API::V2::Page::Components#add`
304
+ - Now it allows to use a `Hash` _doc_ model to create the `Component`
305
+ - `Ecoportal::API::V2::Page::Component::SelectionField` **added** some methods:
306
+ - `#numeric?`, `#text?` to check the `data_type` of the _selection options_
307
+ - `#switch_type!` to switch the `data_type` between `txt` and `num`
308
+ - `#deselect` to mark as `false` the property `selected` of some _selection option_
309
+ - `#name` counterpart of `#value`
310
+ - `#values` and `#names` they return always an `Array` (no matter if the field is **not** `multiple`)
311
+ - `#options_by_value` which returns a `Hash` with all the options by their `value`
312
+ - `#options_by_name` which returns a `Hash` with all the options by their `name`
313
+ - `Ecoportal::API::V2::Page::Component` **added** some methods:
314
+ - `#forces`, `#bindings` and `#bindings?` to check if a _Component_ has bindings in what forces and what those bindings are.
315
+ - `Ecoportal::API::V2::Page::Force#bind` to add a _binding_
316
+ - `Ecoportal::API::V2::Page::Force::Binding` **added** a couple of methods:
317
+ - `#force` to refer to the _Force_ object of a binding
318
+ - `#reference` to retrieve the _component_ or _section_ the binding refers to
319
+ - `Ecoportal::API::V2::Page::Force::Bindings` **added** some methods:
320
+ - `#force` to refer to the _Force_ object of the bindings
321
+ - `#by_name` and `#by_reference` to obtain a `Hash` with all the _bindings_
322
+ - `#reference?` to check if a _section_ or _component_ have a binding to the _force_
323
+ - `#get_by_reference` to retrieve an `Array` with all the _bindings_ to one _section_ or _component_
324
+ - `Ecoportal::API::V2::Page::Forces#bindings_by_reference`
325
+ - For (script) **optimization** purposes. It gets all the _bindings_ as a `Hash` of _reference_ to `Array<Binding>`
326
+ - `Ecoportal::API::V2::Page::Section` **added** some methods:
327
+ - `#shared?` to know if the _section_ is shared by multiple stages
328
+ - `#bindings` to obtain the _bindings_ of the _section_ in any _force_
329
+ - `#forces` all the _forces_ that this _section_ has a _binding_ to
330
+ - `#bindings?` whether or not the _section_ has any force _binding_
331
+ - `Ecoportal::API::V2::Page::Sections` **added** some methods:
332
+ - `#any_shared?` whether or not there are shared sections
333
+ - `#move` to **move** the _section_ to some specific position
334
+
335
+ ### Changed
336
+
337
+ - `ecoportal-api` dependency upgrade
338
+ - `Ecoportal::API::V2::Page::PermissionFlags#configure`
339
+ - Added option to pass a `Hash` with pairs `Symbol`, `Boolean`
340
+ - `flags.configure {subscribed: true}`
341
+ - `Ecoportal::API::Common::Content::ModelHelpers#same_string?`
342
+ - Added parameter `mild:` to compare the strings with only alphabetic characters
343
+ - `Ecoportal::API::V2::Page::Component::SelectionField` **added** some methods:
344
+ - `#selected` **added** parameters to modify the _returned_ value
345
+ - `by_name:` and `by_value:` to return a `Hash`
346
+ - `value:` and `name:` which combines respectively with the above, to cast them in the `Hash`
347
+ - `Ecoportal::API::V2::Page::Sections#get_by_heading`
348
+ - added `mild:` option to allow more flexibility on searches
349
+
350
+ ### Fixed
351
+
352
+ - `Ecoportall::API::Common::Content::DoubleModel#dirty?`
353
+ - It was checking that `#as_update` equaled `{}`. Now it also checks on `null` too.
354
+ - `Ecoportal::API::V2::Page::Component::SelectionOption#numeric!`
355
+ - It was using `to_i` which would return `0` when the source `value` was not numeric.
356
+ - Now it uses `Float(value)`, provided that it can throw an exception
357
+ - `Ecoportal::API::V2::Pages::Stages#get`
358
+ - The _page_ `id` and `stage_id` were used exchanged in the message
359
+ - `Ecoportal::API::V2::Page::Forces` fixed the `weight` (position) scoping
360
+ - It was not positioning correctly
361
+ - `Ecoportal::API::V2::Page::Sections` fixed the `weight` (position) scoping
362
+ - It was not positioning correctly
299
363
 
300
364
  ## [0.8.26] - 2022-03-25
301
365
 
302
366
  ### Added
303
- `Ecoportal::API::V2::Page::Stage#add_permit`
304
- `Ecoportal::API::V2::Page::Permit.new_doc`
367
+
368
+ `Ecoportal::API::V2::Page::Stage#add_permit`
369
+ `Ecoportal::API::V2::Page::Permit.new_doc`
305
370
 
306
371
  ## [0.8.25] - 2022-02-04
307
372
 
308
373
  ### Added
309
- - `Ecoportal::API::V2::Page::Component::ReferenceField#add` to add new references
374
+
375
+ - `Ecoportal::API::V2::Page::Component::ReferenceField#add` to add new references
310
376
 
311
377
  ### Changed
312
- - `Ecoportal::API::Common::Content::HashDiffPatch#patch_data`
313
- - Added support for model objects with no `patch_ver` (so diffs are calculated as well)
378
+
379
+ - `Ecoportal::API::Common::Content::HashDiffPatch#patch_data`
380
+ - Added support for model objects with no `patch_ver` (so diffs are calculated as well)
314
381
 
315
382
  ## [0.8.24] - 2022-01-05
316
383
 
317
384
  ### Fixed
318
- - `Ecoportal::API::V2::Page#stages?` do not generate an object to this purpose
319
- - `Ecoportal::API::V2::Registers#search` fix typo in print feedback
385
+
386
+ - `Ecoportal::API::V2::Page#stages?` do not generate an object to this purpose
387
+ - `Ecoportal::API::V2::Registers#search` fix typo in print feedback
320
388
 
321
389
  ## [0.8.23] - 2021-12-24
322
390
 
323
391
  ### Added
324
- - `Ecoportal::API::V2::Registers#search` added more feedback on what is going on
392
+
393
+ - `Ecoportal::API::V2::Registers#search` added more feedback on what is going on
325
394
 
326
395
  ## [0.8.22] - 2021-12-23
327
396
 
328
397
  ### Fixed
329
- - `Ecoportal::API::V2::Page::Section#add_component` was not using correctly `before` and `after`
330
- - It was not correctly translating them into the existing component
398
+
399
+ - `Ecoportal::API::V2::Page::Section#add_component` was not using correctly `before` and `after`
400
+ - It was not correctly translating them into the existing component
331
401
 
332
402
  ## [0.8.21] - 2021-12-15
333
403
 
334
404
  ### Added
335
- - To children of `Ecoportal::API::V2::Page::Component` added method `#to_s` (for exporting)
336
- - `Ecoportal::API::V2::Page::Component::ReferenceField`
337
- - added `#references` (the lookup results)
338
- - added `#reference_ids` (the `ids` of the referenced oozes)
405
+
406
+ - To children of `Ecoportal::API::V2::Page::Component` added method `#to_s` (for exporting)
407
+ - `Ecoportal::API::V2::Page::Component::ReferenceField`
408
+ - added `#references` (the lookup results)
409
+ - added `#reference_ids` (the `ids` of the referenced oozes)
339
410
 
340
411
  ### Changed
341
- - Re-exposed `Ecoportal::API::V2::Stages#ordered`
412
+
413
+ - Re-exposed `Ecoportal::API::V2::Stages#ordered`
342
414
 
343
415
  ### Fixed
344
- - `Ecoportal::API::V2::Page::Component::ImagesField#images` typo in `klass`
416
+
417
+ - `Ecoportal::API::V2::Page::Component::ImagesField#images` typo in `klass`
345
418
 
346
419
  ## [0.8.20] - 2021-12-09
347
420
 
348
421
  ### Changed
349
- - `Ecoportal::API::V2::Pages::PageStage#permits` removed
350
- - The reason is that it should be changed using the `Stage#permits` instead
351
- - Upgraded `ecoportal-api` gem dependency
422
+
423
+ - `Ecoportal::API::V2::Pages::PageStage#permits` removed
424
+ - The reason is that it should be changed using the `Stage#permits` instead
425
+ - Upgraded `ecoportal-api` gem dependency
352
426
 
353
427
  ### Fixed
354
- - `Ecoportal::API::V2::Page::Stage#sections` typo
428
+
429
+ - `Ecoportal::API::V2::Page::Stage#sections` typo
355
430
 
356
431
  ## [0.8.19] - 2021-09-29
357
432
 
358
433
  ### Changed
359
- - Moved validation of components multi-section from `PageStage` to `Page`
360
- - Removed validation from `PageStage#as_update`
361
- - This means that the validation will not run natively, but in the client lib
434
+
435
+ - Moved validation of components multi-section from `PageStage` to `Page`
436
+ - Removed validation from `PageStage#as_update`
437
+ - This means that the validation will not run natively, but in the client lib
362
438
 
363
439
  ### Fixed
364
- - `Ecoportal::V2::Page::Stage#section?` fixed typo
365
- - `Ecoportal::V2::Page::Stage`
366
- - `#attached?` added missing code
367
- - `#component?` fixed typo
440
+
441
+ - `Ecoportal::V2::Page::Stage#section?` fixed typo
442
+ - `Ecoportal::V2::Page::Stage`
443
+ - `#attached?` added missing code
444
+ - `#component?` fixed typo
368
445
 
369
446
  ## [0.8.18] - 2021-09-29
370
447
 
371
448
  ### Fixed
372
- - typo in `PageStage#validate`
449
+
450
+ - typo in `PageStage#validate`
373
451
 
374
452
  ## [0.8.17] - 2021-09-29
375
453
 
376
454
  ### Fixed
377
- - Typo in `Section#attached?`
455
+
456
+ - Typo in `Section#attached?`
378
457
 
379
458
  ## [0.8.15] - 2021-09-29
380
459
 
381
460
  ### Fixed
382
- - Typo in `Section#component?`
461
+
462
+ - Typo in `Section#component?`
383
463
 
384
464
  ## [0.8.14] - 2021-09-28
385
465
 
386
466
  ### Added
387
- - `Ecoportal::API::Common::Content::CollectionModel`
388
- - `#_doc_pos` for clarity
389
- - `#include?` to check if an element is present in the collection
390
- - `Ecoportal::API::V2::Page::Stage#section?` check if section belongs to stage
391
- - `Ecoportal::API::V2::Page::Sections`
392
- - `#get_by_id`
393
- - `#unattached` sections that are not attached to any stage
394
- - `Ecoportal::API::V2::Page::Section`
395
- - `#add_component` **added** parameter `before`: to cover case where you want to add it at the beginning
396
- - `#component?` **widened** parameter type
397
- - `#stages` stages where this section is attached
398
- - `attached?` whether or not the section is attached
399
- - `Ecoportal::API::V2::Page::Component`
400
- - `#attached?` whether or not the field is attached to some section
401
- - `#multi_section?` if the field is attached to more than one section :/
402
- - **added** support for `forces`
403
- - `Ecoportal::API::V2::Page::Force`
404
- - `Ecoportal::API::V2::Page::Forces`
405
- - `Ecoportal::API::V2::Page::Force::Binding`
406
- - `Ecoportal::API::V2::Page::Force::Bindings`
407
- - **added** shortcut to `#ooze` throughout all the model
408
- - **validations** in some methods
409
- - `Ecoportal::API::V2::Page::Stage#add_section`: section should be in `ooze.sections`
410
- - `Ecoportal::API::V2::Page::Section#add_component`: component should be in `ooze.components`
411
- - `Ecoportal::API::V2::Page::Force::Bindings#add`:
412
- - section to be in `ooze.sections`
413
- - component to be in `ooze.components`
414
- - `Ecoportal::API::V2::Pages::PageStage#as_update` on page instances, it checks that
415
- - Fields do not belong to more than one section
416
- - Fields belong at least to one section
417
- - Sections belong to at least one stage
418
-
419
- ### Fixed
420
- - `Ecoportal::API::Common::Content::ArrayModel#insert_one` was not inserting when not found. Should insert at least at the end.
467
+
468
+ - `Ecoportal::API::Common::Content::CollectionModel`
469
+ - `#_doc_pos` for clarity
470
+ - `#include?` to check if an element is present in the collection
471
+ - `Ecoportal::API::V2::Page::Stage#section?` check if section belongs to stage
472
+ - `Ecoportal::API::V2::Page::Sections`
473
+ - `#get_by_id`
474
+ - `#unattached` sections that are not attached to any stage
475
+ - `Ecoportal::API::V2::Page::Section`
476
+ - `#add_component` **added** parameter `before`: to cover case where you want to add it at the beginning
477
+ - `#component?` **widened** parameter type
478
+ - `#stages` stages where this section is attached
479
+ - `attached?` whether or not the section is attached
480
+ - `Ecoportal::API::V2::Page::Component`
481
+ - `#attached?` whether or not the field is attached to some section
482
+ - `#multi_section?` if the field is attached to more than one section :/
483
+ - **added** support for `forces`
484
+ - `Ecoportal::API::V2::Page::Force`
485
+ - `Ecoportal::API::V2::Page::Forces`
486
+ - `Ecoportal::API::V2::Page::Force::Binding`
487
+ - `Ecoportal::API::V2::Page::Force::Bindings`
488
+ - **added** shortcut to `#ooze` throughout all the model
489
+ - **validations** in some methods
490
+ - `Ecoportal::API::V2::Page::Stage#add_section`: section should be in `ooze.sections`
491
+ - `Ecoportal::API::V2::Page::Section#add_component`: component should be in `ooze.components`
492
+ - `Ecoportal::API::V2::Page::Force::Bindings#add`:
493
+ - section to be in `ooze.sections`
494
+ - component to be in `ooze.components`
495
+ - `Ecoportal::API::V2::Pages::PageStage#as_update` on page instances, it checks that
496
+ - Fields do not belong to more than one section
497
+ - Fields belong at least to one section
498
+ - Sections belong to at least one stage
499
+
500
+ ### Fixed
501
+
502
+ - `Ecoportal::API::Common::Content::ArrayModel#insert_one` was not inserting when not found. Should insert at least at the end.
421
503
 
422
504
  ## [0.8.13] - 2021-09-03
423
505
 
424
506
  ### Fixed
425
- - `Ecoportal::API::V2::Page::Sections`
426
- - `weight` fixing should only happen on entire page, **not** on stage sections that could change the order of section shared with other stages
427
- - `#scope_weight` was not excluding the section when using `weight` of the last one
428
- - Several classes with `embeds_many` were performing the `ordering` of those elements in the wrong way
429
- - `Ecoportall::API::Common::Content::DoubleModel`
430
- - `#replace_original_doc` had a couple of typos
431
- - `#replace_doc` should only remove the variable referring to the current object and only if `new_doc` is `nil`
432
- - `Ecoportal::API::Common::Content::CollectionModel` on insertion and deletion it was removing instance variable objects.
433
- - There was no need for this approach, as the only necessary thing is to just keep those variable instances up to date in the correct unique access point to do so.
434
- - Aside note: the reason why this was initially designed this way is because there were some difficulties to identify the existing elements in the subjacent model. Once `#passkey` as added, this difficulty could be overcome.
435
- - `Ecoportal::API::Common::Content::ArrayModel` on initialize, default `doc` should be an `Array`
507
+
508
+ - `Ecoportal::API::V2::Page::Sections`
509
+ - `weight` fixing should only happen on entire page, **not** on stage sections that could change the order of section shared with other stages
510
+ - `#scope_weight` was not excluding the section when using `weight` of the last one
511
+ - Several classes with `embeds_many` were performing the `ordering` of those elements in the wrong way
512
+ - `Ecoportall::API::Common::Content::DoubleModel`
513
+ - `#replace_original_doc` had a couple of typos
514
+ - `#replace_doc` should only remove the variable referring to the current object and only if `new_doc` is `nil`
515
+ - `Ecoportal::API::Common::Content::CollectionModel` on insertion and deletion it was removing instance variable objects.
516
+ - There was no need for this approach, as the only necessary thing is to just keep those variable instances up to date in the correct unique access point to do so.
517
+ - Aside note: the reason why this was initially designed this way is because there were some difficulties to identify the existing elements in the subjacent model. Once `#passkey` as added, this difficulty could be overcome.
518
+ - `Ecoportal::API::Common::Content::ArrayModel` on initialize, default `doc` should be an `Array`
436
519
 
437
520
  ## [0.8.12] - 2021-08-30
438
521
 
439
522
  ### Added
440
- - `Ecoportal::API::V2::Pages::PageStage#current_stage`
523
+
524
+ - `Ecoportal::API::V2::Pages::PageStage#current_stage`
441
525
 
442
526
  ### Fixed
443
- - `Ecoportal::API::Common::Content::DocHelpers#get_body` typo and wrong parameters on call.
444
- - `Ecoportal::API::V2::Pages#update` should always return `Result` object.
445
- - `Ecoportal::API::V2::Registers#search` was not using `cursor_id` to iterate.
527
+
528
+ - `Ecoportal::API::Common::Content::DocHelpers#get_body` typo and wrong parameters on call.
529
+ - `Ecoportal::API::V2::Pages#update` should always return `Result` object.
530
+ - `Ecoportal::API::V2::Registers#search` was not using `cursor_id` to iterate.
446
531
 
447
532
  ## [0.8.11] - 2021-08-27
448
533
 
449
534
  ### Added
450
- - `Ecoportal::API::V2::Page#stages?`
451
- - `Ecoportal::API::V2::Pages::PageStage#current_stage_id`
452
- - `Ecoportal::API::V2::Registers#search` added option keyed parameter `:only_first`
453
- - which will make the method return the first `Ecoportal::API::V2::Registers::SearchResults`
454
- - This has been **added** with the aim of knowing how many results out of how many entries.
455
535
 
456
- ### Changed
457
- - `Ecoportal::API::V2::Pages::PageStage#update` won't update unless there's something to update.
536
+ - `Ecoportal::API::V2::Page#stages?`
537
+ - `Ecoportal::API::V2::Pages::PageStage#current_stage_id`
538
+ - `Ecoportal::API::V2::Registers#search` added option keyed parameter `:only_first`
539
+ - which will make the method return the first `Ecoportal::API::V2::Registers::SearchResults`
540
+ - This has been **added** with the aim of knowing how many results out of how many entries.
458
541
 
459
- ### Fixed
542
+ ### Changed
460
543
 
544
+ - `Ecoportal::API::V2::Pages::PageStage#update` won't update unless there's something to update.
461
545
 
462
546
  ## [0.8.10] - 2021-08-22
463
547
 
464
548
  ### Added
465
- - `Ecoportal::API::Common::Content::CollectionModel#[]` now supports position as well
466
- - `Ecoportal::API::V2::Page::Component::FilesField#add_file`: support for adding files
467
- - `Ecoportal::API::V2::Page::Component::PeopleField#viewable_fields`: support for managing `viewable_fields`
549
+
550
+ - `Ecoportal::API::Common::Content::CollectionModel#[]` now supports position as well
551
+ - `Ecoportal::API::V2::Page::Component::FilesField#add_file`: support for adding files
552
+ - `Ecoportal::API::V2::Page::Component::PeopleField#viewable_fields`: support for managing `viewable_fields`
468
553
 
469
554
  ### Changed
470
555
 
471
556
  ### Fixed
472
- - `Ecoportal::API::V2::Page::Component::FilesField`: was not requiring `File`
473
- - `Ecoportal::API::V2::Page::Component::NumberField#value`: it was missing :/
474
- - `Ecoportal::API::Common::Content::HashDiffPatch` did not support nested objects in Arrays, where the nested object wouldn't have a `patch_ver`. This **fix** allows for it
475
- - `Ecoportal::API::Common::Content::DoubleModel.passforced` to define `methods` that should always be present. This allows to define `patch_ver` as a forced `key` in models that have it
476
- - The enforcement (`self.class.enforce!`) happens on `initialize`
477
- - `passenforced` subjacent model `forced_model_keys` is inheritable
478
- - `Ecoportal::API::Common::Content::CollectionModel`:
479
- - Method `upsert!` was not working fine the parameters `pos`, `before` and `after`
480
- - Method `delete!` did not support position
557
+
558
+ - `Ecoportal::API::V2::Page::Component::FilesField`: was not requiring `File`
559
+ - `Ecoportal::API::V2::Page::Component::NumberField#value`: it was missing :/
560
+ - `Ecoportal::API::Common::Content::HashDiffPatch` did not support nested objects in Arrays, where the nested object wouldn't have a `patch_ver`. This **fix** allows for it
561
+ - `Ecoportal::API::Common::Content::DoubleModel.passforced` to define `methods` that should always be present. This allows to define `patch_ver` as a forced `key` in models that have it
562
+ - The enforcement (`self.class.enforce!`) happens on `initialize`
563
+ - `passenforced` subjacent model `forced_model_keys` is inheritable
564
+ - `Ecoportal::API::Common::Content::CollectionModel`:
565
+ - Method `upsert!` was not working fine the parameters `pos`, `before` and `after`
566
+ - Method `delete!` did not support position
481
567
 
482
568
  ## [0.8.9] - 2021-08-16
483
569
 
484
570
  ### Added
485
- - `Ecoportal::API::Common::Content::ModelHelpers`
486
- - Starting with `#same_string?`, this lib aims to offer a full set of helper comparers.
487
- - `Ecoportal::API::V2::Page::Components#get_by_id`
488
- - In future changes, method `[]` might be overriding the method of the parent class `CollectionModel`.
489
- - `Ecoportal::API::V2::Page::PermissionFlags` to offer support to `can_permission`, `subscribed`, etc.
490
- - `Ecoportal::API::V2::Page::Section#add_component` super handy helper to add fields to sections.
491
- - `Ecoportal::API::V2::Page::Component::PeopleField#delete` to remove people using their ids.
492
- - `Ecoportal::API::V2::Page::Component::GeoField` **added** suport for `#coordinates`
493
- - With embedded object `Ecoportal::API::V2::Page::Component::GeoCoordinates`
494
- - `#configure` method, to all the `Component` types (but `ChartField` s)
495
- - This method allows to quickly set field properties.
496
- - `Ecoportal::API::V2::Page::Sections#between`, aiming to obtain sections between two other ones
497
571
 
572
+ - `Ecoportal::API::Common::Content::ModelHelpers`
573
+ - Starting with `#same_string?`, this lib aims to offer a full set of helper comparers.
574
+ - `Ecoportal::API::V2::Page::Components#get_by_id`
575
+ - In future changes, method `[]` might be overriding the method of the parent class `CollectionModel`.
576
+ - `Ecoportal::API::V2::Page::PermissionFlags` to offer support to `can_permission`, `subscribed`, etc.
577
+ - `Ecoportal::API::V2::Page::Section#add_component` super handy helper to add fields to sections.
578
+ - `Ecoportal::API::V2::Page::Component::PeopleField#delete` to remove people using their ids.
579
+ - `Ecoportal::API::V2::Page::Component::GeoField` **added** suport for `#coordinates`
580
+ - With embedded object `Ecoportal::API::V2::Page::Component::GeoCoordinates`
581
+ - `#configure` method, to all the `Component` types (but `ChartField` s)
582
+ - This method allows to quickly set field properties.
583
+ - `Ecoportal::API::V2::Page::Sections#between`, aiming to obtain sections between two other ones
498
584
 
499
585
  ### Changed
500
- - `Ecoportal::API::V2::Page::Section` real support for `split` sections (right vs left)
501
- - This is actually a **FIX**
502
- - `Ecoportal::API::V2::Page::Component::DateField#create_event`
503
- - Now it switches to _allow future dates_
504
- - `Ecoportal::API::V2::Page::Component::SelectionField#add_option`, the `name` parameter is now optional
505
- - This change aims to make it consistent with the back-end.
506
- - To its actual `Boolean` type some properties
507
- - All `Component` types
586
+
587
+ - `Ecoportal::API::V2::Page::Section` real support for `split` sections (right vs left)
588
+ - This is actually a **FIX**
589
+ - `Ecoportal::API::V2::Page::Component::DateField#create_event`
590
+ - Now it switches to _allow future dates_
591
+ - `Ecoportal::API::V2::Page::Component::SelectionField#add_option`, the `name` parameter is now optional
592
+ - This change aims to make it consistent with the back-end.
593
+ - To its actual `Boolean` type some properties
594
+ - All `Component` types
508
595
 
509
596
  ### Fixed
510
- - `Ecoportal::API::Common::Content::HashDiffPatch` did not support `Hash` values without `id` or `patch_ver`
511
- - This fix should allow them to flow to the update
512
- - `Ecoportal::API::V2::Page::Component::ChartField` did not have `doc` for `mode` based configuration
513
- - `Ecoportal::API::Common::Content::ArrayModel#insert_one`
514
- - When `pos`, `before` & `after` were `nil` it was failing to attach the element.
515
- - `Ecoportal::API::V2::Page::Sections#add` was not adding in the correct order
516
- - `Ecoportal::API::V2::Page::Section.new_doc` was unnecessarily giving `9999` as default weight
597
+
598
+ - `Ecoportal::API::Common::Content::HashDiffPatch` did not support `Hash` values without `id` or `patch_ver`
599
+ - This fix should allow them to flow to the update
600
+ - `Ecoportal::API::V2::Page::Component::ChartField` did not have `doc` for `mode` based configuration
601
+ - `Ecoportal::API::Common::Content::ArrayModel#insert_one`
602
+ - When `pos`, `before` & `after` were `nil` it was failing to attach the element.
603
+ - `Ecoportal::API::V2::Page::Sections#add` was not adding in the correct order
604
+ - `Ecoportal::API::V2::Page::Section.new_doc` was unnecessarily giving `9999` as default weight
517
605
 
518
606
  ## [0.8.8] - 2021-08-03
519
607
 
520
608
  ### Added
521
- - `Ecoportal::API::V2::Page::Component::ChartField::Benchmark`
522
- - Support to convert selection options between numeric and text type.
523
- - Add `Permit` object to `Page` and `Stage`
609
+
610
+ - `Ecoportal::API::V2::Page::Component::ChartField::Benchmark`
611
+ - Support to convert selection options between numeric and text type.
612
+ - Add `Permit` object to `Page` and `Stage`
524
613
 
525
614
  ### Changed
526
- - Removed `Stages.ordered_stages`: detected bug with Enumerable iteration
527
615
 
616
+ - Removed `Stages.ordered_stages`: detected bug with Enumerable iteration
528
617
 
529
618
  ## [0.8.7] - 2021-05-25
530
619
 
531
620
  ### Changed
532
- - Upgrade `ecoportal-api` gem
621
+
622
+ - Upgrade `ecoportal-api` gem
533
623
 
534
624
  ### Fixed
535
- - Requiring `api/common` from 2 different ends
625
+
626
+ - Requiring `api/common` from 2 different ends
536
627
 
537
628
  ## [0.8.6] - 2021-02-23
538
629
 
539
630
  ### Added
540
- - `Ecoportal::API::V2::Page::Component::SelectionField` added methods `#numeric!` `#text!`
631
+
632
+ - `Ecoportal::API::V2::Page::Component::SelectionField` added methods `#numeric!` `#text!`
541
633
 
542
634
  ## [0.8.5] - 2021-02-22
543
635
 
544
636
  ### Changed
545
- - upgrade
546
637
 
638
+ - upgrade
547
639
 
548
640
  ## [0.8.4] - 2021-02-22
549
641
 
550
642
  ### Changed
551
- - roll back `ecoportal-api` dependency
643
+
644
+ - roll back `ecoportal-api` dependency
552
645
 
553
646
  ## [0.8.3] - 2021-02-22
554
647
 
555
648
  ### Changed
556
- - updated `rspec` for expected patch data on `delete` operation.
649
+
650
+ - updated `rspec` for expected patch data on `delete` operation.
557
651
 
558
652
  ### Fixed
559
- - More specific namespace path for `Internal::People` namespace
653
+
654
+ - More specific namespace path for `Internal::People` namespace
560
655
 
561
656
  ## [0.8.2] - 2021-02-21
562
657
 
563
658
  ### Changed
564
- - some necessary changes for the new gem to be active
659
+
660
+ - some necessary changes for the new gem to be active
565
661
 
566
662
  ## [0.8.1] - 2021-02-21
567
663
 
568
664
  ### Changed
569
- - renamed parameters (backwards incompatible change):
570
- - `Ecoportal::API::V2::Pages::Stages` methods `#get` and `#update`
571
- - updated `Ecoportal::API::V2::Pages#` accordingly
572
665
 
573
- ## MOVED TO GEM `ecoportal-api-v2` ##
666
+ - renamed parameters (backwards incompatible change):
667
+ - `Ecoportal::API::V2::Pages::Stages` methods `#get` and `#update`
668
+ - updated `Ecoportal::API::V2::Pages#` accordingly
669
+
670
+ ## MOVED TO GEM `ecoportal-api-v2`
574
671
 
575
672
  ## [0.7.5] - 2021-02-21
576
673
 
577
674
  ### Added
578
- - `Ecoportal::API::Common::ClassHelpers` added inheritable attribute values
579
- - `Ecoportal::API::V2::Pages::PageStage` added missing properties
580
- - `Ecoportal::API::V2::Page::Stages#ordered_stages` method to obtain stages in order
581
- - `Ecoportal::API::V2::Registers#search` method search pages in the register, which includes new classes:
582
- - `Ecoportal::API::V2::Registers::PageResult`
583
- - `Ecoportal::API::V2::Registers::StagesResult`
584
- - `Ecoportal::API::V2::Registers::StageResult`
585
- - `Ecoportal::API::V2::Pages#get` added parameter `stage_id:` to be able to directly obtain the stage
675
+
676
+ - `Ecoportal::API::Common::ClassHelpers` added inheritable attribute values
677
+ - `Ecoportal::API::V2::Pages::PageStage` added missing properties
678
+ - `Ecoportal::API::V2::Page::Stages#ordered_stages` method to obtain stages in order
679
+ - `Ecoportal::API::V2::Registers#search` method search pages in the register, which includes new classes:
680
+ - `Ecoportal::API::V2::Registers::PageResult`
681
+ - `Ecoportal::API::V2::Registers::StagesResult`
682
+ - `Ecoportal::API::V2::Registers::StageResult`
683
+ - `Ecoportal::API::V2::Pages#get` added parameter `stage_id:` to be able to directly obtain the stage
586
684
 
587
685
  ### Changed
588
- - Moved some classes to the new namespace `Ecoportal::API::V2::Registers`
589
- - `Ecoportal::API::V2::Registers::Register`
590
- - `Ecoportal::API::V2::Registers::Template`
686
+
687
+ - Moved some classes to the new namespace `Ecoportal::API::V2::Registers`
688
+ - `Ecoportal::API::V2::Registers::Register`
689
+ - `Ecoportal::API::V2::Registers::Template`
591
690
 
592
691
  ### Fixed
593
- - `Ecoportal::API::Common::Content::HashDiffPatch`: `deleted` operation wording and `data.patch_ver`
594
- - `Ecoportal::API::V2::Page::Component.new_doc` should delegate to child classes that have their own implementation
595
- - `Ecoportal::API::V2::Page::Component::ImagesField.new_doc` should include `layout`
596
- - `Ecoportal::API::V2::Page::Component::SignatureField.new_doc` should include `color`
692
+
693
+ - `Ecoportal::API::Common::Content::HashDiffPatch`: `deleted` operation wording and `data.patch_ver`
694
+ - `Ecoportal::API::V2::Page::Component.new_doc` should delegate to child classes that have their own implementation
695
+ - `Ecoportal::API::V2::Page::Component::ImagesField.new_doc` should include `layout`
696
+ - `Ecoportal::API::V2::Page::Component::SignatureField.new_doc` should include `color`
597
697
 
598
698
  ## [0.7.4] - 2021-02-12
599
699
 
600
700
  ### Added
601
- - `Ecoportal::API::V2::Page::Component::GaugeStop#color=` enabled setting colours using a `symbol`
602
- - `:blue`, `:blue_greyed`, `:blue_light`
603
- - `:turquoise`, `:jade`, `:green`, `:pistachio`, `:avocado`
604
- - `:yellow`, `:orange`, `:pumpkin`, `:red`, `:magenta`, `:fuchsia`, `:purple`, `:violet`
605
- - `Ecoportal::API::V2::Page::Component::GaugeStop#color_sym` to get the color as `symbol` name
606
- - added support for chart fields:
607
- - `Ecoportal::API::V2::Page::Component::ChartField` with the different `mode` types
608
- - `Ecoportal::API::V2::Page::Component::ChartFrField` (LTIFR)
701
+
702
+ - `Ecoportal::API::V2::Page::Component::GaugeStop#color=` enabled setting colours using a `symbol`
703
+ - `:blue`, `:blue_greyed`, `:blue_light`
704
+ - `:turquoise`, `:jade`, `:green`, `:pistachio`, `:avocado`
705
+ - `:yellow`, `:orange`, `:pumpkin`, `:red`, `:magenta`, `:fuchsia`, `:purple`, `:violet`
706
+ - `Ecoportal::API::V2::Page::Component::GaugeStop#color_sym` to get the color as `symbol` name
707
+ - added support for chart fields:
708
+ - `Ecoportal::API::V2::Page::Component::ChartField` with the different `mode` types
709
+ - `Ecoportal::API::V2::Page::Component::ChartFrField` (LTIFR)
609
710
 
610
711
  ### Changed
611
- - `Ecoportal::API::Page::Component::DateField` Date objects + Timezones
612
- - `#value` should be shown in local time
613
- - `#value=` should be set by local time
614
- - `Ecoportal::API::Common::Content::DoubleModel.embeds_multiple` renamed to `embeds_many`
615
- - `Ecoportal::API::Common::Content::DoubleModel.embeds_one` removed parameter `:multiple`
616
- - Fields under `Ecoportal::API::Page::Component` that `embeds_many` should generate new elements in a standard way
617
- - added `Ecoportal::API::Common::Content::CollectionModel#items_class` method
712
+
713
+ - `Ecoportal::API::Page::Component::DateField` Date objects + Timezones
714
+ - `#value` should be shown in local time
715
+ - `#value=` should be set by local time
716
+ - `Ecoportal::API::Common::Content::DoubleModel.embeds_multiple` renamed to `embeds_many`
717
+ - `Ecoportal::API::Common::Content::DoubleModel.embeds_one` removed parameter `:multiple`
718
+ - Fields under `Ecoportal::API::Page::Component` that `embeds_many` should generate new elements in a standard way
719
+ - added `Ecoportal::API::Common::Content::CollectionModel#items_class` method
618
720
 
619
721
  ### Fixed
620
- - solved `pretty_print` name collision renaming to `Ecoportal::API::Common::Content::DoubleModel#print_pretty`
722
+
723
+ - solved `pretty_print` name collision renaming to `Ecoportal::API::Common::Content::DoubleModel#print_pretty`
621
724
 
622
725
  ## [0.7.3] - 2021-02-01
623
726
 
624
727
  ### Added
625
- - `Ecoportal::API::Common::Content::CollectionModel#delete!` finally scoped how delete should work :)
626
- - `Ecoportal::API::V2.new` better feedback on key error.
627
- - `Ecoportal::API::V2::Page::Component::SignatureField` added property `signed_by_name`
628
- - `Ecoportal::API::V2::Page::Component#required` this field property is currently supported
629
- - `Ecoportal::API::V2::Page::Component::DateField` more supported properties:
630
- * `show_time`, `today_button`, `past_only`, `create_event`, `remind_me_in`, `renews`, `renews_every`, `renews_unit`, `renews_until`
631
- - `Ecoportal::API::V2::Page::Component::ChecklistField`
632
- * added more methods: `add_item`, `ordered_items`
633
- - `Ecoportal::API::V2::Page::Component::GaugeField`
634
- * more supported properties: `max`, `active_color` and `stops`
635
- - for `stops` added class `Ecoportal::API::V2::Page::Component::GaugeStop`
636
- * added more methods: `add_stop`, `ordered_stops`
637
- - `Ecoportal::API::V2::Page::Component::ReferenceField` more supported properties:
638
- * `register_id`, `hide_create`, `hide_attach`, `hide_metadata`, `hide_dashboards`, `display_fields`, `display_fields_in_lookup`
639
- - `Ecoportal::API::V2::Page::Component::ActionField`
640
- * more supported properties:`create_actions`, `required_number_of_completed_actions`, `permits_and_rules_integration`, `add_subscribed`, `add_subscribed_to_tasks`
641
- * added more methods: `add_task`, `ordered_tasks`
642
- - `Ecoportal::API::V2::Page::Component::Action` modified, provided that some properties are `read_only`
643
- - `Ecoportal::API::V2::Page::Component::PeopleField` more supported properties:
644
- * `is_me_button`, `attach_mode`, `person_schema_id`, `viewable_fields`, `singular`, `requires_number`, `cached_people`, `attached_people_permissions_enabled`, `apply_attached_people_permissions_to`, `attached_people_permissions_editable`, `attached_people_permissions_flags`
645
- - `Ecoportal::API::V2::Page::Component::PlainTextField` more supported properties:
646
- * `multiline`, `max_length`, `exact_index`
647
- - `Ecoportal::API::V2::Page::Component::SelectionField` more supported properties:
648
- * `flat`
649
- - `Ecoportal::API::V2::Page::Component::TagField` more supported properties:
650
- * `single_select`, `use_defaults`, `tag_tree_id`, `button_text`
651
- - `Ecoportal::API::V2::Page::Section` more supported properties:
652
- * `minimized`
653
-
654
- ### Changed
655
- - upgraded `ecoportal-api` dependency
656
-
657
- ### Fixed
658
- - `Ecoportal::API::Common::Content::CollectionModel#upsert!` was not actually moving the element to the new position when it already existed
728
+
729
+ - `Ecoportal::API::Common::Content::CollectionModel#delete!` finally scoped how delete should work :)
730
+ - `Ecoportal::API::V2.new` better feedback on key error.
731
+ - `Ecoportal::API::V2::Page::Component::SignatureField` added property `signed_by_name`
732
+ - `Ecoportal::API::V2::Page::Component#required` this field property is currently supported
733
+ - `Ecoportal::API::V2::Page::Component::DateField` more supported properties:
734
+ - `show_time`, `today_button`, `past_only`, `create_event`, `remind_me_in`, `renews`, `renews_every`, `renews_unit`, `renews_until`
735
+ - `Ecoportal::API::V2::Page::Component::ChecklistField`
736
+ - added more methods: `add_item`, `ordered_items`
737
+ - `Ecoportal::API::V2::Page::Component::GaugeField`
738
+ - more supported properties: `max`, `active_color` and `stops`
739
+ - for `stops` added class `Ecoportal::API::V2::Page::Component::GaugeStop`
740
+ - added more methods: `add_stop`, `ordered_stops`
741
+ - `Ecoportal::API::V2::Page::Component::ReferenceField` more supported properties:
742
+ - `register_id`, `hide_create`, `hide_attach`, `hide_metadata`, `hide_dashboards`, `display_fields`, `display_fields_in_lookup`
743
+ - `Ecoportal::API::V2::Page::Component::ActionField`
744
+ - more supported properties:`create_actions`, `required_number_of_completed_actions`, `permits_and_rules_integration`, `add_subscribed`, `add_subscribed_to_tasks`
745
+ - added more methods: `add_task`, `ordered_tasks`
746
+ - `Ecoportal::API::V2::Page::Component::Action` modified, provided that some properties are `read_only`
747
+ - `Ecoportal::API::V2::Page::Component::PeopleField` more supported properties:
748
+ - `is_me_button`, `attach_mode`, `person_schema_id`, `viewable_fields`, `singular`, `requires_number`, `cached_people`, `attached_people_permissions_enabled`, `apply_attached_people_permissions_to`, `attached_people_permissions_editable`, `attached_people_permissions_flags`
749
+ - `Ecoportal::API::V2::Page::Component::PlainTextField` more supported properties:
750
+ - `multiline`, `max_length`, `exact_index`
751
+ - `Ecoportal::API::V2::Page::Component::SelectionField` more supported properties:
752
+ - `flat`
753
+ - `Ecoportal::API::V2::Page::Component::TagField` more supported properties:
754
+ - `single_select`, `use_defaults`, `tag_tree_id`, `button_text`
755
+ - `Ecoportal::API::V2::Page::Section` more supported properties:
756
+ - `minimized`
757
+
758
+ ### Changed
759
+
760
+ - upgraded `ecoportal-api` dependency
761
+
762
+ ### Fixed
763
+
764
+ - `Ecoportal::API::Common::Content::CollectionModel#upsert!` was not actually moving the element to the new position when it already existed
659
765
 
660
766
  ## [0.7.2] - 2020-10-07
661
767
 
662
768
  ### Added
663
- - automatic key builder
664
- - helper: `Ecoportal::API::V2::v2key` method
665
- - `user_key:` and `org_key:` as constructor methods for `Ecoportal::API::V2`
769
+
770
+ - automatic key builder
771
+ - helper: `Ecoportal::API::V2::v2key` method
772
+ - `user_key:` and `org_key:` as constructor methods for `Ecoportal::API::V2`
666
773
 
667
774
  ## [0.7.1] - 2020-10-07
668
775
 
669
776
  ### Changed
670
- - updated dependencies
777
+
778
+ - updated dependencies
671
779
 
672
780
  ## [0.7.0] - 2020-09-10
673
781
 
674
782
  ### Changed
675
- - updated dependencies
783
+
784
+ - updated dependencies
676
785
 
677
786
  ## [0.6.1] - 2020-07-11
678
787
 
679
788
  ### Added
680
- - `Ecoportal::API::Common::Content::DoubleModel#pretty_print`
789
+
790
+ - `Ecoportal::API::Common::Content::DoubleModel#pretty_print`
681
791
 
682
792
  ## [0.6.0] - 2020-07-11
683
793
 
684
794
  ### Changed
685
- - upgraded `ecoportal-api` gem
795
+
796
+ - upgraded `ecoportal-api` gem
686
797
 
687
798
  ## [0.5.9] - 2020-07-02
688
799
 
689
800
  ### Added
690
- - helper `Ecoportal::API::Common::Content::StringDigest#indexable_label`: to see the part of a label that gets indexed
691
- - this `CHANGELOG.md` file
801
+
802
+ - helper `Ecoportal::API::Common::Content::StringDigest#indexable_label`: to see the part of a label that gets indexed
803
+ - this `CHANGELOG.md` file