class Contracts::Builtin::CollectionOf
@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]
Public Class Methods
new(collection_class, contract)
click to toggle source
# File lib/contracts/builtin_contracts.rb, line 277 def initialize(collection_class, contract) @collection_class = collection_class @contract = contract end
Public Instance Methods
to_s()
click to toggle source
# File lib/contracts/builtin_contracts.rb, line 290 def to_s "a collection #{@collection_class} of #{@contract}" end
valid?(vals)
click to toggle source
# 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