class CouchRest::Validation::ConfirmationValidator

@author Guy van den Berg @since 0.9

Public Instance Methods

call(target) click to toggle source
# File lib/couchrest/validation/validators/confirmation_validator.rb, line 40
def call(target)
  unless valid?(target)
    error_message = @options[:message] || ValidationErrors.default_error_message(:confirmation, field_name)
    add_error(target, error_message, field_name)
    return false
  end

  return true
end
valid?(target) click to toggle source
# File lib/couchrest/validation/validators/confirmation_validator.rb, line 50
def valid?(target)
  field_value = target.send(field_name)
  return true if @options[:allow_nil] && field_value.nil?
  return false if !@options[:allow_nil] && field_value.nil?

  confirm_value = target.instance_variable_get("@#{@confirm_field_name}")
  field_value == confirm_value
end

Public Class Methods

new(field_name, options = {}) click to toggle source
# File lib/couchrest/validation/validators/confirmation_validator.rb, line 33
def initialize(field_name, options = {})
  super
  @options = options
  @field_name, @confirm_field_name = field_name, (options[:confirm] || "#{field_name}_confirmation").to_sym
  @options[:allow_nil] = true unless @options.has_key?(:allow_nil)
end