renogen 0.1.0.pre → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +22 -15
- data/lib/renogen.rb +3 -0
- data/lib/renogen/change_log.rb +4 -4
- data/lib/renogen/change_log/item.rb +9 -2
- data/lib/renogen/cli.rb +2 -1
- data/lib/renogen/cli/param_parser.rb +2 -2
- data/lib/renogen/config.rb +3 -1
- data/lib/renogen/exceptions.rb +3 -4
- data/lib/renogen/exceptions/{extraction_stratagy_not_found.rb → stratagy_not_found.rb} +2 -2
- data/lib/renogen/extraction_stratagies.rb +4 -4
- data/lib/renogen/extraction_stratagies/yaml_file.rb +4 -3
- data/lib/renogen/extraction_stratagies/yaml_file/exceptions.rb +12 -0
- data/lib/renogen/extraction_stratagies/yaml_file/exceptions/yaml_file_blank.rb +25 -0
- data/lib/renogen/extraction_stratagies/yaml_file/reader.rb +7 -1
- data/lib/renogen/formatters.rb +7 -7
- data/lib/renogen/generator.rb +1 -0
- data/lib/renogen/version.rb +1 -1
- data/spec/lib/renogen/exceptions/{formatter_not_found_spec.rb → stratagy_not_found_spec.rb} +2 -2
- data/spec/lib/renogen/{exceptions/extraction_stratagy_not_found_spec.rb → extraction_stratagies/yaml_file/exceptions/yaml_file_blank_spec.rb} +2 -3
- data/spec/spec_helper.rb +0 -33
- metadata +9 -9
- data/lib/renogen/exceptions/formatter_not_found.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 169e26c4cd97a2fb31a22eada063fca3a25a57cf
|
4
|
+
data.tar.gz: 5200eff043775217ae1cc7d5e91ec704570346a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b52c38810a2b055fa83fe9ece7203b3ba9fd9360c0fefd49ca4e7fdd89d7691b899a7bb652367368ff6086974dc0e4b2038405923878a736c9e5b448519c87e
|
7
|
+
data.tar.gz: a5e624d7fffa82c23fd4413ae76a1053133034e2c0b837664b71f2c5e3d0ce0972865ada62346885be4c23183050c12fd923d0f5d1228ed3c7a482c56d79037d
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Renogen
|
2
2
|
|
3
|
-
Renogen or Re(lease) No(tes) Gen(erator) is a tool to separate feature notes from product versions.
|
3
|
+
Renogen or Re(lease) No(tes) Gen(erator) is a development tool to separate feature notes from product versions.
|
4
4
|
|
5
5
|
### Installation
|
6
6
|
|
@@ -12,8 +12,8 @@ or add the following to your Gemfile
|
|
12
12
|
|
13
13
|
`gem 'renogen', :require => false, :group => :development`
|
14
14
|
|
15
|
-
`$ renogen init # optional
|
16
|
-
`$ renogen --help #
|
15
|
+
`$ renogen init # optional Creates directory for notes`
|
16
|
+
`$ renogen --help # List available options
|
17
17
|
|
18
18
|
### Usage
|
19
19
|
|
@@ -24,51 +24,58 @@ To generate your notes run the following command
|
|
24
24
|
Unfortunatly renogen cant write documentation for your change.
|
25
25
|
By default renogen uses the yaml file stratagy to extract your notes
|
26
26
|
|
27
|
+
`$ renogen --help # list available command options`
|
28
|
+
|
27
29
|
#### Adding YAML feature notes
|
28
30
|
|
29
|
-
Create a file within the next version folder(default:'change_log/next/')
|
31
|
+
Create a new file within the 'next' version folder(default:'change_log/next/')
|
30
32
|
|
31
33
|
Example feature note
|
32
|
-
```
|
34
|
+
```yaml
|
33
35
|
# change_log/next/example.yml
|
34
|
-
|
36
|
+
my_formatted_single_line:
|
35
37
|
identifier: bug_1
|
36
38
|
link: example.com/bug_1
|
37
39
|
summary: fixes all issues
|
38
40
|
|
39
|
-
|
41
|
+
unformatted_single_line: "This is an unformatted single line"
|
42
|
+
|
43
|
+
my_multiline_note: |
|
40
44
|
Title
|
41
45
|
|
42
46
|
description
|
43
47
|
|
44
48
|
Example of usage
|
45
49
|
$ foo bar baz
|
46
|
-
|
50
|
+
my_list:
|
47
51
|
- e.g. run this command
|
48
52
|
- e.g. run this as well
|
49
53
|
```
|
50
54
|
|
51
|
-
#### Examples
|
55
|
+
#### Usage Examples
|
52
56
|
|
53
57
|
Prepend your notes to a changelog file(TODO make command simple)
|
58
|
+
|
54
59
|
`$ renogen --format markdown v1.2.1 > CHANGELOG.md | cat - CHANGELOG > CHANGELOG.tmp && mv CHANGELOG.tmp CHANGELOG`
|
55
60
|
|
56
61
|
Writes notes to html file
|
57
|
-
|
62
|
+
|
63
|
+
`$ renogen --format html v1.2.1 > v1_2_1.html`
|
58
64
|
|
59
65
|
Print all notes since v1.0.0 as text
|
60
|
-
|
66
|
+
|
67
|
+
`$ renogen --format text -l v1.0.0 v1.2.1`
|
61
68
|
|
62
69
|
### Configuration
|
63
70
|
|
64
|
-
TODO
|
65
|
-
`.renogen` file
|
66
|
-
single line
|
67
|
-
change log directory
|
71
|
+
TODO
|
72
|
+
* How to set configuration with `.renogen` file
|
73
|
+
* How to change formatted single line
|
68
74
|
|
69
75
|
### License
|
70
76
|
|
71
77
|
Renogen is a programming tool to generate a log of source code changes
|
78
|
+
|
72
79
|
Copyright (C) 2015 David Elliott
|
73
80
|
|
74
81
|
This program is free software; you can redistribute it and/or modify
|
data/lib/renogen.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
# Renogen is a development tool.
|
2
|
+
# It makes it easier and faster to produce changelogs and release notes
|
3
|
+
# It works by stopping merge confics and decouping the change notes from releaes versions
|
1
4
|
module Renogen
|
2
5
|
require 'renogen/version'
|
3
6
|
require 'renogen/exceptions'
|
data/lib/renogen/change_log.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
module Renogen
|
2
2
|
# Components to represent a change log
|
3
3
|
module ChangeLog
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
require_relative 'change_log/item'
|
5
|
+
require_relative 'change_log/group'
|
6
|
+
require_relative 'change_log/writer'
|
7
|
+
require_relative 'change_log/model'
|
8
8
|
end
|
9
9
|
end
|
@@ -10,6 +10,8 @@ module Renogen
|
|
10
10
|
@change = change
|
11
11
|
end
|
12
12
|
|
13
|
+
# Coverts the item into its string representation
|
14
|
+
#
|
13
15
|
# @return [String]
|
14
16
|
def to_s
|
15
17
|
case change.class.to_s
|
@@ -18,8 +20,7 @@ module Renogen
|
|
18
20
|
when Hash.to_s
|
19
21
|
format_oneline(change)
|
20
22
|
when Array.to_s
|
21
|
-
|
22
|
-
change
|
23
|
+
format_array(change)
|
23
24
|
else
|
24
25
|
raise TypeError
|
25
26
|
end
|
@@ -30,6 +31,7 @@ module Renogen
|
|
30
31
|
change.is_a? Array
|
31
32
|
end
|
32
33
|
|
34
|
+
# Iterater for each item within the change
|
33
35
|
def each
|
34
36
|
change.each do |item|
|
35
37
|
yield item.to_s
|
@@ -42,6 +44,11 @@ module Renogen
|
|
42
44
|
change.gsub('\n', '\n \n ') + "\n"
|
43
45
|
end
|
44
46
|
|
47
|
+
def format_array(change)
|
48
|
+
# TODO should return a string
|
49
|
+
change
|
50
|
+
end
|
51
|
+
|
45
52
|
def format_oneline(change)
|
46
53
|
# TODO Refactor
|
47
54
|
string = config.single_line_format.downcase.gsub('\n', '\n ')
|
data/lib/renogen/cli.rb
CHANGED
@@ -23,10 +23,11 @@ module Renogen
|
|
23
23
|
generator.generate!
|
24
24
|
rescue Renogen::Exceptions::Base => e
|
25
25
|
puts e.message
|
26
|
+
exit -1
|
26
27
|
end
|
27
28
|
end
|
28
29
|
|
29
|
-
# Initialize the current working directory with example change
|
30
|
+
# Initialize the current working directory with an example change
|
30
31
|
def self.init
|
31
32
|
Dir.mkdir('./change_log')
|
32
33
|
puts "Created './change_log/'"
|
@@ -55,12 +55,12 @@ module Renogen
|
|
55
55
|
|
56
56
|
new_version = options.shift
|
57
57
|
if new_version.nil?
|
58
|
-
puts "Missing argument
|
58
|
+
puts "Error: Missing argument 'VERSION'"
|
59
59
|
puts
|
60
60
|
puts opt_parser
|
61
61
|
exit 1
|
62
62
|
elsif options.count > 0
|
63
|
-
puts "Unknown arguments: #{options}"
|
63
|
+
puts "Error: Unknown arguments: #{options}"
|
64
64
|
puts
|
65
65
|
puts opt_parser
|
66
66
|
exit 1
|
data/lib/renogen/config.rb
CHANGED
@@ -7,7 +7,6 @@ module Renogen
|
|
7
7
|
include Singleton
|
8
8
|
attr_accessor :single_line_format, :input_source, :output_format, :supported_keys, :changelog_path
|
9
9
|
|
10
|
-
|
11
10
|
def initialize
|
12
11
|
config_file = load_yaml_config
|
13
12
|
self.single_line_format = config_file['single_line_format'] || 'summary (see link)'.freeze
|
@@ -17,6 +16,9 @@ module Renogen
|
|
17
16
|
self.changelog_path = config_file['changelog_path']
|
18
17
|
end
|
19
18
|
|
19
|
+
|
20
|
+
# Renogen configuration extension
|
21
|
+
# a block can be provided to programatily setup configuration values
|
20
22
|
def self.configure
|
21
23
|
yield instance
|
22
24
|
end
|
data/lib/renogen/exceptions.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
module Renogen
|
2
|
-
# Custom exceptions
|
2
|
+
# Custom exceptions throw by the libary
|
3
3
|
module Exceptions
|
4
|
-
|
5
|
-
|
6
|
-
require 'renogen/exceptions/formatter_not_found'
|
4
|
+
require_relative 'exceptions/base'
|
5
|
+
require_relative 'exceptions/stratagy_not_found'
|
7
6
|
end
|
8
7
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Renogen
|
2
2
|
module Exceptions
|
3
3
|
# Raised when an extraction stratagy for a given key can not be found
|
4
|
-
class
|
4
|
+
class StratagyNotFound < Base
|
5
5
|
attr_reader :missing_stratagy
|
6
6
|
|
7
7
|
def initialize(type)
|
@@ -13,7 +13,7 @@ module Renogen
|
|
13
13
|
#
|
14
14
|
# @return [String]
|
15
15
|
def message
|
16
|
-
"Error:
|
16
|
+
"Error: Stratagy type '#{missing_stratagy}' not found"
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Renogen
|
2
|
-
#
|
2
|
+
# Methods for extracting release notes
|
3
3
|
module ExtractionStratagies
|
4
4
|
|
5
5
|
class << self
|
@@ -14,7 +14,7 @@ module Renogen
|
|
14
14
|
if stratagy
|
15
15
|
stratagy.new(options)
|
16
16
|
else
|
17
|
-
raise Renogen::Exceptions::
|
17
|
+
raise Renogen::Exceptions::StratagyNotFound.new(stratagy_type)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -34,8 +34,8 @@ module Renogen
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
-
|
38
|
-
|
37
|
+
require_relative 'extraction_stratagies/base'
|
38
|
+
require_relative 'extraction_stratagies/yaml_file'
|
39
39
|
# require_relative 'extraction_stratagies/github'
|
40
40
|
# require_relative 'extraction_stratagies/gitlog'
|
41
41
|
end
|
@@ -2,9 +2,10 @@ module Renogen
|
|
2
2
|
module ExtractionStratagies
|
3
3
|
# module for extracting changes from YAML files
|
4
4
|
module YamlFile
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
require_relative 'yaml_file/reader'
|
6
|
+
require_relative 'yaml_file/parser'
|
7
|
+
require_relative 'yaml_file/provider'
|
8
|
+
require_relative 'yaml_file/exceptions'
|
8
9
|
end
|
9
10
|
end
|
10
11
|
end
|
@@ -0,0 +1,25 @@
|
|
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
|
+
|
@@ -13,10 +13,16 @@ module Renogen
|
|
13
13
|
@directory_path ||= './change_log/'
|
14
14
|
end
|
15
15
|
|
16
|
+
# Iterates thorugh each change file and yields the contents.
|
17
|
+
#
|
18
|
+
# an exception is thrown if the contents are blank
|
19
|
+
#
|
16
20
|
# @yield [Hash] yaml_file
|
17
21
|
def each_yaml_file
|
18
22
|
change_directories.each do |file_path|
|
19
|
-
|
23
|
+
content = ::YAML.load_file(file_path)
|
24
|
+
raise Exceptions::YamlFileBlank.new(file_path) unless content
|
25
|
+
yield content
|
20
26
|
end
|
21
27
|
end
|
22
28
|
|
data/lib/renogen/formatters.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Renogen
|
2
|
-
# Formatters
|
2
|
+
# Formatters to manipulate how the change is output
|
3
3
|
#
|
4
4
|
# Also has methods to retrive and add a formatters
|
5
5
|
module Formatters
|
@@ -15,7 +15,7 @@ module Renogen
|
|
15
15
|
if formatter
|
16
16
|
formatter.new(options)
|
17
17
|
else
|
18
|
-
raise Renogen::Exceptions::
|
18
|
+
raise Renogen::Exceptions::StratagyNotFound.new(format_type)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
@@ -24,7 +24,7 @@ module Renogen
|
|
24
24
|
# @param identifier [Symbol]
|
25
25
|
# @param klass [Symbol]
|
26
26
|
def add(identifier, klass)
|
27
|
-
#
|
27
|
+
# raise 'name taken' unless formatters[name].nil?
|
28
28
|
formatters[identifier]=klass
|
29
29
|
end
|
30
30
|
|
@@ -36,8 +36,8 @@ module Renogen
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
39
|
+
require_relative 'formatters/base'
|
40
|
+
require_relative 'formatters/plain_text'
|
41
|
+
require_relative 'formatters/markdown'
|
42
|
+
require_relative 'formatters/html'
|
43
43
|
end
|
data/lib/renogen/generator.rb
CHANGED
data/lib/renogen/version.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Renogen::Exceptions::
|
3
|
+
describe Renogen::Exceptions::StratagyNotFound do
|
4
4
|
let(:name) { 'foobar' }
|
5
5
|
subject { described_class.new(name) }
|
6
6
|
|
7
7
|
describe '#message' do
|
8
8
|
it 'returns friendly error message' do
|
9
|
-
expect(subject.message).to eql "Error:
|
9
|
+
expect(subject.message).to eql "Error: Stratagy type '#{name}' not found"
|
10
10
|
end
|
11
11
|
|
12
12
|
end
|
@@ -1,13 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Renogen::Exceptions::
|
3
|
+
describe Renogen::ExtractionStratagies::YamlFile::Exceptions::YamlFileBlank do
|
4
4
|
let(:name) { 'foobar' }
|
5
5
|
subject { described_class.new(name) }
|
6
6
|
|
7
7
|
describe '#message' do
|
8
8
|
it 'returns friendly error message' do
|
9
|
-
expect(subject.message).to eql "Error:
|
9
|
+
expect(subject.message).to eql "Error: File contents blank 'foobar'"
|
10
10
|
end
|
11
|
-
|
12
11
|
end
|
13
12
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,6 @@
|
|
1
1
|
require 'renogen'
|
2
2
|
|
3
3
|
RSpec.configure do |config|
|
4
|
-
# rspec-expectations config goes here. You can use an alternate
|
5
|
-
# assertion/expectation library such as wrong or the stdlib/minitest
|
6
|
-
# assertions if you prefer.
|
7
4
|
config.expect_with :rspec do |expectations|
|
8
5
|
# This option will default to `true` in RSpec 4. It makes the `description`
|
9
6
|
# and `failure_message` of custom matchers include text for helper methods
|
@@ -24,25 +21,6 @@ RSpec.configure do |config|
|
|
24
21
|
mocks.verify_partial_doubles = true
|
25
22
|
end
|
26
23
|
|
27
|
-
# These two settings work together to allow you to limit a spec run
|
28
|
-
# to individual examples or groups you care about by tagging them with
|
29
|
-
# `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
30
|
-
# get run.
|
31
|
-
# config.filter_run :focus
|
32
|
-
# config.run_all_when_everything_filtered = true
|
33
|
-
|
34
|
-
# Allows RSpec to persist some state between runs in order to support
|
35
|
-
# the `--only-failures` and `--next-failure` CLI options. We recommend
|
36
|
-
# you configure your source control system to ignore this file.
|
37
|
-
# config.example_status_persistence_file_path = "spec/examples.txt"
|
38
|
-
|
39
|
-
# Limits the available syntax to the non-monkey patched syntax that is
|
40
|
-
# recommended. For more details, see:
|
41
|
-
# - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
|
42
|
-
# - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
43
|
-
# - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
|
44
|
-
# config.disable_monkey_patching!
|
45
|
-
|
46
24
|
# This setting enables warnings. It's recommended, but in some cases may
|
47
25
|
# be too noisy due to issues in dependencies.
|
48
26
|
config.warnings = true
|
@@ -57,20 +35,9 @@ RSpec.configure do |config|
|
|
57
35
|
config.default_formatter = 'doc'
|
58
36
|
end
|
59
37
|
|
60
|
-
# Print the 10 slowest examples and example groups at the
|
61
|
-
# end of the spec run, to help surface which specs are running
|
62
|
-
# particularly slow.
|
63
|
-
# config.profile_examples = 1
|
64
|
-
|
65
38
|
# Run specs in random order to surface order dependencies. If you find an
|
66
39
|
# order dependency and want to debug it, you can fix the order by providing
|
67
40
|
# the seed, which is printed after each run.
|
68
41
|
# --seed 1234
|
69
42
|
config.order = :random
|
70
|
-
|
71
|
-
# Seed global randomization in this process using the `--seed` CLI option.
|
72
|
-
# Setting this allows you to use `--seed` to deterministically reproduce
|
73
|
-
# test failures related to randomization by passing the same `--seed` value
|
74
|
-
# as the one that triggered the failure.
|
75
|
-
# Kernel.srand config.seed
|
76
43
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: renogen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dave Elliott
|
@@ -45,11 +45,12 @@ files:
|
|
45
45
|
- lib/renogen/config.rb
|
46
46
|
- lib/renogen/exceptions.rb
|
47
47
|
- lib/renogen/exceptions/base.rb
|
48
|
-
- lib/renogen/exceptions/
|
49
|
-
- lib/renogen/exceptions/formatter_not_found.rb
|
48
|
+
- lib/renogen/exceptions/stratagy_not_found.rb
|
50
49
|
- lib/renogen/extraction_stratagies.rb
|
51
50
|
- lib/renogen/extraction_stratagies/base.rb
|
52
51
|
- 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
|
53
54
|
- lib/renogen/extraction_stratagies/yaml_file/parser.rb
|
54
55
|
- lib/renogen/extraction_stratagies/yaml_file/provider.rb
|
55
56
|
- lib/renogen/extraction_stratagies/yaml_file/reader.rb
|
@@ -65,9 +66,9 @@ files:
|
|
65
66
|
- spec/lib/renogen/change_log/model_spec.rb
|
66
67
|
- spec/lib/renogen/change_log/writer_spec.rb
|
67
68
|
- spec/lib/renogen/config_spec.rb
|
68
|
-
- spec/lib/renogen/exceptions/
|
69
|
-
- spec/lib/renogen/exceptions/formatter_not_found_spec.rb
|
69
|
+
- spec/lib/renogen/exceptions/stratagy_not_found_spec.rb
|
70
70
|
- spec/lib/renogen/extraction_stratagies/base_spec.rb
|
71
|
+
- spec/lib/renogen/extraction_stratagies/yaml_file/exceptions/yaml_file_blank_spec.rb
|
71
72
|
- spec/lib/renogen/extraction_stratagies/yaml_file/parser_spec.rb
|
72
73
|
- spec/lib/renogen/extraction_stratagies/yaml_file/provider_spec.rb
|
73
74
|
- spec/lib/renogen/extraction_stratagies/yaml_file/reader_spec.rb
|
@@ -92,14 +93,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
92
93
|
version: '2.0'
|
93
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
95
|
requirements:
|
95
|
-
- - "
|
96
|
+
- - ">="
|
96
97
|
- !ruby/object:Gem::Version
|
97
|
-
version:
|
98
|
+
version: '0'
|
98
99
|
requirements: []
|
99
100
|
rubyforge_project:
|
100
|
-
rubygems_version: 2.4.
|
101
|
+
rubygems_version: 2.4.8
|
101
102
|
signing_key:
|
102
103
|
specification_version: 4
|
103
104
|
summary: Release Notes/changelog Generator
|
104
105
|
test_files: []
|
105
|
-
has_rdoc:
|
@@ -1,20 +0,0 @@
|
|
1
|
-
module Renogen
|
2
|
-
module Exceptions
|
3
|
-
# Raised when an extraction stratagy for a given key can not be found
|
4
|
-
class FormatterNotFound < Base
|
5
|
-
attr_reader :name
|
6
|
-
|
7
|
-
def initialize(name)
|
8
|
-
@name = name
|
9
|
-
super
|
10
|
-
end
|
11
|
-
|
12
|
-
# Friendly error message
|
13
|
-
#
|
14
|
-
# @return [String]
|
15
|
-
def message
|
16
|
-
"Error: Unsupported format type '#{name}'"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|