renogen 1.2.0 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +119 -26
  3. data/lib/renogen/change_log.rb +1 -0
  4. data/lib/renogen/change_log/item.rb +6 -4
  5. data/lib/renogen/change_log/model.rb +9 -0
  6. data/lib/renogen/change_log/validator.rb +61 -0
  7. data/lib/renogen/change_log/writer.rb +35 -3
  8. data/lib/renogen/cli.rb +7 -4
  9. data/lib/renogen/config.rb +16 -15
  10. data/lib/renogen/exceptions.rb +5 -0
  11. data/lib/renogen/exceptions/invalid_item_found.rb +32 -0
  12. data/lib/renogen/exceptions/yaml_file_blank.rb +21 -0
  13. data/lib/renogen/exceptions/yaml_file_invalid.rb +20 -0
  14. data/lib/renogen/extraction_stratagies.rb +0 -2
  15. data/lib/renogen/extraction_stratagies/yaml_file.rb +0 -1
  16. data/lib/renogen/extraction_stratagies/yaml_file/parser.rb +5 -4
  17. data/lib/renogen/extraction_stratagies/yaml_file/reader.rb +20 -11
  18. data/lib/renogen/formatters.rb +2 -0
  19. data/lib/renogen/formatters/base.rb +14 -4
  20. data/lib/renogen/formatters/csv.rb +42 -0
  21. data/lib/renogen/formatters/html.rb +1 -1
  22. data/lib/renogen/formatters/markdown.rb +2 -2
  23. data/lib/renogen/formatters/markdown_table.rb +58 -0
  24. data/lib/renogen/generator.rb +8 -1
  25. data/lib/renogen/version.rb +1 -1
  26. data/lib/renogen/writers/csv.rb +23 -0
  27. data/spec/lib/renogen/change_log/item_spec.rb +1 -1
  28. data/spec/lib/renogen/change_log/model_spec.rb +1 -1
  29. data/spec/lib/renogen/change_log/validator_spec.rb +38 -0
  30. data/spec/lib/renogen/change_log/writer_spec.rb +199 -2
  31. data/spec/lib/renogen/config_spec.rb +7 -2
  32. data/spec/lib/renogen/exceptions/invalid_item_found_spec.rb +35 -0
  33. data/spec/lib/renogen/exceptions/stratagy_not_found_spec.rb +2 -1
  34. data/spec/lib/renogen/{extraction_stratagies/yaml_file/exceptions → exceptions}/yaml_file_blank_spec.rb +1 -1
  35. data/spec/lib/renogen/exceptions/yaml_file_invalid_spec.rb +12 -0
  36. data/spec/lib/renogen/extraction_stratagies/yaml_file/parser_spec.rb +3 -3
  37. data/spec/lib/renogen/extraction_stratagies/yaml_file/reader_spec.rb +11 -5
  38. data/spec/lib/renogen/formatters/base_spec.rb +8 -8
  39. data/spec/lib/renogen/formatters/csv_spec.rb +49 -0
  40. data/spec/lib/renogen/formatters/html_spec.rb +1 -1
  41. data/spec/lib/renogen/formatters/markdown_spec.rb +2 -2
  42. data/spec/spec_helper.rb +5 -0
  43. data/spec/support/renogen_helper.rb +9 -0
  44. metadata +17 -8
  45. data/lib/renogen/extraction_stratagies/yaml_file/exceptions.rb +0 -12
  46. data/lib/renogen/extraction_stratagies/yaml_file/exceptions/yaml_file_blank.rb +0 -25
@@ -1,25 +1,25 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Renogen::Formatters::Base do
4
+ let(:version) { '1.2.34' }
5
+ let(:date) { Date.today }
6
+ let(:changelog) { double(Renogen::ChangeLog::Model, version: version, date: date) }
7
+
4
8
  describe '#header' do
5
9
  subject { described_class.new.header(changelog) }
6
10
 
7
- let(:version) { '1.2.34' }
8
- let(:date) { Date.today }
9
- let(:changelog) { double(Renogen::ChangeLog::Model, version: version, date: date) }
10
-
11
11
  it { is_expected.to eql "#{version} (#{date})" }
12
12
  end
13
13
 
14
14
  describe '#write_header' do
15
- it 'raises an NotImplementedError' do
16
- expect{subject.write_header('header')}.to raise_error NotImplementedError
15
+ it 'does nothing' do
16
+ expect(subject.write_header(changelog)).to be_nil
17
17
  end
18
18
  end
19
19
 
20
20
  describe '#write_group' do
