rbs_activesupport 1.5.0 → 1.6.0

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: 200b969946e5e360fabb4b244f654298e6ae7836d642541ae86e41f793a2ddd3
4
- data.tar.gz: 548522e30385d312defdddc3cfecae46d365ae2d2915627b725ea794b6abb1ee
3
+ metadata.gz: 438e19cbb21787f29c6c4d2f2793aa07a2423c6fd42ee9540763d232df0ace2b
4
+ data.tar.gz: 6af95ed3168cbd3ae7b8ef97365b36d6b3c2a03cc844b0303395cb4f0716ff98
5
5
  SHA512:
6
- metadata.gz: 137cd3708cd257b37b9ca332e09adb01a730d7e060a1301f8daa2edc40e46f252a6f89afc9a8de99137e7e346cff8461b1cc142d4ff499924ec65b688a35df4f
7
- data.tar.gz: 26166ab5a904b6a38b5e5d6efe23f72b749a2c5eb6e566898839177ca1a5315c794342bf49fe93f3dabe76f9e57eb22559c7a10b024c221ac1b7ca836b290d08
6
+ metadata.gz: e447d750370fd50cf83d448a5356a520e5f6de2b4ef15bc1bfcf6cf449002052e5b9b37fac7986a07cdb130d5e760adf957f1d0f64e2128493618992f2d96485
7
+ data.tar.gz: 7dcd6171ed89a66d898732e8e3b27401021fad63a5ad10e7a4f3fcf312e411a11e934fe338e65c242949af9f41df36fec7b37f1544f37558cecd5b3466481be4
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.7
2
+ TargetRubyVersion: 3.2
3
3
 
4
4
  Layout/LeadingCommentSpace:
5
5
  Enabled: false
@@ -1,18 +1,25 @@
1
1
  {
2
2
  "rbs-helper.signature-directory": "sig/",
3
3
  "cSpell.words": [
4
+ "bindir",
4
5
  "boolish",
5
6
  "cattr",
6
7
  "classmethods",
7
8
  "Cyclomatic",
8
9
  "DEFN",
9
10
  "FCALL",
11
+ "ivar",
12
+ "KOMIYA",
10
13
  "mattr",
11
14
  "mkpath",
12
15
  "modname",
16
+ "popen",
13
17
  "raketask",
18
+ "readlines",
14
19
  "rmtree",
20
+ "Takeshi",
15
21
  "tasklib",
22
+ "tk0miya",
16
23
  "VCALL",
17
24
  "ZLIST"
18
25
  ],
@@ -181,7 +181,7 @@ module RbsActivesupport
181
181
 
182
182
  typ = RBS::Parser.parse_type(type)
183
183
  if typ
184
- typ.map_type_name { |type_name| resolver.resolve(type_name, context: context) || type_name }.to_s
184
+ typ.map_type_name { |type_name| resolver.resolve(type_name, context:) || type_name }.to_s
185
185
  else
186
186
  type
187
187
  end
@@ -58,7 +58,7 @@ module RbsActivesupport
58
58
  def format(rbs) #: String
59
59
  parsed = RBS::Parser.parse_signature(rbs)
60
60
  StringIO.new.tap do |out|
61
- RBS::Writer.new(out: out).write(parsed[1] + parsed[2])
61
+ RBS::Writer.new(out:).write(parsed[1] + parsed[2])
62
62
  end.string
63
63
  end
64
64
 
@@ -70,19 +70,16 @@ module RbsActivesupport
70
70
 
71
71
  # @rbs namespace: RBS::Namespace
72
72
  def header(namespace) #: String
73
- context = +""
74
- namespace.path.map do |mod_name|
75
- context += "::#{mod_name}"
76
- mod_object = Object.const_get(context)
73
+ namespace_to_names(namespace).map do |name|
74
+ mod_object = Object.const_get(name.to_s)
77
75
  case mod_object
78
76
  when Class
79
- # @type var superclass: Class
80
- superclass = _ = mod_object.superclass
81
- superclass_name = superclass.name || "Object"
77
+ superclass = mod_object.superclass
78
+ superclass_name = superclass&.name || "::Object"
82
79
 
83
- "class #{mod_name} < ::#{superclass_name}"
80
+ "class #{name} < ::#{superclass_name}"
84
81
  when Module
85
- "module #{mod_name}"
82
+ "module #{name}"
86
83
  else
87
84
  raise "unreachable"
88
85
  end
@@ -93,5 +90,15 @@ module RbsActivesupport
93
90
  def footer(namespace) #: String
94
91
  "end\n" * namespace.path.size
95
92
  end
93
+
94
+ # @rbs namespace: RBS::Namespace
95
+ def namespace_to_names(namespace) #: Array[RBS::TypeName]
96
+ names = [] #: Array[RBS::TypeName]
97
+ until namespace.empty?
98
+ names << namespace.to_type_name
99
+ namespace = namespace.parent
100
+ end
101
+ names.reverse
102
+ end
96
103
  end
97
104
  end
@@ -46,12 +46,35 @@ module RbsActivesupport
46
46
  # @rbs method: Symbol
47
47
  def lookup_method_types(type_name, method) #: Array[RBS::MethodType]
48
48
  instance = rbs_builder.build_instance(type_name)
49
- method_def = instance.methods[method]
50
- return [] unless method_def
49
+ if method.start_with? "@"
50
+ ivar_def = instance.instance_variables[method]
51
+ return [] unless ivar_def
51
52
 
52
- method_def.defs.map(&:type)
53
+ method_def = build_method_def(ivar_def.type)
54
+ [method_def]
55
+ else
56
+ method_def = instance.methods[method]
57
+ return [] unless method_def
58
+
59
+ method_def.defs.map(&:type)
60
+ end
53
61
  rescue StandardError
54
62
  []
55
63
  end
64
+
65
+ # @rbs return_type: RBS::Types::t
66
+ def build_method_def(return_type) #: RBS::MethodType
67
+ type = RBS::Types::Function.new(
68
+ required_positionals: [],
69
+ optional_positionals: [],
70
+ rest_positionals: nil,
71
+ trailing_positionals: [],
72
+ required_keywords: {},
73
+ optional_keywords: {},
74
+ rest_keywords: nil,
75
+ return_type:
76
+ )
77
+ RBS::MethodType.new(type_params: [], type:, block: nil, location: nil)
78
+ end
56
79
  end
57
80
  end
@@ -76,20 +76,20 @@ module RbsActivesupport
76
76
  included: in_included_block?,
77
77
  trailing_comment: trailing_comment_for(node))
