rbi 0.2.4 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a8f99c70643c9f05b1b7dda28cb2091654c1865b124b01a981fc4a3b6f59275f
4
- data.tar.gz: 9d0b4626b14eced346dd4899cce76996137a84047f4b10142e01d0c35655b450
3
+ metadata.gz: 9a3e133057e9df490de9a0757b30f9b1f19ffa3afbca8f16c55c90e1562bffd7
4
+ data.tar.gz: 835d569c6d20336e4911ef660117cb03af2b5c312e04850058b34402ba94cc34
5
5
  SHA512:
6
- metadata.gz: e02a6ffba6687475814388820be9ae352ec732fa288f2295af75959a0ad7b3032992fa6c17b4cb2b03cdcb26667c48b5038c7c4d04babe25be77e0404ff41880
7
- data.tar.gz: 0dd7254c9b7ac5c204654bd71f1a26b6b8597e2c5b10a199c5e0ab40224d5444d38eaf4c1e1c4a2acb9c75e482464ef55b7419216dc2f02556d8c8b2317e0f84
6
+ metadata.gz: 6c7d07ae2efbeee1310c61d0fdf440408e755d38febc3ed30a194512df118845d36ea9315142b87239ff1f8856f045bc565ac975683a504c05b05792aed9c4f8
7
+ data.tar.gz: 9661b08e169d35d2f947e88de33360bd8ba6d5ee522a2b8beccd77c6589bd6ed1fd560c7a665201c8e8d5869f7a8dda872c58fc0009acf6eda86b3e1da0a1fd9
data/Gemfile CHANGED
@@ -10,7 +10,7 @@ group(:development, :test) do
10
10
  gem("minitest")
11
11
  gem("minitest-reporters")
12
12
  gem("rake", "~> 13.2")
13
- gem("rubocop", "~> 1.70", require: false)
13
+ gem("rubocop", "~> 1.73", require: false)
14
14
  gem("rubocop-shopify", require: false)
15
15
  gem("rubocop-sorbet", require: false)
16
16
  gem("sorbet", ">= 0.5.9204", require: false)
data/lib/rbi/formatter.rb CHANGED
@@ -3,21 +3,10 @@
3
3
 
4
4
  module RBI
5
5
  class Formatter
6
- extend T::Sig
7
-
8
- sig { returns(T.nilable(Integer)) }
6
+ #: Integer?
9
7
  attr_accessor :max_line_length
10
8
 
