ecoportal-api-v2 1.1.7 → 1.1.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -30,65 +30,64 @@ module Ecoportal
30
30
  class << self
31
31
  def new_doc(type: nil)
32
32
  {
33
- "id" => new_uuid
33
+ "id" => new_uuid
34
34
  }.tap do |base_doc|
35
35
  if type
36
36
  base_doc.merge!({"type" => type})
37
- if klass = get_class(base_doc)
37
+ if (klass = get_class(base_doc))
38
38
  base_doc.merge!(klass.new_doc || {})
39
39
  end
40
40
  end
41
41
  end
42
42
  end
43
43
 
44
- def get_class(doc)
45
- if doc.is_a?(Hash)
46
- case doc["type"]
47
- when "tag_field"
48
- tag_field_class
49
- when "geo"
50
- geo_field_class
51
- when "select"
52
- selection_field_class
53
- when "date"
54
- date_field_class
55
- when "number"
56
- number_field_class
57
- when "gauge"
58
- gauge_field_class
59
- when "plain_text"
60
- plain_text_field_class
61
- when "rich_text"
62
- rich_text_field_class
63
- when "people"
64
- people_field_class
65
- when "contractor_entities"
66
- contractor_entities_field_class
67
- when "checklist"
68
- checklist_field_class
69
- when "page_action","checklist_task"
70
- action_field_class
71
- when "actions_list"
72
- actions_field_class
73
- when "file"
74
- files_field_class
75
- when "image_gallery"
76
- images_field_class
77
- when "signature"
78
- signature_field_class
79
- when "cross_reference"
80
- reference_field_class
81
- when "law"
82
- law_field_class
83
- when "mailbox"
84
- mailbox_field_class
85
- when "chart"
86
- chart_field_class
87
- when "frequency_rate_chart"
88
- chart_fr_field_class
89
- else
90
- self
91
- end
44
+ def get_class(doc) # rubocop:disable Metrics/AbcSize
45
+ return nil unless doc.is_a?(Hash)
46
+ case doc["type"]
47
+ when "tag_field"
48
+ tag_field_class
49
+ when "geo"
50
+ geo_field_class
51
+ when "select"
52
+ selection_field_class
53
+ when "date"
54
+ date_field_class
55
+ when "number"
56
+ number_field_class
57
+ when "gauge"
58
+ gauge_field_class
59
+ when "plain_text"
60
+ plain_text_field_class
61
+ when "rich_text"
62
+ rich_text_field_class
63
+ when "people"
64
+ people_field_class
65
+ when "contractor_entities"
66
+ contractor_entities_field_class
67
+ when "checklist"
68
+ checklist_field_class
69
+ when "page_action", "checklist_task"
70
+ action_field_class
71
+ when "actions_list"
72
+ actions_field_class
73
+ when "file"
74
+ files_field_class
75
+ when "image_gallery"
76
+ images_field_class
77
+ when "signature"
78
+ signature_field_class
79
+ when "cross_reference"
80
+ reference_field_class
81
+ when "law"
82
+ law_field_class
83
+ when "mailbox"
84
+ mailbox_field_class
85
+ when "chart"
86
+ chart_field_class
87
+ when "frequency_rate_chart"
88
+ chart_fr_field_class
89
+ else
90
+ self
92
91
  end
93
92
  end
94
93
  end
@@ -103,7 +102,7 @@ module Ecoportal
103
102
  passarray :refs
104
103
 
105
104
  def ooze
106
- self._parent.ooze
105
+ _parent.ooze
107
106
  end
108
107
 
109
108
  def ref_backend
@@ -111,9 +110,9 @@ module Ecoportal
111
110
  end
112
111
 
113
112
  def ref(any_length: false)
114
- if digest = self.class.hash_label(label, any_length: any_length)
115
- [type, digest].join(".")
116
- end
113
+ digest = self.class.hash_label(label, any_length: any_length)
114
+ return unless digest
115
+ [type, digest].join(".")
117
116
  end
118
117
 
119
118
  # Looks up the section that this component belongs to.
