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

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_validationsArray

An array of instances of all validations for this object

Returns:

  • (Array)


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_validationsArray

An array of instances of failed validations

Returns:

  • (Array)


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?

Returns:

  • (true, false)


25
26
27
# File 'lib/whyvalidationssuckin96/validation_support.rb', line 25

def invalid?
  !valid?
end

#passed_validationsArray

An array of instances of passed validations

Returns:

  • (Array)


61
62
63
# File 'lib/whyvalidationssuckin96/validation_support.rb', line 61

def passed_validations
  all_validations.select { |validation| validation.passed? }
end

#valid?Boolean

Returns:

  • (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.

Returns:

  • (true, false)


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?

Returns:

  • (true, false)


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