Sha256: 3b924c6cb34681bb032a73c91c2f46c53b36ad87fd51b115f742d569d3c53abc
Contents?: true
Size: 868 Bytes
Versions: 1
Compression:
Stored size: 868 Bytes
Contents
# typed: strict module Typed class Field < T::Struct extend T::Sig include ActsAsComparable Type = T.type_alias { T.any(T::Class[T.anything], T::Types::Base) } const :name, Symbol const :type, Type const :required, T::Boolean, default: true sig { returns(T::Boolean) } def required? required end sig { returns(T::Boolean) } def optional? !required end sig { params(value: Value).returns(Validations::ValidationResult) } def validate(value) Validations::FieldTypeValidator.new.validate(field: self, value: value) end sig { params(value: Value).returns(T::Boolean) } def works_with?(value) value.class == type || T.cast(type, T::Types::Base).recursively_valid?(value) # standard:disable Style/ClassEqualityComparison rescue TypeError false end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sorbet-schema-0.4.0 | lib/typed/field.rb |