fluke/devops-service/db/validators/name.rb
Tim Lianov 03dc3d8d99 v3
2018-04-04 22:44:39 +03:00

11 lines
438 B
Ruby

class NameValidator < ActiveModel::EachValidator
MAX_NAME_LEN = 200
NAME_REGEX = /\A[\w\-]{1,#{MAX_NAME_LEN}}\z/
def validate_each(record, attribute, value)
unless NAME_REGEX.match(value)
record.errors.add attribute, (options[:message] || "Invalid #{attribute} value '#{value}': it should contains symbols 'a-zA-Z0-9_-' and length should be more then 1 and less or equals then #{MAX_NAME_LEN} symbols")
end
end
end