Sha256: e008aebfb596f21298f7e01395d36d0367e655de6ac961f146703ddbeb69f68a
Contents?: true
Size: 854 Bytes
Versions: 1
Compression:
Stored size: 854 Bytes
Contents
# typed: strict module Typed module Coercion class BooleanCoercer < Coercer extend T::Generic Target = type_member { {fixed: T::Boolean} } sig { override.params(type: Field::Type).returns(T::Boolean) } def used_for_type?(type) type == T::Utils.coerce(T::Boolean) end sig { override.params(type: Field::Type, value: Value).returns(Result[Target, CoercionError]) } def coerce(type:, value:) if T.cast(type, T::Types::Base).recursively_valid?(value) Success.new(value) elsif value == "true" Success.new(true) elsif value == "false" Success.new(false) else Failure.new(CoercionError.new) end rescue TypeError Failure.new(CoercionError.new("Field type must be a T::Boolean.")) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sorbet-schema-0.4.0 | lib/typed/coercion/boolean_coercer.rb |