parlour 5.0.0.beta.3 → 5.0.0.beta.4
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/CHANGELOG.md +5 -0
- data/lib/parlour/conversion/rbi_to_rbs.rb +6 -0
- data/lib/parlour/rbi_generator/type_alias.rb +1 -1
- data/lib/parlour/type_parser.rb +22 -5
- data/lib/parlour/types.rb +6 -6
- data/lib/parlour/version.rb +1 -1
- data/rbi/parlour.rbi +1 -1
- 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: 28a746eeb5c6322d0dfbfc53336bde66a65a35462f8e7685098aadd8720d3ade
|
4
|
+
data.tar.gz: 5cd5e9fe8cd248e1b7685134b3116f04c28e481d30ed6ac01b77b6f82aa7236b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51d1cdde17b3d84ae927343e7627efc2ef832440907b8f3ae40ec3cf20edcd20a8f7f76f3991933251a7542ccc7b6ac1269a98a268603e34eaaf043322e05625
|
7
|
+
data.tar.gz: d84ae4f6260e82de62dafdc67a7715c9cd74f01a68bbce8f5e89d0aa1f00509bd4a5230ec0fa7c850898f57936e29aee07c8f607935dbc1c784f4212ff709246
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,11 @@ All notable changes to this project will be documented in this file.
|
|
3
3
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
5
5
|
|
6
|
+
## [5.0.0.beta.4] - 2020-09-22
|
7
|
+
### Added
|
8
|
+
- Added support for parsing type aliases from RBI
|
9
|
+
- Added conversion from RBI to RBS type aliases
|
10
|
+
|
6
11
|
## [5.0.0.beta.3] - 2020-09-15
|
7
12
|
### Changed
|
8
13
|
- Changed the RBS keyword warning to come from "RBS generation" rather than
|
@@ -121,6 +121,12 @@ module Parlour
|
|
121
121
|
type: node.value,
|
122
122
|
).add_comments(node.comments)
|
123
123
|
|
124
|
+
when RbiGenerator::TypeAlias
|
125
|
+
new_parent.create_type_alias(
|
126
|
+
node.name,
|
127
|
+
type: node.type,
|
128
|
+
).add_comments(node.comments)
|
129
|
+
|
124
130
|
when RbiGenerator::Extend
|
125
131
|
new_parent.create_extend(node.name).add_comments(node.comments)
|
126
132
|
|
data/lib/parlour/type_parser.rb
CHANGED
@@ -345,11 +345,28 @@ module Parlour
|
|
345
345
|
end.flatten
|
346
346
|
when :casgn
|
347
347
|
_, name, body = *node
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
348
|
+
|
349
|
+
# Determine whether this is a constant or a type alias
|
350
|
+
# A type alias looks like:
|
351
|
+
# (block (send (const nil :T) :type_alias) (args) (type_to_alias))
|
352
|
+
if body.type == :block &&
|
353
|
+
body.to_a[0].type == :send &&
|
354
|
+
body.to_a[0].to_a[0].type == :const &&
|
355
|
+
body.to_a[0].to_a[0].to_a == [nil, :T] &&
|
356
|
+
body.to_a[0].to_a[1] == :type_alias
|
357
|
+
|
358
|
+
[Parlour::RbiGenerator::TypeAlias.new(
|
359
|
+
generator,
|
360
|
+
name: T.must(name).to_s,
|
361
|
+
type: T.must(node_to_s(body.to_a[2])),
|
362
|
+
)]
|
363
|
+
else
|
364
|
+
[Parlour::RbiGenerator::Constant.new(
|
365
|
+
generator,
|
366
|
+
name: T.must(name).to_s,
|
367
|
+
value: T.must(node_to_s(body)),
|
368
|
+
)]
|
369
|
+
end
|
353
370
|
else
|
354
371
|
if unknown_node_errors
|
355
372
|
parse_err "don't understand node type #{node.type}", node
|
data/lib/parlour/types.rb
CHANGED
@@ -230,7 +230,7 @@ module Parlour
|
|
230
230
|
class Array < SingleElementCollection
|
231
231
|
sig { override.returns(String) }
|
232
232
|
def collection_name
|
233
|
-
'Array'
|
233
|
+
'::Array'
|
234
234
|
end
|
235
235
|
|
236
236
|
sig { params(other: Object).returns(T::Boolean) }
|
@@ -243,7 +243,7 @@ module Parlour
|
|
243
243
|
class Set < SingleElementCollection
|
244
244
|
sig { override.returns(String) }
|
245
245
|
def collection_name
|
246
|
-
'Set'
|
246
|
+
'::Set'
|
247
247
|
end
|
248
248
|
|
249
249
|
sig { params(other: Object).returns(T::Boolean) }
|
@@ -256,7 +256,7 @@ module Parlour
|
|
256
256
|
class Range < SingleElementCollection
|
257
257
|
sig { override.returns(String) }
|
258
258
|
def collection_name
|
259
|
-
'Range'
|
259
|
+
'::Range'
|
260
260
|
end
|
261
261
|
|
262
262
|
sig { params(other: Object).returns(T::Boolean) }
|
@@ -269,7 +269,7 @@ module Parlour
|
|
269
269
|
class Enumerable < SingleElementCollection
|
270
270
|
sig { override.returns(String) }
|
271
271
|
def collection_name
|
272
|
-
'Enumerable'
|
272
|
+
'::Enumerable'
|
273
273
|
end
|
274
274
|
|
275
275
|
sig { params(other: Object).returns(T::Boolean) }
|
@@ -282,7 +282,7 @@ module Parlour
|
|
282
282
|
class Enumerator < SingleElementCollection
|
283
283
|
sig { override.returns(String) }
|
284
284
|
def collection_name
|
285
|
-
'Enumerator'
|
285
|
+
'::Enumerator'
|
286
286
|
end
|
287
287
|
|
288
288
|
sig { params(other: Object).returns(T::Boolean) }
|
@@ -317,7 +317,7 @@ module Parlour
|
|
317
317
|
|
318
318
|
sig { override.returns(String) }
|
319
319
|
def generate_rbs
|
320
|
-
"Hash[#{key.generate_rbs}, #{value.generate_rbs}]"
|
320
|
+
"::Hash[#{key.generate_rbs}, #{value.generate_rbs}]"
|
321
321
|
end
|
322
322
|
|
323
323
|
sig { override.returns(String) }
|
data/lib/parlour/version.rb
CHANGED
data/rbi/parlour.rbi
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parlour
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.0.beta.
|
4
|
+
version: 5.0.0.beta.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Christiansen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-09-
|
11
|
+
date: 2020-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sorbet-runtime
|