rbs_active_hash 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.
@@ -5,18 +5,23 @@ require "active_hash"
5
5
 
6
6
  module RbsActiveHash
7
7
  module ActiveHash
8
- def self.user_defined_model?(klass)
8
+ # @rbs klass: singleton(ActiveHash::Base)
9
+ def self.user_defined_model?(klass) #: bool
9
10
  klass.name !~ /^Active(Hash|File|JSON|Yaml)::/
10
11
  end
11
12
 
12
- def self.class_to_rbs(klass)
13
+ # @rbs klass: singleton(ActiveHash::Base) -> String
14
+ def self.class_to_rbs(klass) #: String
13
15
  Generator.new(klass).generate
14
16
  end
15
17
 
16
18
  class Generator
17
- attr_reader :klass, :klass_name, :parser
19
+ attr_reader :klass #: singleton(ActiveHash::Base)
20
+ attr_reader :klass_name #: String
21
+ attr_reader :parser #: ActiveHash::Parser::Parser
18
22
 
19
- def initialize(klass)
23
+ # @rbs klass: singleton(ActiveHash::Base)
24
+ def initialize(klass) #: void
20
25
  @klass = klass
21
26
  @klass_name = klass.name || ""
22
27
  @parser = ActiveHash::Parser::Parser.new
@@ -24,10 +29,10 @@ module RbsActiveHash
24
29
  path, = Object.const_source_location(klass_name)
25
30
  return unless path
26
31
 
27
- @parser.parse(IO.read(path.to_s), klass_name.split("::").map(&:to_sym))
32
+ @parser.parse(File.read(path), klass_name.split("::").map(&:to_sym))
28
33
  end
29
34
 
30
- def generate
35
+ def generate #: String
31
36
  if klass < ::ActiveFile::Base
32
37
  begin
33
38
  klass.reload
@@ -41,14 +46,15 @@ module RbsActiveHash
41
46
 
42
47
  private
43
48
 
44
- def format(rbs)
49
+ # @rbs rbs: String
50
+ def format(rbs) #: String
45
51
  parsed = RBS::Parser.parse_signature(rbs)
46
52
  StringIO.new.tap do |out|
47
53
  RBS::Writer.new(out: out).write(parsed[1] + parsed[2])
48
54
  end.string
49
55
  end
50
56
 
51
- def klass_decl
57
+ def klass_decl #: String
52
58
  <<~RBS
53
59
  #{header}
54
60
  #{enum_decls}
@@ -59,7 +65,7 @@ module RbsActiveHash
59
65
  RBS
60
66
  end
61
67
 
62
- def header
68
+ def header #: String
63
69
  namespace = +""
64
70
  klass_name.split("::").map do |mod_name|
65
71
  namespace += "::#{mod_name}"
@@ -79,13 +85,13 @@ module RbsActiveHash
79
85
  end.join("\n")
80
86
  end
81
87
 
82
- def module_names
88
+ def module_names #: String
83
89
  klass.module_parents.reverse[1..].map do |mod|
84
90
  mod.name.split("::").last
85
91
  end
86
92
  end
87
93
 
88
- def enum_decls
94
+ def enum_decls #: String?
89
95
  return unless klass.ancestors.include? ::ActiveHash::Enum
90
96
 
91
97
  <<~RBS
@@ -96,7 +102,7 @@ module RbsActiveHash
96
102
  RBS
97
103
  end
98
104
 
99
- def constants
105
+ def constants #: Array[String]
100
106
  enum_accessors = klass.instance_eval { @enum_accessors }
101
107
  return [] unless enum_accessors
102
108
 
@@ -111,7 +117,7 @@ module RbsActiveHash
111
117
  end
112
118
  end
113
119
 
114
- def scope_decls
120
+ def scope_decls #: String?
115
121
  return if parser.scopes.empty?
116
122
 
117
123
  parser.scopes.map do |scope_id, args|
@@ -122,7 +128,7 @@ module RbsActiveHash
122
128
  end.join("\n")
123
129
  end
124
130
 
125
- def association_decls
131
+ def association_decls #: String?
126
132
  return unless klass.ancestors.include? ::ActiveHash::Associations
127
133
 
128
134
  <<~RBS
@@ -135,7 +141,8 @@ module RbsActiveHash
135
141
  RBS
136
142
  end
137
143
 
