Compare commits

...

26 Commits

Author SHA1 Message Date
Petr Korolev
3253c278be Merge branch 'release/1.12.1' 2016-05-09 15:23:22 +03:00
Petr Korolev
29540ced2c Update gemspec to version 1.12.1 2016-05-09 15:23:19 +03:00
Petr Korolev
8de9efbc35 update gemfile 2016-05-09 15:22:56 +03:00
Petr Korolev
7d5c954b28 This should fix #364 2016-05-09 15:22:56 +03:00
Olle Jonsson
63ece13cca Include LICENSE in distributed files 2016-05-09 15:22:56 +03:00
Olle Jonsson
fc831b746c Add MIT LICENSE file
This resolves #369.
2016-05-09 15:22:56 +03:00
Olle Jonsson
7c14a112eb linting 2016-05-09 15:22:56 +03:00
Olle Jonsson
e42b747585 Linting 2016-05-09 15:22:56 +03:00
Olle Jonsson
ceb1b5f843 Spec: Smaller help functions 2016-05-09 15:22:56 +03:00
Olle Jonsson
01a254e412 Avoid nil bug in detect_since_tag 2016-05-09 15:22:56 +03:00
Petr Korolev
aa677df3ca Merge pull request #373 from skywinder/development_dependency
Move dev gems to add_development_dependency
2016-05-09 15:22:17 +03:00
Petr Korolev
79f1b90ff8 fix rubocop checks 2016-05-09 15:08:09 +03:00
Petr Korolev
8722a309e6 update gemfile 2016-05-09 14:49:32 +03:00
Petr Korolev
ce87cecb4a This should fix #364 2016-05-09 14:43:59 +03:00
Petr Korolev
65b0ff8496 Merge pull request #370 from olleolleolle/fix/license-file
Add MIT LICENSE file
2016-05-05 13:04:49 +03:00
Olle Jonsson
8d4ab6c09c Include LICENSE in distributed files 2016-04-30 12:03:15 +02:00
Olle Jonsson
42dbedabb7 Add MIT LICENSE file
This resolves #369.
2016-04-30 11:55:39 +02:00
Olle Jonsson
1a19286ea0 Merge pull request #368 from olleolleolle/fix/issue-with-detect-tags
Avoid nil bug in detect_since_tag
2016-04-18 17:10:48 +02:00
Olle Jonsson
cc653b6b21 linting 2016-04-18 16:53:45 +02:00
Olle Jonsson
9ce5c76d4a Linting 2016-04-18 16:53:25 +02:00
Olle Jonsson
86ca388ecf Spec: Smaller help functions 2016-04-18 16:53:25 +02:00
Olle Jonsson
9c6068f026 Avoid nil bug in detect_since_tag 2016-04-18 16:53:25 +02:00
Petr Korolev
0dddc4a44c Merge branch 'hotfix/update-changelog' into develop 2016-04-01 13:33:21 +03:00
Petr Korolev
253fe49648 Merge branch 'hotfix/update-changelog' 2016-04-01 13:33:20 +03:00
Petr Korolev
663d4d8c81 Update changelog for version 1.12.0 2016-04-01 13:33:19 +03:00
Petr Korolev
dcd50239c5 Merge branch 'release/1.12.0' into develop 2016-04-01 13:32:35 +03:00
7 changed files with 78 additions and 62 deletions

View File

@@ -1,5 +1,17 @@
# 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)

View File

