Sha256: 6ad82e3fa8bb29f24345bdc5351e60d1c0ef02467d0fa70fd6089730e9fc8ac4
Contents?: true
Size: 743 Bytes
Versions: 11
Compression:
Stored size: 743 Bytes
Contents
# typed: strict module Typed module Coercion class FloatCoercer < Coercer extend T::Generic Target = type_member { {fixed: Float} } sig { override.params(type: T::Types::Base).returns(T::Boolean) } def used_for_type?(type) T::Utils.coerce(type) == T::Utils.coerce(Float) end sig { override.params(type: T::Types::Base, value: Value).returns(Result[Target, CoercionError]) } def coerce(type:, value:) return Failure.new(CoercionError.new("Type must be a Float.")) unless used_for_type?(type) Success.new(Float(value)) rescue ArgumentError, TypeError Failure.new(CoercionError.new("'#{value}' cannot be coerced into Float.")) end end end end
Version data entries
11 entries across 11 versions & 1 rubygems