138
- def has_many_decls(definitions) # rubocop:disable Naming/PredicateName
144
+ # @rbs definitions: Array[[Symbol, Hash[untyped, untyped]]]
145
+ def has_many_decls(definitions) #: String # rubocop:disable Naming/PredicatePrefix
139
146
  definitions.map do |definition|
140
147
  association_id, options = definition
141
148
  klass = options.fetch(:class_name, association_id.to_s.classify).constantize
@@ -153,7 +160,8 @@ module RbsActiveHash
153
160
  end.join("\n")
154
161
  end
155
162
 
156
- def has_one_decls(definitions) # rubocop:disable Naming/PredicateName
163
+ # @rbs definitions: Array[[Symbol, Hash[untyped, untyped]]]
164
+ def has_one_decls(definitions) #: String # rubocop:disable Naming/PredicatePrefix
157
165
  definitions.map do |definition|
158
166
  association_id, options = definition
159
167
  class_name = options.fetch(:class_name, association_id.to_s.classify).constantize
@@ -162,7 +170,8 @@ module RbsActiveHash
162
170
  end.join("\n")
163
171
  end
164
172
 
165
- def belongs_to_decls(definitions)
173
+ # @rbs definitions: Array[[Symbol, Hash[untyped, untyped]]]
174
+ def belongs_to_decls(definitions) #: String
166
175
  definitions.map do |definition|
167
176
  association_id, options = definition
168
177
  class_name = options.fetch(:class_name, association_id.to_s.classify).constantize
@@ -174,7 +183,7 @@ module RbsActiveHash
174
183
  end.join("\n")
175
184
  end
176
185
 
177
- def method_decls
186
+ def method_decls #: String
178
187
  method_names.map do |method|
179
188
  method_type = stringify_type(method_types.fetch(method, "untyped"))
180
189
  if method == :id
@@ -191,32 +200,34 @@ module RbsActiveHash
191
200
  end.join("\n")
192
201
  end
193
202
 
194
- def method_names
203
+ def method_names #: Array[Symbol]
195
204
  method_names = (klass.data || []).flat_map do |record|
196
205
  record.symbolize_keys.keys
197
206
  end
198
207
  method_names.uniq.select { |k| valid_field_name?(k) }
199
208
  end
200
209
 
201
- def method_types
202
- method_types = Hash.new { |hash, key| hash[key] = [] }
210
+ def method_types #: Hash[Symbol, untyped]
211
+ method_types = Hash.new { |hash, key| hash[key] = [] } # steep:ignore
203
212
  (klass.data || []).each do |record|
204
213
  record.symbolize_keys.each do |key, value|
205
- method_types[key] << identify_class(value)
214
+ method_types[key] << identify_class(value) # steep:ignore
206
215
  end
207
216
  end
208
217
  method_types.transform_values(&:uniq)
209
218
  end
210
219
 
211
- def valid_field_name?(name)
220
+ # @rbs name: String | Symbol
221
+ def valid_field_name?(name) #: boolish
212
222
  name.to_s =~ /^[a-zA-Z_][a-zA-Z0-9_]*$/
213
223
  end
214
224
 
215
- def footer
225
+ def footer #: String
216
226
  "end\n" * klass.module_parents.size
217
227
  end
218
228
 
219
- def identify_class(obj)
229
+ # @rbs obj: untyped
230
+ def identify_class(obj) #: String | singleton(Class)
220
231
  case obj
221
232
  when Array
222
233
  args = obj.map(&:class)
@@ -230,7 +241,8 @@ module RbsActiveHash
230
241
  end
231
242
  end
232
243
 
233
- def stringify_type(type)
244
+ # @rbs type: untyped
245
+ def stringify_type(type) #: String
234
246
  if [TrueClass, FalseClass].include?(type)
235
247
  "bool"
236
248
  elsif type == NilClass
@@ -6,9 +6,12 @@ require "rake/tasklib"
6
6
 
7
7
  module RbsActiveHash
8
8
  class RakeTask < Rake::TaskLib
9
- attr_accessor :name, :signature_root_dir
9
+ attr_accessor :name #: Symbol
10
+ attr_accessor :signature_root_dir #: Pathname
10
11
 
11
- def initialize(name = :"rbs:active_hash", &block)
12
+ # @rbs name: Symbol
13
+ # @rbs &block: (RakeTask) -> void
14
+ def initialize(name = :"rbs:active_hash", &block) #: void
12
15
  super()
13
16
 
14
17
  @name = name
