Class: Daifuku::ShadowingRule

Inherits:
Rule
  • Object
show all
Defined in:
lib/daifuku/validator.rb

Instance Method Summary collapse

Instance Method Details

#validate!(categories) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/daifuku/validator.rb', line 39

def validate!(categories)
  violations = []
  common_category = categories[COMMON_CATEGORY_NAME]
  return [] unless common_category&.common_columns
  all_common_columns = common_category.common_columns.map(&:name)
  categories.each_value do |category|
    next if category.name == COMMON_CATEGORY_NAME
    category.events.each_value do |event|
      event.columns.each do |column|
        if all_common_columns.include?(column.name)
          message = "Column '#{column.name}' on '#{category.name}' is already defined on common columns"
          violations << Violation.new(message, category_name: category.name, event_name: event.name, column_name: column.name)
        end
      end
    end
  end
  violations
end