rbs_activerecord 1.2.0 → 1.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: 397257103afe51d40128bfb8f976d1bc96b1b4df91de064c1f1940a3195ce1a7
4
- data.tar.gz: 7eedb8e58bfefd4656b5db3e7984302c17700273a7940f983f192b6d67228fc6
3
+ metadata.gz: a901f8b1ee98a3837e7ee4182ffb3d247466793f367ac6b764487271f2088445
4
+ data.tar.gz: 749b7ec1f3dc34235087df037f7f94418e09729cff3229717e1620a08d6abbaa
5
5
  SHA512:
6
- metadata.gz: adec3dbd91ba511e153abf4f86c289b1bc0aa6299b349aa15c1b19cc525f6995942c2bdda8fc8242041c0d679650216fd312c04fef9db0c0a501b9dcac2e6c96
7
- data.tar.gz: 7a831de86c022d232d736107ba5e3561e4a5a9dbc8cbd65e5e0f8bc080ad5a5f504edd6fa8e63c860a066552e2f962e576f927a0e7f88828e4659961d59c54df
6
+ metadata.gz: 6c5e46b70af5fb36fbfacf1beea9f949ad18b31a78ca13bfe37578f0fb8d4c5c88738bbc9039f09adde10ce49dc7f43a49d60664ac9130f4614178a8781259bf
7
+ data.tar.gz: 16cdca38fc3d9d72ba97ab9c076996aea8c58864bdcb41476a0bf8d9f86123a1042fe305a4e3ff77022ad86febeba50c6d7c632fc2bf8f3512af8b9cd58c4858
@@ -104,18 +104,16 @@ module RbsActiverecord
104
104
  end
105
105
 
106
106
  def header #: String
107
- namespace = +""
108
- klass_name.split("::").map do |mod_name|
109
- namespace += "::#{mod_name}"
110
- mod_object = Object.const_get(namespace)
107
+ klass_to_names(klass).map do |name|
108
+ mod_object = Object.const_get(name.to_s)
111
109
  case mod_object
112
110
  when Class
113
111
  superclass = mod_object.superclass
114
112
  superclass_name = superclass&.name || "::Object"
115
113
 
116
- "class #{mod_name} < ::#{superclass_name}"
114
+ "class #{name} < ::#{superclass_name}"
117
115
  when Module
118
- "module #{mod_name}"
116
+ "module #{name}"
119
117
  else
120
118
  raise "unreachable"
121
119
  end
@@ -12,6 +12,19 @@ module RbsActiverecord
12
12
  end.string
13
13
  end
14
14
 
15
+ # @rbs klass_name: singleton(Object)
16
+ def klass_to_names(klass) #: Array[RBS::TypeName]
17
+ type_name = RBS::TypeName.parse("::#{klass.name}")
18
+
19
+ names = [type_name] #: Array[RBS::TypeName]
20
+ namespace = type_name.namespace
21
+ until namespace.empty?
22
+ names << namespace.to_type_name
23
+ namespace = namespace.parent
24
+ end
25
+ names.reverse
26
+ end
27
+
15
28
  # @rbs klass: singleton(ActiveRecord::Base)
16
29
  def primary_key_type_for(klass) #: String # rubocop:disable Metrics/AbcSize
17
30
  case klass.primary_key
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RbsActiverecord
4
- VERSION = "1.2.0"
4
+ VERSION = "1.2.1"
5
5
  end
@@ -5,6 +5,9 @@ module RbsActiverecord
5
5
  # @rbs str: String
6
6
  def format: (String str) -> String
7
7
 
8
+ # @rbs klass_name: singleton(Object)
9
+ def klass_to_names: (untyped klass) -> Array[RBS::TypeName]
10
+
8
11
  # @rbs klass: singleton(ActiveRecord::Base)
9
12
  def primary_key_type_for: (singleton(ActiveRecord::Base) klass) -> String
10
13
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbs_activerecord
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takeshi KOMIYA
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-03-20 00:00:00.000000000 Z
11
+ date: 2025-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord