2016-12-22 1 views
0

Есть ли собственный способ определения валидаций для объекта Crystal? Давайте рассмотрим этот класс:Определить проверки объектов класса

class Person 

    def initialize(@age : Int32) 

    end 

end 

Как я мог бы добавить простую проверку if age < 18? Ex:

Person.new(10) 
>> Error: attibute 'age' should be greater than 18 

я увидел 3-ю библиотеку партии делать это, но я хотел бы избежать добавления зависимостей.

+0

Я думаю, что это слишком широко. Что бы вы хотели сделать? – mgarciaisaia

+0

Это простой пример, который поможет мне достичь более сложных материалов, но я хочу, чтобы было легко дать ответ в соответствии со стандартами SO. Но я редактирую свой ответ на примере –

ответ

3

Там нет автоматического способа добиться проверок выполнения, но есть идиоматический способ:

def initialize(@age) 
    raise ArgumentError.new("age must be 18 or more") if @age < 18 
end