yaml-sort 1.0.0 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b17a9fdbfc9612b6b2bb1a75583e9a31c269fbba87c088afc0fc6ffe16e44aa1
4
- data.tar.gz: edde89f395f92d321c95e4899c6744bba2b005b93aa4399c00d090c4511a27ac
3
+ metadata.gz: e8eee6a8ad9b5761ffc9e9ef08f6025c66e3c661acfef15f197b3d28f67e3253
4
+ data.tar.gz: 108d4ea68106e308eafbe6bce7cd372556ebde65010ade2b1b742e82f43f29d5
5
5
  SHA512:
6
- metadata.gz: a3a763b77216fad635aec8707d388d1bc1c8afb1ccd2217922b17c6179bc59d6c1998459c3e131375d1fed6e743d94d2d39dc2f080bd4adf45b42a73aff56b94
7
- data.tar.gz: 11573f243771dcd0ec7c52748a9927c358472860e0a52e287f8764c960e539aa76b6df6ee6f2fff724eb9f5e780c2b62d7921b65b1d0f9aaf696d388e618b6f4
6
+ metadata.gz: 234b85bdf4dd61f2bfa5a8568c59979ad12c374af47daed35d0a7248b0e1b8f96aed17bc77ba17ca2d8a7233d55803c9d6c5a4fcfa962394d6183ff61a3e9e21
7
+ data.tar.gz: 525ca02351c0f79d86a6e367341b4c8750b294400ffd96a7d4ad00dfced59de0e16060b29a5ceb0b0dcb40d95db9f8d1f1b8fcaabbfb1dfb6c3a58fa470ad27d
data/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
- ## [Unreleased]
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
4
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
2
5
 
3
- ## [0.1.0] - 2022-04-09
6
+ ## [2.0.1](https://github.com/smortex/yaml-sort/tree/2.0.1) (2022-06-01)
4
7
 
