rbs_rails 0.12.0 → 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 (45) 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 +64 -0
  5. data/Gemfile +9 -3
  6. data/Gemfile.lock +202 -129
  7. data/README.md +47 -1
  8. data/Rakefile +7 -2
  9. data/Steepfile +5 -0
  10. data/example/rbs_rails.rb +27 -0
  11. data/exe/rbs_rails +6 -0
  12. data/lib/generators/rbs_rails/install_generator.rb +10 -15
  13. data/lib/rbs_rails/active_record/enum.rb +81 -0
  14. data/lib/rbs_rails/active_record.rb +269 -171
  15. data/lib/rbs_rails/cli/configuration.rb +66 -0
  16. data/lib/rbs_rails/cli.rb +173 -0
  17. data/lib/rbs_rails/dependency_builder.rb +29 -8
  18. data/lib/rbs_rails/path_helpers.rb +14 -2
  19. data/lib/rbs_rails/rake_task.rb +39 -41
  20. data/lib/rbs_rails/util/file_writer.rb +22 -0
  21. data/lib/rbs_rails/util.rb +17 -15
  22. data/lib/rbs_rails/version.rb +1 -1
  23. data/lib/rbs_rails.rb +5 -2
  24. data/rbs_collection.lock.yaml +273 -45
  25. data/rbs_collection.yaml +1 -18
  26. data/rbs_rails.gemspec +2 -1
  27. data/sig/{install_generator.rbs → generators/rbs_rails/install_generator.rbs} +2 -0
  28. data/sig/rbs_rails/active_record/enum.rbs +26 -0
  29. data/sig/rbs_rails/active_record.rbs +68 -46
  30. data/sig/rbs_rails/cli/configuration.rbs +37 -0
  31. data/sig/rbs_rails/cli.rbs +35 -0
  32. data/sig/rbs_rails/dependency_builder.rbs +8 -0
  33. data/sig/rbs_rails/path_helpers.rbs +13 -6
  34. data/sig/rbs_rails/rake_task.rbs +8 -7
  35. data/sig/rbs_rails/util/file_writer.rbs +16 -0
  36. data/sig/rbs_rails/util.rbs +7 -2
  37. data/sig/rbs_rails/utils/file_writer.rbs +4 -0
  38. data/sig/rbs_rails/version.rbs +5 -1
  39. data/sig/rbs_rails.rbs +6 -3
  40. metadata +33 -14
  41. data/sig/_internal/activerecord.rbs +0 -4
  42. data/sig/_internal/fileutils.rbs +0 -4
  43. data/sig/_internal/thor.rbs +0 -5
  44. data/sig/parser.rbs +0 -14
  45. data/sig/rake.rbs +0 -6
@@ -1,109 +1,296 @@
1
1
  ---
2
- sources:
3
- - name: ruby/gem_rbs_collection
4
- remote: https://github.com/ruby/gem_rbs_collection.git
5
- revision: main
6
- repo_dir: gems
7
2
  path: ".gem_rbs_collection"
8
3
  gems:
