Sha256: 1a9a7c249b1869224aeb03424b43052d08be92dc12e29edba6ee698016f60e7e

Contents?: true

Size: 717 Bytes

Versions: 6

Compression:

Stored size: 717 Bytes

Contents

# == usage:
# in your model, add:
#  validates :id_number, must_be_present => true, is_a_curacao_id_number => true;
class IsACuracaoIdNumberValidator < ActiveModel::EachValidator

  def validate_each(record, attribute, value)
    if value =~ /^[0-9]{10}$/
      year  = value[0..3].to_i
      month = value[4..5].to_i
      day   = value[6..7].to_i
      number= value[8..9].to_i
      begin
        DateTime.civil(year, month, day)
      rescue ArgumentError
        record.errors.add(attribute.to_sym, options[:message] || "too_short" )
      end
    else
      record.errors.add(attribute.to_sym, options[:message] || "not_a_number" )
    end
  end

end

#"moet bestaan uit tien cijfers (bijvoorbeeld 1983040812)."

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
inline_forms-1.3.12 lib/app/validators/is_a_curacao_id_number_validator.rb
inline_forms-1.3.11 lib/app/validators/is_a_curacao_id_number_validator.rb
inline_forms-1.3.10 lib/app/validators/is_a_curacao_id_number_validator.rb
inline_forms-1.3.9 lib/app/validators/is_a_curacao_id_number_validator.rb
inline_forms-1.3.8 lib/app/validators/is_a_curacao_id_number_validator.rb
inline_forms-1.3.7 lib/app/validators/is_a_curacao_id_number_validator.rb