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 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