Class: DataMapper::Validate::ConfirmationValidator

  • GenericValidator
    • DataMapper::Validate::ConfirmationValidator

Constructor Summary

public initialize(field_name, options = {})
[View source]


10
11
12
13
14
15
# File 'dm-more/dm-validations/lib/dm-validations/confirmation_validator.rb', line 10

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

Public Visibility

Public Instance Method Summary

#call(target)
#valid?(target)

Public Instance Method Details

call

public call(target)
[View source]


17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'dm-more/dm-validations/lib/dm-validations/confirmation_validator.rb', line 17

def call(target)
  unless valid?(target)




    error_message = @options[:message] || '%s does not match the confirmation'.t(Extlib::Inflection.humanize(@field_name))
    add_error(target, error_message , @field_name)
    return false
  end

  return true
end

valid?

public valid?(target)
[View source]


27
28
29
30
31
32
33
34
# File 'dm-more/dm-validations/lib/dm-validations/confirmation_validator.rb', line 27

def valid?(target)
  field_value = target.instance_variable_get("@#{@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