class Judge::Validation

Public Class Methods

new(params) click to toggle source
# File lib/judge/validation.rb, line 4
def initialize(params)
  @klass     = params[:klass]
  @attribute = params[:attribute]
  @value     = params[:value]
  @kind      = params[:kind]
  @original_value = params[:original_value]
  validate!
end

Public Instance Methods

amv() click to toggle source
# File lib/judge/validation.rb, line 13
def amv
  @amv ||= begin
    validators = @klass.validators_on(@attribute)
    validators.keep_if { |amv| amv.kind == @kind }
    validators.first
  end
end
as_json(options = {}) click to toggle source
# File lib/judge/validation.rb, line 35
def as_json(options = {})
  record.errors[@attribute] || []
end
record() click to toggle source
# File lib/judge/validation.rb, line 21
def record
  @record ||= begin
    rec = @klass.new
    rec[@attribute] = @value
    rec
  end
end
validate!() click to toggle source
# File lib/judge/validation.rb, line 29
def validate!
  record.errors.delete(@attribute)
  amv.validate_each(record, @attribute, @value) unless amv.kind == :uniqueness && @value == @original_value && @original_value != ""
  self
end