Class: Contracts::ArrayOf
- Inherits:
-
CallableClass
- Object
- CallableClass
- Contracts::ArrayOf
- Defined in:
- lib/contracts/builtin_contracts.rb
Overview
Takes a contract. The related argument must be an array. Checks the contract against every element of the array. If it passes for all elements, the contract passes. Example: ArrayOf[Num]
Instance Method Summary collapse
-
#initialize(contract) ⇒ ArrayOf
constructor
A new instance of ArrayOf.
- #test_data ⇒ Object
- #testable? ⇒ Boolean
- #to_s ⇒ Object
- #valid?(vals) ⇒ Boolean
Methods inherited from CallableClass
Constructor Details
#initialize(contract) ⇒ ArrayOf
Returns a new instance of ArrayOf.
303 304 305 |
# File 'lib/contracts/builtin_contracts.rb', line 303 def initialize(contract) @contract = contract end |
Instance Method Details
#test_data ⇒ Object
323 324 325 326 327 328 329 |
# File 'lib/contracts/builtin_contracts.rb', line 323 def test_data [ [], [Testable.test_data(@contract)], [Testable.test_data(@contract), Testable.test_data(@contract)] ] end |
#testable? ⇒ Boolean
319 320 321 |
# File 'lib/contracts/builtin_contracts.rb', line 319 def testable? Testable.testable? @contract end |
#to_s ⇒ Object
315 316 317 |
# File 'lib/contracts/builtin_contracts.rb', line 315 def to_s "an array of #{@contract}" end |
#valid?(vals) ⇒ Boolean
307 308 309 310 311 312 313 |
# File 'lib/contracts/builtin_contracts.rb', line 307 def valid?(vals) return false unless vals.is_a?(Array) vals.all? do |val| res, _ = Contract.valid?(val, @contract) res end end |