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