rbs_rails 0.12.1 → 0.13.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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.github/workflows/release.yml +27 -0
  4. data/CHANGELOG.md +56 -0
  5. data/Gemfile +7 -1
  6. data/Gemfile.lock +111 -93
  7. data/README.md +46 -1
  8. data/Rakefile +7 -2
  9. data/example/rbs_rails.rb +27 -0
  10. data/exe/rbs_rails +6 -0
  11. data/lib/generators/rbs_rails/install_generator.rb +1 -10
  12. data/lib/rbs_rails/active_record/enum.rb +81 -0
  13. data/lib/rbs_rails/active_record.rb +233 -143
  14. data/lib/rbs_rails/cli/configuration.rb +66 -0
  15. data/lib/rbs_rails/cli.rb +173 -0
  16. data/lib/rbs_rails/dependency_builder.rb +25 -8
  17. data/lib/rbs_rails/path_helpers.rb +14 -2
  18. data/lib/rbs_rails/rake_task.rb +38 -40
  19. data/lib/rbs_rails/util/file_writer.rb +22 -0
  20. data/lib/rbs_rails/util.rb +11 -4
  21. data/lib/rbs_rails/version.rb +1 -1
  22. data/lib/rbs_rails.rb +5 -2
  23. data/rbs_collection.lock.yaml +86 -38
  24. data/rbs_collection.yaml +1 -16
  25. data/rbs_rails.gemspec +1 -0
  26. data/sig/{install_generator.rbs → generators/rbs_rails/install_generator.rbs} +2 -0
  27. data/sig/rbs_rails/active_record/enum.rbs +26 -0
  28. data/sig/rbs_rails/active_record.rbs +67 -49
  29. data/sig/rbs_rails/cli/configuration.rbs +37 -0
  30. data/sig/rbs_rails/cli.rbs +35 -0
  31. data/sig/rbs_rails/dependency_builder.rbs +7 -3
  32. data/sig/rbs_rails/path_helpers.rbs +13 -6
  33. data/sig/rbs_rails/rake_task.rbs +7 -6
  34. data/sig/rbs_rails/util/file_writer.rbs +16 -0
  35. data/sig/rbs_rails/util.rbs +7 -2
  36. data/sig/rbs_rails/utils/file_writer.rbs +4 -0
  37. data/sig/rbs_rails/version.rbs +5 -1
  38. data/sig/rbs_rails.rbs +6 -3
  39. metadata +32 -8
  40. data/sig/_internal/activerecord.rbs +0 -4
  41. data/sig/parser.rbs +0 -14
  42. data/sig/rake.rbs +0 -6
@@ -6,7 +6,7 @@ gems:
6
6
  source:
7
7
  type: git
8
8
  name: ruby/gem_rbs_collection
9
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
9
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
10
10
  remote: https://github.com/ruby/gem_rbs_collection.git
11
11
  repo_dir: gems
12
12
  - name: actionmailer
@@ -14,7 +14,7 @@ gems:
14
14
  source:
15
15
  type: git
16
16
  name: ruby/gem_rbs_collection
17
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
17
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
18
18
  remote: https://github.com/ruby/gem_rbs_collection.git
19
19
  repo_dir: gems
20
20
  - name: actionpack
@@ -22,7 +22,7 @@ gems:
22
22
  source:
23
23
  type: git
24
24
  name: ruby/gem_rbs_collection
25
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
25
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
26
26
  remote: https://github.com/ruby/gem_rbs_collection.git
27
27
  repo_dir: gems
28
28
  - name: actiontext
@@ -30,7 +30,7 @@ gems:
30
30
  source:
31
31
  type: git
32
32
  name: ruby/gem_rbs_collection
33
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
33
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
34
34
  remote: https://github.com/ruby/gem_rbs_collection.git
35
35
  repo_dir: gems
36
36
  - name: actionview
@@ -38,7 +38,7 @@ gems:
38
38
  source:
39
39
  type: git
