Class: Ea::Lint::Rules::DuplicateNameRule
- Defined in:
- lib/ea/lint/rules/duplicate_name.rb
Overview
Two classes with the same name in the same package.
Instance Method Summary collapse
Methods inherited from LintRule
Instance Method Details
#check(model) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/ea/lint/rules/duplicate_name.rb', line 10 def check(model) classes = (model.collections[:objects] || []) .select { |o| o.object_type == "Class" } grouped = classes.group_by { |c| [c.package_id, c.name] } grouped.flat_map do |(pkg_id, name), group| next [] if group.size == 1 group.map do |klass| offense(entity_id: klass.object_id, entity_name: klass.name, message: "Duplicate class name '#{name}' in package #{pkg_id} " \ "(#{group.size} occurrences)") end end end |