class DataMapper::Validations::WithinValidator
@author Guy van den Berg @since 0.9
Public Class Methods
new(field_name, options={})
click to toggle source
Calls superclass method
DataMapper::Validations::GenericValidator::new
# File lib/dm-validations/validators/within_validator.rb, line 7 def initialize(field_name, options={}) super @options[:set] = [] unless @options.has_key?(:set) end
Public Instance Methods
call(target)
click to toggle source
# File lib/dm-validations/validators/within_validator.rb, line 13 def call(target) value = target.validation_property_value(field_name) return true if optional?(value) return true if @options[:set].include?(value) n = 1.0/0 set = @options[:set] msg = @options[:message] if set.is_a?(Range) if set.first != -n && set.last != n error_message = msg || ValidationErrors.default_error_message(:value_between, field_name, set.first, set.last) elsif set.first == -n error_message = msg || ValidationErrors.default_error_message(:less_than_or_equal_to, field_name, set.last) elsif set.last == n error_message = msg || ValidationErrors.default_error_message(:greater_than_or_equal_to, field_name, set.first) end else error_message = msg || ValidationErrors.default_error_message(:inclusion, field_name, set.to_a.join(', ')) end add_error(target, error_message, field_name) false end