Class: WhyValidationsSuckIn96::Validation
- Defined in:
- lib/whyvalidationssuckin96/validation.rb
Overview
Base class to use when implementing validations.
Direct Known Subclasses
ValidatesAcceptance, ValidatesAssociated, ValidatesConfirmation, ValidatesDate, ValidatesEmail, ValidatesExclusion, ValidatesFormat, ValidatesInclusion, ValidatesLength, ValidatesNumericality, ValidatesPresence, ValidatesUniqueness, ValidatesUrl
Constant Summary collapse
- DefaultOptions =
A hash of default options for the validation to use.
{}
Class Attribute Summary collapse
-
.name ⇒ Object
Returns the value of attribute name.
Instance Attribute Summary collapse
-
#options ⇒ Object
The options the validation was initialized with.
-
#validatable ⇒ Object
readonly
The object the validation is validating.
Class Method Summary collapse
-
.new_subclass(name, def_block) ⇒ Object
Creates a new subclass of this class, used when defining custom validations with a block.
Instance Method Summary collapse
-
#failed? ⇒ true, false
Has this validation failed?.
-
#has_run? ⇒ true, false
Has this validation run?.
-
#initialize(validatable, options = {}) ⇒ Validation
constructor
A new instance of Validation.
-
#message ⇒ Object
The failure message for this validation.
-
#passed? ⇒ true, false
Has this validation passed?.
-
#validates? ⇒ true, ...
Performs the validation, returning true or false if the validation passes or fails, or nil if the validation will not run.
Constructor Details
#initialize(validatable, options = {}) ⇒ Validation
Returns a new instance of Validation.
21 22 23 24 |
# File 'lib/whyvalidationssuckin96/validation.rb', line 21 def initialize(validatable, = {}) @validatable = validatable @options = self.class::DefaultOptions.merge() end |
Class Attribute Details
.name ⇒ Object
Returns the value of attribute name.
16 17 18 |
# File 'lib/whyvalidationssuckin96/validation.rb', line 16 def name @name end |
Instance Attribute Details
#options ⇒ Object
The options the validation was initialized with
10 11 12 |
# File 'lib/whyvalidationssuckin96/validation.rb', line 10 def @options end |
#validatable ⇒ Object (readonly)
The object the validation is validating
13 14 15 |
# File 'lib/whyvalidationssuckin96/validation.rb', line 13 def validatable @validatable end |
Class Method Details
.new_subclass(name, def_block) ⇒ Object
Creates a new subclass of this class, used when defining custom validations with a block
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/whyvalidationssuckin96/validation.rb', line 27 def self.new_subclass(name, def_block) Class.new(self) do self.name = name.to_sym define_method(:validate, &def_block) private :validate def inspect "#<WhyValidationsSuckIn96::Validation subclass for validating '#{self.class.name}'> #{super}" end end end |
Instance Method Details
#failed? ⇒ true, false
Has this validation failed?
47 48 49 |
# File 'lib/whyvalidationssuckin96/validation.rb', line 47 def failed? @passed == false end |
#has_run? ⇒ true, false
Has this validation run?
53 54 55 |
# File 'lib/whyvalidationssuckin96/validation.rb', line 53 def has_run? @passed != nil end |
#message ⇒ Object
The failure message for this validation.
69 70 71 |
# File 'lib/whyvalidationssuckin96/validation.rb', line 69 def @options[:message] || "failed validation" end |
#passed? ⇒ true, false
Has this validation passed?
41 42 43 |
# File 'lib/whyvalidationssuckin96/validation.rb', line 41 def passed? @passed == true end |
#validates? ⇒ true, ...
Performs the validation, returning true or false if the validation passes or fails, or nil if the validation will not run.
60 61 62 63 64 65 66 |
# File 'lib/whyvalidationssuckin96/validation.rb', line 60 def validates? reset @passed = catch :validation_done do validate pass end end |