class Validate::AST::Rules::Negative
Public Class Methods
new(constraints)
click to toggle source
# File lib/validate/ast.rb, line 347 def initialize(constraints) @constraints = constraints.freeze end
Public Instance Methods
inspect()
click to toggle source
# File lib/validate/ast.rb, line 373 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 363 def message return "not [#{constraint_message(0)}]" if @constraints.one? 'neither ' + @constraints .size .times .map { |i| "[#{constraint_message(i)}]" } .join(', nor ') end
name()
click to toggle source
# File lib/validate/ast.rb, line 359 def name 'neither_' + @constraints.map(&:name).sort.join('_nor_') end
valid?(value, _ = Constraints::ValidationContext.none)
click to toggle source
# File lib/validate/ast.rb, line 351 def valid?(value, _ = Constraints::ValidationContext.none) ctx = Constraints::ValidationContext.root(value) @constraints.none? do |c| ctx.clear_violations c.valid?(value, ctx) && !ctx.has_violations? end end