module AutomagicalValidations
Public Instance Methods
automagically_validate(*types_to_validate)
click to toggle source
# File lib/automagical_validations.rb, line 2 def automagically_validate(*types_to_validate) return unless self.table_exists? validation_settings = {} if types_to_validate.first.is_a? Hash validation_settings = types_to_validate.first validation_settings.symbolize_keys! else types_to_validate.each do |type| validation_settings[type.to_sym] = {} end end columns.each do |column| # Do not touch the columns not specified next unless validation_settings[column.type] # Do not define validator on columns that have no limit information, even if asked to next unless column.limit # Do not define additional length validators if any are already in place next if validators_on(column.name).any? do |validator| validator.is_a?(ActiveModel::Validations::LengthValidator) && validator.options[:maximum] end validates_length_of column.name, validation_settings[column.type].merge({:maximum => column.limit}) end end