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 +4 -4
- data/.rubocop.yml +1 -1
- data/.vscode/settings.json +7 -0
- data/lib/rbs_activesupport/declaration_builder.rb +1 -1
- data/lib/rbs_activesupport/generator.rb +17 -10
- data/lib/rbs_activesupport/method_searcher.rb +26 -3
- data/lib/rbs_activesupport/parser.rb +4 -4
- data/lib/rbs_activesupport/rake_task.rb +1 -1
- data/lib/rbs_activesupport/version.rb +1 -1
- data/rbs_collection.lock.yaml +47 -43
- data/sig/rbs_activesupport/generator.rbs +3 -0
- data/sig/rbs_activesupport/method_searcher.rbs +3 -0
- data/sig/rbs_activesupport/version.rbs +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 438e19cbb21787f29c6c4d2f2793aa07a2423c6fd42ee9540763d232df0ace2b
|
4
|
+
data.tar.gz: 6af95ed3168cbd3ae7b8ef97365b36d6b3c2a03cc844b0303395cb4f0716ff98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e447d750370fd50cf83d448a5356a520e5f6de2b4ef15bc1bfcf6cf449002052e5b9b37fac7986a07cdb130d5e760adf957f1d0f64e2128493618992f2d96485
|
7
|
+
data.tar.gz: 7dcd6171ed89a66d898732e8e3b27401021fad63a5ad10e7a4f3fcf312e411a11e934fe338e65c242949af9f41df36fec7b37f1544f37558cecd5b3466481be4
|
data/.rubocop.yml
CHANGED
data/.vscode/settings.json
CHANGED
@@ -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:
|
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:
|
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
|
-
|
74
|
-
|
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
|
-
|
80
|
-
|
81
|
-
superclass_name = superclass.name || "Object"
|
77
|
+
superclass = mod_object.superclass
|
78
|
+
superclass_name = superclass&.name || "::Object"
|
82
79
|
|
83
|
-
"class #{
|
80
|
+
"class #{name} < ::#{superclass_name}"
|
84
81
|
when Module
|
85
|
-
"module #{
|
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
|
-
|
50
|
-
|
49
|
+
if method.start_with? "@"
|
50
|
+
ivar_def = instance.instance_variables[method]
|
51
|
+
return [] unless ivar_def
|
51
52
|
|
52
|
-
|
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
|
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
|
86
|
+
process(body, decls:, comments:, context:)
|
87
87
|
end
|
88
88
|
else
|
89
|
-
process_orig(node, decls
|
89
|
+
process_orig(node, decls:, comments:, context:)
|
90
90
|
end
|
91
91
|
else
|
92
|
-
process_orig(node, decls
|
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:
|
73
|
+
RBS::DefinitionBuilder.new(env:)
|
74
74
|
end
|
75
75
|
end
|
76
76
|
end
|
data/rbs_collection.lock.yaml
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
path: ".gem_rbs_collection"
|
3
3
|
gems:
|
4
4
|
- name: actionpack
|
5
|
-
version: '
|
5
|
+
version: '7.2'
|
6
6
|
source:
|
7
7
|
type: git
|
8
8
|
name: ruby/gem_rbs_collection
|
9
|
-
revision:
|
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:
|
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:
|
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:
|
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: '
|
49
|
+
version: '3.1'
|
42
50
|
source:
|
43
|
-
type:
|
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:
|
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:
|
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:
|
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:
|
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: '
|
113
|
+
version: '5.25'
|
106
114
|
source:
|
107
|
-
type:
|
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:
|
125
|
+
version: 0.3.0
|
114
126
|
source:
|
115
|
-
type:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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.
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
293
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
290
294
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
291
295
|
repo_dir: gems
|
292
296
|
- name: uri
|
@@ -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
|
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.
|
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-
|
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.
|
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
|
127
|
+
summary: A RBS files generator for activesupport
|
128
128
|
test_files: []
|