Class: Daifuku::NameLengthRule

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(max_length) ⇒ NameLengthRule

Returns a new instance of NameLengthRule.



79
80
81
# File 'lib/daifuku/validator.rb', line 79

def initialize(max_length)
  @max_length = max_length
end

Instance Attribute Details

#max_lengthObject (readonly)

Returns the value of attribute max_length.



77
78
79
# File 'lib/daifuku/validator.rb', line 77

def max_length
  @max_length
end

Instance Method Details

#validate!(categories) ⇒ Object



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/daifuku/validator.rb', line 83

def validate!(categories)
  violations = []
  categories.each_value do |category|
    if category.name.length > max_length
      violations << Violation.new("#{category.name} must be within #{max_length} characters.",
                                  category_name: category.name,
                                  event_name: nil,
                                  column_name: nil)
    end
    category.events.each_value do |event|
      if event.name.length > max_length
        violations << Violation.new("#{category.name}.#{event.name} must be within #{max_length} characters.",
                                    category_name: category.name,
                                    event_name: event.name,
                                    column_name: nil)
      end
      event.columns.each do |column|
        if column.name.length > max_length
          violations << Violation.new("#{category.name}.#{event.name}.#{column.name} must be within #{max_length} characters.",
                                      category_name: category.name,
                                      event_name: event.name,
                                      column_name: column.name)
        end
      end
    end
  end
  violations
end