5
- - Initial release
8
+ [Full Changelog](https://github.com/smortex/yaml-sort/compare/v2.0.0...2.0.1)
9
+
10
+ **Fixed bugs:**
11
+
12
+ - Fix parsing of keys with spaces [\#8](https://github.com/smortex/yaml-sort/pull/8) ([smortex](https://github.com/smortex))
13
+
14
+ ## [v2.0.0](https://github.com/smortex/yaml-sort/tree/v2.0.0) (2022-04-25)
15
+
16
+ [Full Changelog](https://github.com/smortex/yaml-sort/compare/v1.0.1...v2.0.0)
17
+
18
+ **Merged pull requests:**
19
+
20
+ - Rework list sorting [\#7](https://github.com/smortex/yaml-sort/pull/7) ([smortex](https://github.com/smortex))
21
+
22
+ ## [v1.0.1](https://github.com/smortex/yaml-sort/tree/v1.0.1) (2022-04-24)
23
+
24
+ [Full Changelog](https://github.com/smortex/yaml-sort/compare/v1.0.0...v1.0.1)
25
+
26
+ **Fixed bugs:**
27
+
28
+ - Fix processing of some YAML files without a `START_OF_DOCUMENT` [\#6](https://github.com/smortex/yaml-sort/pull/6) ([smortex](https://github.com/smortex))
29
+ - Fix error reporting [\#5](https://github.com/smortex/yaml-sort/pull/5) ([smortex](https://github.com/smortex))
30
+ - Fix display of filename on parse errors [\#1](https://github.com/smortex/yaml-sort/pull/1) ([smortex](https://github.com/smortex))
31
+
32
+
33
+
34
+ \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
data/Rakefile CHANGED
@@ -21,3 +21,19 @@ end
21
21
 
22
22
  task spec: ["lib/yaml/sort/parser.rb"]
23
23
  task cucumber: ["lib/yaml/sort/parser.rb"]
24
+
25
+ require "github_changelog_generator/task"
26
+ GitHubChangelogGenerator::RakeTask.new :changelog do |config|
27
+ config.future_release = Yaml::Sort::VERSION
28
+ config.header = <<~HEADER.chomp
29
+ # Changelog
30
+ All notable changes to this project will be documented in this file.
31
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
32
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
33
+ HEADER
34
+ config.exclude_labels = %w[duplicate question invalid wontfix wont-fix skip-changelog ignore]
35
+ config.user = "smortex"
36
+ config.project = "yaml-sort"
37
+ config.since_tag = "v1.0.0"
38
+ config.issues = false
39
+ end
data/lib/yaml/sort/cli.rb CHANGED
@@ -52,8 +52,11 @@ module Yaml
52
52
 
53
53
  def process_document(filename, options)
54
54
  yaml = read_document(filename)
55
- sorted_yaml = sort_yaml(yaml)
55
+ sorted_yaml = sort_yaml(yaml, filename)
56
56
  write_output(yaml, sorted_yaml, filename, options)
57
+ rescue Racc::ParseError => e
58
+ warn(e.message)
59
+ @exit_code = 1
57
60
  end
58
61
 
59
62
  def read_document(filename)
@@ -64,8 +67,8 @@ module Yaml
64
67
  end
65
68
  end
66
69
 
67
- def sort_yaml(yaml)
68
- document = @parser.parse(yaml)
70
+ def sort_yaml(yaml, filename)
71
+ document = @parser.parse(yaml, filename: filename)
69
72
  document = document.sort
70
73
  "---\n#{document}\n"
71
74
  end
@@ -20,13 +20,15 @@ module Yaml
20
20
  dict
21
21
  end
22
22
 
23
- def to_s
23
+ def to_s(skip_first_indent: false)
24
+ n = -1
24
25
  super + items.map do |k, v|
26
+ n += 1
25
27
  case v
26
28
  when List, Dictionary
27
- "#{k}\n#{v}"
29
+ "#{k.to_s(skip_first_indent: skip_first_indent && n.zero?)}\n#{v}"
28
30
  when Scalar
29
- "#{k} #{v}"
31
+ "#{k.to_s(skip_first_indent: skip_first_indent && n.zero?)} #{v}"
30
32
  end
31
33
  end.join("\n")
32
34
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "scalar"
4
+
5
+ module Yaml
6
+ module Sort
7
+ class Item < Scalar
8
+ def to_s(*)
9
+ comments + value
10
+ end
11
+ end
12
+ end
13
+ end
@@ -22,15 +22,13 @@ module Yaml
22
22
 
23
23
  def to_s
24
24
  super + items.map do |item|
25
- "#{item[0]}#{item[1]}"
25
+ "#{item[0]}#{item[1].to_s(skip_first_indent: true)}"
26
26
  end.join("\n")
27
27
  end
28
28
 
29
29
  def sort
30
- List.new(items.sort { |a, b| a[1] <=> b[1] })
31
- rescue ArgumentError
32
- # Non-comparable items
33
- self
30
+ # TODO: Add an option to sort scalar values
31
+ List.new(items.map { |i| [i[0], i[1].sort] })
34
32
  end
35
33
  end
36
34
  end
@@ -13,9 +13,11 @@ module Yaml
13
13
  module Sort
14
14
  class Parser < Racc::Parser
15
15
 
16
- module_eval(<<'...end parser.ra/module_eval...', 'parser.ra', 34)
16
+ module_eval(<<'...end parser.ra/module_eval...', 'parser.ra', 33)
17
17
 
18
18
  def scan(text)
19
+ text = "---\n#{text}" unless text.start_with?("---\n")
20
+
19
21
  scan_value = false
20
22
 
21
23
  @lines = text.lines
@@ -29,7 +31,7 @@ def scan(text)
29
31
  until s.eos?
30
32
  if scan_value
31
33
  unless s.match?(/[[:space:]]*\n/)
32
- @position += s.matched_size if s.scan(/\s*/)
34
+ @position += s.matched_size if s.scan(/[[:blank:]]*/)
33
35
  case
34
36
  when s.scan(/[|>][-+]?(?=\n)/)
35
37
  match = s.matched
@@ -68,25 +70,41 @@ def scan(text)
68
70
  scan_value = false
69
71
  else
70
72
  case
71
- when s.scan(/---/) then emit(:START_OF_DOCUMENT, s.matched)
72
- when s.scan(/(\n\s*)+(?=\n)/) then # Ignore empty lines
73
- when s.scan(/\n?\s*#.*/) then emit(:COMMENT, s.matched)
74
- when s.scan(/\n?(\s*-) */) then emit("-", s.matched, indent: s.captures[0])
75
- when s.scan(/\n?\s*\.\.\./) then emit(:END_OF_DOCUMENT, s.matched)
76
- when s.scan(/\n?(\s*)([^[[:space:]]\n]+):(?=[ \n])/)
73
+ when s.scan(/---/) then emit(:START_OF_DOCUMENT, s.matched)
74
+ when s.scan(/\n[[:blank:]]*(?=\n)/)
75
+ # Ignore empty lines
76
+ @lineno += 1
77
+ @position = 0
78
+ when s.scan(/\n[[:blank:]]*#.*/) then emit(:COMMENT, s.matched)
79
+ when s.scan(/\n([[:blank:]]*-) */) then emit(:ITEM, s.matched, indent: s.captures[0])
80
+ when s.scan(/\n[[:blank:]]*\.\.\./) then emit(:END_OF_DOCUMENT, s.matched)
81
+ when s.scan(/\n?([[:blank:]]*)(.+:)(?=[ \n])/)
77
82
  indent = s.captures[0]
78
83
  indent = last_indent_value + indent + " " unless s.matched.start_with?("\n")
79
- emit(:KEY, s.matched, indent: indent)
84
+ emit(:KEY, s.matched, indent: indent, value: s.captures[1])
80
85
 
81
86
  when s.scan(/\n\z/)
82
87
  # Done
83
- when s.match?(/./)
84
- scan_value = true
88
+ when s.match?(/./)
89
+ scan_value = true
85
90
  else
86
- raise "LoST: #{s.rest.inspect} #{s.eos?}"
87
- end
88
- end
89
- end
91
+ message = if @lines[@lineno - 1][@position] == "\n"
92
+ <<~MESSAGE
93
+ #{@filename}:#{@lineno + 1}: unexpected content
94
+ #{@lines[@lineno].chomp}
95
+ ^#{"~" * (@lines[@lineno].chomp.length - 1)}
96
+ MESSAGE
97
+ else
98
+ <<~MESSAGE
99
+ #{@filename}:#{@lineno}: unexpected content
100
+ #{@lines[@lineno - 1].chomp}
101
+ #{" " * @position}^
102
+ MESSAGE
103
+ end
104
+ raise(Racc::ParseError, message)
105
+ end
106
+ end
107
+ end
90
108
 
91
109
  unindent
92
110
 
@@ -105,16 +123,16 @@ def scan(text)
105
123
  @tokens
106
124
  end
107
125
 
108
- def emit(token, value, length: nil, indent: nil)
126
+ def emit(token, match, length: nil, indent: nil, value: nil)
109
127
  indent.gsub!("-", " ") if indent
110
128
  if token && length.nil?
111
- raise "length must be explicitly passed when value is not a String (#{value.class.name})" unless value.is_a?(String)
112
- length = value.length
129
+ raise "length must be explicitly passed when match is not a String (#{match.class.name})" unless match.is_a?(String)
130
+ length = match.length
113
131
  end
114
132
 
115
- if value.start_with?("\n")
133
+ if match.start_with?("\n")
116
134
  @lineno += 1
117
- value = value[1..-1]
135
+ match = match[1..-1]
118
136
  length -= 1
119
137
  @position = 0
120
138
  end
@@ -125,16 +143,15 @@ def emit(token, value, length: nil, indent: nil)
125
143
  end
126
144
 
127
145
  exvalue = {
128
- value: value,
146
+ value: value || match,
129
147
  lineno: @lineno,
130
148
  position: @position,
131
- filename: @filename,
132
149
  length: length,
133
150
  indent: indent,
134
151
  }
135
152
  @tokens << [token, exvalue]
136
153
 
137
- @lineno += value.count("\n")
154
+ @lineno += match.count("\n")
138
155
 
139
156
  @position += length
140
157
  end
@@ -146,7 +163,7 @@ end
146
163
  def unindent(new_indent = nil)
147
164
  while @indent_stack.count > 0 && (new_indent.nil? || @indent_stack.last.length > new_indent.length)
148
165
  value = @indent_stack.pop
149
- @tokens << [:UNINDENT, { value: value, lineno: @lineno, position: 0, filename: @filename, length: value.length, indent: nil }]
166
+ @tokens << [:UNINDENT, { value: value, lineno: @lineno, position: 0, length: value.length, indent: nil }]
150
167
  end
151
168
  end
152
169
 
@@ -154,73 +171,73 @@ def next_token
154
171
  @current_token = @tokens.shift
155
172
  end
156
173
 
157
- def parse(text)
174
+ def parse(text, filename: nil)
175
+ @filename = filename || "<stdin>"
158
176
  scan(text)
159
177
  do_parse
160
178
  end
161
179
 
162
180
  def on_error(error_token_id, error_value, value_stack)
163
- puts "unexpected #{@current_token[0]} on #{@current_token[1][:filename] || "<stdin>"}:#{@current_token[1][:lineno]}"
164
- puts @lines[@current_token[1][:lineno]]
165
- puts " " * @current_token[1][:position] + "^" + "~" * (@current_token[1][:length] - 1)
181
+ message = if @current_token
182
+ <<~MESSAGE
183
+ #{@filename}:#{@current_token[1][:lineno]} unexpected #{@current_token[0]}
184
+ #{@lines[@current_token[1][:lineno] - 1].chomp}
185
+ #{" " * @current_token[1][:position]}^#{"~" * ([@current_token[1][:length] - 1, 0].max)}
186
+ MESSAGE
187
+ else
188
+ "#{@filename}:#{@lineno} unexpected end-of-file"
189
+ end
166
190
 
167
- raise "Error"
191
+ raise(Racc::ParseError, message)
168
192
  end
169
193
  ...end parser.ra/module_eval...
170
194
  ##### State transition tables begin ###
171
195
 
172
196
  racc_action_table = [
173
- 2, 11, 4, 8, 19, 10, 4, 8, 20, 10,
174
- 4, 8, nil, 10, 4, 8, nil, 10, 8, 13,
175
- 15, 10 ]
197
+ 5, 9, 2, 11, 5, 9, 3, 11, 5, 9,
198
+ 12, 11, 9, 14, 16, 11, 13 ]
176
199
 
177
200
  racc_action_check = [
178
- 0, 1, 0, 0, 11, 0, 2, 2, 12, 2,
179
- 8, 8, nil, 8, 10, 10, nil, 10, 5, 5,
180
- 6, 6 ]
201
+ 2, 2, 0, 2, 9, 9, 1, 9, 11, 11,
202
+ 3, 11, 6, 6, 7, 7, 4 ]
181
203
 
182
204
  racc_action_pointer = [
183
- -2, 1, 2, nil, nil, 13, 14, nil, 6, nil,
184
- 10, 4, 5, nil, nil, nil, nil, nil, nil, nil,
185
- nil ]
205
+ 0, 6, -4, 10, 13, nil, 7, 8, nil, 0,
206
+ nil, 4, nil, nil, nil, nil, nil, nil, nil, nil ]
186
207
 
187
208
  racc_action_default = [
188
- -13, -13, -13, -3, -4, -13, -13, -8, -13, -11,
189
- -13, -13, -2, -5, -7, -6, -10, -9, -12, 21,
190
- -1 ]
209
+ -12, -12, -12, -12, -2, -3, -12, -12, -7, -12,
210
+ -10, -12, 20, -1, -4, -6, -5, -9, -8, -11 ]
191
211
 
192
212
  racc_goto_table = [
193
- 3, 1, 12, 14, 16, nil, nil, nil, 17, nil,
194
- 18 ]
213
+ 4, 1, 15, 17, nil, nil, nil, 18, nil, 19 ]
195
214
 
196
215
  racc_goto_check = [
197
- 2, 1, 2, 5, 6, nil, nil, nil, 2, nil,
198
- 2 ]
216
+ 2, 1, 5, 6, nil, nil, nil, 2, nil, 2 ]
199
217
 
200
218
  racc_goto_pointer = [
201
- nil, 1, 0, nil, nil, -2, -2 ]
219
+ nil, 1, -2, nil, nil, -4, -4 ]
202
220
 
203
221
  racc_goto_default = [
204
- nil, nil, nil, 5, 6, 7, 9 ]
222
+ nil, nil, nil, 6, 7, 8, 10 ]
205
223
 
206
224
  racc_reduce_table = [
207
225
  0, 0, :racc_error,
208
226
  3, 9, :_reduce_1,
209
227
  2, 9, :_reduce_2,
210
- 1, 9, :_reduce_none,
211
- 1, 10, :_reduce_4,
228
+ 1, 10, :_reduce_3,
229
+ 2, 10, :_reduce_4,
212
230
  2, 10, :_reduce_5,
213
- 2, 10, :_reduce_6,
214
- 2, 11, :_reduce_7,
215
- 1, 11, :_reduce_8,
216
- 2, 13, :_reduce_9,
217
- 2, 12, :_reduce_10,
218
- 1, 12, :_reduce_11,
219
- 2, 14, :_reduce_12 ]
231
+ 2, 11, :_reduce_6,
232
+ 1, 11, :_reduce_7,
233
+ 2, 13, :_reduce_8,
234
+ 2, 12, :_reduce_9,
235
+ 1, 12, :_reduce_10,
236
+ 2, 14, :_reduce_11 ]
220
237
 
221
- racc_reduce_n = 13
238
+ racc_reduce_n = 12
222
239
 
223
- racc_shift_n = 21
240
+ racc_shift_n = 20
224
241
 
225
242
  racc_token_table = {
226
243
  false => 0,
@@ -230,7 +247,7 @@ racc_token_table = {
230
247
  :VALUE => 4,
231
248
  :KEY => 5,
232
249
  :UNINDENT => 6,
233
- "-" => 7 }
250
+ :ITEM => 7 }
234
251
 
235
252
  racc_nt_base = 8
236
253
 
@@ -260,7 +277,7 @@ Racc_token_to_s_table = [
260
277
  "VALUE",
261
278
  "KEY",
262
279
  "UNINDENT",
263
- "\"-\"",
280
+ "ITEM",
264
281
  "$start",
265
282
  "document",
266
283
  "value",
@@ -289,11 +306,16 @@ module_eval(<<'.,.,', 'parser.ra', 10)
289
306
  end
290
307
  .,.,
291
308
 
292
- # reduce 3 omitted
309
+ module_eval(<<'.,.,', 'parser.ra', 12)
310
+ def _reduce_3(val, _values, result)
311
+ result = Scalar.new(val[0])
312
+ result
313
+ end
314
+ .,.,
293
315
 
294
316
  module_eval(<<'.,.,', 'parser.ra', 13)
295
317
  def _reduce_4(val, _values, result)
296
- result = Scalar.new(val[0])
318
+ result = val[0]
297
319
  result
298
320
  end
299
321
  .,.,
@@ -305,51 +327,44 @@ module_eval(<<'.,.,', 'parser.ra', 14)
305
327
  end
306
328
  .,.,
307
329
 
308
- module_eval(<<'.,.,', 'parser.ra', 15)
330
+ module_eval(<<'.,.,', 'parser.ra', 16)
309
331
  def _reduce_6(val, _values, result)
310
- result = val[0]
332
+ val[0].add_item(*val[1]); result = val[0]
311
333
  result
312
334
  end
313
335
  .,.,
314
336
 
315
337
  module_eval(<<'.,.,', 'parser.ra', 17)
316
338
  def _reduce_7(val, _values, result)
317
- val[0].add_item(*val[1]); result = val[0]
339
+ result = Dictionary.create(*val[0])
318
340
  result
319
341
  end
320
342
  .,.,
321
343
 
322
- module_eval(<<'.,.,', 'parser.ra', 18)
344
+ module_eval(<<'.,.,', 'parser.ra', 19)
323
345
  def _reduce_8(val, _values, result)
324
- result = Dictionary.create(*val[0])
346
+ result = [Scalar.new(val[0]), val[1]]
325
347
  result
326
348
  end
327
349
  .,.,
328
350
 
329
- module_eval(<<'.,.,', 'parser.ra', 20)
351
+ module_eval(<<'.,.,', 'parser.ra', 21)
330
352
  def _reduce_9(val, _values, result)
331
- result = [Scalar.new(val[0]), val[1]]
353
+ val[0].add_item(*val[1]); result = val[0]
332
354
  result
333
355
  end
334
356
  .,.,
335
357
 
336
358
  module_eval(<<'.,.,', 'parser.ra', 22)
337
359
  def _reduce_10(val, _values, result)
338
- val[0].add_item(*val[1]); result = val[0]
339
- result
340
- end
341
- .,.,
342
-
343
- module_eval(<<'.,.,', 'parser.ra', 23)
344
- def _reduce_11(val, _values, result)
345
360
  result = List.create(*val[0])
346
361
  result
347
362
  end
348
363
  .,.,
349
364
 
350
- module_eval(<<'.,.,', 'parser.ra', 25)
351
- def _reduce_12(val, _values, result)
352
- result = [Scalar.new(val[0]), val[1]]
365
+ module_eval(<<'.,.,', 'parser.ra', 24)
366
+ def _reduce_11(val, _values, result)
367
+ result = [Item.new(val[0]), val[1]]
353
368
  result
354
369
  end
355
370
  .,.,
@@ -3,12 +3,13 @@
3
3
  module Yaml
4
4
  module Sort
5
5
  class Scalar < Value
6
- attr_reader :value
6
+ attr_reader :value, :indent
7
7
 
8
8
  def initialize(value)
9
9
  super()
10
10
  @comment = value[:comment] || []
11
11
  @value = value[:value]
12
+ @indent = value[:indent] || ""
12
13
  end
13
14
 
14
15
  def <=>(other)
@@ -19,8 +20,12 @@ module Yaml
19
20
  end
20
21
  end
21
22
 
22
- def to_s
23
- super + value
23
+ def to_s(skip_first_indent: false)
24
+ if skip_first_indent
25
+ super + value
26
+ else
27
+ super + indent + value
28
+ end
24
29
  end
25
30
  end
26
31
  end
@@ -7,7 +7,11 @@ module Yaml
7
7
  @comment = []
8
8
  end
9
9
 
10
- def to_s
10
+ def to_s(*)
11
+ comments
12
+ end
13
+
14
+ def comments
11
15
  @comment.join
12
16
  end
13
17
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Yaml
4
4
  module Sort
5
- VERSION = "1.0.0"
5
+ VERSION = "2.0.1"
6
6
  end
7
7
  end
data/lib/yaml/sort.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  require_relative "sort/parser"
4
4
  require_relative "sort/value"
5
5
  require_relative "sort/dictionary"
6
+ require_relative "sort/item"
6
7
  require_relative "sort/list"
7
8
  require_relative "sort/scalar"
8
9
  require_relative "sort/version"
data/yaml-sort.gemspec CHANGED
@@ -32,5 +32,6 @@ Gem::Specification.new do |spec|
32
32
  spec.add_dependency "cri"
33
33
 
34
34
  spec.add_development_dependency "aruba"
35
+ spec.add_development_dependency "github_changelog_generator"
35
36
  spec.add_development_dependency "racc"
36
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yaml-sort
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Romain Tartière
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-20 00:00:00.000000000 Z
11
+ date: 2022-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cri
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: github_changelog_generator
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: racc
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,6 +86,7 @@ files:
72
86
  - lib/yaml/sort.rb
73
87
  - lib/yaml/sort/cli.rb
74
88
  - lib/yaml/sort/dictionary.rb
89
+ - lib/yaml/sort/item.rb
75
90
  - lib/yaml/sort/list.rb
76
91
  - lib/yaml/sort/parser.rb
77
92
  - lib/yaml/sort/scalar.rb