class DefaultValidations::ValidationsCreator
Public Class Methods
create_integer_validations_for_class(klass)
click to toggle source
# File lib/default_validations/validations_creator.rb, line 22 def create_integer_validations_for_class(klass) not_validated_attributes = not_validated_integer_attributes_for_class(klass) if not_validated_attributes.present? klass.class_eval do validates *not_validated_attributes, numericality: { greater_than: -DefaultValidations.integer_max_value, less_than: DefaultValidations.integer_max_value } end end end
create_string_validations_for_class(klass)
click to toggle source
# File lib/default_validations/validations_creator.rb, line 13 def create_string_validations_for_class(klass) not_validated_attributes = not_validated_string_attributes_for_class(klass) if not_validated_attributes.present? klass.class_eval do validates *not_validated_attributes, length: { maximum: DefaultValidations.string_length } end end end
create_validations()
click to toggle source
# File lib/default_validations/validations_creator.rb, line 5 def create_validations models_to_validate.each do |klass| create_string_validations_for_class(klass) if DefaultValidations.validate_strings create_integer_validations_for_class(klass) if DefaultValidations.validate_integers end end
Private Class Methods
all_models_with_table()
click to toggle source
# File lib/default_validations/validations_creator.rb, line 32 def all_models_with_table ActiveRecord::Base.descendants.select(&:table_exists?) end
carrier_wave_uploader_attributes(klass)
click to toggle source
# File lib/default_validations/validations_creator.rb, line 41 def carrier_wave_uploader_attributes(klass) DefaultValidations.ignore_carrierwave_uploaders ? klass.uploaders.keys.map(&:to_s) : [] end
excluded_primary_and_foreign_keys_for_class(klass)
click to toggle source
# File lib/default_validations/validations_creator.rb, line 57 def excluded_primary_and_foreign_keys_for_class(klass) klass.reflect_on_all_associations(:belongs_to).map(&:foreign_key) << klass.primary_key end
models_to_validate()
click to toggle source
# File lib/default_validations/validations_creator.rb, line 36 def models_to_validate @@models ||= DefaultValidations.models.empty? ? (all_models_with_table - DefaultValidations.excluded_models) : DefaultValidations.models end
not_validated_integer_attributes_for_class(klass)
click to toggle source
# File lib/default_validations/validations_creator.rb, line 51 def not_validated_integer_attributes_for_class(klass) not_validated_attributes = klass.column_names.select do |name| klass.columns_hash[name].type == :integer && !klass.validators_on(name).map(&:class).include?(ActiveModel::Validations::NumericalityValidator) end - excluded_primary_and_foreign_keys_for_class(klass) end
not_validated_string_attributes_for_class(klass)
click to toggle source
# File lib/default_validations/validations_creator.rb, line 45 def not_validated_string_attributes_for_class(klass) not_validated_attributes = klass.column_names.select do |name| klass.columns_hash[name].type == :string && !klass.validators_on(name).map(&:class).include?(ActiveModel::Validations::LengthValidator) end - carrier_wave_uploader_attributes(klass) end