Merge branch 'feature/due-tag' into develop

This commit is contained in:
Petr Korolev
2015-08-24 17:52:09 +03:00
3 changed files with 92 additions and 9 deletions
@@ -52,6 +52,7 @@ module GitHubChangelogGenerator
[newer_tag_link, newer_tag_name, newer_tag_time]
end
# @return [Object] try to find newest tag using #Reader and :base option if specified otherwise returns nil
def detect_since_tag
if @options[:base] && File.file?(@options[:base])
reader = GitHubChangelogGenerator::Reader.new
@@ -69,6 +70,8 @@ module GitHubChangelogGenerator
filter_excluded_tags(filtered_tags)
end
# @param [Array] all_tags all tags
# @return [Array] filtered tags according :since_tag option
def filter_since_tag(all_tags)
filtered_tags = all_tags
tag = @options[:since_tag]
@@ -88,6 +91,29 @@ module GitHubChangelogGenerator
filtered_tags
end
# @param [Array] all_tags all tags
# @return [Array] filtered tags according :due_tag option
def filter_due_tag(all_tags)
filtered_tags = all_tags
tag = @options[:due_tag]
if tag
if (all_tags.count > 0) && (all_tags.map(&:name).include? tag)
idx = all_tags.index { |t| t.name == tag }
last_index = all_tags.count - 1
if idx > 0 && idx < last_index
filtered_tags = all_tags[idx + 1..last_index]
else
filtered_tags = []
end
else
Helper.log.warn "Warning: can't find tag #{tag}, specified with --due-tag option."
end
end
filtered_tags
end
# @param [Array] all_tags all tags
# @return [Array] filtered tags according :between_tags option
def filter_between_tags(all_tags)
filtered_tags = all_tags
if @options[:between_tags]
@@ -101,6 +127,8 @@ module GitHubChangelogGenerator
filtered_tags
end
# @param [Array] all_tags all tags
# @return [Array] filtered tags according :exclude_tags option
def filter_excluded_tags(all_tags)
filtered_tags = all_tags
if @options[:exclude_tags]
+3
View File
@@ -119,6 +119,9 @@ module GitHubChangelogGenerator
opts.on("--since-tag x", "Change log will start after specified tag") do |v|
options[:since_tag] = v
end
opts.on("--due-tag x", "Change log will end before specified tag") do |v|
options[:due_tag] = v
end
opts.on("--max-issues [NUMBER]", Integer, "Max number of issues to fetch from GitHub. Default is unlimited") do |max|
options[:max_issues] = max
end