Class: Anodator::Validator::ComplexValidator
- Defined in:
- lib/anodator/validator/complex_validator.rb
Overview
ComplexValidator behaves like a single Validator what contains multiple Validators.
Constant Summary collapse
- LOGIC_OR =
Combine logical OR of each Validators
"OR"
- LOGIC_AND =
Combine logical AND of each Validators
"AND"
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#initialize(options = { }) ⇒ ComplexValidator
constructor
A new instance of ComplexValidator.
- #logic_expression ⇒ Object
- #to_s(level = 2, step = 2) ⇒ Object
- #validate ⇒ Object
- #validate_configuration ⇒ Object
Methods inherited from Base
#allow_blank?, #argument_value_at, default_options, #description, #target_value, #valid?, valid_option_keys, values, values=
Constructor Details
#initialize(options = { }) ⇒ ComplexValidator
Returns a new instance of ComplexValidator.
16 17 18 |
# File 'lib/anodator/validator/complex_validator.rb', line 16 def initialize( = { }) super("dummy", ) end |
Instance Method Details
#logic_expression ⇒ Object
40 41 42 43 44 45 46 |
# 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) ⇒ Object
52 53 54 55 56 57 |
# 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 ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# 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 ⇒ Object
48 49 50 |
# File 'lib/anodator/validator/complex_validator.rb', line 48 def validate_configuration # target check skip end |