From 61ec6508010e8f5c26d4d4a391b6a4130615d56d Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 24 Mar 2016 12:40:42 +0000 Subject: [PATCH] refactor --- .../generator/generator_tags.rb | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/lib/github_changelog_generator/generator/generator_tags.rb b/lib/github_changelog_generator/generator/generator_tags.rb index cbf8198..5d679df 100644 --- a/lib/github_changelog_generator/generator/generator_tags.rb +++ b/lib/github_changelog_generator/generator/generator_tags.rb @@ -131,10 +131,10 @@ module GitHubChangelogGenerator # @param [Array] all_tags all tags # @return [Array] filtered tags according :exclude_tags or :exclude_tags_regex option def filter_excluded_tags(all_tags) - if (@options[:exclude_tags].is_a?(Regexp) || @options[:exclude_tags_regex]) - filter_tags_with_regex(all_tags) - elsif @options[:exclude_tags] - filter_exact_tags(all_tags) + if @options[:exclude_tags] + apply_exclude_tags(all_tags) + elsif @options[:exclude_tags_regex] + apply_exclude_tags_regex(all_tags) else all_tags end @@ -142,16 +142,21 @@ module GitHubChangelogGenerator private - def filter_tags_with_regex(all_tags) - warn_if_nonmatching_regex(all_tags) - - if @options[:exclude_tags] - all_tags.reject { |tag| @options[:exclude_tags] =~ tag.name } - elsif @options[:exclude_tags_regex] - regex = Regexp.new(@options[:exclude_tags_regex]) - all_tags.reject { |tag| regex =~ tag.name } + def apply_exclude_tags(all_tags) + if @options[:exclude_tags].is_a?(Regexp) + filter_tags_with_regex(all_tags, @options[:exclude_tags]) + else + filter_exact_tags(all_tags) end + end + 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) + all_tags.reject { |tag| regex =~ tag.name } end def filter_exact_tags(all_tags)