tapioca 0.11.16 → 0.11.17

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 38dec6aff4cfc2907111dda6a6ee1411d5ae7bf58f467a7e8a47094a606f7593
4
- data.tar.gz: aa5c4ce427eb9e33513ef4b42f69572030c21be2ea12367abc1755fda0c76202
3
+ metadata.gz: 8a74fea1cf7f8de26296fa1fb617362cceac2f800740cfaac4e95b8b0106dfc9
4
+ data.tar.gz: 911ce69b722d3b30d07f2806ae155e0c390d015eea45ba85bf69c0796e6b5bf5
5
5
  SHA512:
6
- metadata.gz: 1640eb00441de0826936170a8e40010ab5bf3567329ad64e283d8cad4161a37ff16cf02cea1e41eba50816a6f315af8db69be70b65249b61b015532d86c6da05
7
- data.tar.gz: 410060c7ef464f8fe07b28582cef2a86875fa80ff319051aaea31946cd96ad1e40b07c56165421e99b0d300ea19223a3f20756a520a2cb6bd9c76bf16abca230
6
+ metadata.gz: 3fa1c5dcd97eee61f4385ba685c8f0b7e9290bc9a79822bdf46dcbe681b7b40bcef256cf8a293911b4bcbcb39ea325b1280da1eabbfde069d6d21161d1a6a6b0
7
+ data.tar.gz: b7d3e1b1e0341bd8b835daa3f4a405271a97376eca922ea46a5680b7d388560426819d77ea9b64623f91deb68d76548372b78488d626386f5cfb35ca6531934b
@@ -224,7 +224,6 @@ module Tapioca
224
224
  def create_aliased_fetch_by_methods(field, klass)
225
225
  type, _ = Helpers::ActiveRecordColumnTypeHelper.new(constant).type_for(field.alias_name.to_s)
226
226
  multi_type = type.delete_prefix("T.nilable(").delete_suffix(")").delete_prefix("::")
227
- length = field.key_fields.length
228
227
  suffix = field.send(:fetch_method_suffix)
229
228
 
230
229
  parameters = field.key_fields.map do |arg|
@@ -238,14 +237,12 @@ module Tapioca
238
237
  return_type: type,
239
238
  )
240
239
 
241
- if length == 1
242
- klass.create_method(
243
- "fetch_multi_#{suffix}",
244
- class_method: true,
245
- parameters: [create_param("keys", type: "T::Enumerable[T.untyped]")],
246
- return_type: COLLECTION_TYPE.call(multi_type),
247
- )
248
- end
240
+ klass.create_method(
241
+ "fetch_multi_#{suffix}",
242
+ class_method: true,
243
+ parameters: [create_param("keys", type: "T::Enumerable[T.untyped]")],
244
+ return_type: COLLECTION_TYPE.call(multi_type),
245
+ )
249
246
  end
250
247
  end
251
248
  end
@@ -26,9 +26,9 @@ module Tapioca
26
26
  end
27
27
 
28
28
  prepare = argument.prepare
29
- prepare_method = if prepare
29
+ prepare_method = if prepare.is_a?(Symbol) || prepare.is_a?(String)
30
30
  if constant.respond_to?(prepare)
31
- constant.method(prepare)
31
+ constant.method(prepare.to_sym)
32
32
  end
33
33
  end
34
34
 
@@ -391,6 +391,7 @@ module Tapioca
391
391
  def skip_alias?(name, constant)
392
392
  return true if symbol_in_payload?(name)
393
393
  return true unless constant_in_gem?(name)
394
+ return true if has_aliased_namespace?(name)
394
395
 
395
396
  false
396
397
  end
@@ -255,6 +255,23 @@ module Tapioca
255
255
  def method_defined_by_forwardable_module?(method)
256
256
  method.source_location&.first == Object.const_source_location(:Forwardable)&.first
257
257
  end
258
+
259
+ sig { params(name: String).returns(T::Boolean) }
260
+ def has_aliased_namespace?(name)
261
+ name_parts = name.split("::")
262
+ name_parts.pop # drop the constant name, leaving just the namespace
263
+
264
+ name_parts.each_with_object([]) do |name_part, namespaces|
265
+ namespaces << "#{namespaces.last}::#{name_part}".delete_prefix("::")
266
+ end.any? do |namespace|
267
+ constant = constantize(namespace)
268
+ next unless Module === constant
269
+
270
+ # If the constant name doesn't match the namespace,
271
+ # the namespace must contain an alias
272
+ name_of(constant) != namespace
273
+ end
274
+ end
258
275
  end
259
276
  end
260
277
  end
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Tapioca
5
- VERSION = "0.11.16"
5
+ VERSION = "0.11.17"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tapioca
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.16
4
+ version: 0.11.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ufuk Kayserilioglu
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2024-01-12 00:00:00.000000000 Z
14
+ date: 2024-01-15 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler