rbi 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbi/parser.rb +7 -1
- data/lib/rbi/printer.rb +28 -9
- data/lib/rbi/version.rb +1 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb13c49bd19a95d439f7249770add05929979892daa3ba9c55de8241a596a8d2
|
4
|
+
data.tar.gz: bc772396cd7997b9443782775854993cb9e4b0d1241415020c258aa8f49186b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9990c9fd5fa2bc0925f06ce07f02079165f431e9535874d0204b0e2afbc6ad1919578e3ecd13a33b69ef575ec84911fadb34d3a71df917437fd46182bb07aa6e
|
7
|
+
data.tar.gz: 2818b3db38a03e58eb8bd6dd160ca50fac237242192620a6910dd73c451a3ee90e5dd483502e721870329724f0b4237899225d3c4e5f429b37abd667e0183c87
|
data/lib/rbi/parser.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
require "
|
4
|
+
require "parser"
|
5
5
|
|
6
6
|
module RBI
|
7
7
|
class ParseError < StandardError
|
@@ -27,6 +27,12 @@ module RBI
|
|
27
27
|
::Parser::Builders::Default.emit_index = true
|
28
28
|
::Parser::Builders::Default.emit_arg_inside_procarg0 = true
|
29
29
|
|
30
|
+
sig { void }
|
31
|
+
def initialize
|
32
|
+
# Delay load unparser and only if it has not been loaded already.
|
33
|
+
require "unparser" unless defined?(::Unparser)
|
34
|
+
end
|
35
|
+
|
30
36
|
sig { params(string: String).returns(Tree) }
|
31
37
|
def self.parse_string(string)
|
32
38
|
Parser.new.parse_string(string)
|
data/lib/rbi/printer.rb
CHANGED
@@ -97,7 +97,7 @@ module RBI
|
|
97
97
|
v.visit_all(comments)
|
98
98
|
end
|
99
99
|
|
100
|
-
unless root.empty?
|
100
|
+
unless root.empty? && root.comments.empty?
|
101
101
|
v.printn if strictness || !comments.empty?
|
102
102
|
v.visit(root)
|
103
103
|
end
|
@@ -156,10 +156,18 @@ module RBI
|
|
156
156
|
|
157
157
|
sig { override.params(v: Printer).void }
|
158
158
|
def accept_printer(v)
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
159
|
+
lines = text.lines
|
160
|
+
|
161
|
+
if lines.empty?
|
162
|
+
v.printl("#")
|
163
|
+
end
|
164
|
+
|
165
|
+
lines.each do |line|
|
166
|
+
text = line.strip
|
167
|
+
v.printt("#")
|
168
|
+
v.print(" #{text}") unless text.empty?
|
169
|
+
v.printn
|
170
|
+
end
|
163
171
|
end
|
164
172
|
end
|
165
173
|
|
@@ -366,13 +374,14 @@ module RBI
|
|
366
374
|
v.printt
|
367
375
|
v.visit(param)
|
368
376
|
v.print(",") if pindex < params.size - 1
|
369
|
-
|
377
|
+
|
378
|
+
param.comments_lines.each_with_index do |comment, cindex|
|
370
379
|
if cindex > 0
|
371
380
|
param.print_comment_leading_space(v, last: pindex == params.size - 1)
|
372
381
|
else
|
373
382
|
v.print(" ")
|
374
383
|
end
|
375
|
-
v.print("# #{comment
|
384
|
+
v.print("# #{comment}")
|
376
385
|
end
|
377
386
|
v.printn
|
378
387
|
end
|
@@ -410,6 +419,11 @@ module RBI
|
|
410
419
|
v.print(" " * (name.size + 1))
|
411
420
|
v.print(" ") unless last
|
412
421
|
end
|
422
|
+
|
423
|
+
sig { returns(T::Array[String]) }
|
424
|
+
def comments_lines
|
425
|
+
comments.flat_map { |comment| comment.text.lines.map(&:strip) }
|
426
|
+
end
|
413
427
|
end
|
414
428
|
|
415
429
|
class OptParam
|
@@ -576,13 +590,13 @@ module RBI
|
|
576
590
|
v.printt
|
577
591
|
v.visit(param)
|
578
592
|
v.print(",") if pindex < params.size - 1
|
579
|
-
param.
|
593
|
+
param.comments_lines.each_with_index do |comment, cindex|
|
580
594
|
if cindex == 0
|
581
595
|
v.print(" ")
|
582
596
|
else
|
583
597
|
param.print_comment_leading_space(v, last: pindex == params.size - 1)
|
584
598
|
end
|
585
|
-
v.print("# #{comment
|
599
|
+
v.print("# #{comment}")
|
586
600
|
end
|
587
601
|
v.printn
|
588
602
|
end
|
@@ -633,6 +647,11 @@ module RBI
|
|
633
647
|
v.print(" " * (name.size + type.size + 3))
|
634
648
|
v.print(" ") unless last
|
635
649
|
end
|
650
|
+
|
651
|
+
sig { returns(T::Array[String]) }
|
652
|
+
def comments_lines
|
653
|
+
comments.flat_map { |comment| comment.text.lines.map(&:strip) }
|
654
|
+
end
|
636
655
|
end
|
637
656
|
|
638
657
|
class TStructField
|
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.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre Terrasa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ast
|