Module: Dinamo::Model::Validation::ClassMethods

Defined in:
lib/dinamo/model/validator.rb,
lib/dinamo/model/validations/presence.rb

Instance Method Summary collapse

Instance Method Details

#_validatorsObject



64
65
66
# File 'lib/dinamo/model/validator.rb', line 64

def _validators
  @_validators ||= Hash.new { |hash, key| hash[key] = [] }
end

#adjust_validator_options(*args) ⇒ Object



68
69
70
71
72
73
# 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) ⇒ Object



13
14
15
# File 'lib/dinamo/model/validations/presence.rb', line 13

def validates_presence_of(*args)
  validates_with PresenceValidator, adjust_validator_options(*args)
end

#validates_with(*args, &block) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# 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

#validatorsObject



60
61
62
# File 'lib/dinamo/model/validator.rb', line 60

def validators
  _validators.values.flatten.uniq
end