Sha256: 45c63ed75e8f33a31a4af203c6dda2e7df7201d59e2bcca2446927381783749b

Contents?: true

Size: 556 Bytes

Versions: 6

Compression:

Stored size: 556 Bytes

Contents

# typed: strict

module Typed
  class Field < T::Struct
    extend T::Sig

    include ActsAsComparable

    const :name, Symbol
    const :type, T::Class[T.anything]
    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
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sorbet-schema-0.3.0 lib/typed/field.rb
sorbet-schema-0.2.2 lib/typed/field.rb
sorbet-schema-0.2.1 lib/typed/field.rb
sorbet-schema-0.2.0 lib/typed/field.rb
sorbet-schema-0.1.1 lib/typed/field.rb
sorbet-schema-0.1.0 lib/typed/field.rb