Class: Moku6::Rules::UniquenessRule

Inherits:
BaseRule
  • Object
show all
Defined in:
lib/moku6/rules/uniqueness_rule.rb

Instance Method Summary collapse

Methods inherited from BaseRule

#check, #initialize

Constructor Details

This class inherits a constructor from Moku6::Rules::BaseRule

Instance Method Details

#check_catalog(catalog) ⇒ Object

catalog-level rule : (Catalog catalog) -> Array



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/moku6/rules/uniqueness_rule.rb', line 9

def check_catalog(catalog)
  dupes = catalog.actions.compact.tally.select { |_, n| n > 1 }.keys
  dupes.map do |action|
    files = catalog.events.select { |e| e.action == action }.map(&:source_path)
    Offense.new(
      rule: "uniqueness", severity: :error, action: action,
      file: files.join(", "),
      message: "action '#{action}' is duplicated."
    )
  end
end