21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/daifuku/validator.rb', line 21
def validate!(categories)
violations = []
all_columns = categories.values.map { |category| category.events.values.map { |event| event.columns }}.flatten
columns_by_name = all_columns.group_by { |column| column.name }
all_duplicated_columns = columns_by_name.filter { |_, columns| columns.size >= 2 }
all_duplicated_columns.each do |name, columns|
unless columns.map { |column| column.type }.uniq { |type| [type.name, type.str_length] }.size == 1
violations << Violation.new("Multiple types are found for '#{name}'",
category_name: nil,
event_name: nil,
column_name: name)
end
end
violations
end
|