class DataMapper::Validations::AcceptanceValidator

@author Martin Kihlgren @since 0.9

Public Class Methods

new(field_name, options = {}) click to toggle source
Calls superclass method
# File lib/dm-validations/validators/acceptance_validator.rb, line 7
def initialize(field_name, options = {})
  super

  @options[:allow_nil] = true unless @options.key?(:allow_nil)

  @options[:accept] ||= [ '1', 1, 'true', true, 't' ]
  @options[:accept] = Array(@options[:accept])
end

Public Instance Methods

call(target) click to toggle source
# File lib/dm-validations/validators/acceptance_validator.rb, line 16
def call(target)
  return true if valid?(target)

  error_message = (
    @options[:message] || ValidationErrors.default_error_message(
      :accepted, field_name
    )
  )
  add_error(target, error_message, field_name)

  false
end

Private Instance Methods

allow_nil?(value) click to toggle source
# File lib/dm-validations/validators/acceptance_validator.rb, line 37
def allow_nil?(value)
  @options[:allow_nil] && value.nil?
end
valid?(target) click to toggle source
# File lib/dm-validations/validators/acceptance_validator.rb, line 31
def valid?(target)
  value = target.validation_property_value(field_name)
  return true if allow_nil?(value)
  @options[:accept].include?(value)
end