@@ -159,7 +158,7 @@ module Ecoportal
159
158
 
160
159
  # @return [Boolean] `true` if the component is bound to any force, `false` otherwise
161
160
  def bindings?
162
- forces.count > 0
161
+ forces.count&.positive?
163
162
  end
164
163
 
165
164
  # If the field has bindings they are replaced by this new field
@@ -168,10 +167,10 @@ module Ecoportal
168
167
  if fld.section
169
168
  fld.move(section: self.section, before: self)
170
169
  else
171
- self.section.add(fld, before: self)
170
+ section.add(fld, before: self)
172
171
  end
173
172
  replace_bindings(fld)
174
- self.delete!
173
+ delete!
175
174
  end
176
175
 
177
176
  def replace_bindings(fld)
@@ -180,12 +179,12 @@ module Ecoportal
180
179
 
181
180
  def delete!
182
181
  bindings.each {|b| b.delete!}
183
- self.unattach!
184
- self._parent.delete!(self)
182
+ unattach!
183
+ _parent.delete!(self)
185
184
  end
186
185
 
187
186
  def move(section:, before: nil, after: nil, side: nil)
188
- self.unattach!
187
+ unattach!
189
188
  section.add_component(self, before: before, after: after, side: side)
190
189
  end
191
190
 
@@ -212,9 +211,7 @@ module Ecoportal
212
211
  when :hide_reports
213
212
  self.hidden_on_reports = true
214
213
  when Hash
215
- if cnf.key?(:global)
216
- self.global_binding = cnf[:global]
217
- end
214
+ self.global_binding = cnf[:global] if cnf.key?(:global)
218
215
  else
219
216
  unused.push(cnf)
220
217
  end
@@ -222,7 +219,6 @@ module Ecoportal
222
219
  raise "Unsupported configuration options '#{unused}' for #{self.class}" unless unused.empty?
223
220
  end
224
221
  end
225
-
226
222
  end
227
223
  end
228
224
  end
@@ -5,28 +5,28 @@ module Ecoportal
5
5
  class Components < Common::Content::CollectionModel
6
6
  class_resolver :component_class, "Ecoportal::API::V2::Page::Component"
7
7
 
8
- self.klass do |doc|
8
+ klass do |doc|
9
9
  component_class.get_class(doc).tap do |klass|
10
10
  klass.key = :id
11
11
  end
12
12
  end
13
13
 
14
- order_matters = true
14
+ #self.order_matters = true
15
15
 
16
16
  def ooze
17
- self._parent.ooze
17
+ _parent.ooze
18
18
  end
19
19
 
20
20
  # @return [Ecoportal::API::V2::Page::Component] the field with `id`
21
21
  def get_by_id(id)
22
- self.find do |comp|
22
+ find do |comp|
23
23
  comp.id == id
24
24
  end
25
25
  end
26
26
 
27
27
  # @return [Array<Ecoportal::API::V2::Page::Component>] the fields of that `type`
28
28
  def get_by_type(type)
29
- self.select do |comp|
29
+ select do |comp|
30
30
  comp.type.downcase == type.to_s.strip.downcase
31
31
  end
32
32
  end
@@ -53,19 +53,19 @@ module Ecoportal
53
53
  def add(doc: nil, label: doc && doc["label"], type: doc && doc["type"])
54
54
  fld_doc = doc ? JSON.parse(doc.to_json) : component_class.new_doc(type: type)
55
55
  upsert!(fld_doc) do |fld|
56
- fld.label = label if !doc
57
- yield(fld) if block_given?
56
+ fld.label = label unless doc
57
+ yield(fld) if block_given?
58
58
  end
59
59
  end
60
60
 
61
61
  # @return [Array<Ecoportal::API::V2::Page::Component>] **orphaned** fields (with no section).
62
62
  def unattached
63
- select {|comp| !comp.attached?}
63
+ reject(&:attached?)
64
64
  end
65
65
 
66
66
  # @return [Array<Ecoportal::API::V2::Page::Component>] fields belonging to more than one section.