21
- it 'raises an NotImplementedError' do
22
- expect{subject.write_group('group_name')}.to raise_error NotImplementedError
21
+ it 'does nothing' do
22
+ expect(subject.write_group(changelog)).to be_nil
23
23
  end
24
24
  end
25
25
 
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Renogen::Formatters::Csv do
6
+ describe 'write_methods' do
7
+ let(:change_1) { renogen_change(1, 'Group 1', 'Change 1') }
8
+ let(:change_2) { renogen_change(1, 'Group 2', 'Change 2') }
9
+ let(:change_3) { renogen_change(2, 'Group 1', 'Change 3') }
10
+ let(:changelog) { Renogen::ChangeLog::Model.new }
11
+
12
+ before do
13
+ [change_1, change_2, change_3].each { |c| changelog.add_change(c) }
14
+ subject.header(changelog)
15
+ end
16
+
17
+ it { is_expected.to be_table_formatter }
18
+ describe '#write_header' do
19
+ it 'returns a comma separated list of group names' do
20
+ expect(subject.write_header('Group 1,Group 2')).to eq("Group 1,Group 2\n")
21
+ end
22
+ end
23
+
24
+ describe '#write_change' do
25
+ let(:ticket) do
26
+ {
27
+ 'Group 1' => 'This is a Group 1 change',
28
+ 'Group 2' => 'This is a Group 2 change, with a comma'
29
+ }
30
+ end
31
+
32
+ context 'when ticket contains same keys as changelog groups' do
33
+ it 'outputs all values' do
34
+ expect(subject.write_change(ticket)).to eq(
35
+ 'This is a Group 1 change,"This is a Group 2 change, with a comma"'
36
+ )
37
+ end
38
+ end
39
+
40
+ context 'when changelog contains keys missing in ticket' do
41
+ it 'outputs empty values for missing keys' do
42
+ expect(subject.write_change(ticket)).to eq(
43
+ 'This is a Group 1 change,"This is a Group 2 change, with a comma"'
44
+ )
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -8,7 +8,7 @@ describe Renogen::Formatters::Html do
8
8
 
9
9
  describe '#write_header' do
10
10
  it 'returns header with newline' do
11
- expect(subject.write_header('header')).to eql "<html>\n<h1>header</h1>"
11
+ expect(subject.write_header('header')).to eql "<html>\n<h1>header</h1>\n"
12
12
  end
13
13
  end
14
14
 
@@ -11,13 +11,13 @@ describe Renogen::Formatters::Markdown do
11
11
 
12
12
  describe '#write_header' do
13
13
  it 'returns header with newline' do
14
- expect(subject.write_header('header')).to eql "# header"
14
+ expect(subject.write_header('header')).to eql "# header\n\n"
15
15
  end
16
16
  end
17
17
 
18
18
  describe '#write_group' do
19
19
  it 'returns group' do
20
- expect(subject.write_group('group')).to eql "### group"
20
+ expect(subject.write_group('group')).to eql "## group\n\n"
21
21
  end
22
22
  end
23
23
 
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'renogen'
4
+ require_relative 'support/renogen_helper'
2
5
 
3
6
  RSpec.configure do |config|
4
7
  config.expect_with :rspec do |expectations|
@@ -40,4 +43,6 @@ RSpec.configure do |config|
40
43
  # the seed, which is printed after each run.
41
44
  # --seed 1234
42
45
  config.order = :random
46
+
47
+ config.include Support::RenogenHelper
43
48
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Support
4
+ module RenogenHelper
5
+ def renogen_change(ticket_id, group_name, change)
6
+ Renogen::ChangeLog::Item.new(ticket_id, group_name, change)
7
+ end
8
+ end
9
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: renogen
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Elliott
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-23 00:00:00.000000000 Z
11
+ date: 2020-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -39,45 +39,55 @@ files:
39
39
  - lib/renogen/change_log/group.rb
40
40
  - lib/renogen/change_log/item.rb
41
41
  - lib/renogen/change_log/model.rb
42
+ - lib/renogen/change_log/validator.rb
42
43
  - lib/renogen/change_log/writer.rb
43
44
  - lib/renogen/cli.rb
44
45
  - lib/renogen/cli/param_parser.rb
45
46
  - lib/renogen/config.rb
46
47
  - lib/renogen/exceptions.rb
47
48
  - lib/renogen/exceptions/base.rb
49
+ - lib/renogen/exceptions/invalid_item_found.rb
48
50
  - lib/renogen/exceptions/stratagy_not_found.rb
51
+ - lib/renogen/exceptions/yaml_file_blank.rb
52
+ - lib/renogen/exceptions/yaml_file_invalid.rb
49
53
  - lib/renogen/extraction_stratagies.rb