9
- - name: logger
4
+ - name: actioncable
5
+ version: '7.1'
6
+ source:
7
+ type: git
8
+ name: ruby/gem_rbs_collection
9
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
10
+ remote: https://github.com/ruby/gem_rbs_collection.git
11
+ repo_dir: gems
12
+ - name: actionmailer
13
+ version: '7.0'
14
+ source:
15
+ type: git
16
+ name: ruby/gem_rbs_collection
17
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
18
+ remote: https://github.com/ruby/gem_rbs_collection.git
19
+ repo_dir: gems
20
+ - name: actionpack
21
+ version: '7.2'
22
+ source:
23
+ type: git
24
+ name: ruby/gem_rbs_collection
25
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
26
+ remote: https://github.com/ruby/gem_rbs_collection.git
27
+ repo_dir: gems
28
+ - name: actiontext
29
+ version: '7.2'
30
+ source:
31
+ type: git
32
+ name: ruby/gem_rbs_collection
33
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
34
+ remote: https://github.com/ruby/gem_rbs_collection.git
35
+ repo_dir: gems
36
+ - name: actionview
37
+ version: '6.0'
38
+ source:
39
+ type: git
40
+ name: ruby/gem_rbs_collection
41
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
42
+ remote: https://github.com/ruby/gem_rbs_collection.git
43
+ repo_dir: gems
44
+ - name: activejob
45
+ version: '6.0'
46
+ source:
47
+ type: git
48
+ name: ruby/gem_rbs_collection
49
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
50
+ remote: https://github.com/ruby/gem_rbs_collection.git
51
+ repo_dir: gems
52
+ - name: activemodel
53
+ version: '7.1'
54
+ source:
55
+ type: git
56
+ name: ruby/gem_rbs_collection
57
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
58
+ remote: https://github.com/ruby/gem_rbs_collection.git
59
+ repo_dir: gems
60
+ - name: activerecord
61
+ version: '7.2'
62
+ source:
63
+ type: git
64
+ name: ruby/gem_rbs_collection
65
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
66
+ remote: https://github.com/ruby/gem_rbs_collection.git
67
+ repo_dir: gems
68
+ - name: activestorage
69
+ version: '7.0'
70
+ source:
71
+ type: git
72
+ name: ruby/gem_rbs_collection
73
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
74
+ remote: https://github.com/ruby/gem_rbs_collection.git
75
+ repo_dir: gems
76
+ - name: activesupport
77
+ version: '7.0'
78
+ source:
79
+ type: git
80
+ name: ruby/gem_rbs_collection
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
90
+ remote: https://github.com/ruby/gem_rbs_collection.git
91
+ repo_dir: gems
92
+ - name: base64
93
+ version: 0.3.0
94
+ source:
95
+ type: rubygems
96
+ - name: benchmark
97
+ version: '0'
98
+ source:
99
+ type: stdlib
100
+ - name: bigdecimal
101
+ version: '3.1'
102
+ source:
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
108
+ - name: cgi
109
+ version: '0'
110
+ source:
111
+ type: stdlib
112
+ - name: concurrent-ruby
113
+ version: '1.1'
114
+ source:
115
+ type: git
116
+ name: ruby/gem_rbs_collection
117
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
118
+ remote: https://github.com/ruby/gem_rbs_collection.git
119
+ repo_dir: gems
120
+ - name: connection_pool
121
+ version: '2.4'
122
+ source:
123
+ type: git
124
+ name: ruby/gem_rbs_collection
125
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
126
+ remote: https://github.com/ruby/gem_rbs_collection.git
127
+ repo_dir: gems
128
+ - name: date
10
129
  version: '0'
11
130
  source:
12
131
  type: stdlib
13
- - name: set
132
+ - name: dbm
14
133
  version: '0'
15
134
  source:
16
135
  type: stdlib
17
- - name: pathname
136
+ - name: delegate
18
137
  version: '0'
19
138
  source:
20
139
  type: stdlib
21
- - name: json
140
+ - name: digest
22
141
  version: '0'
23
142
  source:
24
143
  type: stdlib
25
- - name: optparse
144
+ - name: erb
26
145
  version: '0'
27
146
  source:
28
147
  type: stdlib
29
- - name: rubygems
148
+ - name: fileutils
30
149
  version: '0'
31
150
  source:
32
151
  type: stdlib
33
- - name: tsort
152
+ - name: forwardable
34
153
  version: '0'
35
154
  source:
36
155
  type: stdlib
37
- - name: actionpack
38
- version: '6.0'
156
+ - name: globalid
157
+ version: '1.1'
39
158
  source:
40
159
  type: git
41
160
  name: ruby/gem_rbs_collection
42
- revision: 6320a194c85afbf4ff332c3eb75fcae2a6518c92
161
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
43
162
  remote: https://github.com/ruby/gem_rbs_collection.git
44
163
  repo_dir: gems
45
- - name: actionview
46
- version: '6.0'
164
+ - name: i18n
165
+ version: '1.10'
47
166
  source:
48
167
  type: git
49
168
  name: ruby/gem_rbs_collection
50
- revision: 6320a194c85afbf4ff332c3eb75fcae2a6518c92
169
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
51
170
  remote: https://github.com/ruby/gem_rbs_collection.git
52
171
  repo_dir: gems
53
- - name: activejob
54
- version: '6.0'
172
+ - name: io-console
173
+ version: '0'
174
+ source:
175
+ type: stdlib
176
+ - name: json
177
+ version: '0'
178
+ source:
179
+ type: stdlib
180
+ - name: logger
181
+ version: '0'
182
+ source:
183
+ type: stdlib
184
+ - name: mail
185
+ version: '2.8'
55
186
  source:
