Sha256: 91ef0484907ca61bdef413645751b941116995a53d6c9d5917e5279496eeb0ed
Contents?: true
Size: 1020 Bytes
Versions: 14
Compression:
Stored size: 1020 Bytes
Contents
# frozen_string_literal: true class Serega module SeregaValidations module Attribute # # Attribute `name` parameter validator # class CheckName # Regexp for valid attribute name FORMAT = /\A[\w~-]+\z/ class << self # # Checks allowed characters. # Allowed characters: "a-z", "A-Z", "0-9", "_", "-", "~". # # @param name [String, Symbol] Attribute name # # @raise [SeregaError] when name has invalid format # @return [void] # def call(name) name = SeregaUtils::SymbolName.call(name) raise SeregaError, message(name) unless FORMAT.match?(name) end private def message(name) <<~MESSAGE.tr("\n", "") Invalid attribute name = #{name.inspect}. Allowed characters: "a-z", "A-Z", "0-9", "_", "-", "~" MESSAGE end end end end end end
Version data entries
14 entries across 14 versions & 1 rubygems