11
- sig do
12
- params(
13
- add_sig_templates: T::Boolean,
14
- group_nodes: T::Boolean,
15
- max_line_length: T.nilable(Integer),
16
- nest_singleton_methods: T::Boolean,
17
- nest_non_public_members: T::Boolean,
18
- sort_nodes: T::Boolean,
19
- ).void
20
- end
9
+ #: (?add_sig_templates: bool, ?group_nodes: bool, ?max_line_length: Integer?, ?nest_singleton_methods: bool, ?nest_non_public_members: bool, ?sort_nodes: bool) -> void
21
10
  def initialize(
22
11
  add_sig_templates: false,
23
12
  group_nodes: false,
@@ -34,18 +23,18 @@ module RBI
34
23
  @sort_nodes = sort_nodes
35
24
  end
36
25
 
37
- sig { params(file: RBI::File).returns(String) }
26
+ #: (RBI::File file) -> String
38
27
  def print_file(file)
39
28
  format_file(file)
40
29
  file.string(max_line_length: @max_line_length)
41
30
  end
42
31
 
43
- sig { params(file: RBI::File).void }
32
+ #: (RBI::File file) -> void
44
33
  def format_file(file)
45
34
  format_tree(file.root)
46
35
  end
47
36
 
48
- sig { params(tree: RBI::Tree).void }
37
+ #: (RBI::Tree tree) -> void
49
38
  def format_tree(tree)
50
39
  tree.add_sig_templates! if @add_sig_templates
51
40
  tree.nest_singleton_methods! if @nest_singleton_methods
data/lib/rbi/index.rb CHANGED
@@ -3,13 +3,10 @@
3
3
 
4
4
  module RBI
5
5
  class Index < Visitor
6
- extend T::Sig
7
6
  include T::Enumerable
8
7
 
9
8
  class << self
10
- extend T::Sig
11
-
12
- sig { params(node: Node).returns(Index) }
9
+ #: (*Node node) -> Index
13
10
  def index(*node)
14
11
  index = Index.new
15
12
  index.visit_all(node)
@@ -17,28 +14,29 @@ module RBI
17
14
  end
18
15
  end
19
16
 
20
- sig { void }
17
+ #: -> void
21
18
  def initialize
22
19
  super
23
20
  @index = T.let({}, T::Hash[String, T::Array[Node]])
24
21
  end
25
22
 
26
- sig { returns(T::Array[String]) }
23
+ #: -> Array[String]
27
24
  def keys
28
25
  @index.keys
29
26
  end
30
27
 
31
- sig { params(id: String).returns(T::Array[Node]) }
28
+ #: (String id) -> Array[Node]
32
29
  def [](id)
33
30
  @index[id] ||= []
34
31
  end
35
32
 
36
- sig { params(nodes: Node).void }
33
+ #: (*Node nodes) -> void
37
34
  def index(*nodes)
38
35
  nodes.each { |node| visit(node) }
39
36
  end
40
37
 
41
- sig { override.params(node: T.nilable(Node)).void }
38
+ # @override
39
+ #: (Node? node) -> void
42
40
  def visit(node)
43
41
  return unless node
44
42
 
@@ -55,16 +53,14 @@ module RBI
55
53
 
56
54
  private
57
55
 
58
- sig { params(node: T.all(Indexable, Node)).void }
56
+ #: ((Indexable & Node) node) -> void
59
57
  def index_node(node)
60
58
  node.index_ids.each { |id| self[id] << node }
61
59
  end
62
60
  end
63
61
 
64
62
  class Tree
65
- extend T::Sig
66
-
67
- sig { returns(Index) }
63
+ #: -> Index
68
64
  def index
69
65
  Index.index(self)
70
66
  end
@@ -86,140 +82,140 @@ module RBI
86
82
  end
87
83
 
88
84
  class Scope
89
- extend T::Sig
90
85
  include Indexable
91
86
 
92
- sig { override.returns(T::Array[String]) }
87
+ # @override
88
+ #: -> Array[String]
93
89
  def index_ids
94
90
  [fully_qualified_name]
95
91
  end
96
92
  end
97
93
 
98
94
  class Const
99
- extend T::Sig
100
95
  include Indexable
101
96
 
102
- sig { override.returns(T::Array[String]) }
97
+ # @override
98
+ #: -> Array[String]
103
99
  def index_ids
104
100
  [fully_qualified_name]
105
101
  end
106
102
  end
107
103
 
108
104
  class Attr
109
- extend T::Sig
110
105
  include Indexable
111
106
 
112
- sig { override.returns(T::Array[String]) }
107
+ # @override
108
+ #: -> Array[String]
113
109
  def index_ids
114
110
  fully_qualified_names
115
111
  end
116
112
  end
117
113
 
118
114
  class Method
119
- extend T::Sig
120
115
  include Indexable
121
116
 
122
- sig { override.returns(T::Array[String]) }
117
+ # @override
118
+ #: -> Array[String]
123
119
  def index_ids
124
120
  [fully_qualified_name]
125
121
  end
126
122
  end
127
123
 
128
124
  class Include
129
- extend T::Sig
130
125
  include Indexable
131
126
 
132
- sig { override.returns(T::Array[String]) }
127
+ # @override
128
+ #: -> Array[String]
133
129
  def index_ids
134
130
  names.map { |name| "#{parent_scope&.fully_qualified_name}.include(#{name})" }
135
131
  end
136
132
  end
137
133
 
138
134
  class Extend
139
- extend T::Sig
140
135
  include Indexable
141
136
 
142
- sig { override.returns(T::Array[String]) }
137
+ # @override
138
+ #: -> Array[String]
143
139
  def index_ids
144
140
  names.map { |name| "#{parent_scope&.fully_qualified_name}.extend(#{name})" }
145
141
  end
146
142
  end
147
143
 
148
144
  class MixesInClassMethods
149
- extend T::Sig
150
145
  include Indexable
151
146
 
152
- sig { override.returns(T::Array[String]) }
147
+ # @override
148
+ #: -> Array[String]
153
149
  def index_ids
154
150
  names.map { |name| "#{parent_scope&.fully_qualified_name}.mixes_in_class_method(#{name})" }
155
151
  end
156
152
  end
157
153
 
158
154
  class RequiresAncestor
159
- extend T::Sig
160
155
  include Indexable
161
156
 
162
- sig { override.returns(T::Array[String]) }
157
+ # @override
158
+ #: -> Array[String]
163
159
  def index_ids
164
160
  [to_s]
165
161
  end
166
162
  end
167
163
 
168
164
  class Helper
169
- extend T::Sig
170
165
  include Indexable
171
166
 
172
- sig { override.returns(T::Array[String]) }
167
+ # @override
168
+ #: -> Array[String]
173
169
  def index_ids
174
170
  [to_s]
175
171
  end
176
172
  end
177
173
 
178
174
  class TypeMember
179
- extend T::Sig
180
175
  include Indexable
181
176
 
182
- sig { override.returns(T::Array[String]) }
177
+ # @override
178
+ #: -> Array[String]
183
179
  def index_ids
184
180
  [to_s]
185
181
  end
186
182
  end
187
183
 
188
184
  class Send
189
- extend T::Sig
190
185
  include Indexable
191
186
 
192
- sig { override.returns(T::Array[String]) }
187
+ # @override
188
+ #: -> Array[String]
193
189
  def index_ids
194
190
  ["#{parent_scope&.fully_qualified_name}.#{method}"]
195
191
  end
196
192
  end
197
193
 
198
194
  class TStructConst
199
- extend T::Sig
200
195
  include Indexable
201
196
 
202
- sig { override.returns(T::Array[String]) }
197
+ # @override
198
+ #: -> Array[String]
203
199
  def index_ids
204
200
  fully_qualified_names
205
201
  end
206
202
  end
207
203
 
208
204
  class TStructProp
209
- extend T::Sig
210
205
  include Indexable
211
206
 
212
- sig { override.returns(T::Array[String]) }
207
+ # @override
208
+ #: -> Array[String]
213
209
  def index_ids
214
210
  fully_qualified_names
215
211
  end
216
212
  end
217
213
 
218
214
  class TEnumBlock
219
- extend T::Sig
220
215
  include Indexable
221
216
 
222
- sig { override.returns(T::Array[String]) }
217
+ # @override
218
+ #: -> Array[String]
223
219
  def index_ids
224
220
  [to_s]
225
221
  end
data/lib/rbi/loc.rb CHANGED
@@ -3,12 +3,8 @@
3
3
 
4
4
  module RBI
5
5
  class Loc
6
- extend T::Sig
7
-
8
6
  class << self
9
- extend T::Sig
10
-
11
- sig { params(file: String, prism_location: Prism::Location).returns(Loc) }
7
+ #: (String file, Prism::Location prism_location) -> Loc
12
8
  def from_prism(file, prism_location)
13
9
  new(
14
10
  file: file,
@@ -20,21 +16,13 @@ module RBI
20
16
  end
21
17
  end
22
18
 
23
- sig { returns(T.nilable(String)) }
19
+ #: String?
24
20
  attr_reader :file
25
21
 
26
- sig { returns(T.nilable(Integer)) }
22
+ #: Integer?
27
23
  attr_reader :begin_line, :end_line, :begin_column, :end_column
28
24
 
29
- sig do
30
- params(
31
- file: T.nilable(String),
32
- begin_line: T.nilable(Integer),
33
- end_line: T.nilable(Integer),
34
- begin_column: T.nilable(Integer),
35
- end_column: T.nilable(Integer),
36
- ).void
37
- end
25
+ #: (?file: String?, ?begin_line: Integer?, ?end_line: Integer?, ?begin_column: Integer?, ?end_column: Integer?) -> void
38
26
  def initialize(file: nil, begin_line: nil, end_line: nil, begin_column: nil, end_column: nil)
39
27
  @file = file
40
28
  @begin_line = begin_line
@@ -43,7 +31,7 @@ module RBI
43
31
  @end_column = end_column
44
32
  end
45
33
 
46
- sig { returns(String) }
34
+ #: -> String
47
35
  def to_s
48
36
  if end_line && end_column
49
37
  "#{file}:#{begin_line}:#{begin_column}-#{end_line}:#{end_column}"
@@ -52,7 +40,7 @@ module RBI
52
40
  end
53
41
  end
54
42
 
55
- sig { returns(T.nilable(String)) }
43
+ #: -> String?
56
44
  def source
57
45
  file = self.file
58
46
  return unless file