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.
- checksums.yaml +4 -4
- data/.rubocop.yml +15 -1
- data/.vscode/settings.json +17 -3
- data/Gemfile +5 -2
- data/Gemfile.lock +133 -102
- data/Steepfile +1 -0
- data/lib/generators/rbs_active_hash/install_generator.rb +1 -1
- data/lib/rbs_active_hash/active_hash/parser.rb +19 -8
- data/lib/rbs_active_hash/active_hash.rb +38 -26
- data/lib/rbs_active_hash/rake_task.rb +9 -6
- data/lib/rbs_active_hash/version.rb +1 -1
- data/rbs_collection.lock.yaml +78 -44
- data/sig/generators/rbs_active_hash/install_generator.rbs +2 -0
- data/sig/rbs_active_hash/active_hash/parser.rbs +23 -4
- data/sig/rbs_active_hash/active_hash.rbs +39 -6
- data/sig/rbs_active_hash/rake_task.rbs +8 -3
- data/sig/rbs_active_hash/version.rbs +5 -0
- data/sig/rbs_active_hash.rbs +2 -2
- metadata +9 -8
- data/rbs_active_hash.gemspec +0 -35
|
@@ -5,18 +5,23 @@ require "active_hash"
|
|
|
5
5
|
|
|
6
6
|
module RbsActiveHash
|
|
7
7
|
module ActiveHash
|
|
8
|
-
|
|
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
|
-
|
|
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
|
|
19
|
+
attr_reader :klass #: singleton(ActiveHash::Base)
|
|
20
|
+
attr_reader :klass_name #: String
|
|
21
|
+
attr_reader :parser #: ActiveHash::Parser::Parser
|
|
18
22
|
|
|
19
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
9
|
+
attr_accessor :name #: Symbol
|
|
10
|
+
attr_accessor :signature_root_dir #: Pathname
|
|
10
11
|
|
|
11
|
-
|
|
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
|
data/rbs_collection.lock.yaml
CHANGED
|
@@ -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: '
|
|
5
|
+
version: '7.2'
|
|
16
6
|
source:
|
|
17
7
|
type: git
|
|
18
8
|
name: ruby/gem_rbs_collection
|
|
19
|
-
revision:
|
|
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:
|
|
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:
|
|
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.
|
|
29
|
+
version: '7.1'
|
|
40
30
|
source:
|
|
41
31
|
type: git
|
|
42
32
|
name: ruby/gem_rbs_collection
|
|
43
|
-
revision:
|
|
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.
|
|
37
|
+
version: '7.2'
|
|
48
38
|
source:
|
|
49
39
|
type: git
|
|
50
40
|
name: ruby/gem_rbs_collection
|
|
51
|
-
revision:
|
|
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:
|
|
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:
|
|
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: '
|
|
69
|
+
version: '3.1'
|
|
76
70
|
source:
|
|
77
|
-
type:
|
|
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:
|
|
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:
|
|
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:
|
|
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: '
|
|
137
|
+
version: '5.25'
|
|
132
138
|
source:
|
|
133
|
-
type:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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/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
|
-
|
|
16
|
-
attr_reader
|
|
17
|
-
|
|
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
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
def
|
|
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
|
-
|
|
56
|
+
|
|
57
|
+
# @rbs name: String | Symbol
|
|
58
|
+
def valid_field_name?: (String | Symbol name) -> boolish
|
|
59
|
+
|
|
30
60
|
def footer: () -> String
|
|
31
61
|
|
|
32
|
-
|
|
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
|