40
40
  name: ruby/gem_rbs_collection
41
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
41
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
42
42
  remote: https://github.com/ruby/gem_rbs_collection.git
43
43
  repo_dir: gems
44
44
  - name: activejob
@@ -46,15 +46,15 @@ gems:
46
46
  source:
47
47
  type: git
48
48
  name: ruby/gem_rbs_collection
49
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
49
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
50
50
  remote: https://github.com/ruby/gem_rbs_collection.git
51
51
  repo_dir: gems
52
52
  - name: activemodel
53
- version: '7.0'
53
+ version: '7.1'
54
54
  source:
55
55
  type: git
56
56
  name: ruby/gem_rbs_collection
57
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
57
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
58
58
  remote: https://github.com/ruby/gem_rbs_collection.git
59
59
  repo_dir: gems
60
60
  - name: activerecord
@@ -62,7 +62,7 @@ gems:
62
62
  source:
63
63
  type: git
64
64
  name: ruby/gem_rbs_collection
65
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
65
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
66
66
  remote: https://github.com/ruby/gem_rbs_collection.git
67
67
  repo_dir: gems
68
68
  - name: activestorage
@@ -70,7 +70,7 @@ gems:
70
70
  source:
71
71
  type: git
72
72
  name: ruby/gem_rbs_collection
73
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
73
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
74
74
  remote: https://github.com/ruby/gem_rbs_collection.git
75
75
  repo_dir: gems
76
76
  - name: activesupport
@@ -78,21 +78,33 @@ gems:
78
78
  source:
79
79
  type: git
80
80
  name: ruby/gem_rbs_collection
81
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
81
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
82
+ remote: https://github.com/ruby/gem_rbs_collection.git
83
+ repo_dir: gems
84
+ - name: ast
85
+ version: '2.4'
86
+ source:
87
+ type: git
88
+ name: ruby/gem_rbs_collection
89
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
82
90
  remote: https://github.com/ruby/gem_rbs_collection.git
83
91
  repo_dir: gems
84
92
  - name: base64
85
- version: '0'
93
+ version: 0.3.0
86
94
  source:
87
- type: stdlib
95
+ type: rubygems
88
96
  - name: benchmark
89
97
  version: '0'
90
98
  source:
91
99
  type: stdlib
92
100
  - name: bigdecimal
93
- version: '0'
101
+ version: '3.1'
94
102
  source:
95
- type: stdlib
103
+ type: git
104
+ name: ruby/gem_rbs_collection
105
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
106
+ remote: https://github.com/ruby/gem_rbs_collection.git
107
+ repo_dir: gems
96
108
  - name: cgi
97
109
  version: '0'
98
110
  source:
@@ -102,7 +114,7 @@ gems:
102
114
  source:
103
115
  type: git
104
116
  name: ruby/gem_rbs_collection
105
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
117
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
106
118
  remote: https://github.com/ruby/gem_rbs_collection.git
107
119
  repo_dir: gems
108
120
  - name: connection_pool
@@ -110,7 +122,7 @@ gems:
110
122
  source:
111
123
  type: git
112
124
  name: ruby/gem_rbs_collection
113
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
125
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
114
126
  remote: https://github.com/ruby/gem_rbs_collection.git
115
127
  repo_dir: gems
116
128
  - name: date
@@ -125,6 +137,10 @@ gems:
125
137
  version: '0'
126
138
  source:
127
139
  type: stdlib
140
+ - name: digest
141
+ version: '0'
142
+ source:
143
+ type: stdlib
128
144
  - name: erb
129
145
  version: '0'
130
146
  source:
@@ -133,12 +149,16 @@ gems:
133
149
  version: '0'
134
150
  source:
135
151
  type: stdlib
152
+ - name: forwardable
153
+ version: '0'
154
+ source:
155
+ type: stdlib
136
156
  - name: globalid
137
157
  version: '1.1'
138
158
  source:
139
159
  type: git
