module ValidateMe

Constants

SKIPPED_COLUMNS
VERSION

Attributes

index[R]

Public Class Methods

included(base_class) click to toggle source
# File lib/validate_me.rb, line 11
def self.included base_class
  base_class.columns.each do |column|
    next if ::ValidateMe::SKIPPED_COLUMNS.include? column.name

    ::ValidateMe::PresenceValidations.call     base_class: base_class, column: column
    ::ValidateMe::VarcharLimitValidations.call base_class: base_class, column: column
    ::ValidateMe::IntegerLimitValidations.call base_class: base_class, column: column
  end

 indexes = ::ActiveRecord::Base.connection.indexes base_class.table_name
 ::ValidateMe::UniquenessValidations.call base_class: base_class, indexes: indexes
end
new(index) click to toggle source
# File lib/validate_me/uniqueness_validations.rb, line 13
def initialize index
  @index = index
end

Public Instance Methods

validate(base_class) click to toggle source
# File lib/validate_me/uniqueness_validations.rb, line 17
def validate base_class
  columns = index.columns

  if columns.one?
    base_class.send :validates, columns.first, uniqueness: true
  else
    base_class.send :validates, columns.shift, uniqueness: { scope: columns }
  end
end