class Adama::Validator::PresenceValidator

Attributes

errors[RW]

Public Class Methods

new(*attributes) click to toggle source
# File lib/adama/validator.rb, line 67
def initialize(*attributes)
  @attributes = attributes.flatten
  @errors = {}
end

Public Instance Methods

merge_new_attributes(*attributes) click to toggle source
# File lib/adama/validator.rb, line 76
def merge_new_attributes(*attributes)
  @attributes |= attributes
end
set_instance_variable(instance, key, value) click to toggle source
# File lib/adama/validator.rb, line 94
def set_instance_variable(instance, key, value)
  instance.instance_variable_set "@#{key}", value
  instance.class.class_eval { attr_accessor :"#{key}" }
end
valid?() click to toggle source
# File lib/adama/validator.rb, line 72
def valid?
  @valid
end
validate!(instance) click to toggle source
# File lib/adama/validator.rb, line 80
def validate!(instance)
  @valid = true
  kwargs = instance.kwargs
  @attributes.each do |attribute|
    present = kwargs.include? attribute
    if present
      set_instance_variable instance, attribute, kwargs[attribute]
    else
      @errors[attribute] = ['attribute missing']
    end
    @valid = present && @valid
  end
end