140
160
  name: ruby/gem_rbs_collection
141
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
161
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
142
162
  remote: https://github.com/ruby/gem_rbs_collection.git
143
163
  repo_dir: gems
144
164
  - name: i18n
@@ -146,7 +166,7 @@ gems:
146
166
  source:
147
167
  type: git
148
168
  name: ruby/gem_rbs_collection
149
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
169
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
150
170
  remote: https://github.com/ruby/gem_rbs_collection.git
151
171
  repo_dir: gems
152
172
  - name: io-console
@@ -166,7 +186,7 @@ gems:
166
186
  source:
167
187
  type: git
168
188
  name: ruby/gem_rbs_collection
169
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
189
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
170
190
  remote: https://github.com/ruby/gem_rbs_collection.git
171
191
  repo_dir: gems
172
192
  - name: marcel
@@ -174,7 +194,7 @@ gems:
174
194
  source:
175
195
  type: git
176
196
  name: ruby/gem_rbs_collection
177
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
197
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
178
198
  remote: https://github.com/ruby/gem_rbs_collection.git
179
199
  repo_dir: gems
180
200
  - name: mini_mime
@@ -182,29 +202,41 @@ gems:
182
202
  source:
183
203
  type: git
184
204
  name: ruby/gem_rbs_collection
185
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
205
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
186
206
  remote: https://github.com/ruby/gem_rbs_collection.git
187
207
  repo_dir: gems
188
208
  - name: minitest
189
- version: '0'
209
+ version: '5.25'
190
210
  source:
191
- type: stdlib
211
+ type: git
212
+ name: ruby/gem_rbs_collection
213
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
214
+ remote: https://github.com/ruby/gem_rbs_collection.git
215
+ repo_dir: gems
192
216
  - name: monitor
193
217
  version: '0'
194
218
  source:
195
219
  type: stdlib
196
- - name: mutex_m
197
- version: '0'
198
- source:
199
- type: stdlib
200
220
  - name: net-protocol
201
221
  version: '0'
202
222
  source:
203
223
  type: stdlib
204
224
  - name: net-smtp
205
- version: '0'
225
+ version: '0.5'
206
226
  source:
207
- type: stdlib
227
+ type: git
228
+ name: ruby/gem_rbs_collection
229
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
230
+ remote: https://github.com/ruby/gem_rbs_collection.git
231
+ repo_dir: gems
232
+ - name: nokogiri
233
+ version: '1.11'
234
+ source:
235
+ type: git
236
+ name: ruby/gem_rbs_collection
237
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
238
+ remote: https://github.com/ruby/gem_rbs_collection.git
239
+ repo_dir: gems
208
240
  - name: openssl
209
241
  version: '0'
210
242
  source:
@@ -213,10 +245,22 @@ gems:
213
245
  version: '0'
214
246
  source:
215
247
  type: stdlib
248
+ - name: parser
249
+ version: '3.2'
250
+ source:
251
+ type: git
252
+ name: ruby/gem_rbs_collection
253
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
254
+ remote: https://github.com/ruby/gem_rbs_collection.git
255
+ repo_dir: gems
216
256
  - name: pathname
217
257
  version: '0'
218
258
  source:
219
259
  type: stdlib
260
+ - name: prism
261
+ version: 1.2.0
262
+ source:
263
+ type: rubygems
220
264
  - name: pstore
221
265
  version: '0'
222
266
  source:
@@ -230,7 +274,7 @@ gems:
230
274
  source:
231
275
  type: git
232
276
  name: ruby/gem_rbs_collection
233
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
277
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
234
278
  remote: https://github.com/ruby/gem_rbs_collection.git
235
279
  repo_dir: gems
236
280
  - name: rails-dom-testing
@@ -238,7 +282,7 @@ gems:
238
282
  source:
239
283
  type: git
240
284
  name: ruby/gem_rbs_collection
241
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
285
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
242
286
  remote: https://github.com/ruby/gem_rbs_collection.git