@@ -1,14 +1,10 @@
PATH
remote: .
specs:
github_changelog_generator (1.11.8)
bundler (>= 1.7)
github_changelog_generator (1.12.0)
colorize (~> 0.7)
github_api (~> 0.12)
overcommit (>= 0.31)
rake (>= 10.0)
rspec (>= 3.2)
rubocop (>= 0.31)
GEM
remote: https://rubygems.org/
@@ -40,11 +36,11 @@ GEM
hashie (>= 3.4)
multi_json (>= 1.7.5, < 2.0)
oauth2
hashie (3.4.3)
hashie (3.4.4)
iniparse (1.4.2)
json (1.8.3)
jwt (1.5.1)
multi_json (1.11.2)
multi_json (1.12.0)
multi_xml (0.5.5)
multipart-post (2.0.0)
oauth2 (1.1.0)
@@ -53,15 +49,15 @@ GEM
multi_json (~> 1.3)
multi_xml (~> 0.5)
rack (>= 1.2, < 3)
overcommit (0.32.0)
overcommit (0.33.0)
childprocess (~> 0.5.8)
iniparse (~> 1.4)
parser (2.3.0.6)
parser (2.3.1.0)
ast (~> 2.2)
powerpack (0.1.1)
rack (1.6.4)
rainbow (2.1.0)
rake (11.0.1)
rake (11.1.2)
rspec (3.4.0)
rspec-core (~> 3.4.0)
rspec-expectations (~> 3.4.0)
@@ -75,13 +71,13 @@ GEM
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.4.0)
rspec-support (3.4.1)
rubocop (0.38.0)
parser (>= 2.3.0.6, < 3.0)
rubocop (0.39.0)
parser (>= 2.3.0.7, < 3.0)
powerpack (~> 0.1)
rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1)
ruby-progressbar (1.7.5)
ruby-progressbar (1.8.0)
simplecov (0.11.2)
docile (~> 1.1.0)
json (~> 1.8)
@@ -92,7 +88,7 @@ GEM
thor (0.19.1)
thread_safe (0.3.5)
tins (1.6.0)
unicode-display_width (1.0.1)
unicode-display_width (1.0.5)
PLATFORMS
ruby
@@ -104,6 +100,7 @@ DEPENDENCIES
github_changelog_generator!
overcommit
rake
rspec (>= 3.2)
rubocop
simplecov (~> 0.10)

9
LICENSE Normal file
View 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.

View File

@@ -17,17 +17,18 @@ Gem::Specification.new do |spec|
spec.homepage = "https://github.com/skywinder/Github-Changelog-Generator"
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.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"]
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("colorize", ["~> 0.7"])
spec.add_runtime_dependency("overcommit", ">= 0.31")
spec.add_runtime_dependency("rubocop", ">= 0.31")
spec.add_runtime_dependency("rspec", ">= 3.2")
spec.add_development_dependency("overcommit", ">= 0.31")
spec.add_development_dependency("rspec", ">= 3.2")
spec.add_development_dependency "bundler", ">= 1.7"
spec.add_development_dependency("rubocop", ">= 0.31")
end

View File

@@ -54,13 +54,14 @@ module GitHubChangelogGenerator
# @return [Object] try to find newest tag using #Reader and :base option if specified otherwise returns nil
def detect_since_tag
@since_tag ||= @options[:since_tag]
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
@since_tag ||= @options.fetch(:since_tag) { version_of_first_item }
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
# Return tags after filtering tags in lists provided by option: --between-tags & --exclude-tags

View File

@@ -1,3 +1,3 @@
module GitHubChangelogGenerator
VERSION = "1.12.0"
VERSION = "1.12.1"
end

View File

@@ -1,19 +1,14 @@
def tag_mash_with_name(tag)
mash_tag = Hashie::Mash.new
mash_tag.name = tag
mash_tag
end
def tags_mash_from_strings(tags_strings)
mash_array = []
tags_strings.each do |tag|
mash_tag = tag_mash_with_name(tag)
mash_array << mash_tag
end
mash_array
end
describe GitHubChangelogGenerator::Generator do
def tag_mash_with_name(tag)
Hashie::Mash.new.tap { |mash_tag| mash_tag.name = tag }
end
def tags_mash_from_strings(tags_strings)
tags_strings.map do |tag|
tag_mash_with_name(tag)
end
end
describe "#filter_between_tags" do
context "when between_tags nil" do
before do
@@ -105,13 +100,13 @@ describe GitHubChangelogGenerator::Generator 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]') }
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]') }
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
@@ -206,7 +201,7 @@ describe GitHubChangelogGenerator::Generator do
@generator.instance_variable_set :@fetcher, mock
end
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
end
it { is_expected.to be_a_kind_of(Time) }
@@ -215,31 +210,32 @@ describe GitHubChangelogGenerator::Generator do
end
describe "#sort_tags_by_date" do
time1 = Time.now
time2 = Time.now
time3 = Time.now
let(:time1) { Time.now }
let(:time2) { Time.now }
let(:time3) { Time.now }
before(:all) do
@generator = GitHubChangelogGenerator::Generator.new
end
context "sort unsorted tags" do
tags = tags_mash_from_strings %w(valid_tag1 valid_tag2 valid_tag3)
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
subject do
@generator.sort_tags_by_date tags
@generator.sort_tags_by_date(tags)
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 match_array(tags.reverse!) }
end
context "sort sorted tags" do
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
let(:tags) { tags_mash_from_strings %w(valid_tag3 valid_tag2 valid_tag1) }
it { is_expected.to be_a_kind_of(Array) }
it { is_expected.to match_array(tags) }
end