67
67
  def multi_section
68
- select {|comp| comp.multi_section?}
68
+ select(&:multi_section?)
69
69
  end
70
70
  end
71
71
  end
@@ -8,8 +8,8 @@ module Ecoportal
8
8
  class << self
9
9
  def new_doc
10
10
  {
11
- "id" => new_uuid,
12
- "weight" => INITIAL_WEIGHT
11
+ "id" => new_uuid,
12
+ "weight" => INITIAL_WEIGHT
13
13
  }
14
14
  end
15
15
  end
@@ -23,11 +23,11 @@ module Ecoportal
23
23
  passdate :last_synced_at
24
24
  passthrough :custom_script
25
25
  passthrough :script, read_only: true
26
- embeds_many :bindings, enum_class: :bindings_class
27
- embeds_many :helpers, klass: :helper_class
26
+ embeds_many :bindings, enum_class: :bindings_class
27
+ embeds_many :helpers, klass: :helper_class
28
28
 
29
29
  def ooze
30
- self._parent.ooze
30
+ _parent.ooze
31
31
  end
32
32
 
33
33
  # @see Ecoportal::API::V2::Page::Force::Bindings#add
@@ -39,7 +39,6 @@ module Ecoportal
39
39
  def custom_script=(value)
40
40
  doc["custom_script"] = value
41
41
  update_script
42
- value
43
42
  end
44
43
 
45
44
  # It sets the `script` value by using `custom_script` and `helpers[N..1].script`
@@ -2,16 +2,16 @@ module Ecoportal
2
2
  module API
3
3
  class V2
4
4
  class Page < Common::Content::DoubleModel
5
- ALLOWED_KEYS = [
6
- "id", "patch_ver", "name", "template_id",
7
- "base_tags", "tags",
8
- "time_zone", "created_at", "updated_at",
9
- "components", "sections", "stages",
10
- "permits", "mould_counter", "mould",
11
- "state", "task_priority",
12
- "votes_enabled", "upvotes", "downvotes",
13
- "forces", "force_errors", "subtags"
14
- ]
5
+ ALLOWED_KEYS = %w[
6
+ id patch_ver name template_id
7
+ base_tags tags
8
+ time_zone created_at updated_at
9
+ components sections stages
10
+ permits mould_counter mould
11
+ state task_priority
12
+ votes_enabled upvotes downvotes
13
+ forces force_errors subtags
14
+ ].freeze
15
15
 
16
16
  passkey :id
17
17
  passforced :patch_ver, default: 1
@@ -41,7 +41,7 @@ module Ecoportal
41
41
 
42
42
  def as_update
43
43
  super.tap do |hash|
44
- unless !hash
44
+ if hash
45
45
  hash["data"].select! do |key, value|
46
46
  ALLOWED_KEYS.include?(key)
47
47
  end
@@ -51,14 +51,14 @@ module Ecoportal
51
51
  end
52
52
 
53
53
  def stages?
54
- self.doc["stages"] && (self.stages.count > 0)
54
+ doc["stages"] && stages.count.positive?
55
55
  end
56
56
 
57
57
  # @return [String] with feedback, if for this page instance, there are any of:
58
58
  # 1. components multi-section (fields belonging to more than one section)
59
59
  def validate
60
60
  msg = ""
61
- if (multi = components.multi_section).length > 0
61
+ if (multi = components.multi_section).length.positive?
62
62
  msg += "There are fields attached to more than one section:\n • "
63
63
  msg += multi.map do |fld|
64
64
  fld.label
@@ -96,7 +96,6 @@ module Ecoportal
96
96
  end
97
97
  end
98
98
  end
99
-
100
99
  end
101
100
  end
102
101
  end
@@ -1,5 +1,5 @@
1
1
  module Ecoportal
2
2
  module API
3
- GEM2_VERSION = "1.1.7"
3
+ GEM2_VERSION = "1.1.8".freeze
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: 1.1.7
4
+ version: 1.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-03-12 00:00:00.000000000 Z
11
+ date: 2024-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler