class FluentValidation::AttributeRule

Attributes

attribute_name[RW]
condition[RW]
error_code[RW]
expression[R]
validators[R]

Public Class Methods

new(&expression) click to toggle source
# File lib/fluent_validation/attribute_rule.rb, line 10
def initialize(&expression)
  @expression = expression
  @validators = Array.new
end

Public Instance Methods

add_validator(validator) click to toggle source
# File lib/fluent_validation/attribute_rule.rb, line 15
def add_validator(validator)
  @validators << validator
end
validate(object) click to toggle source
# File lib/fluent_validation/attribute_rule.rb, line 19
def validate(object)
  validation_failures = Array.new
  if @condition.nil? || @condition.call(object)
    value = expression.call object
    validator_context = Validators::AttributeValidatorContext.new @attribute_name, value, @error_code
    @validators.each do |validator|
      result = validator.validate validator_context
      validation_failures.concat result
    end
  end
  validation_failures
end