module Validacity::Validatable

Public Instance Methods

new(resource) click to toggle source
Calls superclass method
# File lib/validacity/validatable.rb, line 14
def new(resource)
  instance = super
  instance.validacity_validations.merge(validacity_validations.dup)
  instance
end
valid?(context = nil) click to toggle source
Calls superclass method
# File lib/validacity/validatable.rb, line 25
def valid?(context = nil)
  super
  validacity_validations_run(context)
  errors.empty?
end
validacity_validations() click to toggle source
# File lib/validacity/validatable.rb, line 10
def validacity_validations
  @_validacity_validations ||= Set.new
end
validations(*names) click to toggle source
# File lib/validacity/validatable.rb, line 6
def validations(*names)
  names.each { |n| validacity_validations << n }
end

Private Instance Methods

each_validation_instance() { |validation| ... } click to toggle source
# File lib/validacity/validatable.rb, line 37
def each_validation_instance
  @_validacity_validations_instances ||= {}
  validacity_validations.each do |name|
    unless (validation = @_validacity_validations_instances[name])
      validation = Validacity.find_validation(name).new(self)
      @_validacity_validations_instances[name] = validation
    end
    yield(validation)
  end
end
validacity_validations_run(_context = nil) click to toggle source
# File lib/validacity/validatable.rb, line 33
def validacity_validations_run(_context = nil)
  each_validation_instance(&:validate)
end