78
78
  else
79
- process_orig(node, decls: decls, comments: comments, context: context)
79
+ process_orig(node, decls:, comments:, context:)
80
80
  end
81
81
  when :ITER
82
82
  call = node.children[0]
83
83
  if call.type == :FCALL && call.children[0] == :included && parse_included_block && !in_included_block?
84
84
  body = node.children[1].children[2]
85
85
  with_included_block do
86
- process(body, decls: decls, comments: comments, context: context)
86
+ process(body, decls:, comments:, context:)
87
87
  end
88
88
  else
89
- process_orig(node, decls: decls, comments: comments, context: context)
89
+ process_orig(node, decls:, comments:, context:)
90
90
  end
91
91
  else
92
- process_orig(node, decls: decls, comments: comments, context: context)
92
+ process_orig(node, decls:, comments:, context:)
93
93
  end
94
94
  end
95
95
 
@@ -70,7 +70,7 @@ module RbsActivesupport
70
70
  loader = RBS::CLI::LibraryOptions.new.loader
71
71
  loader.add(path: Pathname("sig"))
72
72
  env = RBS::Environment.from_loader(loader).resolve_type_names
73
- RBS::DefinitionBuilder.new(env: env)
73
+ RBS::DefinitionBuilder.new(env:)
74
74
  end
75
75
  end
76
76
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RbsActivesupport
4
- VERSION = "1.5.0" #: String
4
+ VERSION = "1.6.0"
5
5
  end
@@ -2,11 +2,11 @@
2
2
  path: ".gem_rbs_collection"
3
3
  gems:
4
4
  - name: actionpack
5
- version: '6.0'
5
+ version: '7.2'
6
6
  source:
7
7
  type: git
8
8
  name: ruby/gem_rbs_collection
9
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
9
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
10
10
  remote: https://github.com/ruby/gem_rbs_collection.git
11
11
  repo_dir: gems
12
12
  - name: actionview
@@ -14,7 +14,7 @@ gems:
14
14
  source:
15
15
  type: git
16
16
  name: ruby/gem_rbs_collection
17
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
17
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
18
18
  remote: https://github.com/ruby/gem_rbs_collection.git
19
19
  repo_dir: gems
20
20
  - name: activesupport
@@ -22,7 +22,7 @@ gems:
22
22
  source:
23
23
  type: git
24
24
  name: ruby/gem_rbs_collection
25
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
25
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
26
26
  remote: https://github.com/ruby/gem_rbs_collection.git
27
27
  repo_dir: gems
28
28
  - name: ast
@@ -30,17 +30,29 @@ gems:
30
30
  source:
31
31
  type: git
32
32
  name: ruby/gem_rbs_collection
33
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
33
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
34
34
  remote: https://github.com/ruby/gem_rbs_collection.git
