parlour 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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