56
187
  type: git
57
188
  name: ruby/gem_rbs_collection
58
- revision: 6320a194c85afbf4ff332c3eb75fcae2a6518c92
189
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
59
190
  remote: https://github.com/ruby/gem_rbs_collection.git
60
191
  repo_dir: gems
61
- - name: activemodel
62
- version: '6.0'
192
+ - name: marcel
193
+ version: '1.0'
63
194
  source:
64
195
  type: git
65
196
  name: ruby/gem_rbs_collection
66
- revision: 6320a194c85afbf4ff332c3eb75fcae2a6518c92
197
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
67
198
  remote: https://github.com/ruby/gem_rbs_collection.git
68
199
  repo_dir: gems
69
- - name: activerecord
70
- version: '6.1'
200
+ - name: mini_mime
201
+ version: '0.1'
71
202
  source:
72
203
  type: git
73
204
  name: ruby/gem_rbs_collection
74
- revision: 6320a194c85afbf4ff332c3eb75fcae2a6518c92
205
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
75
206
  remote: https://github.com/ruby/gem_rbs_collection.git
76
207
  repo_dir: gems
77
- - name: activestorage
78
- version: '6.1'
208
+ - name: minitest
209
+ version: '5.25'
79
210
  source:
80
211
  type: git
81
212
  name: ruby/gem_rbs_collection
82
- revision: 6320a194c85afbf4ff332c3eb75fcae2a6518c92
213
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
83
214
  remote: https://github.com/ruby/gem_rbs_collection.git
84
215
  repo_dir: gems
85
- - name: activesupport
86
- version: '6.0'
216
+ - name: monitor
217
+ version: '0'
218
+ source:
219
+ type: stdlib
220
+ - name: net-protocol
221
+ version: '0'
222
+ source:
223
+ type: stdlib
224
+ - name: net-smtp
225
+ version: '0.5'
226
+ source:
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'
87
234
  source:
88
235
  type: git
89
236
  name: ruby/gem_rbs_collection
90
- revision: 6320a194c85afbf4ff332c3eb75fcae2a6518c92
237
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
91
238
  remote: https://github.com/ruby/gem_rbs_collection.git
92
239
  repo_dir: gems
93
- - name: parallel
94
- version: '1.20'
240
+ - name: openssl
241
+ version: '0'
242
+ source:
243
+ type: stdlib
244
+ - name: optparse
245
+ version: '0'
246
+ source:
247
+ type: stdlib
248
+ - name: parser
249
+ version: '3.2'
95
250
  source:
96
251
  type: git
97
252
  name: ruby/gem_rbs_collection
98
- revision: 6320a194c85afbf4ff332c3eb75fcae2a6518c92
253
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
99
254
  remote: https://github.com/ruby/gem_rbs_collection.git
100
255
  repo_dir: gems
256
+ - name: pathname
257
+ version: '0'
258
+ source:
259
+ type: stdlib
260
+ - name: prism
261
+ version: 1.2.0
262
+ source:
263
+ type: rubygems
264
+ - name: pstore
265
+ version: '0'
266
+ source:
267
+ type: stdlib
268
+ - name: psych
269
+ version: '0'
270
+ source:
271
+ type: stdlib
101
272
  - name: rack
102
- version: 2.2.2
273
+ version: '2.2'
274
+ source:
275
+ type: git
276
+ name: ruby/gem_rbs_collection
277
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
278
+ remote: https://github.com/ruby/gem_rbs_collection.git
279
+ repo_dir: gems
280
+ - name: rails-dom-testing
281
+ version: '2.0'
282
+ source:
283
+ type: git
284
+ name: ruby/gem_rbs_collection
285
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
286
+ remote: https://github.com/ruby/gem_rbs_collection.git
287
+ repo_dir: gems
288
+ - name: rails-html-sanitizer
289
+ version: '1.6'
103
290
  source:
104
291
  type: git
105
292
  name: ruby/gem_rbs_collection
106
- revision: 6320a194c85afbf4ff332c3eb75fcae2a6518c92
293
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
107
294
  remote: https://github.com/ruby/gem_rbs_collection.git