35
35
  repo_dir: gems
36
36
  - name: base64
37
+ version: '0.1'
38
+ source:
39
+ type: git
40
+ name: ruby/gem_rbs_collection
41
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
42
+ remote: https://github.com/ruby/gem_rbs_collection.git
43
+ repo_dir: gems
44
+ - name: benchmark
37
45
  version: '0'
38
46
  source:
39
47
  type: stdlib
40
48
  - name: bigdecimal
41
- version: '0'
49
+ version: '3.1'
42
50
  source:
43
- type: stdlib
51
+ type: git
52
+ name: ruby/gem_rbs_collection
53
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
54
+ remote: https://github.com/ruby/gem_rbs_collection.git
55
+ repo_dir: gems
44
56
  - name: cgi
45
57
  version: '0'
46
58
  source:
@@ -50,7 +62,7 @@ gems:
50
62
  source:
51
63
  type: git
52
64
  name: ruby/gem_rbs_collection
53
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
65
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
54
66
  remote: https://github.com/ruby/gem_rbs_collection.git
55
67
  repo_dir: gems
56
68
  - name: connection_pool
@@ -58,18 +70,14 @@ gems:
58
70
  source:
59
71
  type: git
60
72
  name: ruby/gem_rbs_collection
61
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
73
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
62
74
  remote: https://github.com/ruby/gem_rbs_collection.git
63
75
  repo_dir: gems
64
76
  - name: date
65
77
  version: '0'
66
78
  source:
67
79
  type: stdlib
68
- - name: dbm
69
- version: '0'
70
- source:
71
- type: stdlib
72
- - name: delegate
80
+ - name: digest
73
81
  version: '0'
74
82
  source:
75
83
  type: stdlib
@@ -86,7 +94,7 @@ gems:
86
94
  source:
87
95
  type: git
88
96
  name: ruby/gem_rbs_collection
89
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
97
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
90
98
  remote: https://github.com/ruby/gem_rbs_collection.git
91
99
  repo_dir: gems
92
100
  - name: io-console
@@ -102,23 +110,27 @@ gems:
102
110
  source:
103
111
  type: stdlib
104
112
  - name: minitest
105
- version: '0'
113
+ version: '5.25'
106
114
  source:
107
- type: stdlib
115
+ type: git
116
+ name: ruby/gem_rbs_collection
117
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
118
+ remote: https://github.com/ruby/gem_rbs_collection.git
119
+ repo_dir: gems
108
120
  - name: monitor
109
121
  version: '0'
110
122
  source:
111
123
  type: stdlib
112
124
  - name: mutex_m
113
- version: '0'
125
+ version: 0.3.0
114
126
  source:
115
- type: stdlib
127
+ type: rubygems
116
128
  - name: nokogiri
117
129
  version: '1.11'
118
130
  source:
119
131
  type: git
120
132
  name: ruby/gem_rbs_collection
121
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
133
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
122
134
  remote: https://github.com/ruby/gem_rbs_collection.git
123
135
  repo_dir: gems
124
136
  - name: openssl
@@ -134,7 +146,7 @@ gems:
134
146
  source:
135
147
  type: git
136
148
  name: ruby/gem_rbs_collection
137
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
149
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
138
150
  remote: https://github.com/ruby/gem_rbs_collection.git
139
151
  repo_dir: gems
140
152
  - name: parser
@@ -142,27 +154,19 @@ gems:
142
154
  source:
143
155
  type: git
144
156
  name: ruby/gem_rbs_collection
145
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
157
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
146
158
  remote: https://github.com/ruby/gem_rbs_collection.git
147
159
  repo_dir: gems
148
160
  - name: pathname
149
161
  version: '0'
150
162
  source:
151
163
  type: stdlib
152
- - name: pstore
153
- version: '0'
154
- source:
155
- type: stdlib
156
- - name: psych
157
- version: '0'
158
- source:
159
- type: stdlib
160
164
  - name: rack
161
165
  version: '2.2'
162
166
  source:
163
167
  type: git
164
168
  name: ruby/gem_rbs_collection
165
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
169
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
166
170
  remote: https://github.com/ruby/gem_rbs_collection.git
167
171
  repo_dir: gems
168
172
  - name: rails-dom-testing
@@ -170,7 +174,7 @@ gems:
170
174
  source:
171
175
  type: git
172
176
  name: ruby/gem_rbs_collection
173
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
177
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
174
178
  remote: https://github.com/ruby/gem_rbs_collection.git
175
179
  repo_dir: gems
176
180
  - name: rails-html-sanitizer
@@ -178,7 +182,7 @@ gems:
178
182
  source:
179
183
  type: git
