module Kangaru::Validatable

def errors

def errors
  @errors ||= []
end

def model_validator

def model_validator
  @model_validator ||= Validation::ModelValidator.new(model: self)
end

def valid?

def valid?
  validate
  errors.empty?
end

def validate

def validate
  model_validator.validate!(**self.class.validation_rules)
end

def validates(attribute, **validations)

def validates(attribute, **validations)
  validation_rules[attribute] ||= {}
  validation_rules[attribute].merge!(**validations)
end

def validation_rules

def validation_rules
  @validation_rules ||= {}
end