labimotion 1.2.0.0 → 1.2.0.1
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/labimotion/utils/import_utils.rb +22 -16
- data/lib/labimotion/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: 85459b416735dd8702c2764bd1ff996855ddfaf37c8b037737c7cf5dbb9403a4
|
4
|
+
data.tar.gz: 8e659ab1b570a0d91dfd0e047720ddde4872eb8a3320c65500bd6b00e8be6e9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de6f3f92718a41d4d2a7bb4b7b3547c5a4996ea2e008beb3936e36d5606cabc5d1f6e73bf8525c9f0d306ff9af92d59eb08fce8d9e1fd6f0efcdd233f2bced33
|
7
|
+
data.tar.gz: bad917552004d85e0ad14091f32f599b7edda626561b099917a65c5bf2b2e6a7b2611e37782127a1b5a81bf1ed463435d3d4f1d4782d694dc4b19f2ee5e2ba0a
|
@@ -36,7 +36,7 @@ module Labimotion
|
|
36
36
|
value
|
37
37
|
end
|
38
38
|
|
39
|
-
def proc_assign_sample(value, sample)
|
39
|
+
def proc_assign_sample(value, sample, element)
|
40
40
|
return {} if sample.nil?
|
41
41
|
|
42
42
|
value = {} if value.nil? || value.is_a?(String)
|
@@ -45,13 +45,16 @@ module Labimotion
|
|
45
45
|
value['el_tip'] = sample.short_label
|
46
46
|
value['el_label'] = sample.short_label
|
47
47
|
value['el_svg'] = sample.get_svg_path
|
48
|
+
if element&.class&.name == Labimotion::Prop::L_ELEMENT && sample&.class&.name == Labimotion::Prop::SAMPLE
|
49
|
+
Labimotion::ElementsSample.find_or_create_by(element_id: element.id, sample_id: sample.id)
|
50
|
+
end
|
48
51
|
value
|
49
52
|
rescue StandardError => e
|
50
53
|
Labimotion.log_exception(e)
|
51
54
|
value
|
52
55
|
end
|
53
56
|
|
54
|
-
def proc_assign_element(value, element)
|
57
|
+
def proc_assign_element(value, element, _parent = nil)
|
55
58
|
return {} if element.nil?
|
56
59
|
|
57
60
|
value = {} if value.nil? || value.is_a?(String)
|
@@ -59,6 +62,9 @@ module Labimotion
|
|
59
62
|
value['el_type'] = 'element' if value['el_type'].nil?
|
60
63
|
value['el_tip'] = element.short_label
|
61
64
|
value['el_label'] = element.short_label
|
65
|
+
if _parent&.class&.name == Labimotion::Prop::L_ELEMENT && element&.class&.name == Labimotion::Prop::L_ELEMENT
|
66
|
+
Labimotion::ElementsElement.find_or_create_by(parent_id: _parent.id, element_id: element.id)
|
67
|
+
end
|
62
68
|
value
|
63
69
|
rescue StandardError => e
|
64
70
|
Labimotion.log_exception(e)
|
@@ -92,20 +98,20 @@ module Labimotion
|
|
92
98
|
properties
|
93
99
|
end
|
94
100
|
|
95
|
-
def proc_table_sample(properties, data, instances, svalue, key, tidx, vdx, col_id)
|
101
|
+
def proc_table_sample(properties, data, instances, svalue, key, tidx, vdx, col_id, element)
|
96
102
|
return properties unless id = svalue.fetch('el_id', nil)
|
97
103
|
|
98
104
|
# orig_s = data.fetch(Labimotion::Prop::SAMPLE, nil)&.fetch(svalue['el_id'], nil)
|
99
105
|
sample = instances.fetch(Labimotion::Prop::SAMPLE, nil)&.fetch(id, nil)
|
100
106
|
val = properties[Labimotion::Prop::LAYERS][key][Labimotion::Prop::FIELDS][tidx]['sub_values'][vdx][col_id]['value']
|
101
|
-
properties[Labimotion::Prop::LAYERS][key][Labimotion::Prop::FIELDS][tidx]['sub_values'][vdx][col_id]['value'] = proc_assign_sample(val, sample)
|
107
|
+
properties[Labimotion::Prop::LAYERS][key][Labimotion::Prop::FIELDS][tidx]['sub_values'][vdx][col_id]['value'] = proc_assign_sample(val, sample, element)
|
102
108
|
properties
|
103
109
|
rescue StandardError => e
|
104
110
|
Labimotion.log_exception(e)
|
105
111
|
properties
|
106
112
|
end
|
107
113
|
|
108
|
-
def proc_table_prop(layer, key, data, instance, properties, field, tidx, type)
|
114
|
+
def proc_table_prop(layer, key, data, instance, properties, field, tidx, type, element)
|
109
115
|
fields = field[Labimotion::Prop::SUBFIELDS].select { |ss| ss['type'] == type }
|
110
116
|
return properties if fields.nil?
|
111
117
|
|
@@ -125,7 +131,7 @@ module Labimotion
|
|
125
131
|
when Labimotion::FieldType::DRAG_MOLECULE
|
126
132
|
properties = proc_table_molecule(properties, data, svalue, key, tidx, vdx, col_id)
|
127
133
|
when Labimotion::FieldType::DRAG_SAMPLE
|
128
|
-
properties = proc_table_sample(properties, data, instance, svalue, key, tidx, vdx, col_id)
|
134
|
+
properties = proc_table_sample(properties, data, instance, svalue, key, tidx, vdx, col_id, element)
|
129
135
|
end
|
130
136
|
end
|
131
137
|
end
|
@@ -136,14 +142,14 @@ module Labimotion
|
|
136
142
|
end
|
137
143
|
end
|
138
144
|
|
139
|
-
def self.proc_sample(layer, key, data, instances, properties)
|
145
|
+
def self.proc_sample(layer, key, data, instances, properties, element)
|
140
146
|
fields = layer[Labimotion::Prop::FIELDS].select { |ss| ss['type'] == Labimotion::FieldType::DRAG_SAMPLE }
|
141
147
|
fields.each do |field|
|
142
148
|
idx = properties[Labimotion::Prop::LAYERS][key][Labimotion::Prop::FIELDS].index(field)
|
143
149
|
id = field["value"] && field["value"]["el_id"] unless idx.nil?
|
144
150
|
sample = instances.fetch(Labimotion::Prop::SAMPLE, nil)&.fetch(id, nil)
|
145
151
|
val = properties[Labimotion::Prop::LAYERS][key][Labimotion::Prop::FIELDS][idx]['value']
|
146
|
-
val = proc_assign_sample(val, sample)
|
152
|
+
val = proc_assign_sample(val, sample, element)
|
147
153
|
properties[Labimotion::Prop::LAYERS][key][Labimotion::Prop::FIELDS][idx]['value'] = val
|
148
154
|
end
|
149
155
|
properties
|
@@ -152,7 +158,7 @@ module Labimotion
|
|
152
158
|
raise
|
153
159
|
end
|
154
160
|
|
155
|
-
def self.proc_element(layer, key, data, instances, properties, elements)
|
161
|
+
def self.proc_element(layer, key, data, instances, properties, elements, element)
|
156
162
|
fields = layer[Labimotion::Prop::FIELDS].select { |ss| ss['type'] == Labimotion::FieldType::DRAG_ELEMENT }
|
157
163
|
fields.each do |field|
|
158
164
|
idx = properties[Labimotion::Prop::LAYERS][key][Labimotion::Prop::FIELDS].index(field)
|
@@ -162,7 +168,7 @@ module Labimotion
|
|
162
168
|
properties[Labimotion::Prop::LAYERS][key][Labimotion::Prop::FIELDS][idx]['value'] = {}
|
163
169
|
else
|
164
170
|
val = properties[Labimotion::Prop::LAYERS][key][Labimotion::Prop::FIELDS][idx]['value']
|
165
|
-
val = proc_assign_element(val, att_el)
|
171
|
+
val = proc_assign_element(val, att_el, element)
|
166
172
|
properties[Labimotion::Prop::LAYERS][key][Labimotion::Prop::FIELDS][idx]['value'] = val
|
167
173
|
end
|
168
174
|
end
|
@@ -225,14 +231,14 @@ module Labimotion
|
|
225
231
|
end
|
226
232
|
|
227
233
|
|
228
|
-
def self.proc_table(layer, key, data, instance, properties)
|
234
|
+
def self.proc_table(layer, key, data, instance, properties, element)
|
229
235
|
fields = layer[Labimotion::Prop::FIELDS].select { |ss| ss['type'] == Labimotion::FieldType::TABLE }
|
230
236
|
fields&.each do |field|
|
231
237
|
tidx = layer[Labimotion::Prop::FIELDS].index(field)
|
232
238
|
next unless field['sub_values'].present? && field[Labimotion::Prop::SUBFIELDS].present?
|
233
239
|
|
234
|
-
proc_table_prop(layer, key, data, instance, properties, field, tidx, Labimotion::FieldType::DRAG_MOLECULE)
|
235
|
-
proc_table_prop(layer, key, data, instance, properties, field, tidx, Labimotion::FieldType::DRAG_SAMPLE)
|
240
|
+
proc_table_prop(layer, key, data, instance, properties, field, tidx, Labimotion::FieldType::DRAG_MOLECULE, element)
|
241
|
+
proc_table_prop(layer, key, data, instance, properties, field, tidx, Labimotion::FieldType::DRAG_SAMPLE, element)
|
236
242
|
end
|
237
243
|
properties
|
238
244
|
rescue StandardError => e
|
@@ -246,9 +252,9 @@ module Labimotion
|
|
246
252
|
layer = properties[Labimotion::Prop::LAYERS][key]
|
247
253
|
properties = proc_molecule(layer, key, data, properties)
|
248
254
|
properties = proc_upload(layer, key, data, instances, attachments, elmenet)
|
249
|
-
properties = proc_sample(layer, key, data, instances, properties)
|
250
|
-
properties = proc_element(layer, key, data, instances, properties, elements) # unless elements.nil?
|
251
|
-
properties = proc_table(layer, key, data, instances, properties)
|
255
|
+
properties = proc_sample(layer, key, data, instances, properties, elmenet)
|
256
|
+
properties = proc_element(layer, key, data, instances, properties, elements, elmenet) # unless elements.nil?
|
257
|
+
properties = proc_table(layer, key, data, instances, properties, elmenet)
|
252
258
|
end
|
253
259
|
properties
|
254
260
|
rescue StandardError => e
|
data/lib/labimotion/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: labimotion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.0.
|
4
|
+
version: 1.2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chia-Lin Lin
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-03-
|
12
|
+
date: 2024-03-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|