243
287
  repo_dir: gems
244
288
  - name: rails-html-sanitizer
@@ -246,7 +290,7 @@ gems:
246
290
  source:
247
291
  type: git
248
292
  name: ruby/gem_rbs_collection
249
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
293
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
250
294
  remote: https://github.com/ruby/gem_rbs_collection.git
251
295
  repo_dir: gems
252
296
  - name: railties
@@ -254,7 +298,7 @@ gems:
254
298
  source:
255
299
  type: git
256
300
  name: ruby/gem_rbs_collection
257
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
301
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
258
302
  remote: https://github.com/ruby/gem_rbs_collection.git
259
303
  repo_dir: gems
260
304
  - name: rake
@@ -262,11 +306,11 @@ gems:
262
306
  source:
263
307
  type: git
264
308
  name: ruby/gem_rbs_collection
265
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
309
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
266
310
  remote: https://github.com/ruby/gem_rbs_collection.git
267
311
  repo_dir: gems
268
312
  - name: rbs
269
- version: 3.6.1
313
+ version: 3.9.2
270
314
  source:
271
315
  type: rubygems
272
316
  - name: rdoc
@@ -285,6 +329,10 @@ gems:
285
329
  version: '0'
286
330
  source:
287
331
  type: stdlib
332
+ - name: stringio
333
+ version: '0'
334
+ source:
335
+ type: stdlib
288
336
  - name: tempfile
289
337
  version: '0'
290
338
  source:
@@ -294,7 +342,7 @@ gems:
294
342
  source:
295
343
  type: git
296
344
  name: ruby/gem_rbs_collection
297
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
345
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
298
346
  remote: https://github.com/ruby/gem_rbs_collection.git
299
347
  repo_dir: gems
300
348
  - name: time
@@ -314,7 +362,7 @@ gems:
314
362
  source:
315
363
  type: git
316
364
  name: ruby/gem_rbs_collection
317
- revision: 408834635f112abe5ea66cf3846f5c81ce2c94b4
365
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
318
366
  remote: https://github.com/ruby/gem_rbs_collection.git
319
367
  repo_dir: gems
320
368
  - name: uri
data/rbs_collection.yaml CHANGED
@@ -9,22 +9,6 @@ sources:
9
9
  path: .gem_rbs_collection
10
10
 
11
11
  gems:
12
- # Ignores - Gemfile.lock contains them but their RBSs are unnecessary
13
- - name: steep
14
- ignore: true
15
- - name: nokogiri
16
- ignore: true
17
- - name: ast
18
- ignore: true
19
- - name: rainbow
20
- ignore: true
21
- - name: listen
22
- ignore: true
23
-
24
- # ignore RBS Rails itself
25
- - name: rbs_rails
26
- ignore: true
27
-
28
12
  # They'are necessary to load RBS gem.
29
13
  # See https://github.com/ruby/rbs/pull/921
30
14
  - name: logger
@@ -32,3 +16,4 @@ gems:
32
16
  - name: json
33
17
  - name: optparse
34
18
  - name: tsort
19
+ - name: forwardable
data/rbs_rails.gemspec CHANGED
@@ -26,5 +26,6 @@ Gem::Specification.new do |spec|
26
26
  spec.require_paths = ["lib"]
27
27
 
28
28
  spec.add_runtime_dependency 'parser'
29
+ spec.add_runtime_dependency 'prism'
29
30
  spec.add_runtime_dependency 'rbs', '>= 1'
30
31
  end
@@ -1,3 +1,5 @@
1
+ # Generated from lib/generators/rbs_rails/install_generator.rb with RBS::Inline
2
+
1
3
  module RbsRails
2
4
  class InstallGenerator < Rails::Generators::Base
3
5
  def create_raketask: () -> void
