# File lib/cucumber/filters/tag_limits/verifier.rb, line 6 def initialize(tag_limits) @tag_limits = tag_limits end
# File lib/cucumber/filters/tag_limits/verifier.rb, line 10 def verify!(test_case_index) breaches = collect_breaches(test_case_index) raise TagLimitExceededError.new(*breaches) unless breaches.empty? end
# File lib/cucumber/filters/tag_limits/verifier.rb, line 17 def collect_breaches(test_case_index) tag_limits.reduce([]) do |breaches, (tag_name, limit)| breaches.tap do |breaches| if test_case_index.count_by_tag_name(tag_name) > limit breaches << Breach.new(tag_name, limit, test_case_index.locations_of_tag_name(tag_name)) end end end end