@@ -22,21 +25,21 @@ module RbsActiveHash
22
25
  define_setup_task
23
26
  end
24
27
 
25
- def define_setup_task
28
+ def define_setup_task #: void
26
29
  desc "Run all tasks of rbs_active_hash"
27
30
 
28
31
  deps = [:"#{name}:clean", :"#{name}:generate"]
29
32
  task("#{name}:setup": deps)
30
33
  end
31
34
 
32
- def define_clean_task
35
+ def define_clean_task #: void
33
36
  desc "Clean up generated RBS files"
34
37
  task("#{name}:clean": :environment) do
35
38
  sh "rm", "-rf", @signature_root_dir.to_s
36
39
  end
37
40
  end
38
41
 
39
- def define_generate_task
42
+ def define_generate_task #: void
40
43
  desc "Generate RBS files for ActiveHash models"
41
44
  task("#{name}:generate": :environment) do
42
45
  require "rbs_active_hash" # load RbsActiveHash lazily
@@ -55,7 +58,7 @@ module RbsActiveHash
55
58
 
56
59
  private
57
60
 
58
- def setup_signature_root_dir!
61
+ def setup_signature_root_dir! #: void
59
62
  @signature_root_dir ||= Pathname(Rails.root / "sig/active_hash")
60
63
  @signature_root_dir.mkpath
61
64
  @signature_root_dir
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RbsActiveHash
4
- VERSION = "1.5.0"
4
+ VERSION = "1.6.0"
5
5
  end
@@ -1,22 +1,12 @@
1
1
  ---
2
- sources:
3
- - type: git
4
- name: ruby/gem_rbs_collection
5
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
6
- remote: https://github.com/ruby/gem_rbs_collection.git
7
- repo_dir: gems
8
2
  path: ".gem_rbs_collection"
9
3
  gems:
10
- - name: abbrev
11
- version: '0'
12
- source:
13
- type: stdlib
14
4
  - name: actionpack
15
- version: '6.0'
5
+ version: '7.2'
16
6
  source:
17
7
  type: git
18
8
  name: ruby/gem_rbs_collection
19
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
9
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
20
10
  remote: https://github.com/ruby/gem_rbs_collection.git
21
11
  repo_dir: gems
22
12
  - name: actionview
@@ -24,7 +14,7 @@ gems:
24
14
  source:
25
15
  type: git
26
16
  name: ruby/gem_rbs_collection
27
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
17
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
28
18
  remote: https://github.com/ruby/gem_rbs_collection.git
29
19
  repo_dir: gems
30
20
  - name: active_hash
@@ -32,23 +22,23 @@ gems:
32
22
  source:
33
23
  type: git
34
24
  name: ruby/gem_rbs_collection
35
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
25
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
36
26
  remote: https://github.com/ruby/gem_rbs_collection.git
37
27
  repo_dir: gems
38
28
  - name: activemodel
39
- version: '7.0'
29
+ version: '7.1'
40
30
  source:
41
31
  type: git
42
32
  name: ruby/gem_rbs_collection
43
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
33
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
44
34
  remote: https://github.com/ruby/gem_rbs_collection.git
45
35
  repo_dir: gems
46
36
  - name: activerecord
47
- version: '7.0'
37
+ version: '7.2'
48
38
  source:
49
39
  type: git
50
40
  name: ruby/gem_rbs_collection
51
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
41
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
52
42
  remote: https://github.com/ruby/gem_rbs_collection.git
53
43
  repo_dir: gems
54
44
  - name: activesupport
@@ -56,7 +46,7 @@ gems:
56
46
  source:
57
47
  type: git
58
48
  name: ruby/gem_rbs_collection
59
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
49
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
60
50
  remote: https://github.com/ruby/gem_rbs_collection.git
61
51
  repo_dir: gems
62
52
  - name: ast
@@ -64,17 +54,25 @@ gems:
64
54
  source:
65
55
  type: git
66
56
  name: ruby/gem_rbs_collection
67
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
57
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
68
58
  remote: https://github.com/ruby/gem_rbs_collection.git
69
59
  repo_dir: gems
70
60
  - name: base64
61
+ version: 0.3.0
62
+ source:
63
+ type: rubygems
64
+ - name: benchmark
71
65
  version: '0'
72
66
  source:
73
67
  type: stdlib
74
68
  - name: bigdecimal
75
- version: '0'
69
+ version: '3.1'
76
70
  source:
77
- type: stdlib
71
+ type: git
72
+ name: ruby/gem_rbs_collection
73
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
74
+ remote: https://github.com/ruby/gem_rbs_collection.git
75
+ repo_dir: gems
78
76
  - name: cgi
79
77
  version: '0'
80
78
  source:
@@ -84,7 +82,7 @@ gems:
84
82
  source:
85
83
  type: git
86
84
  name: ruby/gem_rbs_collection
87
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
85
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
88
86
  remote: https://github.com/ruby/gem_rbs_collection.git
89
87
  repo_dir: gems
90
88
  - name: connection_pool
@@ -92,13 +90,21 @@ gems:
92
90
  source:
93
91
  type: git
94
92
  name: ruby/gem_rbs_collection
95
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
93
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
96
94
  remote: https://github.com/ruby/gem_rbs_collection.git
97
95
  repo_dir: gems
98
96
  - name: date
99
97
  version: '0'
100
98
  source:
101
99
  type: stdlib
100
+ - name: delegate
101
+ version: '0'
102
+ source:
103
+ type: stdlib
104
+ - name: digest
105
+ version: '0'
106
+ source:
107
+ type: stdlib
102
108
  - name: erb
103
109
  version: '0'
104
110
  source:
@@ -112,7 +118,7 @@ gems:
112
118
  source:
113
119
  type: git
114
120
  name: ruby/gem_rbs_collection
115
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
121
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
116
122
  remote: https://github.com/ruby/gem_rbs_collection.git
117
123
  repo_dir: gems
118
124
  - name: io-console
@@ -128,25 +134,29 @@ gems:
128
134
  source:
129
135
  type: stdlib
130
136
  - name: minitest
131
- version: '0'
137
+ version: '5.25'
132
138
  source:
133
- type: stdlib
139
+ type: git
140
+ name: ruby/gem_rbs_collection
141
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
142
+ remote: https://github.com/ruby/gem_rbs_collection.git
143
+ repo_dir: gems
134
144
  - name: monitor
135
145
  version: '0'
136
146
  source:
137
147
  type: stdlib
138
- - name: mutex_m
139
- version: '0'
140
- source:
141
- type: stdlib
142
148
  - name: nokogiri
143
149
  version: '1.11'
144
150
  source:
145
151
  type: git
146
152
  name: ruby/gem_rbs_collection
147
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
153
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
148
154
  remote: https://github.com/ruby/gem_rbs_collection.git
149
155
  repo_dir: gems
156
+ - name: openssl
157
+ version: '0'
158
+ source:
159
+ type: stdlib
150
160
  - name: optparse
151
161
  version: '0'
152
162
  source:
@@ -156,7 +166,7 @@ gems:
156
166
  source:
157
167
  type: git
158
168
  name: ruby/gem_rbs_collection
159
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
169
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
160
170
  remote: https://github.com/ruby/gem_rbs_collection.git
161
171
  repo_dir: gems
162
172
  - name: parser
@@ -164,7 +174,7 @@ gems:
164
174
  source:
165
175
  type: git
166
176
  name: ruby/gem_rbs_collection
167
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
177
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
168
178
  remote: https://github.com/ruby/gem_rbs_collection.git
169
179
  repo_dir: gems
170
180
  - name: pathname
@@ -176,7 +186,7 @@ gems:
176
186
  source:
177
187
  type: git
178
188
  name: ruby/gem_rbs_collection
179
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
189
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
180
190
  remote: https://github.com/ruby/gem_rbs_collection.git
181
191
  repo_dir: gems
182
192
  - name: rails-dom-testing
@@ -184,7 +194,15 @@ gems:
184
194
  source:
185
195
  type: git
186
196
  name: ruby/gem_rbs_collection
187
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
197
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
198
+ remote: https://github.com/ruby/gem_rbs_collection.git
199
+ repo_dir: gems
200
+ - name: rails-html-sanitizer
201
+ version: '1.6'
202
+ source:
203
+ type: git
204
+ name: ruby/gem_rbs_collection
205
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
188
206
  remote: https://github.com/ruby/gem_rbs_collection.git
189
207
  repo_dir: gems
190
208
  - name: railties
@@ -192,7 +210,7 @@ gems:
192
210
  source:
193
211
  type: git
194
212
  name: ruby/gem_rbs_collection
195
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
213
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
196
214
  remote: https://github.com/ruby/gem_rbs_collection.git
197
215
  repo_dir: gems
