renogen 1.3.1 → 1.4.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 +4 -4
- data/README.md +1 -0
- data/lib/renogen/change_log/writer.rb +13 -1
- data/lib/renogen/config.rb +2 -1
- data/lib/renogen/version.rb +1 -1
- data/spec/lib/renogen/change_log/writer_spec.rb +58 -0
- 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: 882d9056311e5a9baba8dd05bd1ec8c2ada3e5d84d612abbb15940140e07f9ed
|
4
|
+
data.tar.gz: ece836f07e37055b4d84180c7c9522d32814e5c1839e2484e4cf2354acff29f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d2edd0513ee545a1b26e0f78846deb543e38ba0227e96d92b6497435916563684f61df58673650e12634e647bdae4e0cde547ee38052d6f53b5f4ea01a2d76e
|
7
|
+
data.tar.gz: 6395af9fc76aefa6a3f126cc633aeca9eb80330eb6ab95f59be48f04522ead09f13ab3bf70e96eb923d20c7421d26266634aa7b05f5da52d960ef4ee517477c9
|
data/README.md
CHANGED
@@ -138,6 +138,7 @@ with the following keys:
|
|
138
138
|
| `changelog_path` | The directory where the feature note files are stored. | `./change_log` | `./doc/src/changes` |
|
139
139
|
| `default_headings` | The headings/group names that will be printed into a feature note file created by the `new` command. Ignored when there is a rule defined for the given file name. | `%w[Summary Detailed Tasks]` | `%w[Title Description Deployment]` |
|
140
140
|
| `allowed_values` | Allowed values for default headings. See [Allowed Values](#AllowedValues). | `{}` (none) | |
|
141
|
+
| `remove_duplicates` | Remove duplicate items from output release notes. Not applicable when using table formats (e.g`csv` or `markdown_table`). | `false` | |
|
141
142
|
|
142
143
|
<a name="AllowedValues"></a>
|
143
144
|
## Allowed Values
|
@@ -50,10 +50,22 @@ module Renogen
|
|
50
50
|
def output_groups(groups)
|
51
51
|
groups.each do |group, changes|
|
52
52
|
puts formatter.write_group(group)
|
53
|
-
changes.each { |change| output_change(change) }
|
53
|
+
deduped_changes(changes).each { |change| output_change(change) }
|
54
54
|
puts formatter.write_group_end
|
55
55
|
end
|
56
56
|
end
|
57
|
+
|
58
|
+
def deduped_changes(changes)
|
59
|
+
return changes unless config.remove_duplicates
|
60
|
+
|
61
|
+
changes.uniq { |c| c.to_s }
|
62
|
+
end
|
63
|
+
|
64
|
+
private
|
65
|
+
|
66
|
+
def config
|
67
|
+
Config.instance
|
68
|
+
end
|
57
69
|
end
|
58
70
|
end
|
59
71
|
end
|
data/lib/renogen/config.rb
CHANGED
@@ -8,7 +8,7 @@ module Renogen
|
|
8
8
|
class Config
|
9
9
|
include Singleton
|
10
10
|
attr_accessor :single_line_format, :input_source, :output_format, :supported_keys, :changelog_path,
|
11
|
-
:default_headings, :validations
|
11
|
+
:default_headings, :validations, :remove_duplicates
|
12
12
|
|
13
13
|
def initialize
|
14
14
|
config_file = load_yaml_config
|
@@ -19,6 +19,7 @@ module Renogen
|
|
19
19
|
self.changelog_path = config_file['changelog_path'] || './change_log'
|
20
20
|
self.default_headings = config_file['default_headings'] || %w(Summary Detailed Tasks)
|
21
21
|
self.validations = config_file['allowed_values']
|
22
|
+
self.remove_duplicates = config_file['remove_duplicates'] || false
|
22
23
|
end
|
23
24
|
|
24
25
|
# Renogen configuration extension
|
data/lib/renogen/version.rb
CHANGED
@@ -36,6 +36,9 @@ describe Renogen::ChangeLog::Writer do
|
|
36
36
|
expected_output.split("\n").each do |line|
|
37
37
|
expect($stdout.gets.strip).to eq(line)
|
38
38
|
end
|
39
|
+
|
40
|
+
# read remaining output and check we reached the end
|
41
|
+
expect($stdout.read.gsub("\n", '')).to be_empty
|
39
42
|
end
|
40
43
|
end
|
41
44
|
|
@@ -143,5 +146,60 @@ describe Renogen::ChangeLog::Writer do
|
|
143
146
|
|
144
147
|
it_behaves_like 'a valid output format'
|
145
148
|
end
|
149
|
+
|
150
|
+
describe 'duplicates' do
|
151
|
+
let(:formatter) { Renogen::Formatters::PlainText.new }
|
152
|
+
let(:changes_with_duplicates) do
|
153
|
+
[
|
154
|
+
renogen_change(1, 'Group 1', 'This is a Group 1 change'),
|
155
|
+
renogen_change(1, 'Group 2', 'This is a Group 2 change'),
|
156
|
+
renogen_change(2, 'Group 1', 'This is a Group 1 change'),
|
157
|
+
renogen_change(2, 'Group 2', 'This is a Group 2 change')
|
158
|
+
]
|
159
|
+
end
|
160
|
+
|
161
|
+
context 'when remove duplicates is false in config (default)' do
|
162
|
+
it_behaves_like 'a valid output format' do
|
163
|
+
let(:changes) { changes_with_duplicates }
|
164
|
+
|
165
|
+
let(:expected_output) do
|
166
|
+
<<~EOS
|
167
|
+
test (2020-07-08)
|
168
|
+
|
169
|
+
Group 1
|
170
|
+
- This is a Group 1 change
|
171
|
+
- This is a Group 1 change
|
172
|
+
|
173
|
+
Group 2
|
174
|
+
- This is a Group 2 change
|
175
|
+
- This is a Group 2 change
|
176
|
+
EOS
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
context 'when remove duplicates is true in config' do
|
182
|
+
before do
|
183
|
+
allow(Renogen::Config.instance)
|
184
|
+
.to receive(:remove_duplicates).and_return(true)
|
185
|
+
end
|
186
|
+
|
187
|
+
it_behaves_like 'a valid output format' do
|
188
|
+
let(:changes) { changes_with_duplicates }
|
189
|
+
|
190
|
+
let(:expected_output) do
|
191
|
+
<<~EOS
|
192
|
+
test (2020-07-08)
|
193
|
+
|
194
|
+
Group 1
|
195
|
+
- This is a Group 1 change
|
196
|
+
|
197
|
+
Group 2
|
198
|
+
- This is a Group 2 change
|
199
|
+
EOS
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
146
204
|
end
|
147
205
|
end
|