Sha256: 133ab1f409b34b6d3d65df3e845a9d887d1bbf60c69ae59ed9f1d5c0590f5bb8
Contents?: true
Size: 668 Bytes
Versions: 50
Compression:
Stored size: 668 Bytes
Contents
# frozen_string_literal: true module Ree::Contracts module ArgContracts class Or extend Ree::Contracts::ArgContracts::Squarable include Ree::Contracts::Truncatable attr_reader :validators def initialize(*contracts) @validators = contracts.map(&Validators.method(:fetch_for)) end def to_s "Or[#{validators.map(&:to_s).join(', ')}]" end def valid?(value) validators.any? do |validator| validator.call(value) end end def message(value, name, lvl = 1) "expected #{truncate(self.to_s, 30)}, got #{truncate(value.inspect)}" end end end end
Version data entries
50 entries across 50 versions & 1 rubygems