Class: SignalValidator
- Inherits:
-
AccountNameValidator
- Object
- ActiveModel::EachValidator
- AccountNameValidator
- SignalValidator
- Defined in:
- lib/signal_validator.rb
Overview
Validates Signal usernames. Signal introduced usernames in 2024; they consist of a base name and a numeric discriminator separated by a period:
- Base: starts with a letter, contains letters, digits, and underscores.
- Discriminator: two or more digits (leading zeros allowed, e.g.
0123). - Combined length 3-32 characters (matching Signal's UI constraints).
The following error message keys are used to localize invalid usernames:
signal_too_short |
Username is less than 3 characters. |
signal_too_long |
Username is over 32 characters. |
signal_invalid_format |
Username doesn't match <base>.<digits> with a valid base. |
Options
:message |
A custom message to use if the username is invalid. |
:allow_nil |
If true, nil values are allowed. |
Constant Summary collapse
- FORMAT =
/\A[A-Za-z][A-Za-z0-9_]*\.\d{2,}\z/
Method Summary
Methods inherited from AccountNameValidator
add_validation, error_key_prefix, first_char, max_length, min_length, valid_chars