Module: DataMapper::Validate
Public Visibility
Public Instance Method Summary
| #all_valid?(context = :default) |
Begin a recursive walk of the model checking validity. |
|---|---|
| #errors |
Return the ValidationErrors. |
| #recursive_valid?(target, context, state) |
Do recursive validity checking. |
| #save(context = :default) |
Validate the resource before saving. |
| #valid?(context = :default) |
Check if a resource is valid in a given context. |
| #valid_for_default? |
Alias for valid?(:default). |
| #validatable?() |
Mark this resource as validatable. |
| #validation_association_keys(name) | |
| #validation_property_value(name) |
Public Instance Method Details
all_valid?
public
all_valid?(context = :default)
Begin a recursive walk of the model checking validity
[View source]
66 67 68
# File 'dm-more/dm-validations/lib/dm-validations.rb', line 66 def all_valid?(context = :default) recursive_valid?(self,context,true) end
errors
public
errors
Return the ValidationErrors
[View source]
40 41 42 43 44
# File 'dm-more/dm-validations/lib/dm-validations.rb', line 40 def errors @errors ||= ValidationErrors.new end
recursive_valid?
public
recursive_valid?(target, context, state)
Do recursive validity checking
[View source]
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
# File 'dm-more/dm-validations/lib/dm-validations.rb', line 72 def recursive_valid?(target, context, state) valid = state target.instance_variables.each do |ivar| ivar_value = target.instance_variable_get(ivar) if ivar_value.validatable? valid = valid && recursive_valid?(ivar_value,context,valid) elsif ivar_value.respond_to?(:each) ivar_value.each do |item| if item.validatable? valid = valid && recursive_valid?(item,context,valid) end end end end return valid && target.valid? end
save
public
save(context = :default)
Validate the resource before saving
[View source]
33 34 35 36
# File 'dm-more/dm-validations/lib/dm-validations.rb', line 33 def save(context = :default) return false unless valid?(context) super() end
valid?
public
valid?(context = :default)
Check if a resource is valid in a given context
[View source]
60 61 62
# File 'dm-more/dm-validations/lib/dm-validations.rb', line 60 def valid?(context = :default) self.class.validators.execute(context,self) end
valid_for_default?
public
valid_for_default?
Alias for valid?(:default)
[View source]
54 55 56 57 58
# File 'dm-more/dm-validations/lib/dm-validations.rb', line 54 def valid_for_default? valid?(:default) end
validatable?
public
validatable?()
Mark this resource as validatable. When we validate associations of a resource we can check if they respond to validatable? before trying to recursivly validate them
[View source]
48 49 50 51 52
# File 'dm-more/dm-validations/lib/dm-validations.rb', line 48 def validatable?() true end
validation_association_keys
public
validation_association_keys(name)
[View source]
96 97 98 99 100 101 102 103 104 105 106 107 108 109
# File 'dm-more/dm-validations/lib/dm-validations.rb', line 96 def validation_association_keys(name) if self.class.relationships.has_key?(name) result = [] relation = self.class.relationships[name] relation.child_key.each do |key| result << key.name end return result end nil end
validation_property_value
public
validation_property_value(name)
[View source]
90 91 92 93 94
# File 'dm-more/dm-validations/lib/dm-validations.rb', line 90 def validation_property_value(name) return self.instance_variable_get("@#{name}") if self.instance_variables.include?(name) return self.send(name) if self.respond_to?(name) nil end