50
54
  - lib/renogen/extraction_stratagies/base.rb
51
55
  - lib/renogen/extraction_stratagies/yaml_file.rb
52
- - lib/renogen/extraction_stratagies/yaml_file/exceptions.rb
53
- - lib/renogen/extraction_stratagies/yaml_file/exceptions/yaml_file_blank.rb
54
56
  - lib/renogen/extraction_stratagies/yaml_file/parser.rb
55
57
  - lib/renogen/extraction_stratagies/yaml_file/provider.rb
56
58
  - lib/renogen/extraction_stratagies/yaml_file/reader.rb
57
59
  - lib/renogen/formatters.rb
58
60
  - lib/renogen/formatters/base.rb
61
+ - lib/renogen/formatters/csv.rb
59
62
  - lib/renogen/formatters/html.rb
60
63
  - lib/renogen/formatters/markdown.rb
64
+ - lib/renogen/formatters/markdown_table.rb
61
65
  - lib/renogen/formatters/plain_text.rb
62
66
  - lib/renogen/generator.rb
63
67
  - lib/renogen/version.rb
68
+ - lib/renogen/writers/csv.rb
64
69
  - spec/lib/renogen/change_log/group_spec.rb
65
70
  - spec/lib/renogen/change_log/item_spec.rb
66
71
  - spec/lib/renogen/change_log/model_spec.rb
72
+ - spec/lib/renogen/change_log/validator_spec.rb
67
73
  - spec/lib/renogen/change_log/writer_spec.rb
68
74
  - spec/lib/renogen/config_spec.rb
75
+ - spec/lib/renogen/exceptions/invalid_item_found_spec.rb
69
76
  - spec/lib/renogen/exceptions/stratagy_not_found_spec.rb
77
+ - spec/lib/renogen/exceptions/yaml_file_blank_spec.rb
78
+ - spec/lib/renogen/exceptions/yaml_file_invalid_spec.rb
70
79
  - spec/lib/renogen/extraction_stratagies/base_spec.rb
71
- - spec/lib/renogen/extraction_stratagies/yaml_file/exceptions/yaml_file_blank_spec.rb
72
80
  - spec/lib/renogen/extraction_stratagies/yaml_file/parser_spec.rb
73
81
  - spec/lib/renogen/extraction_stratagies/yaml_file/provider_spec.rb
74
82
  - spec/lib/renogen/extraction_stratagies/yaml_file/reader_spec.rb
75
83
  - spec/lib/renogen/formatters/base_spec.rb
84
+ - spec/lib/renogen/formatters/csv_spec.rb
76
85
  - spec/lib/renogen/formatters/html_spec.rb
77
86
  - spec/lib/renogen/formatters/markdown_spec.rb
78
87
  - spec/lib/renogen/formatters/plain_text_spec.rb
79
88
  - spec/lib/renogen_spec.rb
80
89
  - spec/spec_helper.rb
90
+ - spec/support/renogen_helper.rb
81
91
  homepage: https://github.com/DDAZZA/renogen
82
92
  licenses:
83
93
  - GPL-3.0
@@ -88,7 +98,7 @@ require_paths:
88
98
  - lib
89
99
  required_ruby_version: !ruby/object:Gem::Requirement
90
100
  requirements:
91
- - - "~>"
101
+ - - ">="
92
102
  - !ruby/object:Gem::Version
93
103
  version: '2.0'
94
104
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -97,8 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
107
  - !ruby/object:Gem::Version
98
108
  version: '0'
99
109
  requirements: []
100
- rubyforge_project:
101
- rubygems_version: 2.6.3
110
+ rubygems_version: 3.0.3
102
111
  signing_key:
103
112
  specification_version: 4
104
113
  summary: Release Notes/changelog Generator
@@ -1,12 +0,0 @@
1
-
2
- module Renogen
3
- module ExtractionStratagies
4
- module YamlFile
5
- # Exceptions thrown by YAML file extraction stratagy
6
- module Exceptions
7
- require_relative 'exceptions/yaml_file_blank'
8
- end
9
- end
10
- end
11
- end
12
-
@@ -1,25 +0,0 @@
1
- module Renogen
2
- module ExtractionStratagies
3
- module YamlFile
4
- module Exceptions
5
- # This is raised when a yaml file change is found but has not contents
6
- class YamlFileBlank < Renogen::Exceptions::Base
7
- attr_reader :file_path
8
-
9
- def initialize(file_path)
10
- @file_path = file_path
11
- super
12
- end
13
-
14
- # Friendly error message
15
- #
16
- # @return [String]
17
- def message
18
- "Error: File contents blank '#{file_path}'"
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
25
-