svelte-on-rails 23.1.13 → 23.2.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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 188b86232312197fa05f561b21531d5bb351f6e1a9e0bc6b01a4efc1ec549bb5
|
|
4
|
+
data.tar.gz: 9897db5e3d372f5a219290c0f2752458bbf1b9d70a09c1e97cc5fec1b892033e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 95689fba187dd93dd27c5640a154d44a070e5edd3bca2bd90d262ad8b3ca203889b2e03061213850c25c6e7d88316549e2b573cae5002254993c3b31fce183b8
|
|
7
|
+
data.tar.gz: 3662c1b54bf95a94d1b80f13386cec8994699ee4f983a29c130dcda92a7a8b6a9a1d51b2ef1c7a30676e5d15c43e52d93b1711469a8c7c3e4b78874fba13530e
|
|
@@ -39,11 +39,14 @@ module SvelteOnRails
|
|
|
39
39
|
associations.merge!(attr)
|
|
40
40
|
else
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
attr_s = attr.to_s
|
|
43
|
+
dot_index = attr_s.index('.')
|
|
44
|
+
_at = dot_index ? attr_s[0...dot_index].delete_suffix('&') : attr_s
|
|
45
|
+
if !model.method_defined?(_at) && !model.attribute_names.include?(_at)
|
|
46
|
+
raise "ERROR: Attribute or method «#{_at}» not found in model «#{_at}»"
|
|
44
47
|
end
|
|
45
48
|
@labels[key] ||= {}
|
|
46
|
-
@labels[key][
|
|
49
|
+
@labels[key][_at] ||= column_attributes(model, _at)
|
|
47
50
|
@labels[key]['self'] ||= model_attributes(model)
|
|
48
51
|
|
|
49
52
|
end
|
|
@@ -62,12 +62,11 @@ module SvelteOnRails
|
|
|
62
62
|
enums = record.class.try(:defined_enums) || {}
|
|
63
63
|
|
|
64
64
|
attributes.each do |attr|
|
|
65
|
-
validate_attribute!(record, attr)
|
|
66
65
|
|
|
67
66
|
key_s = attr.to_s
|
|
68
|
-
value = record
|
|
67
|
+
value = chained_send(record, key_s)
|
|
69
68
|
|
|
70
|
-
values[key_s] = enums.key?(key_s) ? record
|
|
69
|
+
values[key_s] = enums.key?(key_s) ? chained_send(record, key_s) : value
|
|
71
70
|
end
|
|
72
71
|
|
|
73
72
|
associations.each do |key, val|
|
|
@@ -119,12 +118,19 @@ module SvelteOnRails
|
|
|
119
118
|
obj.is_a?(ActiveRecord::Associations::CollectionProxy)) rescue false
|
|
120
119
|
end
|
|
121
120
|
|
|
122
|
-
def self.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
121
|
+
def self.chained_send(object, path)
|
|
122
|
+
calls = path.to_s.scan(/(&?\.)?([a-zA-Z_]\w*[!?=]?)/)
|
|
123
|
+
|
|
124
|
+
calls.reduce(object) do |current, (operator, method_name)|
|
|
125
|
+
return nil if operator == "&." && current.nil?
|
|
126
|
+
|
|
127
|
+
raise ArgumentError, "[SOR] Cannot call #{method_name} on nil" if current.nil?
|
|
128
|
+
|
|
129
|
+
unless current.respond_to?(method_name)
|
|
130
|
+
raise ArgumentError, "[SOR] No method #{method_name.inspect} on #{current.class}"
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
current.public_send(method_name)
|
|
128
134
|
end
|
|
129
135
|
end
|
|
130
136
|
end
|
|
@@ -140,8 +140,6 @@ module SvelteOnRails
|
|
|
140
140
|
}
|
|
141
141
|
)
|
|
142
142
|
|
|
143
|
-
svelte_props[:test] = 'hello'
|
|
144
|
-
|
|
145
143
|
ht_opts[:class] = "svelte-component #{ht_opts[:class]}"
|
|
146
144
|
ht_opts[:data][:props] = svelte_props.to_json
|
|
147
145
|
ht_opts[:data][:svelte_status] = (@options[:hydrate] == false ? 'do-not-hydrate-me' : 'ssr')
|