108
295
  repo_dir: gems
109
296
  - name: railties
@@ -111,34 +298,75 @@ gems:
111
298
  source:
112
299
  type: git
113
300
  name: ruby/gem_rbs_collection
114
- revision: 6320a194c85afbf4ff332c3eb75fcae2a6518c92
301
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
302
+ remote: https://github.com/ruby/gem_rbs_collection.git
303
+ repo_dir: gems
304
+ - name: rake
305
+ version: '13.0'
306
+ source:
307
+ type: git
308
+ name: ruby/gem_rbs_collection
309
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
115
310
  remote: https://github.com/ruby/gem_rbs_collection.git
116
311
  repo_dir: gems
117
312
  - name: rbs
118
- version: 2.2.2
313
+ version: 3.9.2
119
314
  source:
120
315
  type: rubygems
121
- - name: monitor
316
+ - name: rdoc
122
317
  version: '0'
123
318
  source:
124
319
  type: stdlib
125
- - name: tempfile
320
+ - name: securerandom
126
321
  version: '0'
127
322
  source:
128
323
  type: stdlib
129
- - name: date
324
+ - name: singleton
130
325
  version: '0'
131
326
  source:
132
327
  type: stdlib
133
- - name: singleton
328
+ - name: socket
134
329
  version: '0'
135
330
  source:
136
331
  type: stdlib
137
- - name: mutex_m
332
+ - name: stringio
138
333
  version: '0'
139
334
  source:
140
335
  type: stdlib
336
+ - name: tempfile
337
+ version: '0'
338
+ source:
339
+ type: stdlib
340
+ - name: thor
341
+ version: '1.2'
342
+ source:
343
+ type: git
344
+ name: ruby/gem_rbs_collection
345
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
346
+ remote: https://github.com/ruby/gem_rbs_collection.git
347
+ repo_dir: gems
141
348
  - name: time
142
349
  version: '0'
143
350
  source:
144
351
  type: stdlib
352
+ - name: timeout
353
+ version: '0'
354
+ source:
355
+ type: stdlib
356
+ - name: tsort
357
+ version: '0'
358
+ source:
359
+ type: stdlib
360
+ - name: tzinfo
361
+ version: '2.0'
362
+ source:
363
+ type: git
364
+ name: ruby/gem_rbs_collection
365
+ revision: d2bc0905c6f19acd3023d0530086d6d14704b10f
366
+ remote: https://github.com/ruby/gem_rbs_collection.git
367
+ repo_dir: gems
368
+ - name: uri
369
+ version: '0'
370
+ source:
371
+ type: stdlib
372
+ gemfile_lock_path: Gemfile.lock
data/rbs_collection.yaml CHANGED
@@ -9,28 +9,11 @@ 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
31
- - name: set
32
15
  - name: pathname
33
16
  - name: json
34
17
  - name: optparse
35
- - name: rubygems
36
18
  - name: tsort
19
+ - name: forwardable
data/rbs_rails.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.description = %q{A RBS files generator for Rails application}
11
11
  spec.homepage = "https://github.com/pocke/rbs_rails"
12
12
  spec.license = 'Apache-2.0'
13
- spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
13
+ spec.required_ruby_version = Gem::Requirement.new(">= 3.2")
14
14
 
15
15
  spec.metadata["homepage_uri"] = spec.homepage
16
16
  spec.metadata["source_code_uri"] = spec.homepage
@@ -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,83 +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]]
18
+
19
+ @parse_model_file: nil | Parser::AST::Node
5
20
 
6
- class RbsRails::ActiveRecord::Generator
7
- @parse_model_file: nil | Parser::AST::Node
8
- @dependencies: Array[String]
21
+ attr_reader dependencies: DependencyBuilder
9
22
 
10
- IGNORED_ENUM_KEYS: Array[Symbol]
23
+ # @rbs klass: singleton(ActiveRecord::Base) & Enum
24
+ def initialize: (singleton(ActiveRecord::Base) & Enum klass) -> untyped
11
25
 
12
- def initialize: (singleton(ActiveRecord::Base) klass, dependencies: Array[String]) -> untyped
26
+ def generate: () -> String
13
27
 
14
- def generate: () -> String
28
+ private def klass_decl: () -> String
15
29
 
