Class: ColorValidator

Inherits:
ActiveModel::EachValidator
  • Object
show all
Defined in:
app/validators/color_validator.rb

Overview

ColorValidator

Custom validator for web color codes. It requires the leading hash symbol and will accept RGB triplet or hexadecimal formats.

Example:

class User < ActiveRecord::Base
  validates :background_color, allow_blank: true, color: true
end

Constant Summary collapse

PATTERN =
/\A\#[0-9A-Fa-f]{3}{1,2}+\Z/.freeze

Instance Method Summary collapse

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object


15
16
17
18
19
# File 'app/validators/color_validator.rb', line 15

def validate_each(record, attribute, value)
  unless value =~ PATTERN
    record.errors.add(attribute, "must be a valid color code")
  end
end