@author Guy van den Berg @since 0.9
# File lib/dm-validations/validators/required_field_validator.rb, line 7 def call(target) value = target.validation_property_value(field_name) property = get_resource_property(target, field_name) return true if present?(value, property) error_message = @options[:message] || default_error(property) add_error(target, error_message, field_name) false end
Is the property a boolean property?
@return [Boolean]
Returns true for Boolean, ParanoidBoolean, TrueClass and other properties. Returns false for other property types or for non-properties.
# File lib/dm-validations/validators/required_field_validator.rb, line 38 def boolean_type?(property) property ? property.primitive == TrueClass : false end
# File lib/dm-validations/validators/required_field_validator.rb, line 27 def default_error(property) actual = boolean_type?(property) ? :nil : :blank ValidationErrors.default_error_message(actual, field_name) end
Boolean property types are considered present if non-nil. Other property types are considered present if non-blank. Non-properties are considered present if non-blank.
# File lib/dm-validations/validators/required_field_validator.rb, line 23 def present?(value, property) boolean_type?(property) ? !value.nil? : !DataMapper::Ext.blank?(value) end
Generated with the Darkfish Rdoc Generator 2.