Class: Adama::Validator::PresenceValidator
- Inherits:
-
Object
- Object
- Adama::Validator::PresenceValidator
- Defined in:
- lib/adama/validator.rb
Instance Attribute Summary collapse
-
#errors ⇒ Object
Returns the value of attribute errors.
Instance Method Summary collapse
-
#initialize(*attributes) ⇒ PresenceValidator
constructor
A new instance of PresenceValidator.
- #merge_new_attributes(*attributes) ⇒ Object
- #set_instance_variable(instance, key, value) ⇒ Object
- #valid? ⇒ Boolean
- #validate!(instance) ⇒ Object
Constructor Details
#initialize(*attributes) ⇒ PresenceValidator
Returns a new instance of PresenceValidator.
67 68 69 70 |
# File 'lib/adama/validator.rb', line 67 def initialize(*attributes) @attributes = attributes.flatten @errors = {} end |
Instance Attribute Details
#errors ⇒ Object
Returns the value of attribute errors.
65 66 67 |
# File 'lib/adama/validator.rb', line 65 def errors @errors end |
Instance Method Details
#merge_new_attributes(*attributes) ⇒ Object
76 77 78 |
# File 'lib/adama/validator.rb', line 76 def merge_new_attributes(*attributes) @attributes |= attributes end |
#set_instance_variable(instance, key, value) ⇒ Object
94 95 96 97 |
# 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? ⇒ Boolean
72 73 74 |
# File 'lib/adama/validator.rb', line 72 def valid? @valid end |
#validate!(instance) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 |
# 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 |