198
216
  - name: rainbow
@@ -200,7 +218,7 @@ gems:
200
218
  source:
201
219
  type: git
202
220
  name: ruby/gem_rbs_collection
203
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
221
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
204
222
  remote: https://github.com/ruby/gem_rbs_collection.git
205
223
  repo_dir: gems
206
224
  - name: rake
@@ -208,11 +226,11 @@ gems:
208
226
  source:
209
227
  type: git
210
228
  name: ruby/gem_rbs_collection
211
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
229
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
212
230
  remote: https://github.com/ruby/gem_rbs_collection.git
213
231
  repo_dir: gems
214
232
  - name: rbs
215
- version: 3.1.3
233
+ version: 3.9.5
216
234
  source:
217
235
  type: rubygems
218
236
  - name: rdoc
@@ -224,7 +242,7 @@ gems:
224
242
  source:
225
243
  type: git
226
244
  name: ruby/gem_rbs_collection
227
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
245
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
228
246
  remote: https://github.com/ruby/gem_rbs_collection.git
229
247
  repo_dir: gems
230
248
  - name: rubocop
@@ -232,7 +250,7 @@ gems:
232
250
  source:
233
251
  type: git
234
252
  name: ruby/gem_rbs_collection
235
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
253
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
236
254
  remote: https://github.com/ruby/gem_rbs_collection.git
237
255
  repo_dir: gems
238
256
  - name: rubocop-ast
@@ -240,7 +258,7 @@ gems:
240
258
  source:
241
259
  type: git
242
260
  name: ruby/gem_rbs_collection
243
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
261
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
244
262
  remote: https://github.com/ruby/gem_rbs_collection.git
245
263
  repo_dir: gems
246
264
  - name: securerandom
@@ -251,6 +269,14 @@ gems:
251
269
  version: '0'
252
270
  source:
253
271
  type: stdlib
272
+ - name: socket
273
+ version: '0'
274
+ source:
275
+ type: stdlib
276
+ - name: stringio
277
+ version: '0'
278
+ source:
279
+ type: stdlib
254
280
  - name: tempfile
255
281
  version: '0'
256
282
  source:
@@ -260,7 +286,7 @@ gems:
260
286
  source:
261
287
  type: git
262
288
  name: ruby/gem_rbs_collection
263
- revision: 846c09971455f0e144cef2f5a6c9fe6d8905d3e1
289
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
264
290
  remote: https://github.com/ruby/gem_rbs_collection.git
265
291
  repo_dir: gems
266
292
  - name: time
@@ -275,6 +301,14 @@ gems:
275
301
  version: '0'
276
302
  source:
277
303
  type: stdlib
304
+ - name: tzinfo
305
+ version: '2.0'
306
+ source:
307
+ type: git
308
+ name: ruby/gem_rbs_collection
309
+ revision: 0cb6351d218704700cf4df797ff8966b3a418fcd
310
+ remote: https://github.com/ruby/gem_rbs_collection.git
311
+ repo_dir: gems
278
312
  - name: uri
279
313
  version: '0'
280
314
  source:
@@ -1,3 +1,5 @@
1
+ # Generated from lib/generators/rbs_active_hash/install_generator.rb with RBS::Inline
2
+
1
3
  module RbsActiveHash
2
4
  class InstallGenerator < Rails::Generators::Base
3
5
  def create_raketask: () -> void
@@ -1,3 +1,5 @@
1
+ # Generated from lib/rbs_active_hash/active_hash/parser.rb with RBS::Inline
2
+
1
3
  module RbsActiveHash
2
4
  module ActiveHash
3
5
  module Parser
@@ -8,19 +10,36 @@ module RbsActiveHash
8
10
  end
9
11
 
10
12
  class RB < RBS::Prototype::RB
13
+ # @rbs override
14
+ def process: ...
11
15
  end
12
16
 
13
17
  class Parser
14
- attr_reader has_many: Array[[Symbol, Hash[untyped, untyped]]]
15
- attr_reader has_one: Array[[Symbol, Hash[untyped, untyped]]]
16
- attr_reader belongs_to: Array[[Symbol, Hash[untyped, untyped]]]
17
- attr_reader scopes: Array[[Symbol, Hash[untyped, untyped]]]
18
+ attr_reader has_many: Array[[ Symbol, Hash[untyped, untyped] ]]
19
+
20
+ attr_reader has_one: Array[[ Symbol, Hash[untyped, untyped] ]]
21
+
22
+ attr_reader belongs_to: Array[[ Symbol, Hash[untyped, untyped] ]]
23
+
24
+ attr_reader scopes: Array[[ Symbol, Hash[untyped, untyped] ]]
18
25
 
