Compare commits
45 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3253c278be | ||
|
|
29540ced2c | ||
|
|
8de9efbc35 | ||
|
|
7d5c954b28 | ||
|
|
63ece13cca | ||
|
|
fc831b746c | ||
|
|
7c14a112eb | ||
|
|
e42b747585 | ||
|
|
ceb1b5f843 | ||
|
|
01a254e412 | ||
|
|
aa677df3ca | ||
|
|
79f1b90ff8 | ||
|
|
8722a309e6 | ||
|
|
ce87cecb4a | ||
|
|
65b0ff8496 | ||
|
|
8d4ab6c09c | ||
|
|
42dbedabb7 | ||
|
|
1a19286ea0 | ||
|
|
cc653b6b21 | ||
|
|
9ce5c76d4a | ||
|
|
86ca388ecf | ||
|
|
9c6068f026 | ||
|
|
0dddc4a44c | ||
|
|
253fe49648 | ||
|
|
663d4d8c81 | ||
|
|
dcd50239c5 | ||
|
|
6a51c0b435 | ||
|
|
7b78c3f8d0 | ||
|
|
519ca91cd7 | ||
|
|
2e2cc16fe3 | ||
|
|
5c9c05ca19 | ||
|
|
507ffdb910 | ||
|
|
21d41756b8 | ||
|
|
17ceccdd70 | ||
|
|
61ec650801 | ||
|
|
6a0ade1194 | ||
|
|
e5a619b167 | ||
|
|
dd149d7ad9 | ||
|
|
1c37268c3d | ||
|
|
92a2e47436 | ||
|
|
cdc971e86f | ||
|
|
84d81a6456 | ||
|
|
1bae4ea204 | ||
|
|
a676650993 | ||
|
|
40dec5346b |
43
CHANGELOG.md
43
CHANGELOG.md
@@ -1,5 +1,48 @@
|
|||||||
# Change Log
|
# Change Log
|
||||||
|
|
||||||
|
## [1.12.0](https://github.com/skywinder/github-changelog-generator/tree/1.12.0) (2016-04-01)
|
||||||
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.11.8...1.12.0)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- .github\_changelog\_generator config file is not consistent with the internal options hash [\#312](https://github.com/skywinder/github-changelog-generator/issues/312)
|
||||||
|
- Feature request: YAML front matter [\#276](https://github.com/skywinder/github-changelog-generator/issues/276)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Added tag exclusion with a filter \(string or regex\) [\#320](https://github.com/skywinder/github-changelog-generator/pull/320) ([soundstep](https://github.com/soundstep))
|
||||||
|
|
||||||
|
## [1.11.8](https://github.com/skywinder/github-changelog-generator/tree/1.11.8) (2016-03-22)
|
||||||
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.11.7...1.11.8)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- ParserFile: Allow comments in settings file [\#358](https://github.com/skywinder/github-changelog-generator/pull/358) ([olleolleolle](https://github.com/olleolleolle))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Error when specifying exclude\_labels [\#327](https://github.com/skywinder/github-changelog-generator/issues/327)
|
||||||
|
- Parse options file options into arrays, integers, flags, and other [\#354](https://github.com/skywinder/github-changelog-generator/pull/354) ([olleolleolle](https://github.com/olleolleolle))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Installation fails on Ubuntu [\#352](https://github.com/skywinder/github-changelog-generator/issues/352)
|
||||||
|
- Test installing on Windows: use AppVeyor [\#348](https://github.com/skywinder/github-changelog-generator/issues/348)
|
||||||
|
- Can't run under RubyGems 2.5.1 and Ruby 2.3.0 [\#325](https://github.com/skywinder/github-changelog-generator/issues/325)
|
||||||
|
- Ruby 2.3.0 - Deprecation warning: Github::ResponseWrapper\#respond\_to?\(:to\_ary\) is old fashion which takes only one parameter [\#323](https://github.com/skywinder/github-changelog-generator/issues/323)
|
||||||
|
- between-tags and exclude-tags do not work in .github\_changelog\_generator [\#317](https://github.com/skywinder/github-changelog-generator/issues/317)
|
||||||
|
- Add a "documentation" label [\#284](https://github.com/skywinder/github-changelog-generator/issues/284)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Replace shelling-out-to-Git w/ Dir call [\#360](https://github.com/skywinder/github-changelog-generator/pull/360) ([olleolleolle](https://github.com/olleolleolle))
|
||||||
|
- ParserFile: fail parsing with config file line number; use a File instead of a filename [\#357](https://github.com/skywinder/github-changelog-generator/pull/357) ([olleolleolle](https://github.com/olleolleolle))
|
||||||
|
- On gem install, do not try to copy manpage files in the "extensions" step [\#356](https://github.com/skywinder/github-changelog-generator/pull/356) ([olleolleolle](https://github.com/olleolleolle))
|
||||||
|
- Refactor: call it option\_name, instead of key\_sym [\#355](https://github.com/skywinder/github-changelog-generator/pull/355) ([olleolleolle](https://github.com/olleolleolle))
|
||||||
|
- Add a `bundle install` test [\#353](https://github.com/skywinder/github-changelog-generator/pull/353) ([jkeiser](https://github.com/jkeiser))
|
||||||
|
- Add an AppVeyor config [\#350](https://github.com/skywinder/github-changelog-generator/pull/350) ([Arcanemagus](https://github.com/Arcanemagus))
|
||||||
|
- README: Document GitHub token URI scope [\#345](https://github.com/skywinder/github-changelog-generator/pull/345) ([olleolleolle](https://github.com/olleolleolle))
|
||||||
|
|
||||||
## [1.11.7](https://github.com/skywinder/github-changelog-generator/tree/1.11.7) (2016-03-04)
|
## [1.11.7](https://github.com/skywinder/github-changelog-generator/tree/1.11.7) (2016-03-04)
|
||||||
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.11.6...1.11.7)
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.11.6...1.11.7)
|
||||||
|
|
||||||
|
|||||||
25
Gemfile.lock
25
Gemfile.lock
@@ -1,14 +1,10 @@
|
|||||||
PATH
|
PATH
|
||||||
remote: .
|
remote: .
|
||||||
specs:
|
specs:
|
||||||
github_changelog_generator (1.11.7)
|
github_changelog_generator (1.12.0)
|
||||||
bundler (>= 1.7)
|
|
||||||
colorize (~> 0.7)
|
colorize (~> 0.7)
|
||||||
github_api (~> 0.12)
|
github_api (~> 0.12)
|
||||||
overcommit (>= 0.31)
|
|
||||||
rake (>= 10.0)
|
rake (>= 10.0)
|
||||||
rspec (>= 3.2)
|
|
||||||
rubocop (>= 0.31)
|
|
||||||
|
|
||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
@@ -40,11 +36,11 @@ GEM
|
|||||||
hashie (>= 3.4)
|
hashie (>= 3.4)
|
||||||
multi_json (>= 1.7.5, < 2.0)
|
multi_json (>= 1.7.5, < 2.0)
|
||||||
oauth2
|
oauth2
|
||||||
hashie (3.4.3)
|
hashie (3.4.4)
|
||||||
iniparse (1.4.2)
|
iniparse (1.4.2)
|
||||||
json (1.8.3)
|
json (1.8.3)
|
||||||
jwt (1.5.1)
|
jwt (1.5.1)
|
||||||
multi_json (1.11.2)
|
multi_json (1.12.0)
|
||||||
multi_xml (0.5.5)
|
multi_xml (0.5.5)
|
||||||
multipart-post (2.0.0)
|
multipart-post (2.0.0)
|
||||||
oauth2 (1.1.0)
|
oauth2 (1.1.0)
|
||||||
@@ -53,15 +49,15 @@ GEM
|
|||||||
multi_json (~> 1.3)
|
multi_json (~> 1.3)
|
||||||
multi_xml (~> 0.5)
|
multi_xml (~> 0.5)
|
||||||
rack (>= 1.2, < 3)
|
rack (>= 1.2, < 3)
|
||||||
overcommit (0.32.0)
|
overcommit (0.33.0)
|
||||||
childprocess (~> 0.5.8)
|
childprocess (~> 0.5.8)
|
||||||
iniparse (~> 1.4)
|
iniparse (~> 1.4)
|
||||||
parser (2.3.0.6)
|
parser (2.3.1.0)
|
||||||
ast (~> 2.2)
|
ast (~> 2.2)
|
||||||
powerpack (0.1.1)
|
powerpack (0.1.1)
|
||||||
rack (1.6.4)
|
rack (1.6.4)
|
||||||
rainbow (2.1.0)
|
rainbow (2.1.0)
|
||||||
rake (11.0.1)
|
rake (11.1.2)
|
||||||
rspec (3.4.0)
|
rspec (3.4.0)
|
||||||
rspec-core (~> 3.4.0)
|
rspec-core (~> 3.4.0)
|
||||||
rspec-expectations (~> 3.4.0)
|
rspec-expectations (~> 3.4.0)
|
||||||
@@ -75,13 +71,13 @@ GEM
|
|||||||
diff-lcs (>= 1.2.0, < 2.0)
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
rspec-support (~> 3.4.0)
|
rspec-support (~> 3.4.0)
|
||||||
rspec-support (3.4.1)
|
rspec-support (3.4.1)
|
||||||
rubocop (0.38.0)
|
rubocop (0.39.0)
|
||||||
parser (>= 2.3.0.6, < 3.0)
|
parser (>= 2.3.0.7, < 3.0)
|
||||||
powerpack (~> 0.1)
|
powerpack (~> 0.1)
|
||||||
rainbow (>= 1.99.1, < 3.0)
|
rainbow (>= 1.99.1, < 3.0)
|
||||||
ruby-progressbar (~> 1.7)
|
ruby-progressbar (~> 1.7)
|
||||||
unicode-display_width (~> 1.0, >= 1.0.1)
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
||||||
ruby-progressbar (1.7.5)
|
ruby-progressbar (1.8.0)
|
||||||
simplecov (0.11.2)
|
simplecov (0.11.2)
|
||||||
docile (~> 1.1.0)
|
docile (~> 1.1.0)
|
||||||
json (~> 1.8)
|
json (~> 1.8)
|
||||||
@@ -92,7 +88,7 @@ GEM
|
|||||||
thor (0.19.1)
|
thor (0.19.1)
|
||||||
thread_safe (0.3.5)
|
thread_safe (0.3.5)
|
||||||
tins (1.6.0)
|
tins (1.6.0)
|
||||||
unicode-display_width (1.0.1)
|
unicode-display_width (1.0.5)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
@@ -104,6 +100,7 @@ DEPENDENCIES
|
|||||||
github_changelog_generator!
|
github_changelog_generator!
|
||||||
overcommit
|
overcommit
|
||||||
rake
|
rake
|
||||||
|
rspec (>= 3.2)
|
||||||
rubocop
|
rubocop
|
||||||
simplecov (~> 0.10)
|
simplecov (~> 0.10)
|
||||||
|
|
||||||
|
|||||||
9
LICENSE
Normal file
9
LICENSE
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
Copyright (c) 2016 Petr Korolev
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
@@ -17,17 +17,18 @@ Gem::Specification.new do |spec|
|
|||||||
spec.homepage = "https://github.com/skywinder/Github-Changelog-Generator"
|
spec.homepage = "https://github.com/skywinder/Github-Changelog-Generator"
|
||||||
spec.license = "MIT"
|
spec.license = "MIT"
|
||||||
|
|
||||||
spec.files = Dir['{bin,lib,man,spec}/**/*', 'Rakefile', 'README.md']
|
spec.files = Dir["{bin,lib,man,spec}/**/*"] + %w(LICENSE Rakefile README.md)
|
||||||
|
|
||||||
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
||||||
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
||||||
spec.require_paths = ["lib"]
|
spec.require_paths = ["lib"]
|
||||||
|
|
||||||
spec.add_runtime_dependency "rake", ">= 10.0"
|
spec.add_runtime_dependency "rake", ">= 10.0"
|
||||||
spec.add_runtime_dependency "bundler", ">= 1.7"
|
|
||||||
spec.add_runtime_dependency("github_api", ["~> 0.12"])
|
spec.add_runtime_dependency("github_api", ["~> 0.12"])
|
||||||
spec.add_runtime_dependency("colorize", ["~> 0.7"])
|
spec.add_runtime_dependency("colorize", ["~> 0.7"])
|
||||||
spec.add_runtime_dependency("overcommit", ">= 0.31")
|
|
||||||
spec.add_runtime_dependency("rubocop", ">= 0.31")
|
spec.add_development_dependency("overcommit", ">= 0.31")
|
||||||
spec.add_runtime_dependency("rspec", ">= 3.2")
|
spec.add_development_dependency("rspec", ">= 3.2")
|
||||||
|
spec.add_development_dependency "bundler", ">= 1.7"
|
||||||
|
spec.add_development_dependency("rubocop", ">= 0.31")
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -54,13 +54,14 @@ module GitHubChangelogGenerator
|
|||||||
|
|
||||||
# @return [Object] try to find newest tag using #Reader and :base option if specified otherwise returns nil
|
# @return [Object] try to find newest tag using #Reader and :base option if specified otherwise returns nil
|
||||||
def detect_since_tag
|
def detect_since_tag
|
||||||
@since_tag ||= @options[:since_tag]
|
@since_tag ||= @options.fetch(:since_tag) { version_of_first_item }
|
||||||
if @since_tag.nil? && @options[:base] && File.file?(@options[:base])
|
|
||||||
reader = GitHubChangelogGenerator::Reader.new
|
|
||||||
content = reader.read(@options[:base])
|
|
||||||
@since_tag = content[0]["version"] if content.count && content
|
|
||||||
end
|
end
|
||||||
@since_tag
|
|
||||||
|
def version_of_first_item
|
||||||
|
return unless File.file?(@options[:base].to_s)
|
||||||
|
|
||||||
|
sections = GitHubChangelogGenerator::Reader.new.read(@options[:base])
|
||||||
|
sections.first["version"] if sections && sections.any?
|
||||||
end
|
end
|
||||||
|
|
||||||
# Return tags after filtering tags in lists provided by option: --between-tags & --exclude-tags
|
# Return tags after filtering tags in lists provided by option: --between-tags & --exclude-tags
|
||||||
@@ -129,26 +130,34 @@ module GitHubChangelogGenerator
|
|||||||
end
|
end
|
||||||
|
|
||||||
# @param [Array] all_tags all tags
|
# @param [Array] all_tags all tags
|
||||||
# @return [Array] filtered tags according :exclude_tags option
|
# @return [Array] filtered tags according :exclude_tags or :exclude_tags_regex option
|
||||||
def filter_excluded_tags(all_tags)
|
def filter_excluded_tags(all_tags)
|
||||||
return all_tags unless @options[:exclude_tags]
|
if @options[:exclude_tags]
|
||||||
|
|
||||||
apply_exclude_tags(all_tags)
|
apply_exclude_tags(all_tags)
|
||||||
|
elsif @options[:exclude_tags_regex]
|
||||||
|
apply_exclude_tags_regex(all_tags)
|
||||||
|
else
|
||||||
|
all_tags
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def apply_exclude_tags(all_tags)
|
def apply_exclude_tags(all_tags)
|
||||||
if @options[:exclude_tags].is_a?(Regexp)
|
if @options[:exclude_tags].is_a?(Regexp)
|
||||||
filter_tags_with_regex(all_tags)
|
filter_tags_with_regex(all_tags, @options[:exclude_tags])
|
||||||
else
|
else
|
||||||
filter_exact_tags(all_tags)
|
filter_exact_tags(all_tags)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def filter_tags_with_regex(all_tags)
|
def apply_exclude_tags_regex(all_tags)
|
||||||
|
filter_tags_with_regex(all_tags, Regexp.new(@options[:exclude_tags_regex]))
|
||||||
|
end
|
||||||
|
|
||||||
|
def filter_tags_with_regex(all_tags, regex)
|
||||||
warn_if_nonmatching_regex(all_tags)
|
warn_if_nonmatching_regex(all_tags)
|
||||||
all_tags.reject { |tag| @options[:exclude_tags] =~ tag.name }
|
all_tags.reject { |tag| regex =~ tag.name }
|
||||||
end
|
end
|
||||||
|
|
||||||
def filter_exact_tags(all_tags)
|
def filter_exact_tags(all_tags)
|
||||||
|
|||||||
@@ -122,6 +122,9 @@ module GitHubChangelogGenerator
|
|||||||
opts.on("--exclude-tags x,y,z", Array, "Change log will exclude specified tags") do |list|
|
opts.on("--exclude-tags x,y,z", Array, "Change log will exclude specified tags") do |list|
|
||||||
options[:exclude_tags] = list
|
options[:exclude_tags] = list
|
||||||
end
|
end
|
||||||
|
opts.on("--exclude-tags-regex [REGEX]", "Apply a regular expression on tag names so that they can be excluded, for example: --exclude-tags-regex \".*\+\d{1,}\" ") do |last|
|
||||||
|
options[:exclude_tags_regex] = last
|
||||||
|
end
|
||||||
opts.on("--since-tag x", "Change log will start after specified tag") do |v|
|
opts.on("--since-tag x", "Change log will start after specified tag") do |v|
|
||||||
options[:since_tag] = v
|
options[:since_tag] = v
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
module GitHubChangelogGenerator
|
module GitHubChangelogGenerator
|
||||||
VERSION = "1.11.8"
|
VERSION = "1.12.1"
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,19 +1,14 @@
|
|||||||
|
describe GitHubChangelogGenerator::Generator do
|
||||||
def tag_mash_with_name(tag)
|
def tag_mash_with_name(tag)
|
||||||
mash_tag = Hashie::Mash.new
|
Hashie::Mash.new.tap { |mash_tag| mash_tag.name = tag }
|
||||||
mash_tag.name = tag
|
|
||||||
mash_tag
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def tags_mash_from_strings(tags_strings)
|
def tags_mash_from_strings(tags_strings)
|
||||||
mash_array = []
|
tags_strings.map do |tag|
|
||||||
tags_strings.each do |tag|
|
tag_mash_with_name(tag)
|
||||||
mash_tag = tag_mash_with_name(tag)
|
|
||||||
mash_array << mash_tag
|
|
||||||
end
|
end
|
||||||
mash_array
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe GitHubChangelogGenerator::Generator do
|
|
||||||
describe "#filter_between_tags" do
|
describe "#filter_between_tags" do
|
||||||
context "when between_tags nil" do
|
context "when between_tags nil" do
|
||||||
before do
|
before do
|
||||||
@@ -76,31 +71,47 @@ describe GitHubChangelogGenerator::Generator do
|
|||||||
describe "#filter_excluded_tags" do
|
describe "#filter_excluded_tags" do
|
||||||
subject { generator.filter_excluded_tags(tags_mash_from_strings(%w(1 2 3))) }
|
subject { generator.filter_excluded_tags(tags_mash_from_strings(%w(1 2 3))) }
|
||||||
|
|
||||||
context "with valid excluded tags" do
|
context "with matching string" do
|
||||||
let(:generator) { GitHubChangelogGenerator::Generator.new(exclude_tags: %w(3)) }
|
let(:generator) { GitHubChangelogGenerator::Generator.new(exclude_tags: %w(3)) }
|
||||||
it { is_expected.to be_a Array }
|
it { is_expected.to be_a Array }
|
||||||
it { is_expected.to match_array(tags_mash_from_strings(%w(1 2))) }
|
it { is_expected.to match_array(tags_mash_from_strings(%w(1 2))) }
|
||||||
end
|
end
|
||||||
|
|
||||||
context "with invalid excluded tags" do
|
context "with non-matching string" do
|
||||||
let(:generator) { GitHubChangelogGenerator::Generator.new(exclude_tags: %w(invalid tags)) }
|
let(:generator) { GitHubChangelogGenerator::Generator.new(exclude_tags: %w(invalid tags)) }
|
||||||
it { is_expected.to be_a Array }
|
it { is_expected.to be_a Array }
|
||||||
it { is_expected.to match_array(tags_mash_from_strings(%w(1 2 3))) }
|
it { is_expected.to match_array(tags_mash_from_strings(%w(1 2 3))) }
|
||||||
end
|
end
|
||||||
|
|
||||||
context "with regex exclude_tags" do
|
context "with matching regex" do
|
||||||
let(:generator) { GitHubChangelogGenerator::Generator.new(exclude_tags: /[23]/) }
|
let(:generator) { GitHubChangelogGenerator::Generator.new(exclude_tags: /[23]/) }
|
||||||
it { is_expected.to be_a Array }
|
it { is_expected.to be_a Array }
|
||||||
it { is_expected.to match_array(tags_mash_from_strings(%w(1))) }
|
it { is_expected.to match_array(tags_mash_from_strings(%w(1))) }
|
||||||
end
|
end
|
||||||
|
|
||||||
context "with non-matching regex in exclude_tags" do
|
context "with non-matching regex" do
|
||||||
let(:generator) { GitHubChangelogGenerator::Generator.new(exclude_tags: /[abc]/) }
|
let(:generator) { GitHubChangelogGenerator::Generator.new(exclude_tags: /[abc]/) }
|
||||||
it { is_expected.to be_a Array }
|
it { is_expected.to be_a Array }
|
||||||
it { is_expected.to match_array(tags_mash_from_strings(%w(1 2 3))) }
|
it { is_expected.to match_array(tags_mash_from_strings(%w(1 2 3))) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "#filter_excluded_tags_regex" do
|
||||||
|
subject { generator.filter_excluded_tags(tags_mash_from_strings(%w(1 2 3))) }
|
||||||
|
|
||||||
|
context "with matching regex" do
|
||||||
|
let(:generator) { GitHubChangelogGenerator::Generator.new(exclude_tags_regex: "[23]") }
|
||||||
|
it { is_expected.to be_a Array }
|
||||||
|
it { is_expected.to match_array(tags_mash_from_strings(%w(1))) }
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with non-matching regex" do
|
||||||
|
let(:generator) { GitHubChangelogGenerator::Generator.new(exclude_tags_regex: "[45]") }
|
||||||
|
it { is_expected.to be_a Array }
|
||||||
|
it { is_expected.to match_array(tags_mash_from_strings(%w(1 2 3))) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "#filter_since_tag" do
|
describe "#filter_since_tag" do
|
||||||
context "with filled array" do
|
context "with filled array" do
|
||||||
subject { generator.filter_since_tag(tags_mash_from_strings(%w(1 2 3))) }
|
subject { generator.filter_since_tag(tags_mash_from_strings(%w(1 2 3))) }
|
||||||
@@ -190,7 +201,7 @@ describe GitHubChangelogGenerator::Generator do
|
|||||||
@generator.instance_variable_set :@fetcher, mock
|
@generator.instance_variable_set :@fetcher, mock
|
||||||
end
|
end
|
||||||
subject do
|
subject do
|
||||||
of_tag = @generator.get_time_of_tag tag_mash_with_name("valid_tag")
|
of_tag = @generator.get_time_of_tag(tag_mash_with_name("valid_tag"))
|
||||||
of_tag
|
of_tag
|
||||||
end
|
end
|
||||||
it { is_expected.to be_a_kind_of(Time) }
|
it { is_expected.to be_a_kind_of(Time) }
|
||||||
@@ -199,31 +210,32 @@ describe GitHubChangelogGenerator::Generator do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe "#sort_tags_by_date" do
|
describe "#sort_tags_by_date" do
|
||||||
time1 = Time.now
|
let(:time1) { Time.now }
|
||||||
time2 = Time.now
|
let(:time2) { Time.now }
|
||||||
time3 = Time.now
|
let(:time3) { Time.now }
|
||||||
|
|
||||||
before(:all) do
|
before(:all) do
|
||||||
@generator = GitHubChangelogGenerator::Generator.new
|
@generator = GitHubChangelogGenerator::Generator.new
|
||||||
end
|
end
|
||||||
context "sort unsorted tags" do
|
|
||||||
tags = tags_mash_from_strings %w(valid_tag1 valid_tag2 valid_tag3)
|
|
||||||
before do
|
before do
|
||||||
@generator.instance_variable_set :@tag_times_hash, "valid_tag1" => time1, "valid_tag2" => time2, "valid_tag3" => time3
|
@generator.instance_variable_set(:@tag_times_hash, "valid_tag1" => time1,
|
||||||
|
"valid_tag2" => time2,
|
||||||
|
"valid_tag3" => time3)
|
||||||
end
|
end
|
||||||
|
|
||||||
subject do
|
subject do
|
||||||
@generator.sort_tags_by_date tags
|
@generator.sort_tags_by_date(tags)
|
||||||
end
|
end
|
||||||
|
context "sort unsorted tags" do
|
||||||
|
let(:tags) { tags_mash_from_strings %w(valid_tag1 valid_tag2 valid_tag3) }
|
||||||
|
|
||||||
it { is_expected.to be_a_kind_of(Array) }
|
it { is_expected.to be_a_kind_of(Array) }
|
||||||
it { is_expected.to match_array(tags.reverse!) }
|
it { is_expected.to match_array(tags.reverse!) }
|
||||||
end
|
end
|
||||||
context "sort sorted tags" do
|
context "sort sorted tags" do
|
||||||
tags = tags_mash_from_strings %w(valid_tag3 valid_tag2 valid_tag1)
|
let(:tags) { tags_mash_from_strings %w(valid_tag3 valid_tag2 valid_tag1) }
|
||||||
before do
|
|
||||||
@generator.instance_variable_set :@tag_times_hash, "valid_tag1" => time1, "valid_tag2" => time2, "valid_tag3" => time3
|
|
||||||
end
|
|
||||||
subject do
|
|
||||||
@generator.sort_tags_by_date tags
|
|
||||||
end
|
|
||||||
it { is_expected.to be_a_kind_of(Array) }
|
it { is_expected.to be_a_kind_of(Array) }
|
||||||
it { is_expected.to match_array(tags) }
|
it { is_expected.to match_array(tags) }
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user