Class: ChronicParsableValidator
- Inherits:
-
ActiveModel::EachValidator
- Object
- ActiveModel::EachValidator
- ChronicParsableValidator
- Defined in:
- lib/smarter_dates/chronic_parsable_validator.rb
Overview
validates attributes are parsable by the chronic gem
Instance Method Summary collapse
-
#initialize(*args) ⇒ ChronicParsableValidator
constructor
Creation To use this Validator, initialize it as any other validator.
-
#is_valid? ⇒ Boolean
:call-seq: is_valid?.
-
#is_valid_datetime? ⇒ Boolean
:call-seq: is_valid_datetime?.
-
#validate_each(record, attribute, value = "") ⇒ Object
:call-seq: validate_each :record, :attribute, :value.
Constructor Details
#initialize(*args) ⇒ ChronicParsableValidator
Creation
To use this Validator, initialize it as any other validator
class ExampleValidator < ActiveRecord::Base
validates :attr1, :chronic_parsable => true
end
11 12 13 14 |
# File 'lib/smarter_dates/chronic_parsable_validator.rb', line 11 def initialize(*args) # :nodoc: @errors = [] super(*args) end |
Instance Method Details
#is_valid? ⇒ Boolean
:call-seq: is_valid?
alias for :is_valid_datetime?
35 36 37 |
# File 'lib/smarter_dates/chronic_parsable_validator.rb', line 35 def is_valid? is_valid_datetime? end |
#is_valid_datetime? ⇒ Boolean
:call-seq: is_valid_datetime?
returns true if the string is parsable by chronic
44 45 46 47 48 |
# File 'lib/smarter_dates/chronic_parsable_validator.rb', line 44 def is_valid_datetime? obj = Chronic.parse(@value.respond_to?(:to_date) ? @value.to_date : @value.to_s) !obj.nil? end |
#validate_each(record, attribute, value = "") ⇒ Object
:call-seq: validate_each :record, :attribute, :value
:record
-
AR instance
:attribute
-
symbol for attribute
:value
-
value to check validity
23 24 25 26 27 28 |
# File 'lib/smarter_dates/chronic_parsable_validator.rb', line 23 def validate_each(record, attribute, value = "") #:nodoc: @value = value unless is_valid? record.errors[attribute] << 'not a valid Date or DateTime' end end |