Sha256: fb44145afea262e91efd11d47e77503258fb338d6e8714abc47fc071a141cc93
Contents?: true
Size: 573 Bytes
Versions: 1
Compression:
Stored size: 573 Bytes
Contents
# frozen_string_literal: true class Solid::Result class Contract::ForTypes include Contract::Interface attr_reader :allowed_types def initialize(types) @allowed_types = Array(types).map(&:to_sym).to_set.freeze end def type?(type) IgnoredTypes.include?(type) || allowed_types.member?(type) end def type!(type) return type if type?(type) raise Contract::Error::UnexpectedType.build(type: type, allowed_types: allowed_types) end def type_and_value!(data) type!(data.type) nil end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
solid-result-2.0.0 | lib/solid/result/contract/for_types.rb |