class Anodator::Validator::ComplexValidator
ComplexValidator
behaves like a single Validator
what contains multiple Validators.
Constants
- LOGIC_AND
Combine logical AND of each Validators
- LOGIC_OR
Combine logical OR of each Validators
Public Class Methods
new(options = { })
click to toggle source
Calls superclass method
Anodator::Validator::Base::new
# File lib/anodator/validator/complex_validator.rb, line 16 def initialize(options = { }) super("dummy", options) end
Public Instance Methods
logic_expression()
click to toggle source
# File lib/anodator/validator/complex_validator.rb, line 40 def logic_expression if @options[:logic] == LOGIC_OR return "OR" elsif @options[:logic] == LOGIC_AND return "AND" end end
to_s(level = 2, step = 2)
click to toggle source
# File lib/anodator/validator/complex_validator.rb, line 52 def to_s(level = 2, step = 2) buf = "#{super(level, step)} LOGIC: #{logic_expression}\n" buf += @options[:validators].map { |validator| validator.to_s(level + step, step) }.join("\n") end
validate()
click to toggle source
# File lib/anodator/validator/complex_validator.rb, line 20 def validate if @options[:validators].nil? raise ConfigurationError.new("ComplexValidator must have validators option") end case @options[:logic] when LOGIC_OR @options[:validators].each do |validator| return true if validator.valid? end return false when LOGIC_AND @options[:validators].each do |validator| return false unless validator.valid? end return true else raise ConfigurationError.new("Unknown logic option '#{@options[:logic]}") end end
validate_configuration()
click to toggle source
# File lib/anodator/validator/complex_validator.rb, line 48 def validate_configuration # target check skip end