@@ -0,0 +1,26 @@
1
+ # Generated from lib/rbs_rails/active_record/enum.rb with RBS::Inline
2
+
3
+ module RbsRails
4
+ module ActiveRecord
5
+ module Enum
6
+ IGNORED_ENUM_KEYS: ::Array[untyped]
7
+
8
+ type definitions = Hash[Symbol, Array[Symbol] | Hash[Symbol, untyped]]
9
+
10
+ type options = Hash[Symbol, untyped]
11
+
12
+ type enum_definitions = Array[[ definitions, options ]]
13
+
14
+ @enum_definitions: enum_definitions
15
+
16
+ def enum: (*untyped args, **untyped options) -> void
17
+
18
+ def enum_definitions: () -> Array[[ Symbol, String ]]
19
+
20
+ # @rbs name: Symbol
21
+ # @rbs label: Symbol
22
+ # @rbs options: Hash[Symbol, untyped]
23
+ private def enum_method_name: (Symbol name, Symbol label, Hash[Symbol, untyped] options) -> String
24
+ end
25
+ end
26
+ end
@@ -1,87 +1,105 @@
1
- module RbsRails::ActiveRecord
2
- def self.class_to_rbs: (untyped klass, ?dependencies: Array[String]) -> untyped
3
- def self.generatable?: (untyped klass) -> boolish
4
- end
1
+ # Generated from lib/rbs_rails/active_record.rb with RBS::Inline
2
+
3
+ module RbsRails
4
+ module ActiveRecord
5
+ # @rbs klass: untyped
6
+ def self.generatable?: (untyped klass) -> boolish
7
+
8
+ # @rbs klass: untyped
9
+ # @rbs dependencies: Array[String]
10
+ def self.class_to_rbs: (untyped klass) -> untyped
11
+
12
+ class Generator
13
+ IGNORED_ENUM_KEYS: Array[Symbol]
14
+
15
+ @klass_name: String
16
+
17
+ @enum_definitions: Array[Hash[Symbol, untyped]]
5
18
 
6
- class RbsRails::ActiveRecord::Generator
7
- @parse_model_file: nil | Parser::AST::Node
8
- @dependencies: Array[String]
9
- @enum_definitions: Array[Hash[Symbol, untyped]]
10
- @klass_name: String
19
+ @parse_model_file: nil | Parser::AST::Node
11
20
 
12
- IGNORED_ENUM_KEYS: Array[Symbol]
21
+ attr_reader dependencies: DependencyBuilder
13
22
 
14
- def initialize: (singleton(ActiveRecord::Base) klass, dependencies: Array[String]) -> untyped
23
+ # @rbs klass: singleton(ActiveRecord::Base) & Enum
24
+ def initialize: (singleton(ActiveRecord::Base) & Enum klass) -> untyped
15
25
 
16
- def generate: () -> String
26
+ def generate: () -> String
17
27
 
18
- def klass_decl: () -> String
28
+ private def klass_decl: () -> String
19
29
 
20
- def pk_type: () -> String
30
+ private def pk_type: () -> String
21
31
 
22
- def generated_relation_methods_decl: () -> String
32
+ private def generated_relation_methods_decl: () -> String
23
33
 
24
- def relation_decl: () -> String
34
+ private def relation_decl: () -> String
25
35
 
26
- def collection_proxy_decl: () -> String
36
+ private def collection_proxy_decl: () -> String
27
37
 
28
- def header: () -> String
38
+ private def header: () -> String
29
39
 
30
- def footer: () -> String
40
+ private def footer: () -> String
31
41
 
32
- def associations: () -> String
42
+ private def associations: () -> String
33
43
 
34
- def has_many: () -> String
44
+ private def has_many: () -> String
35
45
 
36
- def has_one: () -> String
46
+ private def has_and_belongs_to_many: () -> String
37
47
 
38
- def belongs_to: () -> String
48
+ private def has_one: () -> String
39
49
 
40
- def generated_association_methods: () -> String
50
+ private def belongs_to: () -> String
41
51
 
