Class: ActiveModel::Validations::UuidValidator

Inherits:
EachValidator
  • Object
show all
Defined in:
lib/active_model/validations/uuid_validator.rb

Constant Summary collapse

RE_STRING =
"[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}"

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ UuidValidator

Returns a new instance of UuidValidator.



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/active_model/validations/uuid_validator.rb', line 9

def initialize(options)
  super
  @re = case
        when options[:upper_only]
          /\A#{RE_STRING.upcase}\z/
        when options[:lower_only]
          /\A#{RE_STRING.downcase}\z/
        else
          /\A#{RE_STRING}\z/i
        end
end

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object



21
22
23
# File 'lib/active_model/validations/uuid_validator.rb', line 21

def validate_each(record, attribute, value)
  record.errors.add(attribute, :not_an_uuid, options) unless value =~ @re
end