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

Instance Method Summary collapse

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object


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

def validate_each(record, attribute, value)
  case value
  when NilClass        then return
  when ::Gitlab::Color then return if value.valid?
  when ::String        then return if ::Gitlab::Color.new(value).valid?
  end

  record.errors.add(attribute, "must be a valid color code")
end