42
- def delegated_type_scope: (singleton: bool) -> String
52
+ private def generated_association_methods: () -> String
43
53
 
44
- def delegated_type_instance: () -> String
54
+ # @rbs singleton: bool
55
+ private def delegated_type_scope: (singleton: bool) -> String
45
56
 
46
- def delegated_type_definitions: () -> Array[{ role: Symbol, types: Array[String] }]?
57
+ private def delegated_type_instance: () -> String
47
58
 
48
- def has_secure_password: () -> String?
59
+ private def delegated_type_definitions: () -> Array[{ role: Symbol, types: Array[String] }]?
49
60
 
50
- def enum_instance_methods: () -> String
61
+ private def has_secure_password: () -> String?
51
62
 
52
- def enum_scope_methods: (singleton: untyped `singleton`) -> String
63
+ private def enum_instance_methods: () -> String
53
64
 
54
- def enum_definitions: () -> Array[Hash[Symbol, untyped]]
65
+ # @rbs singleton: untyped
66
+ private def enum_class_methods: (singleton: untyped) -> String
55
67
 
56
- # We need static analysis to detect enum.
57
- # ActiveRecord has `defined_enums` method,
58
- # but it does not contain _prefix and _suffix information.
59
- def build_enum_definitions: () -> Array[Hash[Symbol, untyped]]
68
+ # @rbs singleton: untyped
69
+ private def scopes: (singleton: untyped) -> untyped
60
70
 
61
- def enum_method_name: (Hash[Symbol, untyped] hash, Symbol name, Symbol label) -> String
71
+ # @rbs args_node: untyped
72
+ private def args_to_type: (untyped args_node) -> untyped
62
73
 
63
- def scopes: (singleton: untyped `singleton`) -> untyped
74
+ private def parse_model_file: () -> untyped
64
75
 
65
- def args_to_type: (untyped args_node) -> untyped
76
+ private def parser_class: () -> untyped
66
77
 
67
- def parse_model_file: () -> untyped
78
+ # : (Parser::AST::Node) { (Parser::AST::Node) -> untyped } -> untyped
79
+ # : (Parser::AST::Node) -> Enumerator[Parser::AST::Node, untyped]
80
+ private def traverse: (Parser::AST::Node) { (Parser::AST::Node) -> untyped } -> untyped
81
+ | (Parser::AST::Node) -> Enumerator[Parser::AST::Node, untyped]
68
82
 
69
- def traverse: (Parser::AST::Node node) { (Parser::AST::Node) -> untyped } -> untyped
70
- | (Parser::AST::Node node) -> Enumerator[Parser::AST::Node, untyped]
83
+ private def relation_class_name: () -> String
71
84
 
72
- def relation_class_name: (?abs: boolish) -> String
85
+ # @rbs abs: boolish
86
+ private def klass_name: (?abs: boolish) -> String
73
87
 
74
- def klass_name: (?abs: boolish) -> String
88
+ private def generated_relation_methods_name: () -> String
75
89
 
76
- def generated_relation_methods_name: (?abs: boolish) -> String
90
+ private def columns: () -> untyped
77
91
 
78
- def columns: () -> untyped
92
+ private def alias_columns: () -> untyped
79
93
 
80
- def sql_type_to_class: (untyped t) -> untyped
94
+ # @rbs class_name: String
95
+ private def optional: (String class_name) -> String
81
96
 
82
- def optional: (String) -> String
97
+ # @rbs t: untyped
98
+ private def sql_type_to_class: (untyped t) -> untyped
83
99
 
84
- private
100
+ private
85
101
 
86
- attr_reader klass: singleton(ActiveRecord::Base)
102
+ attr_reader klass: singleton(ActiveRecord::Base) & Enum
103
+ end
104
+ end
87
105
  end
