parlour 0.2.0 → 0.2.1
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 +16 -0
- data/lib/parlour/rbi_generator/namespace.rb +36 -0
- data/lib/parlour/rbi_generator/rbi_object.rb +2 -1
- data/lib/parlour/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d1c171ba47259b6a4ed2a996851cefddaf27fc263dee7cf36e5402dd0825ed7
|
4
|
+
data.tar.gz: e65db27b829a76f965aa09b01c7725496efef8aa4e7000618c7df6e058a91c81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a59f7d8291d718af02b7bf8885deae8891149ad73f39ba5ff6b92cd19df9738c5e49b7202ab49509a7ac1a719381b88bf67a80df12756a8cf80af939b7e18166
|
7
|
+
data.tar.gz: 357c2364280f8656372294799e879384019ef706c0b7bccf67b0491c7ea24d018a7af557a0791627810c7956770979708ee6f7b91f67771e4e1a242738695a73
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,22 @@ 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
|
+
## [0.2.1] - 2019-07-08
|
7
|
+
### Added
|
8
|
+
- Added the `add_comment_to_next_child` method to namespaces.
|
9
|
+
|
10
|
+
## [0.2.0] - 2019-07-07
|
11
|
+
### Added
|
12
|
+
- Add support for plugins using the `parlour` command-line tool.
|
13
|
+
- Comments can now be added using `add_comment`.
|
14
|
+
- Attribute readers, writers and accessors can now be created, using the `create_attr_...` methods.
|
15
|
+
- All objects are now YARD documented.
|
16
|
+
|
17
|
+
### Changed
|
18
|
+
- The `RbiObject`, which is core to Parlour's internals, is now an abstract class rather than an interface.
|
19
|
+
- `ConflictResolver` now recurses to child namespaces.
|
20
|
+
- `create_method` now takes an initializer block like other `create_` methods.
|
21
|
+
|
6
22
|
## [0.1.1] - 2019-07-05
|
7
23
|
### Added
|
8
24
|
- Initial release!
|
@@ -43,6 +43,7 @@ module Parlour
|
|
43
43
|
@extends = []
|
44
44
|
@includes = []
|
45
45
|
@constants = []
|
46
|
+
@next_comments = []
|
46
47
|
yield_self(&block)
|
47
48
|
end
|
48
49
|
|
@@ -69,6 +70,27 @@ module Parlour
|
|
69
70
|
# @return [Array<(String, String)>]
|
70
71
|
attr_reader :constants
|
71
72
|
|
73
|
+
sig { params(comment: T.any(String, T::Array[String])).void }
|
74
|
+
# Adds one or more comments to the next child RBI object to be created.
|
75
|
+
#
|
76
|
+
# @example Creating a module with a comment.
|
77
|
+
# namespace.add_comment_to_next_child('This is a module')
|
78
|
+
# namespace.create_module('M')
|
79
|
+
#
|
80
|
+
# @example Creating a class with a multi-line comment.
|
81
|
+
# namespace.add_comment_to_next_child(['This is a multi-line comment!', 'It can be as long as you want!'])
|
82
|
+
# namespace.create_class('C')
|
83
|
+
#
|
84
|
+
# @param comment [String, Array<String>] The new comment(s).
|
85
|
+
# @return [void]
|
86
|
+
def add_comment_to_next_child(comment)
|
87
|
+
if comment.is_a?(String)
|
88
|
+
@next_comments << comment
|
89
|
+
elsif comment.is_a?(Array)
|
90
|
+
@next_comments.concat(comment)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
72
94
|
sig do
|
73
95
|
params(
|
74
96
|
name: String,
|
@@ -95,6 +117,7 @@ module Parlour
|
|
95
117
|
# @return [ClassNamespace]
|
96
118
|
def create_class(name, superclass: nil, abstract: false, &block)
|
97
119
|
new_class = ClassNamespace.new(generator, name, superclass, abstract, &block)
|
120
|
+
move_next_comments(new_class)
|
98
121
|
children << new_class
|
99
122
|
new_class
|
100
123
|
end
|
@@ -123,6 +146,7 @@ module Parlour
|
|
123
146
|
# @return [ModuleNamespace]
|
124
147
|
def create_module(name, interface: false, &block)
|
125
148
|
new_module = ModuleNamespace.new(generator, name, interface, &block)
|
149
|
+
move_next_comments(new_module)
|
126
150
|
children << new_module
|
127
151
|
new_module
|
128
152
|
end
|
@@ -171,6 +195,7 @@ module Parlour
|
|
171
195
|
class_method: class_method,
|
172
196
|
&block
|
173
197
|
)
|
198
|
+
move_next_comments(new_method)
|
174
199
|
children << new_method
|
175
200
|
new_method
|
176
201
|
end
|
@@ -207,6 +232,7 @@ module Parlour
|
|
207
232
|
type,
|
208
233
|
&block
|
209
234
|
)
|
235
|
+
move_next_comments(new_attribute)
|
210
236
|
children << new_attribute
|
211
237
|
new_attribute
|
212
238
|
end
|
@@ -371,6 +397,16 @@ module Parlour
|
|
371
397
|
|
372
398
|
result
|
373
399
|
end
|
400
|
+
|
401
|
+
sig { params(object: RbiObject).void }
|
402
|
+
# Copies the comments added with {#add_comment_to_next_child} into the
|
403
|
+
# given object, and clears the list of pending comments.
|
404
|
+
# @param object [RbiObject] The object to move the comments into.
|
405
|
+
# @return [void]
|
406
|
+
def move_next_comments(object)
|
407
|
+
object.comments.prepend(*@next_comments)
|
408
|
+
@next_comments.clear
|
409
|
+
end
|
374
410
|
end
|
375
411
|
end
|
376
412
|
end
|
@@ -48,7 +48,8 @@ module Parlour
|
|
48
48
|
attr_reader :comments
|
49
49
|
|
50
50
|
sig { params(comment: T.any(String, T::Array[String])).void }
|
51
|
-
# Adds one or more comments to this RBI object.
|
51
|
+
# Adds one or more comments to this RBI object. Comments always go above
|
52
|
+
# the definition for this object, not in the definition's body.
|
52
53
|
#
|
53
54
|
# @example Creating a module with a comment.
|
54
55
|
# namespace.create_module('M') do |m|
|
data/lib/parlour/version.rb
CHANGED