16
- def klass_decl: () -> String
30
+ private def pk_type: () -> String
17
31
 
18
- def pk_type: () -> String
32
+ private def generated_relation_methods_decl: () -> String
19
33
 
20
- def generated_relation_methods_decl: () -> String
34
+ private def relation_decl: () -> String
21
35
 
22
- def relation_decl: () -> String
36
+ private def collection_proxy_decl: () -> String
23
37
 
24
- def collection_proxy_decl: () -> String
38
+ private def header: () -> String
25
39
 
26
- def header: () -> String
40
+ private def footer: () -> String
27
41
 
28
- def footer: () -> String
42
+ private def associations: () -> String
29
43
 
30
- def associations: () -> String
44
+ private def has_many: () -> String
31
45
 
32
- def has_many: () -> String
46
+ private def has_and_belongs_to_many: () -> String
33
47
 
34
- def has_one: () -> String
48
+ private def has_one: () -> String
35
49
 
36
- def belongs_to: () -> String
50
+ private def belongs_to: () -> String
37
51
 
38
- def generated_association_methods: () -> String
52
+ private def generated_association_methods: () -> String
39
53
 
40
- def delegated_type_scope: (singleton: bool) -> String
54
+ # @rbs singleton: bool
55
+ private def delegated_type_scope: (singleton: bool) -> String
41
56
 
42
- def delegated_type_instance: () -> String
57
+ private def delegated_type_instance: () -> String
43
58
 
44
- def delegated_type_definitions: () -> Array[{ role: Symbol, types: Array[String] }]?
59
+ private def delegated_type_definitions: () -> Array[{ role: Symbol, types: Array[String] }]?
45
60
 
46
- def has_secure_password: () -> String?
61
+ private def has_secure_password: () -> String?
47
62
 
48
- def enum_instance_methods: () -> String
63
+ private def enum_instance_methods: () -> String
49
64
 
50
- def enum_scope_methods: (singleton: untyped `singleton`) -> String
65
+ # @rbs singleton: untyped
66
+ private def enum_class_methods: (singleton: untyped) -> String
51
67
 
52
- def enum_definitions: () -> Array[Hash[Symbol, untyped]]
68
+ # @rbs singleton: untyped
69
+ private def scopes: (singleton: untyped) -> untyped
53
70
 
54
- # We need static analysis to detect enum.
55
- # ActiveRecord has `defined_enums` method,
56
- # but it does not contain _prefix and _suffix information.
57
- def build_enum_definitions: () -> Array[Hash[Symbol, untyped]]
71
+ # @rbs args_node: untyped
72
+ private def args_to_type: (untyped args_node) -> untyped
58
73
 
59
- def enum_method_name: (Hash[Symbol, untyped] hash, Symbol name, Symbol label) -> String
74
+ private def parse_model_file: () -> untyped
60
75
 
61
- def scopes: (singleton: untyped `singleton`) -> untyped
76
+ private def parser_class: () -> untyped
62
77
 
63
- def args_to_type: (untyped args_node) -> 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]
64
82
 
65
- def parse_model_file: () -> untyped
83
+ private def relation_class_name: () -> String
66
84
 
67
- def traverse: (Parser::AST::Node node) { (Parser::AST::Node) -> untyped } -> untyped
68
- | (Parser::AST::Node node) -> Enumerator[Parser::AST::Node, untyped]
85
+ # @rbs abs: boolish
86
+ private def klass_name: (?abs: boolish) -> String
69
87
 
70
- def relation_class_name: () -> untyped
88
+ private def generated_relation_methods_name: () -> String
71
89
 
72
- def columns: () -> untyped
90
+ private def columns: () -> untyped
73
91
 
74
- def sql_type_to_class: (untyped t) -> untyped
92
+ private def alias_columns: () -> untyped
75
93
 
76
- def optional: (String) -> String
94
+ # @rbs class_name: String
95
+ private def optional: (String class_name) -> String
77
96
 
78
- private
97
+ # @rbs t: untyped
98
+ private def sql_type_to_class: (untyped t) -> untyped
79
99
 
80
- attr_reader klass: singleton(ActiveRecord::Base)
100
+ private
81
101
 
82
- attr_reader klass_name: String
102
+ attr_reader klass: singleton(ActiveRecord::Base) & Enum
103
+ end
104
+ end
83
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