Sha256: 0937e42f029846323b84f11a86ed4b17133c7f7dacc5dc676bb133ba53975c7a

Contents?: true

Size: 850 Bytes

Versions: 1

Compression:

Stored size: 850 Bytes

Contents

module ActiveModel
  module Validations
    class DateValidator < ActiveModel::EachValidator
      def validate_each(record, attr_name, value)
        before_type_cast = "#{attr_name}_before_type_cast"
        raw_value = record.send(before_type_cast) if record.respond_to?(before_type_cast.to_sym)
        #puts "raw_value=#{raw_value.inspect} (#{raw_value.class}), value=#{value.inspect} (#{value.class})"
        raw_value ||= value

        if raw_value.present? and !value.is_a?(Date)
          record.errors.add attr_name, :date_invalid
          return # don't want it to show *both* errors (:date_invalid and :blank)
        end

        if options[:required] && value.blank?
          message = (options[:required] == true ? :blank : options[:required])
          record.errors.add attr_name, message
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
activemodel-validators-1.0.0 lib/activemodel-validators/date_validator.rb