Sha256: 088854da8bd2a58ce65d101d4bb7daf6806267540e62ab399c0ad8dbeede4a59
Contents?: true
Size: 572 Bytes
Versions: 3
Compression:
Stored size: 572 Bytes
Contents
# frozen_string_literal: true class BCDD::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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
bcdd-result-1.1.0 | lib/bcdd/result/contract/for_types.rb |
bcdd-result-1.0.0 | lib/bcdd/result/contract/for_types.rb |
bcdd-result-0.13.0 | lib/bcdd/result/contract/for_types.rb |