module Dinamo::Model::Validation::ClassMethods

Public Instance Methods

_validators() click to toggle source
# File lib/dinamo/model/validator.rb, line 64
def _validators
  @_validators ||= Hash.new { |hash, key| hash[key] = [] }
end
adjust_validator_options(*args) click to toggle source
# File lib/dinamo/model/validator.rb, line 68
def adjust_validator_options(*args)
  options = args.extract_options!.symbolize_keys
  args.flatten!
  options[:attributes] = args
  options
end
validates_presence_of(*args) click to toggle source
# File lib/dinamo/model/validations/presence.rb, line 10
def validates_presence_of(*args)
  validates_with PresenceValidator, adjust_validator_options(*args)
end
validates_with(*args, &block) click to toggle source
# File lib/dinamo/model/validator.rb, line 43
def validates_with(*args, &block)
  options = args.extract_options!
  options[:class] = self

  args.each do |validator_class|
    validator = validator_class.new(options, &block)

    if validator.respond_to?(:attributes) && !validator.attributes.empty?
      validator.attributes.each do |attribute|
        _validators[attribute.to_sym] << validator
      end
    else
      _validators[nil] << validator
    end
  end
end
validators() click to toggle source
# File lib/dinamo/model/validator.rb, line 60
def validators
  _validators.values.flatten.uniq
end