Определить валидации объекта Class
Есть ли собственный способ определения проверок для объекта Crystal? Давайте рассмотрим этот класс:
class Person
def initialize(@age : Int32)
end
end
Как я могу добавить простую проверку if age < 18
? Пример:
Person.new(10)
>> Error: attibute 'age' should be greater than 18
Я видел стороннюю библиотеку, делающую это, но я бы хотел избежать добавления зависимостей.
1 ответ
Решение
Не существует автоматического способа добиться проверки во время выполнения, но есть идиоматический способ:
def initialize(@age)
raise ArgumentError.new("age must be 18 or more") if @age < 18
end