tapioca_dsl_compiler_store_model 0.1.3 → 0.1.4
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: 9ca8704a96779f59a3ee54b8c42f056131e3eceb6268aeab78535498e54f7901
|
|
4
|
+
data.tar.gz: 5d6228ccffd7c51a8990bac5ce048b0d4deaed74b40d5c8d0a0de4d273cf1b45
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 19c5aa8f9e4fb258d6f1587596c0b45cc97e4a6529477cf01680248c2aaadf23e19610c39634d596afe57473db49b9e5fa5f67da4a9e419b441b13c5574b65c8
|
|
7
|
+
data.tar.gz: caf133e5473fc4e32a39aeaa8c49de518df0b88db1719fe60e4a050a37e2d806fbb3e11680c3b8314cae9e4751be5fc25cf89a25b515307ff952daeb8ac92869
|
|
@@ -118,37 +118,42 @@ module Tapioca
|
|
|
118
118
|
sig { params(mod: T.untyped, attribute_name: String).void }
|
|
119
119
|
def create_one_of_single_methods(mod, attribute_name)
|
|
120
120
|
# OneOf types are dynamically resolved, so we use generic StoreModel::Model types
|
|
121
|
-
|
|
121
|
+
create_method_unless_overridden(
|
|
122
|
+
mod,
|
|
122
123
|
attribute_name,
|
|
123
|
-
return_type: "T.nilable(StoreModel::Model)"
|
|
124
|
+
return_type: "T.nilable(::StoreModel::Model)"
|
|
124
125
|
)
|
|
125
126
|
|
|
126
|
-
|
|
127
|
+
create_method_unless_overridden(
|
|
128
|
+
mod,
|
|
127
129
|
"#{attribute_name}=",
|
|
128
130
|
parameters: [create_param("value",
|
|
129
|
-
type: "T.nilable(T.any(StoreModel::Model, T::Hash[T.untyped, T.untyped]))")],
|
|
130
|
-
return_type: "T.nilable(StoreModel::Model)"
|
|
131
|
+
type: "T.nilable(T.any(::StoreModel::Model, T::Hash[T.untyped, T.untyped]))")],
|
|
132
|
+
return_type: "T.nilable(::StoreModel::Model)"
|
|
131
133
|
)
|
|
132
134
|
|
|
133
|
-
|
|
135
|
+
create_method_unless_overridden(
|
|
136
|
+
mod,
|
|
134
137
|
"build_#{attribute_name}",
|
|
135
138
|
parameters: [create_kw_opt_param("attributes", type: "T::Hash[T.untyped, T.untyped]", default: "{}")],
|
|
136
|
-
return_type: "StoreModel::Model"
|
|
139
|
+
return_type: "::StoreModel::Model"
|
|
137
140
|
)
|
|
138
141
|
end
|
|
139
142
|
|
|
140
143
|
sig { params(mod: T.untyped, attribute_name: String).void }
|
|
141
144
|
def create_one_of_array_methods(mod, attribute_name)
|
|
142
145
|
# OneOf array types are dynamically resolved
|
|
143
|
-
array_type = "T::Array[StoreModel::Model]"
|
|
146
|
+
array_type = "T::Array[::StoreModel::Model]"
|
|
144
147
|
nilable_array_type = "T.nilable(#{array_type})"
|
|
145
148
|
|
|
146
|
-
|
|
149
|
+
create_method_unless_overridden(
|
|
150
|
+
mod,
|
|
147
151
|
attribute_name,
|
|
148
152
|
return_type: nilable_array_type
|
|
149
153
|
)
|
|
150
154
|
|
|
151
|
-
|
|
155
|
+
create_method_unless_overridden(
|
|
156
|
+
mod,
|
|
152
157
|
"#{attribute_name}=",
|
|
153
158
|
parameters: [create_param("value",
|
|
154
159
|
type: "T.nilable(T.any(#{array_type}, " \
|
|
@@ -159,21 +164,24 @@ module Tapioca
|
|
|
159
164
|
|
|
160
165
|
sig { params(mod: T.untyped, attribute_name: String, model_klass: T.untyped).void }
|
|
161
166
|
def create_single_store_model_methods(mod, attribute_name, model_klass)
|
|
162
|
-
return_type = model_klass.name
|
|
167
|
+
return_type = "::#{model_klass.name}"
|
|
163
168
|
|
|
164
|
-
|
|
169
|
+
create_method_unless_overridden(
|
|
170
|
+
mod,
|
|
165
171
|
attribute_name,
|
|
166
172
|
return_type: "T.nilable(#{return_type})"
|
|
167
173
|
)
|
|
168
174
|
|
|
169
|
-
|
|
175
|
+
create_method_unless_overridden(
|
|
176
|
+
mod,
|
|
170
177
|
"#{attribute_name}=",
|
|
171
178
|
parameters: [create_param("value",
|
|
172
179
|
type: "T.nilable(T.any(#{return_type}, T::Hash[T.untyped, T.untyped]))")],
|
|
173
180
|
return_type: "T.nilable(#{return_type})"
|
|
174
181
|
)
|
|
175
182
|
|
|
176
|
-
|
|
183
|
+
create_method_unless_overridden(
|
|
184
|
+
mod,
|
|
177
185
|
"build_#{attribute_name}",
|
|
178
186
|
parameters: [create_kw_opt_param("attributes", type: "T::Hash[T.untyped, T.untyped]", default: "{}")],
|
|
179
187
|
return_type: return_type
|
|
@@ -182,16 +190,18 @@ module Tapioca
|
|
|
182
190
|
|
|
183
191
|
sig { params(mod: T.untyped, attribute_name: String, model_klass: T.untyped).void }
|
|
184
192
|
def create_many_store_model_methods(mod, attribute_name, model_klass)
|
|
185
|
-
return_type = model_klass.name
|
|
193
|
+
return_type = "::#{model_klass.name}"
|
|
186
194
|
array_type = "T::Array[#{return_type}]"
|
|
187
195
|
nilable_array_type = "T.nilable(#{array_type})"
|
|
188
196
|
|
|
189
|
-
|
|
197
|
+
create_method_unless_overridden(
|
|
198
|
+
mod,
|
|
190
199
|
attribute_name,
|
|
191
200
|
return_type: nilable_array_type
|
|
192
201
|
)
|
|
193
202
|
|
|
194
|
-
|
|
203
|
+
create_method_unless_overridden(
|
|
204
|
+
mod,
|
|
195
205
|
"#{attribute_name}=",
|
|
196
206
|
parameters: [create_param("value",
|
|
197
207
|
type: "T.nilable(T.any(#{array_type}, " \
|
|
@@ -199,6 +209,26 @@ module Tapioca
|
|
|
199
209
|
return_type: nilable_array_type
|
|
200
210
|
)
|
|
201
211
|
end
|
|
212
|
+
|
|
213
|
+
# Skip sig emission when the user has overridden the method (e.g. via
|
|
214
|
+
# `delegate`), as the arity mismatch causes Sorbet error 4010.
|
|
215
|
+
sig { params(mod: T.untyped, name: T.any(String, Symbol), kwargs: T.untyped).void }
|
|
216
|
+
def create_method_unless_overridden(mod, name, **kwargs) # rubocop:disable Style/ArgumentsForwarding
|
|
217
|
+
return if user_overridden?(name)
|
|
218
|
+
|
|
219
|
+
mod.create_method(name.to_s, **kwargs) # rubocop:disable Style/ArgumentsForwarding
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
sig { params(method_name: T.any(String, Symbol)).returns(T::Boolean) }
|
|
223
|
+
def user_overridden?(method_name)
|
|
224
|
+
name = method_name.to_sym
|
|
225
|
+
return false unless constant.method_defined?(name) ||
|
|
226
|
+
constant.private_method_defined?(name)
|
|
227
|
+
|
|
228
|
+
constant.instance_method(name).owner == constant
|
|
229
|
+
rescue NameError
|
|
230
|
+
false
|
|
231
|
+
end
|
|
202
232
|
end
|
|
203
233
|
end
|
|
204
234
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tapioca_dsl_compiler_store_model
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- speria-jp
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-05-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: store_model
|