class StandaloneValidator::ValidationResultBuilder

Attributes

validated_object[RW]

Public Instance Methods

add_violation(attribute_name, violation_type_or_message, options = {}) click to toggle source
# File lib/standalone_validator/validation_result_builder.rb, line 13
def add_violation(attribute_name, violation_type_or_message, options = {})
  creation_attributes = {
    :attribute     => attribute_name.to_sym,
    :source_object => validated_object,
    :options       => options,
  }

  if violation_type_or_message.kind_of?(Symbol)
    creation_attributes[:type] = violation_type_or_message
  else
    creation_attributes[:message] = violation_type_or_message
  end

  push_violation(Violation.new(creation_attributes))
  self
end
merge_result(result) click to toggle source
# File lib/standalone_validator/validation_result_builder.rb, line 8
def merge_result(result)
  combined_results << result
  self
end
result() click to toggle source
# File lib/standalone_validator/validation_result_builder.rb, line 30
def result
  ValidationResult.new(
    :validated_object => validated_object,
    :violations       => all_violations
  )
end

Private Instance Methods

all_violations() click to toggle source
# File lib/standalone_validator/validation_result_builder.rb, line 40
def all_violations
  combined_results.inject(violations) do |violations_list, subresult|
    violations_list.append(subresult.violations)
  end
end
combined_results() click to toggle source
# File lib/standalone_validator/validation_result_builder.rb, line 46
def combined_results
  @combined_results ||= []
end
push_violation(violation) click to toggle source
# File lib/standalone_validator/validation_result_builder.rb, line 50
def push_violation(violation)
  @violations = violations.cons(violation)
end
violations() click to toggle source
# File lib/standalone_validator/validation_result_builder.rb, line 54
def violations
  @violations ||= Hamster.list
end