Class: ValidationProfiler::Rules::ListValidationRule
- Inherits:
-
ValidationRule
- Object
- ValidationRule
- ValidationProfiler::Rules::ListValidationRule
- Defined in:
- lib/validation_profiler/rules/list_validation_rule.rb
Overview
ListValidationRule class
Instance Method Summary collapse
- #error_message(field, attributes = {}, parent = nil) ⇒ Object
- #validate(obj, field, attributes = {}, parent = nil) ⇒ Object
Methods inherited from ValidationRule
#get_field_value, #is_required?
Instance Method Details
#error_message(field, attributes = {}, parent = nil) ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/validation_profiler/rules/list_validation_rule.rb', line 5 def (field, attributes = {}, parent = nil) field_name = field.to_s field_name = "#{parent}.#{field}" unless parent.nil? if attributes[:message].nil? "#{field_name} is not an accepted value." else attributes[:message] end end |
#validate(obj, field, attributes = {}, parent = nil) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/validation_profiler/rules/list_validation_rule.rb', line 16 def validate(obj, field, attributes = {}, parent = nil) field_value = get_field_value(obj, field) return true unless is_required?(field_value, attributes) return false if field_value.nil? list = attributes[:list] regex = attributes[:regex] raise_invalid_exception!(field) if regex.nil? && list.nil? if list raise_invalid_exception!(field) unless list.is_a?(Array) return false unless list.include?(field_value) elsif regex field_value.each do |value| return false unless value =~ regex end end true end |