@@ -0,0 +1,37 @@
1
+ # Generated from lib/rbs_rails/cli/configuration.rb with RBS::Inline
2
+
3
+ module RbsRails
4
+ class CLI
5
+ class Configuration
6
+ include Singleton
7
+
8
+ def self.instance: () -> Configuration
9
+
10
+ def self.configure: () { (Configuration) -> void } -> void
11
+
12
+ extend Forwardable
13
+
14
+ @signature_root_dir: Pathname?
15
+
16
+ @ignore_model_if: (^(singleton(ActiveRecord::Base)) -> bool)?
17
+
18
+ attr_reader check_db_migrations: bool
19
+
20
+ def initialize: () -> void
21
+
22
+ # @rbs &block: (Configuration) -> void
23
+ def configure: () { (Configuration) -> void } -> void
24
+
25
+ def signature_root_dir: () -> Pathname
26
+
27
+ # @rbs dir: String | Pathname
28
+ def signature_root_dir=: (String | Pathname dir) -> Pathname
29
+
30
+ # @rbs &block: (singleton(ActiveRecord::Base)) -> bool
31
+ def ignore_model_if: () { (singleton(ActiveRecord::Base)) -> bool } -> void
32
+
33
+ # @rbs klass: singleton(ActiveRecord::Base)
34
+ def ignored_model?: (singleton(ActiveRecord::Base) klass) -> bool
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,35 @@
1
+ # Generated from lib/rbs_rails/cli.rb with RBS::Inline
2
+
3
+ module RbsRails
4
+ # @rbs &block: (CLI::Configuration) -> void
5
+ def self.configure: () { (CLI::Configuration) -> void } -> void
6
+
7
+ class CLI
8
+ attr_reader config_file: String?
9
+
10
+ # @rbs argv: Array[String]
11
+ def run: (Array[String] argv) -> Integer
12
+
13
+ private
14
+
15
+ def config: () -> Configuration
16
+
17
+ def load_config: () -> void
18
+
19
+ def load_application: () -> void
20
+
21
+ def install_hooks: () -> void
22
+
23
+ def generate_models: () -> void
24
+
25
+ # Raise an error if database is not migrated to the latest version
26
+ def check_db_migrations!: () -> void
27
+
28
+ # @rbs klass: singleton(ActiveRecord::Base)
29
+ def generate_single_model: (singleton(ActiveRecord::Base) klass) -> bool
30
+
31
+ def generate_path_helpers: () -> void
32
+
33
+ def create_option_parser: () -> OptionParser
34
+ end
35
+ end
@@ -1,14 +1,18 @@
1
+ # Generated from lib/rbs_rails/dependency_builder.rb with RBS::Inline
2
+
1
3
  module RbsRails
2
4
  class DependencyBuilder
3
5
  attr_reader deps: Array[String]
6
+
4
7
  attr_reader done: Set[String]
5
8
 
6
9
  def initialize: () -> void
7
10
 
8
- def build: () -> (String | nil)
11
+ # @rbs name: String
12
+ def <<: (String name) -> Array[String]
9
13
 
10
- private
14
+ def build: () -> (String | nil)
11
15
 
12
- def shift: () -> (String | nil)
16
+ private def shift: () -> (String | nil)
13
17
  end
14
18
  end
@@ -1,11 +1,18 @@
1
- class RbsRails::PathHelpers
2
- def self.generate: (?routes: untyped routes) -> untyped
1
+ # Generated from lib/rbs_rails/path_helpers.rb with RBS::Inline
3
2
 
4
- def initialize: (routes: untyped routes) -> untyped
3
+ module RbsRails
4
+ class PathHelpers
5
+ def self.generate: (?routes: untyped) -> untyped
5
6
 
6
- def generate: () -> untyped
7
+ def initialize: (routes: untyped) -> untyped
7
8
 
8
- def helpers: () -> untyped
9
+ def generate: () -> untyped
9
10
 
10
- attr_reader routes: untyped
11
+ private def helpers: () -> untyped
12
+
13
+ private
14
+
15
+ # @dynamic routes
16
+ attr_reader routes: untyped
17
+ end
11
18
  end