rbs-inline 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/rbs/inline/ast/annotations.rb +21 -0
- data/lib/rbs/inline/ast/comment_lines.rb +19 -2
- data/lib/rbs/inline/ast/declarations.rb +4 -1
- data/lib/rbs/inline/ast/members.rb +9 -26
- data/lib/rbs/inline/ast/tree.rb +88 -4
- data/lib/rbs/inline/node_utils.rb +4 -0
- data/lib/rbs/inline/parser.rb +13 -1
- data/lib/rbs/inline/version.rb +1 -1
- data/lib/rbs/inline/writer.rb +81 -9
- data/lib/rbs/inline.rb +3 -0
- data/rbs_collection.lock.yaml +3 -7
- data/rbs_collection.yaml +2 -0
- data/sig/generated/rbs/inline/ast/annotations.rbs +2 -0
- data/sig/{rbs → generated/rbs}/inline/ast/comment_lines.rbs +8 -4
- data/sig/generated/rbs/inline/ast/declarations.rbs +4 -1
- data/sig/generated/rbs/inline/ast/members.rbs +8 -10
- data/sig/{rbs → generated/rbs}/inline/ast/tree.rbs +49 -21
- data/sig/generated/rbs/inline/node_utils.rbs +11 -0
- data/sig/generated/rbs/inline/parser.rbs +5 -2
- data/sig/generated/rbs/inline/version.rbs +7 -0
- data/sig/generated/rbs/inline/writer.rbs +72 -0
- data/sig/generated/rbs/inline.rbs +7 -0
- metadata +12 -14
- data/sig/rbs/inline/annotation_parser.rbs +0 -0
- data/sig/rbs/inline/node_utils.rbs +0 -7
- data/sig/rbs/inline/writer.rbs +0 -27
- data/sig/rbs/inline.rbs +0 -41
- data/yard-samples/hello.rb +0 -6
- data/yard-samples/sample1.rb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 713b2bd4c5ddd833fa1bd1a71505924081013101a8a41200a88fed55751146ba
|
4
|
+
data.tar.gz: 44ffe7a91c0c0afeb7e163a02de508c50f96a609ae7c64593a6b739109ac11b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6507f727be79bcae3890c8b8c3c3865544022058e44d5bfd060efb5df0c91e50f2b5e43a11f284c7ea3de1066bdd0ed7e269a14c20b45cc05cafa7ad60ecffb7
|
7
|
+
data.tar.gz: aad87cafa19657b4d4b055527924146cb232cd96c56081bcbb24c1e1b0ff2fc24a449bdfe2132a43c2e5f5ac2affca8d615d0946b135676979556eaca4887aec
|
data/README.md
CHANGED
@@ -80,12 +80,12 @@ The gem works as a transpiler from annotated Ruby code to RBS files. Run `rbs-in
|
|
80
80
|
$ bundle exec rbs-inline lib
|
81
81
|
|
82
82
|
# Save generated RBS files under sig/generated
|
83
|
-
$ bundle exec rbs-inline --output
|
83
|
+
$ bundle exec rbs-inline --output lib
|
84
84
|
```
|
85
85
|
|
86
86
|
You may want to use `fswatch` or likes to automatically generate RBS files when you edit the Ruby code.
|
87
87
|
|
88
|
-
$ fswatch -0 lib | xargs -0 -n1 bundle exec rbs-inline --output
|
88
|
+
$ fswatch -0 lib | xargs -0 -n1 bundle exec rbs-inline --output
|
89
89
|
|
90
90
|
## More materials
|
91
91
|
|
@@ -4,6 +4,27 @@ module RBS
|
|
4
4
|
module Inline
|
5
5
|
module AST
|
6
6
|
module Annotations
|
7
|
+
# @rbs!
|
8
|
+
# type t = VarType
|
9
|
+
# | ReturnType
|
10
|
+
# | Use
|
11
|
+
# | Inherits
|
12
|
+
# | Generic
|
13
|
+
# | ModuleSelf
|
14
|
+
# | Skip
|
15
|
+
# | Assertion
|
16
|
+
# | Application
|
17
|
+
# | RBSAnnotation
|
18
|
+
# | Override
|
19
|
+
# | IvarType
|
20
|
+
# | Yields
|
21
|
+
# | Embedded
|
22
|
+
# # | Def
|
23
|
+
# # | AttrReader | AttrWriter | AttrAccessor
|
24
|
+
# # | Include | Extend | Prepend
|
25
|
+
# # | Alias
|
26
|
+
|
27
|
+
|
7
28
|
class Base
|
8
29
|
attr_reader :source #:: CommentLines
|
9
30
|
attr_reader :tree #:: Tree
|
@@ -1,9 +1,24 @@
|
|
1
|
+
# rbs_inline: enabled
|
2
|
+
|
1
3
|
module RBS
|
2
4
|
module Inline
|
3
5
|
module AST
|
6
|
+
# CommentLines represents consecutive comments
|
7
|
+
#
|
8
|
+
# The comments construct one String.
|
9
|
+
#
|
10
|
+
# ```ruby
|
11
|
+
# # Hello <-- Comment1
|
12
|
+
# # World <-- Comment2
|
13
|
+
# ```
|
14
|
+
#
|
15
|
+
# We want to get a String of comment1 and comment2, `"Hello\nWorld".
|
16
|
+
# And want to translate a location in the string into the location in comment1 and comment2.
|
17
|
+
#
|
4
18
|
class CommentLines
|
5
|
-
attr_reader :comments
|
19
|
+
attr_reader :comments #:: Array[[Prism::Comment, Integer]]
|
6
20
|
|
21
|
+
# @rbs comments: Array[Prism::Comment]
|
7
22
|
def initialize(comments)
|
8
23
|
offsets = comments.map do |comment|
|
9
24
|
comment.location.slice.index(/[^#\s]/) || 1
|
@@ -18,10 +33,12 @@ module RBS
|
|
18
33
|
end
|
19
34
|
end
|
20
35
|
|
21
|
-
def string
|
36
|
+
def string #:: String
|
22
37
|
comments.map {|comment, offset| comment.location.slice[offset..] }.join("\n")
|
23
38
|
end
|
24
39
|
|
40
|
+
# @rbs index: Integer
|
41
|
+
# @rbs returns [Prism::Comment, Integer]?
|
25
42
|
def comment_location(index)
|
26
43
|
comments.each do |comment, offset|
|
27
44
|
comment_length = comment.location.length
|
@@ -15,7 +15,7 @@ module RBS
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
# @rbs! type t = ClassDecl | ModuleDecl | ConstantDecl
|
18
|
+
# @rbs! type t = ClassDecl | ModuleDecl | ConstantDecl | SingletonClassDecl
|
19
19
|
|
20
20
|
# @rbs!
|
21
21
|
# interface _WithComments
|
@@ -227,6 +227,9 @@ module RBS
|
|
227
227
|
node.location.start_line
|
228
228
|
end
|
229
229
|
end
|
230
|
+
|
231
|
+
class SingletonClassDecl < ModuleOrClass #[Prism::SingletonClassNode]
|
232
|
+
end
|
230
233
|
end
|
231
234
|
end
|
232
235
|
end
|
@@ -4,6 +4,11 @@ module RBS
|
|
4
4
|
module Inline
|
5
5
|
module AST
|
6
6
|
module Members
|
7
|
+
# @rbs!
|
8
|
+
# type ruby = RubyDef | RubyAlias | RubyMixin | RubyAttr | RubyPublic | RubyPrivate
|
9
|
+
# type rbs = RBSIvar | RBSEmbedded
|
10
|
+
# type t = ruby | rbs
|
11
|
+
|
7
12
|
class Base
|
8
13
|
attr_reader :location #:: Prism::Location
|
9
14
|
|
@@ -64,27 +69,6 @@ module RBS
|
|
64
69
|
end
|
65
70
|
end
|
66
71
|
|
67
|
-
# Returns the `kind` of the method definition
|
68
|
-
#
|
69
|
-
# [FIXME] It only supports `self` receiver.
|
70
|
-
#
|
71
|
-
# ```rb
|
72
|
-
# def self.foo = () # :singleton
|
73
|
-
# def object.foo = () # Not supported (returns :instance)
|
74
|
-
# ```
|
75
|
-
#
|
76
|
-
def method_kind #:: RBS::AST::Members::MethodDefinition::kind
|
77
|
-
# FIXME: really hacky implementation
|
78
|
-
case node.receiver
|
79
|
-
when Prism::SelfNode
|
80
|
-
:singleton
|
81
|
-
when nil
|
82
|
-
:instance
|
83
|
-
else
|
84
|
-
:instance
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
72
|
def return_type #:: Types::t?
|
89
73
|
if assertion
|
90
74
|
if assertion.type?
|
@@ -341,6 +325,8 @@ module RBS
|
|
341
325
|
end
|
342
326
|
|
343
327
|
class RubyMixin < RubyBase
|
328
|
+
include Declarations::ConstantUtil
|
329
|
+
|
344
330
|
# CallNode that calls `include`, `prepend`, and `extend` method
|
345
331
|
attr_reader :node #:: Prism::CallNode
|
346
332
|
|
@@ -371,11 +357,8 @@ module RBS
|
|
371
357
|
return unless node.arguments.arguments.size == 1
|
372
358
|
|
373
359
|
arg = node.arguments.arguments[0] || raise
|
374
|
-
|
375
|
-
|
376
|
-
else
|
377
|
-
raise
|
378
|
-
end
|
360
|
+
type_name = type_name(arg)
|
361
|
+
return unless type_name
|
379
362
|
|
380
363
|
args = [] #: Array[Types::t]
|
381
364
|
if application
|
data/lib/rbs/inline/ast/tree.rb
CHANGED
@@ -1,17 +1,28 @@
|
|
1
|
+
# rbs_inline: enabled
|
2
|
+
|
1
3
|
module RBS
|
2
4
|
module Inline
|
3
5
|
module AST
|
4
6
|
class Tree
|
5
|
-
|
6
|
-
|
7
|
-
|
7
|
+
# @rbs!
|
8
|
+
# type token = [Symbol, String]
|
9
|
+
# type tree = token | Tree | Types::t | MethodType | nil
|
10
|
+
|
11
|
+
attr_reader :trees #:: Array[tree]
|
12
|
+
attr_reader :type #:: Symbol
|
13
|
+
|
14
|
+
# Children but without `tWHITESPACE` tokens
|
15
|
+
attr_reader :non_trivia_trees #:: Array[tree]
|
8
16
|
|
17
|
+
# @rbs type: Symbol
|
9
18
|
def initialize(type)
|
10
19
|
@type = type
|
11
20
|
@trees = []
|
12
21
|
@non_trivia_trees = []
|
13
22
|
end
|
14
23
|
|
24
|
+
# @rbs tok: tree
|
25
|
+
# @rbs returns self
|
15
26
|
def <<(tok)
|
16
27
|
trees << tok
|
17
28
|
unless tok.is_a?(Array) && tok[0] == :tWHITESPACE
|
@@ -20,7 +31,8 @@ module RBS
|
|
20
31
|
self
|
21
32
|
end
|
22
33
|
|
23
|
-
|
34
|
+
# Returns the source code associated to the tree
|
35
|
+
def to_s #:: String
|
24
36
|
buf = +""
|
25
37
|
|
26
38
|
trees.each do |tree|
|
@@ -39,6 +51,12 @@ module RBS
|
|
39
51
|
buf
|
40
52
|
end
|
41
53
|
|
54
|
+
# Returns n-th token from the children
|
55
|
+
#
|
56
|
+
# Raises if the value is not a token or nil.
|
57
|
+
#
|
58
|
+
# @rbs index: Integer
|
59
|
+
# @rbs returns token?
|
42
60
|
def nth_token(index)
|
43
61
|
tok = non_trivia_trees[index]
|
44
62
|
case tok
|
@@ -49,6 +67,12 @@ module RBS
|
|
49
67
|
end
|
50
68
|
end
|
51
69
|
|
70
|
+
# Returns n-th token from the children
|
71
|
+
#
|
72
|
+
# Returns `nil` if the value is not a token.
|
73
|
+
#
|
74
|
+
# @rbs index: Integer
|
75
|
+
# @rbs returns token?
|
52
76
|
def nth_token?(index)
|
53
77
|
tok = non_trivia_trees[index]
|
54
78
|
case tok
|
@@ -59,10 +83,22 @@ module RBS
|
|
59
83
|
end
|
60
84
|
end
|
61
85
|
|
86
|
+
# Returns n-th token from the children
|
87
|
+
#
|
88
|
+
# Raises if the value is not token.
|
89
|
+
#
|
90
|
+
# @rbs index: Integer
|
91
|
+
# @rbs returns token
|
62
92
|
def nth_token!(index)
|
63
93
|
nth_token(index) || raise
|
64
94
|
end
|
65
95
|
|
96
|
+
# Returns n-th tree from the children
|
97
|
+
#
|
98
|
+
# Raises if the value is not a tree or nil.
|
99
|
+
#
|
100
|
+
# @rbs index: Integer
|
101
|
+
# @rbs returns Tree?
|
66
102
|
def nth_tree(index)
|
67
103
|
tok = non_trivia_trees[index]
|
68
104
|
case tok
|
@@ -73,6 +109,12 @@ module RBS
|
|
73
109
|
end
|
74
110
|
end
|
75
111
|
|
112
|
+
# Returns n-th tree from the children
|
113
|
+
#
|
114
|
+
# Returns `nil` if the value is not a tree or nil.
|
115
|
+
#
|
116
|
+
# @rbs index: Integer
|
117
|
+
# @rbs returns Tree?
|
76
118
|
def nth_tree?(index)
|
77
119
|
tok = non_trivia_trees[index]
|
78
120
|
case tok
|
@@ -83,11 +125,23 @@ module RBS
|
|
83
125
|
end
|
84
126
|
end
|
85
127
|
|
128
|
+
# Returns n-th tree from the children
|
129
|
+
#
|
130
|
+
# Raises if the value is not a tree.
|
131
|
+
#
|
132
|
+
# @rbs index: Integer
|
133
|
+
# @rbs returns Tree
|
86
134
|
def nth_tree!(index)
|
87
135
|
nth_tree(index) || raise
|
88
136
|
end
|
89
137
|
|
90
138
|
|
139
|
+
# Returns n-th type from the children
|
140
|
+
#
|
141
|
+
# Raises if the value is not a type or nil.
|
142
|
+
#
|
143
|
+
# @rbs index: Integer
|
144
|
+
# @rbs returns Types::t?
|
91
145
|
def nth_type(index)
|
92
146
|
tok = non_trivia_trees[index]
|
93
147
|
case tok
|
@@ -98,6 +152,12 @@ module RBS
|
|
98
152
|
end
|
99
153
|
end
|
100
154
|
|
155
|
+
# Returns n-th type from the children
|
156
|
+
#
|
157
|
+
# Returns `nil` if the value is not a type.
|
158
|
+
#
|
159
|
+
# @rbs index: Integer
|
160
|
+
# @rbs returns Types::t?
|
101
161
|
def nth_type?(index)
|
102
162
|
tok = non_trivia_trees[index]
|
103
163
|
case tok
|
@@ -108,10 +168,22 @@ module RBS
|
|
108
168
|
end
|
109
169
|
end
|
110
170
|
|
171
|
+
# Returns n-th type from the children
|
172
|
+
#
|
173
|
+
# Raises if the value is not a type.
|
174
|
+
#
|
175
|
+
# @rbs index: Integer
|
176
|
+
# @rbs returns Types::t
|
111
177
|
def nth_type!(index)
|
112
178
|
nth_type(index) || raise
|
113
179
|
end
|
114
180
|
|
181
|
+
# Returns n-th method type from the children
|
182
|
+
#
|
183
|
+
# Raises if the value is not a method type or `nil`.
|
184
|
+
#
|
185
|
+
# @rbs index: Integer
|
186
|
+
# @rbs returns MethodType?
|
115
187
|
def nth_method_type(index)
|
116
188
|
tok = non_trivia_trees[index]
|
117
189
|
case tok
|
@@ -122,6 +194,12 @@ module RBS
|
|
122
194
|
end
|
123
195
|
end
|
124
196
|
|
197
|
+
# Returns n-th method type from the children
|
198
|
+
#
|
199
|
+
# Returns `nil` if the value is not a method type.
|
200
|
+
#
|
201
|
+
# @rbs index: Integer
|
202
|
+
# @rbs returns MethodType?
|
125
203
|
def nth_method_type?(index)
|
126
204
|
tok = non_trivia_trees[index]
|
127
205
|
case tok
|
@@ -132,6 +210,12 @@ module RBS
|
|
132
210
|
end
|
133
211
|
end
|
134
212
|
|
213
|
+
# Returns n-th method tree from the children
|
214
|
+
#
|
215
|
+
# Raises if the value is not a method tree.
|
216
|
+
#
|
217
|
+
# @rbs index: Integer
|
218
|
+
# @rbs returns MethodType
|
135
219
|
def nth_method_type!(index)
|
136
220
|
nth_method_type(index) || raise
|
137
221
|
end
|
data/lib/rbs/inline/parser.rb
CHANGED
@@ -86,7 +86,7 @@ module RBS
|
|
86
86
|
current_class_module_decl or raise
|
87
87
|
end
|
88
88
|
|
89
|
-
#:: (AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl) { () -> void } -> void
|
89
|
+
#:: (AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl | AST::Declarations::SingletonClassDecl) { () -> void } -> void
|
90
90
|
#:: (AST::Declarations::ConstantDecl) -> void
|
91
91
|
def push_class_module_decl(decl)
|
92
92
|
if current = current_class_module_decl
|
@@ -152,6 +152,18 @@ module RBS
|
|
152
152
|
load_inner_annotations(node.location.start_line, node.location.end_line, class_decl.members)
|
153
153
|
end
|
154
154
|
|
155
|
+
# @rbs override
|
156
|
+
def visit_singleton_class_node(node)
|
157
|
+
return if ignored_node?(node)
|
158
|
+
|
159
|
+
associated_comment = comments.delete(node.location.start_line - 1)
|
160
|
+
singleton_decl = AST::Declarations::SingletonClassDecl.new(node, associated_comment)
|
161
|
+
|
162
|
+
push_class_module_decl(singleton_decl) do
|
163
|
+
visit node.body
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
155
167
|
# @rbs override
|
156
168
|
def visit_module_node(node)
|
157
169
|
return if ignored_node?(node)
|
data/lib/rbs/inline/version.rb
CHANGED
data/lib/rbs/inline/writer.rb
CHANGED
@@ -1,20 +1,27 @@
|
|
1
|
+
# rbs_inline: enabled
|
2
|
+
|
1
3
|
module RBS
|
2
4
|
module Inline
|
3
5
|
class Writer
|
4
|
-
attr_reader :output
|
5
|
-
attr_reader :writer
|
6
|
+
attr_reader :output #:: String
|
7
|
+
attr_reader :writer #:: RBS::Writer
|
6
8
|
|
9
|
+
# @rbs buffer: String
|
7
10
|
def initialize(buffer = +"")
|
8
11
|
@output = buffer
|
9
12
|
@writer = RBS::Writer.new(out: StringIO.new(buffer))
|
10
13
|
end
|
11
14
|
|
15
|
+
# @rbs uses: Array[AST::Annotations::Use]
|
16
|
+
# @rbs decls: Array[AST::Declarations::t]
|
12
17
|
def self.write(uses, decls)
|
13
18
|
writer = Writer.new()
|
14
19
|
writer.write(uses, decls)
|
15
20
|
writer.output
|
16
21
|
end
|
17
22
|
|
23
|
+
# @rbs lines: Array[String]
|
24
|
+
# @rbs returns void
|
18
25
|
def header(*lines)
|
19
26
|
lines.each do |line|
|
20
27
|
writer.out.puts("# " + line)
|
@@ -22,6 +29,9 @@ module RBS
|
|
22
29
|
writer.out.puts
|
23
30
|
end
|
24
31
|
|
32
|
+
# @rbs uses: Array[AST::Annotations::Use]
|
33
|
+
# @rbs decls: Array[AST::Declarations::t]
|
34
|
+
# @rbs returns void
|
25
35
|
def write(uses, decls)
|
26
36
|
use_dirs = uses.map do |use|
|
27
37
|
RBS::AST::Directives::Use.new(
|
@@ -37,6 +47,8 @@ module RBS
|
|
37
47
|
writer.write(use_dirs + rbs)
|
38
48
|
end
|
39
49
|
|
50
|
+
# @rbs decl: AST::Declarations::t
|
51
|
+
# @rbs returns RBS::AST::Declarations::t?
|
40
52
|
def translate_decl(decl)
|
41
53
|
case decl
|
42
54
|
when AST::Declarations::ClassDecl
|
@@ -48,6 +60,8 @@ module RBS
|
|
48
60
|
end
|
49
61
|
end
|
50
62
|
|
63
|
+
# @rbs decl: AST::Declarations::ClassDecl
|
64
|
+
# @rbs returns RBS::AST::Declarations::Class?
|
51
65
|
def translate_class_decl(decl)
|
52
66
|
return unless decl.class_name
|
53
67
|
|
@@ -59,12 +73,14 @@ module RBS
|
|
59
73
|
|
60
74
|
decl.members.each do |member|
|
61
75
|
if member.is_a?(AST::Members::Base)
|
62
|
-
if rbs_member = translate_member(member)
|
76
|
+
if rbs_member = translate_member(member, decl)
|
63
77
|
members.concat rbs_member
|
64
78
|
end
|
65
79
|
end
|
66
80
|
|
67
|
-
if member.is_a?(AST::Declarations::
|
81
|
+
if member.is_a?(AST::Declarations::SingletonClassDecl)
|
82
|
+
members.concat translate_singleton_decl(member)
|
83
|
+
elsif member.is_a?(AST::Declarations::Base)
|
68
84
|
if rbs = translate_decl(member)
|
69
85
|
members << rbs
|
70
86
|
end
|
@@ -82,6 +98,8 @@ module RBS
|
|
82
98
|
)
|
83
99
|
end
|
84
100
|
|
101
|
+
# @rbs decl: AST::Declarations::ModuleDecl
|
102
|
+
# @rbs returns RBS::AST::Declarations::Module?
|
85
103
|
def translate_module_decl(decl)
|
86
104
|
return unless decl.module_name
|
87
105
|
|
@@ -93,12 +111,14 @@ module RBS
|
|
93
111
|
|
94
112
|
decl.members.each do |member|
|
95
113
|
if member.is_a?(AST::Members::Base)
|
96
|
-
if rbs_member = translate_member(member)
|
114
|
+
if rbs_member = translate_member(member, decl)
|
97
115
|
members.concat rbs_member
|
98
116
|
end
|
99
117
|
end
|
100
118
|
|
101
|
-
if member.is_a?(AST::Declarations::
|
119
|
+
if member.is_a?(AST::Declarations::SingletonClassDecl)
|
120
|
+
members.concat translate_singleton_decl(member)
|
121
|
+
elsif member.is_a?(AST::Declarations::Base)
|
102
122
|
if rbs = translate_decl(member)
|
103
123
|
members << rbs
|
104
124
|
end
|
@@ -118,6 +138,8 @@ module RBS
|
|
118
138
|
)
|
119
139
|
end
|
120
140
|
|
141
|
+
# @rbs decl: AST::Declarations::ConstantDecl
|
142
|
+
# @rbs returns RBS::AST::Declarations::Constant?
|
121
143
|
def translate_constant_decl(decl)
|
122
144
|
return unless decl.constant_name
|
123
145
|
|
@@ -133,18 +155,39 @@ module RBS
|
|
133
155
|
)
|
134
156
|
end
|
135
157
|
|
136
|
-
|
158
|
+
# @rbs decl: AST::Declarations::SingletonClassDecl
|
159
|
+
# @rbs returns Array[RBS::AST::Members::t]
|
160
|
+
def translate_singleton_decl(decl)
|
161
|
+
members = []
|
162
|
+
|
163
|
+
decl.members.each do |member|
|
164
|
+
if member.is_a?(AST::Members::Base)
|
165
|
+
if rbs_member = translate_member(member, decl)
|
166
|
+
members.concat rbs_member
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
members
|
172
|
+
end
|
173
|
+
|
174
|
+
# @rbs member: AST::Members::t
|
175
|
+
# @rbs decl: AST::Declarations::ClassDecl | AST::Declarations::ModuleDecl | AST::Declarations::SingletonClassDecl
|
176
|
+
# @rbs returns Array[RBS::AST::Members::t | RBS::AST::Declarations::t]?
|
177
|
+
def translate_member(member, decl)
|
137
178
|
case member
|
138
179
|
when AST::Members::RubyDef
|
139
180
|
if member.comments
|
140
181
|
comment = RBS::AST::Comment.new(string: member.comments.content, location: nil)
|
141
182
|
end
|
142
183
|
|
184
|
+
kind = method_kind(member, decl)
|
185
|
+
|
143
186
|
if member.override_annotation
|
144
187
|
return [
|
145
188
|
RBS::AST::Members::MethodDefinition.new(
|
146
189
|
name: member.method_name,
|
147
|
-
kind:
|
190
|
+
kind: kind,
|
148
191
|
overloads: [],
|
149
192
|
annotations: [],
|
150
193
|
location: nil,
|
@@ -158,7 +201,7 @@ module RBS
|
|
158
201
|
[
|
159
202
|
RBS::AST::Members::MethodDefinition.new(
|
160
203
|
name: member.method_name,
|
161
|
-
kind:
|
204
|
+
kind: kind,
|
162
205
|
overloads: member.method_overloads,
|
163
206
|
annotations: member.method_annotations,
|
164
207
|
location: nil,
|
@@ -205,6 +248,35 @@ module RBS
|
|
205
248
|
end
|
206
249
|
end
|
207
250
|
end
|
251
|
+
|
252
|
+
private
|
253
|
+
|
254
|
+
# Returns the `kind` of the method definition
|
255
|
+
#
|
256
|
+
# ```rb
|
257
|
+
# def self.foo = () # :singleton
|
258
|
+
# class A
|
259
|
+
# class << self
|
260
|
+
# def bar = () # :singleton
|
261
|
+
# end
|
262
|
+
# end
|
263
|
+
#
|
264
|
+
# def object.foo = () # Not supported (returns :instance)
|
265
|
+
# ```
|
266
|
+
#
|
267
|
+
# @rbs member: AST::Members::RubyDef
|
268
|
+
# @rbs decl: AST::Declarations::ClassDecl | AST::Declarations::ModuleDecl | AST::Declarations::SingletonClassDecl
|
269
|
+
# @rbs returns RBS::AST::Members::MethodDefinition::kind
|
270
|
+
def method_kind(member, decl)
|
271
|
+
return :singleton if decl.is_a?(AST::Declarations::SingletonClassDecl)
|
272
|
+
|
273
|
+
case member.node.receiver
|
274
|
+
when Prism::SelfNode
|
275
|
+
:singleton
|
276
|
+
else
|
277
|
+
:instance
|
278
|
+
end
|
279
|
+
end
|
208
280
|
end
|
209
281
|
end
|
210
282
|
end
|
data/lib/rbs/inline.rb
CHANGED
data/rbs_collection.lock.yaml
CHANGED
@@ -1,10 +1,6 @@
|
|
1
1
|
---
|
2
2
|
path: ".gem_rbs_collection"
|
3
3
|
gems:
|
4
|
-
- name: abbrev
|
5
|
-
version: '0'
|
6
|
-
source:
|
7
|
-
type: stdlib
|
8
4
|
- name: fileutils
|
9
5
|
version: '0'
|
10
6
|
source:
|
@@ -38,7 +34,7 @@ gems:
|
|
38
34
|
source:
|
39
35
|
type: stdlib
|
40
36
|
- name: prism
|
41
|
-
version: 0.
|
37
|
+
version: 0.30.0
|
42
38
|
source:
|
43
39
|
type: rubygems
|
44
40
|
- name: rake
|
@@ -46,11 +42,11 @@ gems:
|
|
46
42
|
source:
|
47
43
|
type: git
|
48
44
|
name: ruby/gem_rbs_collection
|
49
|
-
revision:
|
45
|
+
revision: 4bf1c9687fc24cfbb30f4759653308c816f3a69f
|
50
46
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
51
47
|
repo_dir: gems
|
52
48
|
- name: rbs
|
53
|
-
version: 3.5.
|
49
|
+
version: 3.5.1
|
54
50
|
source:
|
55
51
|
type: rubygems
|
56
52
|
- name: rdoc
|
data/rbs_collection.yaml
CHANGED
@@ -4,6 +4,8 @@ module RBS
|
|
4
4
|
module Inline
|
5
5
|
module AST
|
6
6
|
module Annotations
|
7
|
+
type t = VarType | ReturnType | Use | Inherits | Generic | ModuleSelf | Skip | Assertion | Application | RBSAnnotation | Override | IvarType | Yields | Embedded
|
8
|
+
|
7
9
|
class Base
|
8
10
|
attr_reader source: CommentLines
|
9
11
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# Generated from lib/rbs/inline/ast/comment_lines.rb with RBS::Inline
|
2
|
+
|
1
3
|
module RBS
|
2
4
|
module Inline
|
3
5
|
module AST
|
@@ -12,15 +14,17 @@ module RBS
|
|
12
14
|
#
|
13
15
|
# We want to get a String of comment1 and comment2, `"Hello\nWorld".
|
14
16
|
# And want to translate a location in the string into the location in comment1 and comment2.
|
15
|
-
#
|
16
17
|
class CommentLines
|
17
|
-
attr_reader comments: Array[[Prism::Comment, Integer]]
|
18
|
+
attr_reader comments: Array[[ Prism::Comment, Integer ]]
|
18
19
|
|
19
|
-
|
20
|
+
# @rbs comments: Array[Prism::Comment]
|
21
|
+
def initialize: (Array[Prism::Comment] comments) -> untyped
|
20
22
|
|
21
23
|
def string: () -> String
|
22
24
|
|
23
|
-
|
25
|
+
# @rbs index: Integer
|
26
|
+
# @rbs returns [Prism::Comment, Integer]?
|
27
|
+
def comment_location: (Integer index) -> [ Prism::Comment, Integer ]?
|
24
28
|
end
|
25
29
|
end
|
26
30
|
end
|
@@ -10,7 +10,7 @@ module RBS
|
|
10
10
|
def type_name: (Prism::Node node) -> TypeName?
|
11
11
|
end
|
12
12
|
|
13
|
-
type t = ClassDecl | ModuleDecl | ConstantDecl
|
13
|
+
type t = ClassDecl | ModuleDecl | ConstantDecl | SingletonClassDecl
|
14
14
|
|
15
15
|
interface _WithComments
|
16
16
|
def comments: () -> AnnotationParser::ParsingResult?
|
@@ -110,6 +110,9 @@ module RBS
|
|
110
110
|
|
111
111
|
def start_line: () -> Integer
|
112
112
|
end
|
113
|
+
|
114
|
+
class SingletonClassDecl < ModuleOrClass[Prism::SingletonClassNode]
|
115
|
+
end
|
113
116
|
end
|
114
117
|
end
|
115
118
|
end
|
@@ -4,6 +4,12 @@ module RBS
|
|
4
4
|
module Inline
|
5
5
|
module AST
|
6
6
|
module Members
|
7
|
+
type ruby = RubyDef | RubyAlias | RubyMixin | RubyAttr | RubyPublic | RubyPrivate
|
8
|
+
|
9
|
+
type rbs = RBSIvar | RBSEmbedded
|
10
|
+
|
11
|
+
type t = ruby | rbs
|
12
|
+
|
7
13
|
class Base
|
8
14
|
attr_reader location: Prism::Location
|
9
15
|
|
@@ -44,16 +50,6 @@ module RBS
|
|
44
50
|
|
45
51
|
def method_type_annotations: () -> Array[Annotations::Assertion]
|
46
52
|
|
47
|
-
# Returns the `kind` of the method definition
|
48
|
-
#
|
49
|
-
# [FIXME] It only supports `self` receiver.
|
50
|
-
#
|
51
|
-
# ```rb
|
52
|
-
# def self.foo = () # :singleton
|
53
|
-
# def object.foo = () # Not supported (returns :instance)
|
54
|
-
# ```
|
55
|
-
def method_kind: () -> RBS::AST::Members::MethodDefinition::kind
|
56
|
-
|
57
53
|
def return_type: () -> Types::t?
|
58
54
|
|
59
55
|
def var_type_hash: () -> Hash[Symbol, Types::t?]
|
@@ -84,6 +80,8 @@ module RBS
|
|
84
80
|
end
|
85
81
|
|
86
82
|
class RubyMixin < RubyBase
|
83
|
+
include Declarations::ConstantUtil
|
84
|
+
|
87
85
|
# CallNode that calls `include`, `prepend`, and `extend` method
|
88
86
|
attr_reader node: Prism::CallNode
|
89
87
|
|
@@ -1,97 +1,125 @@
|
|
1
|
+
# Generated from lib/rbs/inline/ast/tree.rb with RBS::Inline
|
2
|
+
|
1
3
|
module RBS
|
2
4
|
module Inline
|
3
5
|
module AST
|
4
6
|
class Tree
|
5
|
-
type token = [Symbol, String]
|
7
|
+
type token = [ Symbol, String ]
|
6
8
|
|
7
9
|
type tree = token | Tree | Types::t | MethodType | nil
|
8
10
|
|
9
11
|
attr_reader trees: Array[tree]
|
10
12
|
|
13
|
+
attr_reader type: Symbol
|
14
|
+
|
11
15
|
# Children but without `tWHITESPACE` tokens
|
12
|
-
#
|
13
16
|
attr_reader non_trivia_trees: Array[tree]
|
14
17
|
|
15
|
-
|
18
|
+
# @rbs type: Symbol
|
19
|
+
def initialize: (Symbol type) -> untyped
|
16
20
|
|
17
|
-
|
21
|
+
# @rbs tok: tree
|
22
|
+
# @rbs returns self
|
23
|
+
def <<: (tree tok) -> self
|
18
24
|
|
19
|
-
|
25
|
+
# Returns the source code associated to the tree
|
26
|
+
def to_s: () -> String
|
20
27
|
|
21
28
|
# Returns n-th token from the children
|
22
29
|
#
|
23
30
|
# Raises if the value is not a token or nil.
|
24
31
|
#
|
25
|
-
|
32
|
+
# @rbs index: Integer
|
33
|
+
# @rbs returns token?
|
34
|
+
def nth_token: (Integer index) -> token?
|
26
35
|
|
27
36
|
# Returns n-th token from the children
|
28
37
|
#
|
29
38
|
# Returns `nil` if the value is not a token.
|
30
39
|
#
|
31
|
-
|
40
|
+
# @rbs index: Integer
|
41
|
+
# @rbs returns token?
|
42
|
+
def nth_token?: (Integer index) -> token?
|
32
43
|
|
33
44
|
# Returns n-th token from the children
|
34
45
|
#
|
35
46
|
# Raises if the value is not token.
|
36
47
|
#
|
37
|
-
|
48
|
+
# @rbs index: Integer
|
49
|
+
# @rbs returns token
|
50
|
+
def nth_token!: (Integer index) -> token
|
38
51
|
|
39
52
|
# Returns n-th tree from the children
|
40
53
|
#
|
41
54
|
# Raises if the value is not a tree or nil.
|
42
55
|
#
|
43
|
-
|
56
|
+
# @rbs index: Integer
|
57
|
+
# @rbs returns Tree?
|
58
|
+
def nth_tree: (Integer index) -> Tree?
|
44
59
|
|
45
60
|
# Returns n-th tree from the children
|
46
61
|
#
|
47
62
|
# Returns `nil` if the value is not a tree or nil.
|
48
63
|
#
|
49
|
-
|
64
|
+
# @rbs index: Integer
|
65
|
+
# @rbs returns Tree?
|
66
|
+
def nth_tree?: (Integer index) -> Tree?
|
50
67
|
|
51
68
|
# Returns n-th tree from the children
|
52
69
|
#
|
53
70
|
# Raises if the value is not a tree.
|
54
71
|
#
|
55
|
-
|
72
|
+
# @rbs index: Integer
|
73
|
+
# @rbs returns Tree
|
74
|
+
def nth_tree!: (Integer index) -> Tree
|
56
75
|
|
57
76
|
# Returns n-th type from the children
|
58
77
|
#
|
59
|
-
# Raises if the value is not a
|
78
|
+
# Raises if the value is not a type or nil.
|
60
79
|
#
|
61
|
-
|
80
|
+
# @rbs index: Integer
|
81
|
+
# @rbs returns Types::t?
|
82
|
+
def nth_type: (Integer index) -> Types::t?
|
62
83
|
|
63
84
|
# Returns n-th type from the children
|
64
85
|
#
|
65
86
|
# Returns `nil` if the value is not a type.
|
66
87
|
#
|
67
|
-
|
88
|
+
# @rbs index: Integer
|
89
|
+
# @rbs returns Types::t?
|
90
|
+
def nth_type?: (Integer index) -> Types::t?
|
68
91
|
|
69
92
|
# Returns n-th type from the children
|
70
93
|
#
|
71
94
|
# Raises if the value is not a type.
|
72
95
|
#
|
73
|
-
|
96
|
+
# @rbs index: Integer
|
97
|
+
# @rbs returns Types::t
|
98
|
+
def nth_type!: (Integer index) -> Types::t
|
74
99
|
|
75
100
|
# Returns n-th method type from the children
|
76
101
|
#
|
77
102
|
# Raises if the value is not a method type or `nil`.
|
78
103
|
#
|
79
|
-
|
104
|
+
# @rbs index: Integer
|
105
|
+
# @rbs returns MethodType?
|
106
|
+
def nth_method_type: (Integer index) -> MethodType?
|
80
107
|
|
81
108
|
# Returns n-th method type from the children
|
82
109
|
#
|
83
110
|
# Returns `nil` if the value is not a method type.
|
84
111
|
#
|
85
|
-
|
112
|
+
# @rbs index: Integer
|
113
|
+
# @rbs returns MethodType?
|
114
|
+
def nth_method_type?: (Integer index) -> MethodType?
|
86
115
|
|
87
116
|
# Returns n-th method tree from the children
|
88
117
|
#
|
89
118
|
# Raises if the value is not a method tree.
|
90
119
|
#
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
def to_s: () -> String
|
120
|
+
# @rbs index: Integer
|
121
|
+
# @rbs returns MethodType
|
122
|
+
def nth_method_type!: (Integer index) -> MethodType
|
95
123
|
end
|
96
124
|
end
|
97
125
|
end
|
@@ -41,9 +41,9 @@ module RBS
|
|
41
41
|
# @rbs returns AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl
|
42
42
|
def current_class_module_decl!: () -> (AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl)
|
43
43
|
|
44
|
-
# :: (AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl) { () -> void } -> void
|
44
|
+
# :: (AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl | AST::Declarations::SingletonClassDecl) { () -> void } -> void
|
45
45
|
# :: (AST::Declarations::ConstantDecl) -> void
|
46
|
-
def push_class_module_decl: (AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl) { () -> void } -> void
|
46
|
+
def push_class_module_decl: (AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl | AST::Declarations::SingletonClassDecl) { () -> void } -> void
|
47
47
|
| (AST::Declarations::ConstantDecl) -> void
|
48
48
|
|
49
49
|
# Load inner declarations and delete them from `#comments` hash
|
@@ -60,6 +60,9 @@ module RBS
|
|
60
60
|
# @rbs override
|
61
61
|
def visit_class_node: ...
|
62
62
|
|
63
|
+
# @rbs override
|
64
|
+
def visit_singleton_class_node: ...
|
65
|
+
|
63
66
|
# @rbs override
|
64
67
|
def visit_module_node: ...
|
65
68
|
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# Generated from lib/rbs/inline/writer.rb with RBS::Inline
|
2
|
+
|
3
|
+
module RBS
|
4
|
+
module Inline
|
5
|
+
class Writer
|
6
|
+
attr_reader output: String
|
7
|
+
|
8
|
+
attr_reader writer: RBS::Writer
|
9
|
+
|
10
|
+
# @rbs buffer: String
|
11
|
+
def initialize: (?String buffer) -> untyped
|
12
|
+
|
13
|
+
# @rbs uses: Array[AST::Annotations::Use]
|
14
|
+
# @rbs decls: Array[AST::Declarations::t]
|
15
|
+
def self.write: (Array[AST::Annotations::Use] uses, Array[AST::Declarations::t] decls) -> untyped
|
16
|
+
|
17
|
+
# @rbs lines: Array[String]
|
18
|
+
# @rbs returns void
|
19
|
+
def header: (*String lines) -> void
|
20
|
+
|
21
|
+
# @rbs uses: Array[AST::Annotations::Use]
|
22
|
+
# @rbs decls: Array[AST::Declarations::t]
|
23
|
+
# @rbs returns void
|
24
|
+
def write: (Array[AST::Annotations::Use] uses, Array[AST::Declarations::t] decls) -> void
|
25
|
+
|
26
|
+
# @rbs decl: AST::Declarations::t
|
27
|
+
# @rbs returns RBS::AST::Declarations::t?
|
28
|
+
def translate_decl: (AST::Declarations::t decl) -> RBS::AST::Declarations::t?
|
29
|
+
|
30
|
+
# @rbs decl: AST::Declarations::ClassDecl
|
31
|
+
# @rbs returns RBS::AST::Declarations::Class?
|
32
|
+
def translate_class_decl: (AST::Declarations::ClassDecl decl) -> RBS::AST::Declarations::Class?
|
33
|
+
|
34
|
+
# @rbs decl: AST::Declarations::ModuleDecl
|
35
|
+
# @rbs returns RBS::AST::Declarations::Module?
|
36
|
+
def translate_module_decl: (AST::Declarations::ModuleDecl decl) -> RBS::AST::Declarations::Module?
|
37
|
+
|
38
|
+
# @rbs decl: AST::Declarations::ConstantDecl
|
39
|
+
# @rbs returns RBS::AST::Declarations::Constant?
|
40
|
+
def translate_constant_decl: (AST::Declarations::ConstantDecl decl) -> RBS::AST::Declarations::Constant?
|
41
|
+
|
42
|
+
# @rbs decl: AST::Declarations::SingletonClassDecl
|
43
|
+
# @rbs returns Array[RBS::AST::Members::t]
|
44
|
+
def translate_singleton_decl: (AST::Declarations::SingletonClassDecl decl) -> Array[RBS::AST::Members::t]
|
45
|
+
|
46
|
+
# @rbs member: AST::Members::t
|
47
|
+
# @rbs decl: AST::Declarations::ClassDecl | AST::Declarations::ModuleDecl | AST::Declarations::SingletonClassDecl
|
48
|
+
# @rbs returns Array[RBS::AST::Members::t | RBS::AST::Declarations::t]?
|
49
|
+
def translate_member: (AST::Members::t member, AST::Declarations::ClassDecl | AST::Declarations::ModuleDecl | AST::Declarations::SingletonClassDecl decl) -> Array[RBS::AST::Members::t | RBS::AST::Declarations::t]?
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
# Returns the `kind` of the method definition
|
54
|
+
#
|
55
|
+
# ```rb
|
56
|
+
# def self.foo = () # :singleton
|
57
|
+
# class A
|
58
|
+
# class << self
|
59
|
+
# def bar = () # :singleton
|
60
|
+
# end
|
61
|
+
# end
|
62
|
+
#
|
63
|
+
# def object.foo = () # Not supported (returns :instance)
|
64
|
+
# ```
|
65
|
+
#
|
66
|
+
# @rbs member: AST::Members::RubyDef
|
67
|
+
# @rbs decl: AST::Declarations::ClassDecl | AST::Declarations::ModuleDecl | AST::Declarations::SingletonClassDecl
|
68
|
+
# @rbs returns RBS::AST::Members::MethodDefinition::kind
|
69
|
+
def method_kind: (AST::Members::RubyDef member, AST::Declarations::ClassDecl | AST::Declarations::ModuleDecl | AST::Declarations::SingletonClassDecl decl) -> RBS::AST::Members::MethodDefinition::kind
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbs-inline
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Soutaro Matsumoto
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prism
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '0.29'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '0.
|
22
|
+
version: '0.31'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,21 +29,21 @@ dependencies:
|
|
29
29
|
version: '0.29'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '0.
|
32
|
+
version: '0.31'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rbs
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: 3.5.0
|
39
|
+
version: 3.5.0
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 3.5.0
|
46
|
+
version: 3.5.0
|
47
47
|
description: Inline RBS type declaration.
|
48
48
|
email:
|
49
49
|
- matsumoto@soutaro.com
|
@@ -73,21 +73,19 @@ files:
|
|
73
73
|
- lib/rbs/inline/writer.rb
|
74
74
|
- rbs_collection.lock.yaml
|
75
75
|
- rbs_collection.yaml
|
76
|
+
- sig/generated/rbs/inline.rbs
|
76
77
|
- sig/generated/rbs/inline/annotation_parser.rbs
|
77
78
|
- sig/generated/rbs/inline/ast/annotations.rbs
|
79
|
+
- sig/generated/rbs/inline/ast/comment_lines.rbs
|
78
80
|
- sig/generated/rbs/inline/ast/declarations.rbs
|
79
81
|
- sig/generated/rbs/inline/ast/members.rbs
|
82
|
+
- sig/generated/rbs/inline/ast/tree.rbs
|
80
83
|
- sig/generated/rbs/inline/cli.rbs
|
84
|
+
- sig/generated/rbs/inline/node_utils.rbs
|
81
85
|
- sig/generated/rbs/inline/parser.rbs
|
82
|
-
- sig/rbs/inline.rbs
|
83
|
-
- sig/rbs/inline/
|
84
|
-
- sig/rbs/inline/ast/comment_lines.rbs
|
86
|
+
- sig/generated/rbs/inline/version.rbs
|
87
|
+
- sig/generated/rbs/inline/writer.rbs
|
85
88
|
- sig/rbs/inline/ast/members.rbs
|
86
|
-
- sig/rbs/inline/ast/tree.rbs
|
87
|
-
- sig/rbs/inline/node_utils.rbs
|
88
|
-
- sig/rbs/inline/writer.rbs
|
89
|
-
- yard-samples/hello.rb
|
90
|
-
- yard-samples/sample1.rb
|
91
89
|
homepage: https://github.com/soutaro/rbs-inline
|
92
90
|
licenses:
|
93
91
|
- MIT
|
File without changes
|
data/sig/rbs/inline/writer.rbs
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
module RBS
|
2
|
-
module Inline
|
3
|
-
class Writer
|
4
|
-
attr_reader output: String
|
5
|
-
|
6
|
-
attr_reader writer: RBS::Writer
|
7
|
-
|
8
|
-
def self.write: (Array[AST::Annotations::Use], Array[AST::Declarations::t]) -> String
|
9
|
-
|
10
|
-
def initialize: (?String) -> void
|
11
|
-
|
12
|
-
def write: (Array[AST::Annotations::Use], Array[AST::Declarations::t]) -> void
|
13
|
-
|
14
|
-
def header: (*String) -> void
|
15
|
-
|
16
|
-
def translate_decl: (AST::Declarations::t) -> RBS::AST::Declarations::t?
|
17
|
-
|
18
|
-
def translate_class_decl: (AST::Declarations::ClassDecl) -> RBS::AST::Declarations::Class?
|
19
|
-
|
20
|
-
def translate_module_decl: (AST::Declarations::ModuleDecl) -> RBS::AST::Declarations::Module?
|
21
|
-
|
22
|
-
def translate_constant_decl: (AST::Declarations::ConstantDecl) -> RBS::AST::Declarations::Constant?
|
23
|
-
|
24
|
-
def translate_member: (AST::Members::t) -> Array[RBS::AST::Members::t | RBS::AST::Declarations::t]?
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
data/sig/rbs/inline.rbs
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
module RBS
|
2
|
-
module Inline
|
3
|
-
type token = [Symbol, String]
|
4
|
-
|
5
|
-
VERSION: String
|
6
|
-
|
7
|
-
module AST
|
8
|
-
module Declarations
|
9
|
-
end
|
10
|
-
|
11
|
-
module Annotations
|
12
|
-
type t = VarType
|
13
|
-
| ReturnType
|
14
|
-
| Use
|
15
|
-
| Inherits
|
16
|
-
| Generic
|
17
|
-
| ModuleSelf
|
18
|
-
| Skip
|
19
|
-
| Assertion
|
20
|
-
| Application
|
21
|
-
| RBSAnnotation
|
22
|
-
| Override
|
23
|
-
| IvarType
|
24
|
-
| Yields
|
25
|
-
| Embedded
|
26
|
-
# | Def
|
27
|
-
# | AttrReader | AttrWriter | AttrAccessor
|
28
|
-
# | Include | Extend | Prepend
|
29
|
-
# | Alias
|
30
|
-
end
|
31
|
-
|
32
|
-
module Members
|
33
|
-
type ruby = RubyDef | RubyAlias | RubyMixin | RubyAttr | RubyPublic | RubyPrivate
|
34
|
-
|
35
|
-
type rbs = RBSIvar | RBSEmbedded
|
36
|
-
|
37
|
-
type t = ruby | rbs
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
data/yard-samples/hello.rb
DELETED
data/yard-samples/sample1.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
module Foo
|
2
|
-
# This is `Foo#foo` method
|
3
|
-
#
|
4
|
-
# @param i [Integer] Size of something
|
5
|
-
# @param j [Symbol,Integer] Something doing meaningful
|
6
|
-
# @return [String?] Returns a string or nil
|
7
|
-
#
|
8
|
-
#
|
9
|
-
# @rbs.method (Integer, String) -> void
|
10
|
-
# | [A] () { () [self: String] -> A } -> A?
|
11
|
-
#
|
12
|
-
def foo(i, j)
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
# @rbs.inline
|
17
|
-
# attr_reader hoge: String
|
18
|
-
# attr_reader name: String?
|
19
|
-
def hoge
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
class Foo
|
24
|
-
# @rbs.inline include Foo[String]
|
25
|
-
end
|
26
|
-
end
|