class Chutney::SameTagDifferentCase

service class to lint for missing verifications

Public Instance Methods

all_known_tags() click to toggle source
# File lib/chutney/linter/same_tag_different_case.rb, line 8
def all_known_tags
  # rubocop:disable Style/ClassVars
  @@all_known_tags ||= []
  # rubocop:enable Style/ClassVars
end
case_collision(tag) click to toggle source
# File lib/chutney/linter/same_tag_different_case.rb, line 31
def case_collision(tag)
  return nil if all_known_tags.include?(tag)

  all_known_tags.select { |t| t.casecmp(tag).zero? }.first
end
lint() click to toggle source
# File lib/chutney/linter/same_tag_different_case.rb, line 14
def lint
  scenarios do |feature, scenario|
    total_tags = tags_for(feature) + tags_for(scenario)

    total_tags.each do |tag|
      collision_with = case_collision(tag)
      if collision_with
        add_issue(I18n.t('linters.same_tag_different_case',
                         existing_tag: collision_with, tag: tag),
                  feature, scenario)
      else
        @@all_known_tags << tag
      end
    end
  end
end