Class: DataMapper::Validate::AcceptanceValidator
- GenericValidator
- DataMapper::Validate::AcceptanceValidator
Constructor Summary
public
initialize(field_name, options = {})
[View source]
14 15 16 17 18 19 20 21
# File 'dm-more/dm-validations/lib/dm-validations/acceptance_validator.rb', line 14 def initialize(field_name, options = {}) super @options = options @field_name = field_name @options[:allow_nil] = true unless @options.include?(:allow_nil) @options[:accept] ||= ["1",1,"true",true,"t"] @options[:accept] = Array(@options[:accept]) end
Public Visibility
Public Class Method Summary
| default_message_for_field(field_name) |
|---|
Public Class Method Details
default_message_for_field
public
default_message_for_field(field_name)
[View source]
10 11 12
# File 'dm-more/dm-validations/lib/dm-validations/acceptance_validator.rb', line 10 def self.default_message_for_field(field_name) '%s is not accepted'.t(Extlib::Inflection.humanize(field_name)) end
Public Instance Method Details
call
public
call(target)
[View source]
23 24 25 26 27 28 29 30 31 32 33 34 35
# File 'dm-more/dm-validations/lib/dm-validations/acceptance_validator.rb', line 23 def call(target) unless valid?(target) error_message = @options[:message] || DataMapper::Validate::AcceptanceValidator.default_message_for_field(@field_name) add_error(target, error_message , @field_name) return false end return true end
valid?
public
valid?(target)
[View source]
33 34 35 36 37 38 39
# File 'dm-more/dm-validations/lib/dm-validations/acceptance_validator.rb', line 33 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? @options[:accept].include?(field_value) end