class Contracts::Builtin::Or
Takes a variable number of contracts. The contract passes if any of the contracts pass. Example: Or[Fixnum, Float]
Public Class Methods
new(*vals)
click to toggle source
Calls superclass method
# File lib/contracts/builtin_contracts.rb, line 100 def initialize(*vals) super() @vals = vals end
Public Instance Methods
to_s()
click to toggle source
# File lib/contracts/builtin_contracts.rb, line 112 def to_s # rubocop:disable Style/StringConcatenation @vals[0, @vals.size-1].map do |x| InspectWrapper.create(x) end.join(", ") + " or " + InspectWrapper.create(@vals[-1]).to_s # rubocop:enable Style/StringConcatenation end
valid?(val)
click to toggle source
# File lib/contracts/builtin_contracts.rb, line 105 def valid?(val) @vals.any? do |contract| res, _ = Contract.valid?(val, contract) res end end