Class: WhyValidationsSuckIn96::ValidatesExclusion
- Inherits:
-
Validation
- Object
- Validation
- WhyValidationsSuckIn96::ValidatesExclusion
- Includes:
- AttributeBasedValidation, SkippableValidation
- Defined in:
- lib/whyvalidationssuckin96/macros/validates_exclusion.rb
Overview
Checks the validity of an attribute against a collection of excluded values.
Constant Summary collapse
- DefaultOptions =
{:message => "is in the excluded collection", :set => false}
Instance Attribute Summary
Attributes inherited from Validation
Instance Method Summary collapse
-
#initialize(validatable, options = {}) ⇒ ValidatesExclusion
constructor
A new instance of ValidatesExclusion.
- #validate ⇒ Object
Methods included from AttributeBasedValidation
Methods inherited from Validation
#failed?, #has_run?, #message, new_subclass, #passed?, #validates?
Constructor Details
#initialize(validatable, options = {}) ⇒ ValidatesExclusion
Returns a new instance of ValidatesExclusion.
29 30 31 32 |
# File 'lib/whyvalidationssuckin96/macros/validates_exclusion.rb', line 29 def initialize(validatable, = {}) super raise(ArgumentError, "Collection to check for exclusion against should be specified with :in") unless [:in] end |
Instance Method Details
#validate ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/whyvalidationssuckin96/macros/validates_exclusion.rb', line 34 def validate super if [:set] attribute_value.any? do |val| [:in].include?(val) end ? fail : pass elsif ![:set] && [:in].include?(attribute_value) fail else pass end end |