Refactoring: introduce local, return early
- use #reject - add basic spec around it
This commit is contained in:
parent
4ceb065cae
commit
87b9962a8d
|
@ -4,13 +4,12 @@ module GitHubChangelogGenerator
|
|||
# @param [Array] issues
|
||||
# @return [Array] filtered array
|
||||
def exclude_issues_by_labels(issues)
|
||||
unless @options[:exclude_labels].nil?
|
||||
issues = issues.select do |issue|
|
||||
var = issue.labels.map(&:name) & @options[:exclude_labels]
|
||||
!var.any?
|
||||
end
|
||||
return issues if !@options[:exclude_labels] || @options[:exclude_labels].empty?
|
||||
|
||||
issues.reject do |issue|
|
||||
labels = issue.labels.map(&:name)
|
||||
(labels & @options[:exclude_labels]).any?
|
||||
end
|
||||
issues
|
||||
end
|
||||
|
||||
# @return [Array] filtered issues accourding milestone
|
||||
|
|
16
spec/unit/generator/generator_processor_spec.rb
Normal file
16
spec/unit/generator/generator_processor_spec.rb
Normal file
|
@ -0,0 +1,16 @@
|
|||
module GitHubChangelogGenerator
|
||||
describe Generator do
|
||||
context "#exclude_issues_by_labels" do
|
||||
let(:label) { double("the-bad-label", name: "BAD") }
|
||||
let(:issue) { double("the-issue-to-be-excluded", labels: [label]) }
|
||||
let(:issues) { [issue] }
|
||||
subject(:generator) { described_class.new(exclude_labels: %w(BAD BOO))}
|
||||
|
||||
it "removes issues with labels in the exclude_label list" do
|
||||
result = generator.exclude_issues_by_labels(issues)
|
||||
|
||||
expect(result).to be_empty
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user