rbi 0.0.14 → 0.0.16
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/Gemfile +1 -1
- data/lib/rbi/parser.rb +19 -10
- data/lib/rbi/rewriters/sort_nodes.rb +3 -1
- data/lib/rbi/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bda85d642d83b25177d24ab2bc789631861302ebc31c862ea40bcd56b034ec68
|
4
|
+
data.tar.gz: 23071846fc0c1edaa681ab3cbb4c2663fc27a00666ef890fcdb404546128307d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7678a81e3e9e66a858c72c5093ebc0fdc0bec4d0e4d08ac662341959f1e82dfa5ef5898a5c166442c718907faef2ad826e979dd7dd98a48c5496969209ffdc8
|
7
|
+
data.tar.gz: c4616ce80159a71fea63a23ce90d6eaf7527fabda7200224ea213aedf0926610a974d1a428c569d0f2bfe0b3efa84fd73b7476bd29312189dd3df2e3ef321c56
|
data/Gemfile
CHANGED
data/lib/rbi/parser.rb
CHANGED
@@ -178,6 +178,7 @@ module RBI
|
|
178
178
|
@scopes_stack = T.let([@tree], T::Array[Tree])
|
179
179
|
@last_node = T.let(nil, T.nilable(::AST::Node))
|
180
180
|
@last_sigs = T.let([], T::Array[RBI::Sig])
|
181
|
+
@last_sigs_comments = T.let([], T::Array[Comment])
|
181
182
|
|
182
183
|
separate_header_comments
|
183
184
|
end
|
@@ -208,11 +209,12 @@ module RBI
|
|
208
209
|
node = parse_send(node)
|
209
210
|
current_scope << node if node
|
210
211
|
when :block
|
211
|
-
|
212
|
-
if
|
213
|
-
@last_sigs <<
|
214
|
-
|
215
|
-
|
212
|
+
rbi_node = parse_block(node)
|
213
|
+
if rbi_node.is_a?(Sig)
|
214
|
+
@last_sigs << rbi_node
|
215
|
+
@last_sigs_comments.concat(node_comments(node))
|
216
|
+
elsif rbi_node
|
217
|
+
current_scope << rbi_node
|
216
218
|
end
|
217
219
|
else
|
218
220
|
visit_all(node.children)
|
@@ -268,7 +270,7 @@ module RBI
|
|
268
270
|
params: node.children[1].children.map { |child| parse_param(child) },
|
269
271
|
sigs: current_sigs,
|
270
272
|
loc: loc,
|
271
|
-
comments: node_comments(node)
|
273
|
+
comments: current_sigs_comments + node_comments(node)
|
272
274
|
)
|
273
275
|
when :defs
|
274
276
|
Method.new(
|
@@ -277,7 +279,7 @@ module RBI
|
|
277
279
|
is_singleton: true,
|
278
280
|
sigs: current_sigs,
|
279
281
|
loc: loc,
|
280
|
-
comments: node_comments(node)
|
282
|
+
comments: current_sigs_comments + node_comments(node)
|
281
283
|
)
|
282
284
|
else
|
283
285
|
raise ParseError.new("Unsupported def node type `#{node.type}`", loc)
|
@@ -324,13 +326,13 @@ module RBI
|
|
324
326
|
case method_name
|
325
327
|
when :attr_reader
|
326
328
|
symbols = node.children[2..-1].map { |child| child.children[0] }
|
327
|
-
AttrReader.new(*symbols, sigs: current_sigs, loc: loc, comments: comments)
|
329
|
+
AttrReader.new(*symbols, sigs: current_sigs, loc: loc, comments: current_sigs_comments + comments)
|
328
330
|
when :attr_writer
|
329
331
|
symbols = node.children[2..-1].map { |child| child.children[0] }
|
330
|
-
AttrWriter.new(*symbols, sigs: current_sigs, loc: loc, comments: comments)
|
332
|
+
AttrWriter.new(*symbols, sigs: current_sigs, loc: loc, comments: current_sigs_comments + comments)
|
331
333
|
when :attr_accessor
|
332
334
|
symbols = node.children[2..-1].map { |child| child.children[0] }
|
333
|
-
AttrAccessor.new(*symbols, sigs: current_sigs, loc: loc, comments: comments)
|
335
|
+
AttrAccessor.new(*symbols, sigs: current_sigs, loc: loc, comments: current_sigs_comments + comments)
|
334
336
|
when :include
|
335
337
|
names = node.children[2..-1].map { |child| parse_expr(child) }
|
336
338
|
Include.new(*names, loc: loc, comments: comments)
|
@@ -533,6 +535,13 @@ module RBI
|
|
533
535
|
sigs
|
534
536
|
end
|
535
537
|
|
538
|
+
sig { returns(T::Array[Comment]) }
|
539
|
+
def current_sigs_comments
|
540
|
+
comments = @last_sigs_comments.dup
|
541
|
+
@last_sigs_comments.clear
|
542
|
+
comments
|
543
|
+
end
|
544
|
+
|
536
545
|
sig { void }
|
537
546
|
def assoc_dangling_comments
|
538
547
|
last_line = T.let(nil, T.nilable(Integer))
|
@@ -81,10 +81,12 @@ module RBI
|
|
81
81
|
sig { params(node: Node).returns(T.nilable(String)) }
|
82
82
|
def node_name(node)
|
83
83
|
case node
|
84
|
-
when Module, Class, Struct, Const, Method, Helper,
|
84
|
+
when Module, Class, Struct, Const, Method, Helper, RequiresAncestor
|
85
85
|
node.name
|
86
86
|
when Attr
|
87
87
|
node.names.first.to_s
|
88
|
+
when TStructField, Mixin
|
89
|
+
nil # we never want to sort these nodes by their name
|
88
90
|
end
|
89
91
|
end
|
90
92
|
|
data/lib/rbi/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre Terrasa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ast
|
@@ -107,14 +107,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 2.
|
110
|
+
version: 2.7.0
|
111
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
112
|
requirements:
|
113
113
|
- - ">="
|
114
114
|
- !ruby/object:Gem::Version
|
115
115
|
version: '0'
|
116
116
|
requirements: []
|
117
|
-
rubygems_version: 3.
|
117
|
+
rubygems_version: 3.3.3
|
118
118
|
signing_key:
|
119
119
|
specification_version: 4
|
120
120
|
summary: RBI generation framework
|