Module: WhyValidationsSuckIn96::ValidationSupport::InstanceMethods
- Defined in:
- lib/whyvalidationssuckin96/validation_support.rb
Overview
Instance methods added to any class or module that mixes in ValidationSupport
Class Method Summary collapse
Instance Method Summary collapse
-
#all_validations ⇒ Array
An array of instances of all validations for this object.
-
#failed_validations ⇒ Array
An array of instances of failed validations.
-
#invalid? ⇒ true, false
Is this object invalid?.
-
#passed_validations ⇒ Array
An array of instances of passed validations.
- #valid? ⇒ Boolean
-
#valid_with_generic_callbacks? ⇒ true, false
Is this object valid? Also runs any callbacks if the class has callback support as defined by the instance method run_callbacks being present.
-
#valid_without_generic_callbacks? ⇒ true, false
Is this object valid?.
- #validations_for(attribute) ⇒ Object
Class Method Details
.included(klass) ⇒ Object
17 18 19 20 21 |
# File 'lib/whyvalidationssuckin96/validation_support.rb', line 17 def self.included(klass) klass.module_eval do end end |
Instance Method Details
#all_validations ⇒ Array
An array of instances of all validations for this object
67 68 69 70 71 72 |
# File 'lib/whyvalidationssuckin96/validation_support.rb', line 67 def all_validations @all_validations ||= self.class.validation_collection.inject(ValidationCollection.new) do |vc, (v,opts)| vc << v.new(self, opts) vc end end |
#failed_validations ⇒ Array
An array of instances of failed validations
55 56 57 |
# File 'lib/whyvalidationssuckin96/validation_support.rb', line 55 def failed_validations all_validations.select { |validation| validation.failed? } end |
#invalid? ⇒ true, false
Is this object invalid?
25 26 27 |
# File 'lib/whyvalidationssuckin96/validation_support.rb', line 25 def invalid? !valid? end |
#passed_validations ⇒ Array
An array of instances of passed validations
61 62 63 |
# File 'lib/whyvalidationssuckin96/validation_support.rb', line 61 def passed_validations all_validations.select { |validation| validation.passed? } end |
#valid? ⇒ Boolean
29 30 31 |
# File 'lib/whyvalidationssuckin96/validation_support.rb', line 29 def valid? self.class.run_with_generic_callbacks? ? valid_with_generic_callbacks? : valid_without_generic_callbacks? end |
#valid_with_generic_callbacks? ⇒ true, false
Is this object valid? Also runs any callbacks if the class has callback support as defined by the instance method run_callbacks being present.
37 38 39 40 41 42 |
# File 'lib/whyvalidationssuckin96/validation_support.rb', line 37 def valid_with_generic_callbacks? run_callbacks(:before_validation) valid_without_generic_callbacks? ensure run_callbacks(:after_validation) end |
#valid_without_generic_callbacks? ⇒ true, false
Is this object valid?
46 47 48 49 50 51 |
# File 'lib/whyvalidationssuckin96/validation_support.rb', line 46 def valid_without_generic_callbacks? all_validations.collect do |validation| # Checks manually because a 'nil' return is considered a skipped validation, not a failed one. (validation.validates? == false) ? false : true end.all? end |
#validations_for(attribute) ⇒ Object
74 75 76 77 78 |
# File 'lib/whyvalidationssuckin96/validation_support.rb', line 74 def validations_for(attribute) all_validations.select do |validation| validation.respond_to?(:attribute) && validation.attribute == attribute.to_sym end end |