19
26
  def initialize: () -> void
27
+
28
+ # @rbs string: String
29
+ # @rbs target: Array[Symbol]
20
30
  def parse: (String string, Array[Symbol] target) -> void
31
+
32
+ # @rbs node: RBS::AST::Declarations::t | RBS::AST::Members::t
33
+ # @rbs target: Array[Symbol]
21
34
  def process: (RBS::AST::Declarations::t | RBS::AST::Members::t node, Array[Symbol] target) -> void
35
+
36
+ # @rbs node: AssociationDefinition
22
37
  def process_association_definition: (AssociationDefinition node) -> void
38
+
39
+ # @rbs node: ScopeDefinition
23
40
  def process_scope_definition: (ScopeDefinition node) -> void
41
+
42
+ # @rbs node: untyped
24
43
  def node_to_literal: (untyped node) -> untyped
25
44
  end
26
45
  end
@@ -1,35 +1,68 @@
1
+ # Generated from lib/rbs_active_hash/active_hash.rb with RBS::Inline
2
+
1
3
  module RbsActiveHash
2
4
  module ActiveHash
5
+ # @rbs klass: singleton(ActiveHash::Base)
3
6
  def self.user_defined_model?: (singleton(ActiveHash::Base) klass) -> bool
7
+
8
+ # @rbs klass: singleton(ActiveHash::Base) -> String
4
9
  def self.class_to_rbs: (singleton(ActiveHash::Base) klass) -> String
5
10
 
6
11
  class Generator
7
12
  attr_reader klass: singleton(ActiveHash::Base)
13
+
8
14
  attr_reader klass_name: String
15
+
9
16
  attr_reader parser: ActiveHash::Parser::Parser
10
17
 
18
+ # @rbs klass: singleton(ActiveHash::Base)
11
19
  def initialize: (singleton(ActiveHash::Base) klass) -> void
20
+
12
21
  def generate: () -> String
13
22
 
14
23
  private
15
24
 
16
- def format: (String) -> String
25
+ # @rbs rbs: String
26
+ def format: (String rbs) -> String
27
+
17
28
  def klass_decl: () -> String
29
+
18
30
  def header: () -> String
31
+
32
+ def module_names: () -> String
33
+
19
34
  def enum_decls: () -> String?
35
+
20
36
  def constants: () -> Array[String]
37
+
21
38
  def scope_decls: () -> String?
39
+
22
40
  def association_decls: () -> String?
23
- def has_many_decls: (Array[[Symbol, Hash[untyped, untyped]]]) -> String
24
- def has_one_decls: (Array[[Symbol, Hash[untyped, untyped]]]) -> String
25
- def belongs_to_decls: (Array[[Symbol, Hash[untyped, untyped]]]) -> String
41
+
42
+ # @rbs definitions: Array[[Symbol, Hash[untyped, untyped]]]
43
+ def has_many_decls: (Array[[ Symbol, Hash[untyped, untyped] ]] definitions) -> String
44
+
45
+ # @rbs definitions: Array[[Symbol, Hash[untyped, untyped]]]
46
+ def has_one_decls: (Array[[ Symbol, Hash[untyped, untyped] ]] definitions) -> String
47
+
48
+ # @rbs definitions: Array[[Symbol, Hash[untyped, untyped]]]
49
+ def belongs_to_decls: (Array[[ Symbol, Hash[untyped, untyped] ]] definitions) -> String
50
+
26
51
  def method_decls: () -> String
52
+
27
53
  def method_names: () -> Array[Symbol]
54
+
28
55
  def method_types: () -> Hash[Symbol, untyped]
29
- def valid_field_name?: (String | Symbol) -> boolish
56
+
57
+ # @rbs name: String | Symbol
58
+ def valid_field_name?: (String | Symbol name) -> boolish
59
+
30
60
  def footer: () -> String
31
61
 
32
- def identify_class: (untyped value) -> (String | singleton(Class))
62
+ # @rbs obj: untyped
63
+ def identify_class: (untyped obj) -> (String | singleton(Class))
64
+
65
+ # @rbs type: untyped
33
66
  def stringify_type: (untyped type) -> String
34
67
  end
35
68
  end