class Validate::AST::Rules::Affirmative
Public Class Methods
new(constraints)
click to toggle source
# File lib/validate/ast.rb, line 306 def initialize(constraints) @constraints = constraints.freeze end
Public Instance Methods
inspect()
click to toggle source
# File lib/validate/ast.rb, line 322 def inspect return @constraints.first.inspect if @constraints.one? "(#{@constraints.map(&:inspect).join(' | ')})" end
message()
click to toggle source
# File lib/validate/ast.rb, line 328 def message 'either ' + @constraints .size .times .map { |i| "[#{constraint_message(i)}]" } .join(', or ') end
name()
click to toggle source
# File lib/validate/ast.rb, line 318 def name 'either_' + @constraints.map(&:name).sort.join('_or_') end
valid?(value, _ = Constraints::ValidationContext.none)
click to toggle source
# File lib/validate/ast.rb, line 310 def valid?(value, _ = Constraints::ValidationContext.none) ctx = Constraints::ValidationContext.root(value) @constraints.any? do |c| ctx.clear_violations c.valid?(value, ctx) && !ctx.has_violations? end end