rbs_activesupport 1.4.3 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/.vscode/settings.json +10 -0
- data/lib/rbs_activesupport/ast.rb +1 -1
- data/lib/rbs_activesupport/attribute_accessor.rb +1 -1
- data/lib/rbs_activesupport/class_attribute.rb +1 -1
- data/lib/rbs_activesupport/declaration_builder.rb +47 -15
- data/lib/rbs_activesupport/generator.rb +21 -11
- data/lib/rbs_activesupport/method_searcher.rb +26 -3
- data/lib/rbs_activesupport/parser.rb +4 -4
- data/lib/rbs_activesupport/rake_task.rb +2 -2
- data/lib/rbs_activesupport/types.rb +6 -6
- data/lib/rbs_activesupport/version.rb +1 -1
- data/rbs_collection.lock.yaml +47 -43
- data/sig/rbs_activesupport/declaration_builder.rbs +17 -4
- data/sig/rbs_activesupport/generator.rbs +3 -0
- data/sig/rbs_activesupport/method_searcher.rbs +3 -0
- data/sig/rbs_activesupport/version.rbs +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 438e19cbb21787f29c6c4d2f2793aa07a2423c6fd42ee9540763d232df0ace2b
|
4
|
+
data.tar.gz: 6af95ed3168cbd3ae7b8ef97365b36d6b3c2a03cc844b0303395cb4f0716ff98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e447d750370fd50cf83d448a5356a520e5f6de2b4ef15bc1bfcf6cf449002052e5b9b37fac7986a07cdb130d5e760adf957f1d0f64e2128493618992f2d96485
|
7
|
+
data.tar.gz: 7dcd6171ed89a66d898732e8e3b27401021fad63a5ad10e7a4f3fcf312e411a11e934fe338e65c242949af9f41df36fec7b37f1544f37558cecd5b3466481be4
|
data/.rubocop.yml
CHANGED
data/.vscode/settings.json
CHANGED
@@ -1,15 +1,25 @@
|
|
1
1
|
{
|
2
2
|
"rbs-helper.signature-directory": "sig/",
|
3
3
|
"cSpell.words": [
|
4
|
+
"bindir",
|
5
|
+
"boolish",
|
4
6
|
"cattr",
|
5
7
|
"classmethods",
|
6
8
|
"Cyclomatic",
|
7
9
|
"DEFN",
|
8
10
|
"FCALL",
|
11
|
+
"ivar",
|
12
|
+
"KOMIYA",
|
9
13
|
"mattr",
|
10
14
|
"mkpath",
|
15
|
+
"modname",
|
16
|
+
"popen",
|
17
|
+
"raketask",
|
18
|
+
"readlines",
|
11
19
|
"rmtree",
|
20
|
+
"Takeshi",
|
12
21
|
"tasklib",
|
22
|
+
"tk0miya",
|
13
23
|
"VCALL",
|
14
24
|
"ZLIST"
|
15
25
|
],
|
@@ -6,11 +6,14 @@ module RbsActivesupport
|
|
6
6
|
|
7
7
|
include AST
|
8
8
|
|
9
|
+
attr_reader :resolver #: RBS::Resolver::TypeNameResolver
|
9
10
|
attr_reader :method_searcher #: MethodSearcher
|
10
11
|
attr_reader :included_modules #: Array[RBS::Namespace]
|
11
12
|
|
13
|
+
# @rbs resolver: RBS::Resolver::TypeNameResolver
|
12
14
|
# @rbs method_searcher: MethodSearcher
|
13
|
-
def initialize(method_searcher) #: void
|
15
|
+
def initialize(resolver, method_searcher) #: void
|
16
|
+
@resolver = resolver
|
14
17
|
@method_searcher = method_searcher
|
15
18
|
@included_modules = []
|
16
19
|
end
|
@@ -21,7 +24,8 @@ module RbsActivesupport
|
|
21
24
|
def build(namespace, method_calls, context = nil) #: [Array[String], Array[String]]
|
22
25
|
built = build_method_calls(namespace, method_calls, context)
|
23
26
|
public_decls, private_decls = built.partition(&:public?)
|
24
|
-
[public_decls.map(
|
27
|
+
[public_decls.map { |decl| render(namespace, decl) },
|
28
|
+
private_decls.map { |decl| render(namespace, decl) }]
|
25
29
|
end
|
26
30
|
|
27
31
|
private
|
@@ -109,13 +113,14 @@ module RbsActivesupport
|
|
109
113
|
end.flatten
|
110
114
|
end
|
111
115
|
|
116
|
+
# @rbs namespace: RBS::Namespace
|
112
117
|
# @rbs decl: t
|
113
|
-
def render(decl) #: String
|
118
|
+
def render(namespace, decl) #: String
|
114
119
|
case decl
|
115
120
|
when AttributeAccessor
|
116
|
-
render_attribute_accessor(decl)
|
121
|
+
render_attribute_accessor(namespace, decl)
|
117
122
|
when ClassAttribute
|
118
|
-
render_class_attribute(decl)
|
123
|
+
render_class_attribute(namespace, decl)
|
119
124
|
when Delegate
|
120
125
|
render_delegate(decl)
|
121
126
|
when Include
|
@@ -123,24 +128,28 @@ module RbsActivesupport
|
|
123
128
|
end
|
124
129
|
end
|
125
130
|
|
131
|
+
# @rbs namespace: RBS::Namespace
|
126
132
|
# @rbs decl: AttributeAccessor
|
127
|
-
def render_attribute_accessor(decl) #: String
|
133
|
+
def render_attribute_accessor(namespace, decl) #: String
|
134
|
+
type = resolve_type(namespace, decl.type)
|
128
135
|
methods = []
|
129
|
-
methods << "def self.#{decl.name}: () -> (#{
|
130
|
-
methods << "def self.#{decl.name}=: (#{
|
131
|
-
methods << "def #{decl.name}: () -> (#{
|
132
|
-
methods << "def #{decl.name}=: (#{
|
136
|
+
methods << "def self.#{decl.name}: () -> (#{type})" if decl.singleton_reader?
|
137
|
+
methods << "def self.#{decl.name}=: (#{type}) -> (#{type})" if decl.singleton_writer?
|
138
|
+
methods << "def #{decl.name}: () -> (#{type})" if decl.instance_reader?
|
139
|
+
methods << "def #{decl.name}=: (#{type}) -> (#{type})" if decl.instance_writer?
|
133
140
|
methods.join("\n")
|
134
141
|
end
|
135
142
|
|
143
|
+
# @rbs namespace: RBS::Namespace
|
136
144
|
# @rbs decl: ClassAttribute
|
137
|
-
def render_class_attribute(decl) #: String
|
145
|
+
def render_class_attribute(namespace, decl) #: String
|
146
|
+
type = resolve_type(namespace, decl.type)
|
138
147
|
methods = []
|
139
|
-
methods << "def self.#{decl.name}: () -> (#{
|
140
|
-
methods << "def self.#{decl.name}=: (#{
|
148
|
+
methods << "def self.#{decl.name}: () -> (#{type})"
|
149
|
+
methods << "def self.#{decl.name}=: (#{type}) -> (#{type})"
|
141
150
|
methods << "def self.#{decl.name}?: () -> bool" if decl.instance_predicate?
|
142
|
-
methods << "def #{decl.name}: () -> (#{
|
143
|
-
methods << "def #{decl.name}=: (#{
|
151
|
+
methods << "def #{decl.name}: () -> (#{type})" if decl.instance_reader?
|
152
|
+
methods << "def #{decl.name}=: (#{type}) -> (#{type})" if decl.instance_writer?
|
144
153
|
methods << "def #{decl.name}?: () -> bool" if decl.instance_predicate? && decl.instance_reader?
|
145
154
|
methods.join("\n")
|
146
155
|
end
|
@@ -164,5 +173,28 @@ module RbsActivesupport
|
|
164
173
|
"include #{module_name.to_s.delete_suffix("::")}"
|
165
174
|
end
|
166
175
|
end
|
176
|
+
|
177
|
+
# @rbs namespace: RBS::Namespace
|
178
|
+
# @rbs type: String
|
179
|
+
def resolve_type(namespace, type) #: String
|
180
|
+
context = context_from(namespace.to_type_name)
|
181
|
+
|
182
|
+
typ = RBS::Parser.parse_type(type)
|
183
|
+
if typ
|
184
|
+
typ.map_type_name { |type_name| resolver.resolve(type_name, context:) || type_name }.to_s
|
185
|
+
else
|
186
|
+
type
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
# @rbs type_name: RBS::TypeName
|
191
|
+
def context_from(type_name) #: RBS::Resolver::context
|
192
|
+
if type_name.namespace == RBS::Namespace.root
|
193
|
+
[nil, type_name]
|
194
|
+
else
|
195
|
+
parent = context_from(type_name.namespace.to_type_name)
|
196
|
+
[parent, type_name]
|
197
|
+
end
|
198
|
+
end
|
167
199
|
end
|
168
200
|
end
|
@@ -21,7 +21,8 @@ module RbsActivesupport
|
|
21
21
|
@pathname = pathname
|
22
22
|
|
23
23
|
method_searcher = MethodSearcher.new(rbs_builder)
|
24
|
-
|
24
|
+
resolver = RBS::Resolver::TypeNameResolver.new(rbs_builder.env)
|
25
|
+
@declaration_builder = DeclarationBuilder.new(resolver, method_searcher)
|
25
26
|
end
|
26
27
|
|
27
28
|
def generate #: String?
|
@@ -33,6 +34,8 @@ module RbsActivesupport
|
|
33
34
|
next if public_decls.empty? && private_decls.empty?
|
34
35
|
|
35
36
|
<<~RBS
|
37
|
+
# resolve-type-names: false
|
38
|
+
|
36
39
|
#{header(namespace)}
|
37
40
|
#{public_decls.join("\n")}
|
38
41
|
|
@@ -55,7 +58,7 @@ module RbsActivesupport
|
|
55
58
|
def format(rbs) #: String
|
56
59
|
parsed = RBS::Parser.parse_signature(rbs)
|
57
60
|
StringIO.new.tap do |out|
|
58
|
-
RBS::Writer.new(out:
|
61
|
+
RBS::Writer.new(out:).write(parsed[1] + parsed[2])
|
59
62
|
end.string
|
60
63
|
end
|
61
64
|
|
@@ -67,19 +70,16 @@ module RbsActivesupport
|
|
67
70
|
|
68
71
|
# @rbs namespace: RBS::Namespace
|
69
72
|
def header(namespace) #: String
|
70
|
-
|
71
|
-
|
72
|
-
context += "::#{mod_name}"
|
73
|
-
mod_object = Object.const_get(context)
|
73
|
+
namespace_to_names(namespace).map do |name|
|
74
|
+
mod_object = Object.const_get(name.to_s)
|
74
75
|
case mod_object
|
75
76
|
when Class
|
76
|
-
|
77
|
-
|
78
|
-
superclass_name = superclass.name || "Object"
|
77
|
+
superclass = mod_object.superclass
|
78
|
+
superclass_name = superclass&.name || "::Object"
|
79
79
|
|
80
|
-
"class #{
|
80
|
+
"class #{name} < ::#{superclass_name}"
|
81
81
|
when Module
|
82
|
-
"module #{
|
82
|
+
"module #{name}"
|
83
83
|
else
|
84
84
|
raise "unreachable"
|
85
85
|
end
|
@@ -90,5 +90,15 @@ module RbsActivesupport
|
|
90
90
|
def footer(namespace) #: String
|
91
91
|
"end\n" * namespace.path.size
|
92
92
|
end
|
93
|
+
|
94
|
+
# @rbs namespace: RBS::Namespace
|
95
|
+
def namespace_to_names(namespace) #: Array[RBS::TypeName]
|
96
|
+
names = [] #: Array[RBS::TypeName]
|
97
|
+
until namespace.empty?
|
98
|
+
names << namespace.to_type_name
|
99
|
+
namespace = namespace.parent
|
100
|
+
end
|
101
|
+
names.reverse
|
102
|
+
end
|
93
103
|
end
|
94
104
|
end
|
@@ -46,12 +46,35 @@ module RbsActivesupport
|
|
46
46
|
# @rbs method: Symbol
|
47
47
|
def lookup_method_types(type_name, method) #: Array[RBS::MethodType]
|
48
48
|
instance = rbs_builder.build_instance(type_name)
|
49
|
-
|
50
|
-
|
49
|
+
if method.start_with? "@"
|
50
|
+
ivar_def = instance.instance_variables[method]
|
51
|
+
return [] unless ivar_def
|
51
52
|
|
52
|
-
|
53
|
+
method_def = build_method_def(ivar_def.type)
|
54
|
+
[method_def]
|
55
|
+
else
|
56
|
+
method_def = instance.methods[method]
|
57
|
+
return [] unless method_def
|
58
|
+
|
59
|
+
method_def.defs.map(&:type)
|
60
|
+
end
|
53
61
|
rescue StandardError
|
54
62
|
[]
|
55
63
|
end
|
64
|
+
|
65
|
+
# @rbs return_type: RBS::Types::t
|
66
|
+
def build_method_def(return_type) #: RBS::MethodType
|
67
|
+
type = RBS::Types::Function.new(
|
68
|
+
required_positionals: [],
|
69
|
+
optional_positionals: [],
|
70
|
+
rest_positionals: nil,
|
71
|
+
trailing_positionals: [],
|
72
|
+
required_keywords: {},
|
73
|
+
optional_keywords: {},
|
74
|
+
rest_keywords: nil,
|
75
|
+
return_type:
|
76
|
+
)
|
77
|
+
RBS::MethodType.new(type_params: [], type:, block: nil, location: nil)
|
78
|
+
end
|
56
79
|
end
|
57
80
|
end
|
@@ -76,20 +76,20 @@ module RbsActivesupport
|
|
76
76
|
included: in_included_block?,
|
77
77
|
trailing_comment: trailing_comment_for(node))
|
78
78
|
else
|
79
|
-
process_orig(node, decls
|
79
|
+
process_orig(node, decls:, comments:, context:)
|
80
80
|
end
|
81
81
|
when :ITER
|
82
82
|
call = node.children[0]
|
83
83
|
if call.type == :FCALL && call.children[0] == :included && parse_included_block && !in_included_block?
|
84
84
|
body = node.children[1].children[2]
|
85
85
|
with_included_block do
|
86
|
-
process(body, decls
|
86
|
+
process(body, decls:, comments:, context:)
|
87
87
|
end
|
88
88
|
else
|
89
|
-
process_orig(node, decls
|
89
|
+
process_orig(node, decls:, comments:, context:)
|
90
90
|
end
|
91
91
|
else
|
92
|
-
process_orig(node, decls
|
92
|
+
process_orig(node, decls:, comments:, context:)
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
@@ -45,7 +45,7 @@ module RbsActivesupport
|
|
45
45
|
|
46
46
|
target_directories.each do |dir|
|
47
47
|
dir.glob("**/*.rb").each do |file|
|
48
|
-
rbs = Generator.
|
48
|
+
rbs = Generator.generate(file, rbs_builder)
|
49
49
|
next unless rbs
|
50
50
|
|
51
51
|
rbs_path = signature_root_dir / file.sub_ext(".rbs").relative_path_from(Rails.root)
|
@@ -70,7 +70,7 @@ module RbsActivesupport
|
|
70
70
|
loader = RBS::CLI::LibraryOptions.new.loader
|
71
71
|
loader.add(path: Pathname("sig"))
|
72
72
|
env = RBS::Environment.from_loader(loader).resolve_type_names
|
73
|
-
RBS::DefinitionBuilder.new(env:
|
73
|
+
RBS::DefinitionBuilder.new(env:)
|
74
74
|
end
|
75
75
|
end
|
76
76
|
end
|
@@ -11,26 +11,26 @@ module RbsActivesupport
|
|
11
11
|
when nil
|
12
12
|
"nil"
|
13
13
|
when Integer, Float, Symbol, String
|
14
|
-
obj.class.name or raise
|
14
|
+
"::#{obj.class.name}" or raise
|
15
15
|
when true, false
|
16
16
|
"bool"
|
17
17
|
when Array
|
18
|
-
return "Array[untyped]" if obj.empty?
|
18
|
+
return "::Array[untyped]" if obj.empty?
|
19
19
|
|
20
20
|
items = obj.map { |e| guess_type(e) }.uniq
|
21
21
|
if items.include?("untyped")
|
22
|
-
"Array[untyped]"
|
22
|
+
"::Array[untyped]"
|
23
23
|
else
|
24
|
-
"Array[#{items.join(" | ")}]"
|
24
|
+
"::Array[#{items.join(" | ")}]"
|
25
25
|
end
|
26
26
|
when Hash
|
27
|
-
return "Hash[untyped, untyped]" if obj.empty?
|
27
|
+
return "::Hash[untyped, untyped]" if obj.empty?
|
28
28
|
|
29
29
|
keys = obj.keys.map { |e| guess_type(e) }.uniq
|
30
30
|
values = obj.values.map { |e| guess_type(e) }.uniq
|
31
31
|
key_type = keys.include?("untyped") ? "untyped" : keys.join(" | ")
|
32
32
|
value_type = values.include?("untyped") ? "untyped" : values.join(" | ")
|
33
|
-
"Hash[#{key_type}, #{value_type}]"
|
33
|
+
"::Hash[#{key_type}, #{value_type}]"
|
34
34
|
else
|
35
35
|
"untyped"
|
36
36
|
end
|
data/rbs_collection.lock.yaml
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
path: ".gem_rbs_collection"
|
3
3
|
gems:
|
4
4
|
- name: actionpack
|
5
|
-
version: '
|
5
|
+
version: '7.2'
|
6
6
|
source:
|
7
7
|
type: git
|
8
8
|
name: ruby/gem_rbs_collection
|
9
|
-
revision:
|
9
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
10
10
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
11
11
|
repo_dir: gems
|
12
12
|
- name: actionview
|
@@ -14,7 +14,7 @@ gems:
|
|
14
14
|
source:
|
15
15
|
type: git
|
16
16
|
name: ruby/gem_rbs_collection
|
17
|
-
revision:
|
17
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
18
18
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
19
19
|
repo_dir: gems
|
20
20
|
- name: activesupport
|
@@ -22,7 +22,7 @@ gems:
|
|
22
22
|
source:
|
23
23
|
type: git
|
24
24
|
name: ruby/gem_rbs_collection
|
25
|
-
revision:
|
25
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
26
26
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
27
27
|
repo_dir: gems
|
28
28
|
- name: ast
|
@@ -30,17 +30,29 @@ gems:
|
|
30
30
|
source:
|
31
31
|
type: git
|
32
32
|
name: ruby/gem_rbs_collection
|
33
|
-
revision:
|
33
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
34
34
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
35
35
|
repo_dir: gems
|
36
36
|
- name: base64
|
37
|
+
version: '0.1'
|
38
|
+
source:
|
39
|
+
type: git
|
40
|
+
name: ruby/gem_rbs_collection
|
41
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
42
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
43
|
+
repo_dir: gems
|
44
|
+
- name: benchmark
|
37
45
|
version: '0'
|
38
46
|
source:
|
39
47
|
type: stdlib
|
40
48
|
- name: bigdecimal
|
41
|
-
version: '
|
49
|
+
version: '3.1'
|
42
50
|
source:
|
43
|
-
type:
|
51
|
+
type: git
|
52
|
+
name: ruby/gem_rbs_collection
|
53
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
54
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
55
|
+
repo_dir: gems
|
44
56
|
- name: cgi
|
45
57
|
version: '0'
|
46
58
|
source:
|
@@ -50,7 +62,7 @@ gems:
|
|
50
62
|
source:
|
51
63
|
type: git
|
52
64
|
name: ruby/gem_rbs_collection
|
53
|
-
revision:
|
65
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
54
66
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
55
67
|
repo_dir: gems
|
56
68
|
- name: connection_pool
|
@@ -58,18 +70,14 @@ gems:
|
|
58
70
|
source:
|
59
71
|
type: git
|
60
72
|
name: ruby/gem_rbs_collection
|
61
|
-
revision:
|
73
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
62
74
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
63
75
|
repo_dir: gems
|
64
76
|
- name: date
|
65
77
|
version: '0'
|
66
78
|
source:
|
67
79
|
type: stdlib
|
68
|
-
- name:
|
69
|
-
version: '0'
|
70
|
-
source:
|
71
|
-
type: stdlib
|
72
|
-
- name: delegate
|
80
|
+
- name: digest
|
73
81
|
version: '0'
|
74
82
|
source:
|
75
83
|
type: stdlib
|
@@ -86,7 +94,7 @@ gems:
|
|
86
94
|
source:
|
87
95
|
type: git
|
88
96
|
name: ruby/gem_rbs_collection
|
89
|
-
revision:
|
97
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
90
98
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
91
99
|
repo_dir: gems
|
92
100
|
- name: io-console
|
@@ -102,23 +110,27 @@ gems:
|
|
102
110
|
source:
|
103
111
|
type: stdlib
|
104
112
|
- name: minitest
|
105
|
-
version: '
|
113
|
+
version: '5.25'
|
106
114
|
source:
|
107
|
-
type:
|
115
|
+
type: git
|
116
|
+
name: ruby/gem_rbs_collection
|
117
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
118
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
119
|
+
repo_dir: gems
|
108
120
|
- name: monitor
|
109
121
|
version: '0'
|
110
122
|
source:
|
111
123
|
type: stdlib
|
112
124
|
- name: mutex_m
|
113
|
-
version:
|
125
|
+
version: 0.3.0
|
114
126
|
source:
|
115
|
-
type:
|
127
|
+
type: rubygems
|
116
128
|
- name: nokogiri
|
117
129
|
version: '1.11'
|
118
130
|
source:
|
119
131
|
type: git
|
120
132
|
name: ruby/gem_rbs_collection
|
121
|
-
revision:
|
133
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
122
134
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
123
135
|
repo_dir: gems
|
124
136
|
- name: openssl
|
@@ -134,7 +146,7 @@ gems:
|
|
134
146
|
source:
|
135
147
|
type: git
|
136
148
|
name: ruby/gem_rbs_collection
|
137
|
-
revision:
|
149
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
138
150
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
139
151
|
repo_dir: gems
|
140
152
|
- name: parser
|
@@ -142,27 +154,19 @@ gems:
|
|
142
154
|
source:
|
143
155
|
type: git
|
144
156
|
name: ruby/gem_rbs_collection
|
145
|
-
revision:
|
157
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
146
158
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
147
159
|
repo_dir: gems
|
148
160
|
- name: pathname
|
149
161
|
version: '0'
|
150
162
|
source:
|
151
163
|
type: stdlib
|
152
|
-
- name: pstore
|
153
|
-
version: '0'
|
154
|
-
source:
|
155
|
-
type: stdlib
|
156
|
-
- name: psych
|
157
|
-
version: '0'
|
158
|
-
source:
|
159
|
-
type: stdlib
|
160
164
|
- name: rack
|
161
165
|
version: '2.2'
|
162
166
|
source:
|
163
167
|
type: git
|
164
168
|
name: ruby/gem_rbs_collection
|
165
|
-
revision:
|
169
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
166
170
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
167
171
|
repo_dir: gems
|
168
172
|
- name: rails-dom-testing
|
@@ -170,7 +174,7 @@ gems:
|
|
170
174
|
source:
|
171
175
|
type: git
|
172
176
|
name: ruby/gem_rbs_collection
|
173
|
-
revision:
|
177
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
174
178
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
175
179
|
repo_dir: gems
|
176
180
|
- name: rails-html-sanitizer
|
@@ -178,7 +182,7 @@ gems:
|
|
178
182
|
source:
|
179
183
|
type: git
|
180
184
|
name: ruby/gem_rbs_collection
|
181
|
-
revision:
|
185
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
182
186
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
183
187
|
repo_dir: gems
|
184
188
|
- name: railties
|
@@ -186,7 +190,7 @@ gems:
|
|
186
190
|
source:
|
187
191
|
type: git
|
188
192
|
name: ruby/gem_rbs_collection
|
189
|
-
revision:
|
193
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
190
194
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
191
195
|
repo_dir: gems
|
192
196
|
- name: rainbow
|
@@ -194,7 +198,7 @@ gems:
|
|
194
198
|
source:
|
195
199
|
type: git
|
196
200
|
name: ruby/gem_rbs_collection
|
197
|
-
revision:
|
201
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
198
202
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
199
203
|
repo_dir: gems
|
200
204
|
- name: rake
|
@@ -202,11 +206,11 @@ gems:
|
|
202
206
|
source:
|
203
207
|
type: git
|
204
208
|
name: ruby/gem_rbs_collection
|
205
|
-
revision:
|
209
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
206
210
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
207
211
|
repo_dir: gems
|
208
212
|
- name: rbs
|
209
|
-
version: 3.
|
213
|
+
version: 3.9.4
|
210
214
|
source:
|
211
215
|
type: rubygems
|
212
216
|
- name: rdoc
|
@@ -218,7 +222,7 @@ gems:
|
|
218
222
|
source:
|
219
223
|
type: git
|
220
224
|
name: ruby/gem_rbs_collection
|
221
|
-
revision:
|
225
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
222
226
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
223
227
|
repo_dir: gems
|
224
228
|
- name: ripper
|
@@ -230,7 +234,7 @@ gems:
|
|
230
234
|
source:
|
231
235
|
type: git
|
232
236
|
name: ruby/gem_rbs_collection
|
233
|
-
revision:
|
237
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
234
238
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
235
239
|
repo_dir: gems
|
236
240
|
- name: rubocop-ast
|
@@ -238,7 +242,7 @@ gems:
|
|
238
242
|
source:
|
239
243
|
type: git
|
240
244
|
name: ruby/gem_rbs_collection
|
241
|
-
revision:
|
245
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
242
246
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
243
247
|
repo_dir: gems
|
244
248
|
- name: securerandom
|
@@ -253,7 +257,7 @@ gems:
|
|
253
257
|
version: '0'
|
254
258
|
source:
|
255
259
|
type: stdlib
|
256
|
-
- name:
|
260
|
+
- name: stringio
|
257
261
|
version: '0'
|
258
262
|
source:
|
259
263
|
type: stdlib
|
@@ -266,7 +270,7 @@ gems:
|
|
266
270
|
source:
|
267
271
|
type: git
|
268
272
|
name: ruby/gem_rbs_collection
|
269
|
-
revision:
|
273
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
270
274
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
271
275
|
repo_dir: gems
|
272
276
|
- name: time
|
@@ -286,7 +290,7 @@ gems:
|
|
286
290
|
source:
|
287
291
|
type: git
|
288
292
|
name: ruby/gem_rbs_collection
|
289
|
-
revision:
|
293
|
+
revision: 4af987b9b70455bd4493ef5a10e885f36e6ca6f6
|
290
294
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
291
295
|
repo_dir: gems
|
292
296
|
- name: uri
|
@@ -6,12 +6,15 @@ module RbsActivesupport
|
|
6
6
|
|
7
7
|
include AST
|
8
8
|
|
9
|
+
attr_reader resolver: RBS::Resolver::TypeNameResolver
|
10
|
+
|
9
11
|
attr_reader method_searcher: MethodSearcher
|
10
12
|
|
11
13
|
attr_reader included_modules: Array[RBS::Namespace]
|
12
14
|
|
15
|
+
# @rbs resolver: RBS::Resolver::TypeNameResolver
|
13
16
|
# @rbs method_searcher: MethodSearcher
|
14
|
-
def initialize: (MethodSearcher method_searcher) -> void
|
17
|
+
def initialize: (RBS::Resolver::TypeNameResolver resolver, MethodSearcher method_searcher) -> void
|
15
18
|
|
16
19
|
# @rbs namespace: RBS::Namespace
|
17
20
|
# @rbs method_calls: Array[Parser::MethodCall]
|
@@ -40,19 +43,29 @@ module RbsActivesupport
|
|
40
43
|
# @rbs context: RBS::Namespace?
|
41
44
|
def build_include: (RBS::Namespace namespace, Parser::MethodCall method_call, RBS::Namespace? context) -> Array[t]
|
42
45
|
|
46
|
+
# @rbs namespace: RBS::Namespace
|
43
47
|
# @rbs decl: t
|
44
|
-
def render: (t decl) -> String
|
48
|
+
def render: (RBS::Namespace namespace, t decl) -> String
|
45
49
|
|
50
|
+
# @rbs namespace: RBS::Namespace
|
46
51
|
# @rbs decl: AttributeAccessor
|
47
|
-
def render_attribute_accessor: (AttributeAccessor decl) -> String
|
52
|
+
def render_attribute_accessor: (RBS::Namespace namespace, AttributeAccessor decl) -> String
|
48
53
|
|
54
|
+
# @rbs namespace: RBS::Namespace
|
49
55
|
# @rbs decl: ClassAttribute
|
50
|
-
def render_class_attribute: (ClassAttribute decl) -> String
|
56
|
+
def render_class_attribute: (RBS::Namespace namespace, ClassAttribute decl) -> String
|
51
57
|
|
52
58
|
# @rbs decl: Delegate
|
53
59
|
def render_delegate: (Delegate decl) -> String
|
54
60
|
|
55
61
|
# @rbs decl: Include
|
56
62
|
def render_include: (Include decl) -> String
|
63
|
+
|
64
|
+
# @rbs namespace: RBS::Namespace
|
65
|
+
# @rbs type: String
|
66
|
+
def resolve_type: (RBS::Namespace namespace, String type) -> String
|
67
|
+
|
68
|
+
# @rbs type_name: RBS::TypeName
|
69
|
+
def context_from: (RBS::TypeName type_name) -> RBS::Resolver::context
|
57
70
|
end
|
58
71
|
end
|
@@ -21,5 +21,8 @@ module RbsActivesupport
|
|
21
21
|
# @rbs type_name: RBS::TypeName
|
22
22
|
# @rbs method: Symbol
|
23
23
|
def lookup_method_types: (RBS::TypeName type_name, Symbol method) -> Array[RBS::MethodType]
|
24
|
+
|
25
|
+
# @rbs return_type: RBS::Types::t
|
26
|
+
def build_method_def: (RBS::Types::t return_type) -> RBS::MethodType
|
24
27
|
end
|
25
28
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbs_activesupport
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takeshi KOMIYA
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
description:
|
55
|
+
description:
|
56
56
|
email:
|
57
57
|
- i.tkomiya@gmail.com
|
58
58
|
executables: []
|
@@ -106,7 +106,7 @@ metadata:
|
|
106
106
|
homepage_uri: https://github.com/tk0miya/rbs_activesupport
|
107
107
|
source_code_uri: https://github.com/tk0miya/rbs_activesupport
|
108
108
|
changelog_uri: https://github.com/tk0miya/rbs_activesupport
|
109
|
-
post_install_message:
|
109
|
+
post_install_message:
|
110
110
|
rdoc_options: []
|
111
111
|
require_paths:
|
112
112
|
- lib
|
@@ -114,7 +114,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 2.
|
117
|
+
version: 3.2.0
|
118
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
119
|
requirements:
|
120
120
|
- - ">="
|
@@ -122,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
122
|
version: '0'
|
123
123
|
requirements: []
|
124
124
|
rubygems_version: 3.5.22
|
125
|
-
signing_key:
|
125
|
+
signing_key:
|
126
126
|
specification_version: 4
|
127
|
-
summary: A RBS files
|
127
|
+
summary: A RBS files generator for activesupport
|
128
128
|
test_files: []
|