180
184
  name: ruby/gem_rbs_collection
181
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
185
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
182
186
  remote: https://github.com/ruby/gem_rbs_collection.git
183
187
  repo_dir: gems
184
188
  - name: railties
@@ -186,7 +190,7 @@ gems:
186
190
  source:
187
191
  type: git
188
192
  name: ruby/gem_rbs_collection
189
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
193
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
190
194
  remote: https://github.com/ruby/gem_rbs_collection.git
191
195
  repo_dir: gems
192
196
  - name: rainbow
@@ -194,7 +198,7 @@ gems:
194
198
  source:
195
199
  type: git
196
200
  name: ruby/gem_rbs_collection
197
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
201
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
198
202
  remote: https://github.com/ruby/gem_rbs_collection.git
199
203
  repo_dir: gems
200
204
  - name: rake
@@ -202,11 +206,11 @@ gems:
202
206
  source:
203
207
  type: git
204
208
  name: ruby/gem_rbs_collection
205
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
209
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
206
210
  remote: https://github.com/ruby/gem_rbs_collection.git
207
211
  repo_dir: gems
208
212
  - name: rbs
209
- version: 3.6.1
213
+ version: 3.9.4
210
214
  source:
211
215
  type: rubygems
212
216
  - name: rdoc
@@ -218,7 +222,7 @@ gems:
218
222
  source:
219
223
  type: git
220
224
  name: ruby/gem_rbs_collection
221
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
225
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
222
226
  remote: https://github.com/ruby/gem_rbs_collection.git
223
227
  repo_dir: gems
224
228
  - name: ripper
@@ -230,7 +234,7 @@ gems:
230
234
  source:
231
235
  type: git
232
236
  name: ruby/gem_rbs_collection
233
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
237
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
234
238
  remote: https://github.com/ruby/gem_rbs_collection.git
235
239
  repo_dir: gems
236
240
  - name: rubocop-ast
@@ -238,7 +242,7 @@ gems:
238
242
  source:
239
243
  type: git
240
244
  name: ruby/gem_rbs_collection
241
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
245
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
242
246
  remote: https://github.com/ruby/gem_rbs_collection.git
243
247
  repo_dir: gems
244
248
  - name: securerandom
@@ -253,7 +257,7 @@ gems:
253
257
  version: '0'
254
258
  source:
255
259
  type: stdlib
256
- - name: strscan
260
+ - name: stringio
257
261
  version: '0'
258
262
  source:
259
263
  type: stdlib
@@ -266,7 +270,7 @@ gems:
266
270
  source:
267
271
  type: git
268
272
  name: ruby/gem_rbs_collection
269
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
273
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
270
274
  remote: https://github.com/ruby/gem_rbs_collection.git
271
275
  repo_dir: gems
272
276
  - name: time
@@ -286,7 +290,7 @@ gems:
286
290
  source:
287
291
  type: git
288
292
  name: ruby/gem_rbs_collection
289
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
293
+ revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
290
294
  remote: https://github.com/ruby/gem_rbs_collection.git
291
295
  repo_dir: gems
292
296
  - name: uri
@@ -30,5 +30,8 @@ module RbsActivesupport
30
30
 
31
31
  # @rbs namespace: RBS::Namespace
32
32
  def footer: (RBS::Namespace namespace) -> String
33
+
34
+ # @rbs namespace: RBS::Namespace
35
+ def namespace_to_names: (RBS::Namespace namespace) -> Array[RBS::TypeName]
33
36
  end
34
37
  end
@@ -21,5 +21,8 @@ module RbsActivesupport
21
21
  # @rbs type_name: RBS::TypeName
22
22
  # @rbs method: Symbol
23
23
  def lookup_method_types: (RBS::TypeName type_name, Symbol method) -> Array[RBS::MethodType]
24
+
25
+ # @rbs return_type: RBS::Types::t
26
+ def build_method_def: (RBS::Types::t return_type) -> RBS::MethodType
24
27
  end
25
28
  end
@@ -1,5 +1,5 @@
1
1
  # Generated from lib/rbs_activesupport/version.rb with RBS::Inline
2
2
 
3
3
  module RbsActivesupport
4
- VERSION: String
4
+ VERSION: ::String
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbs_activesupport
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
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-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -114,7 +114,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 2.7.0
117
+ version: 3.2.0
118
118
  required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  requirements:
120
120
  - - ">="
@@ -124,5 +124,5 @@ requirements: []
124
124
  rubygems_version: 3.5.22
125
125
  signing_key:
126
126
  specification_version: 4
127
- summary: A RBS files generatorfor activesupport
127
+ summary: A RBS files generator for activesupport
128
128
  test_files: []