@private Takes a collection(responds to :each) type and a contract. The
related argument must be of specified collection type. Checks the contract
against every element of the collection. If it passes for all elements, the
contract passes. Example: CollectionOf[Array, Num]
# File lib/contracts/builtin_contracts.rb, line 277 def initialize(collection_class, contract) @collection_class = collection_class @contract = contract end
# File lib/contracts/builtin_contracts.rb, line 290 def to_s "a collection #{@collection_class} of #{@contract}" end
# File lib/contracts/builtin_contracts.rb, line 282 def valid?(vals) return false unless vals.is_a?(@collection_class) vals.all? do |val| res, _ = Contract.valid?(val, @contract) res end end