-
Notifications
You must be signed in to change notification settings - Fork 18
This plugin adds reflective access to validations
License
redinger/validation_reflection
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Validation Reflection ===================== Version 1.0.0, 2010-10-08 This plugin adds reflective access to validations - ModelClass.reflect_on_all_validations - ModelClass.reflect_on_validations_for(:property) Both of these methods return arrays containing instances of ActiveRecord::Reflection::MacroReflection. For example class Person < ActiveRecord::Base validates_presence_of :name validates_numericality_of :size, :only_integer => true end refl = Person.reflect_on_validations_for(:name) refl[0].macro # => :validates_presence_of refl = Person.reflect_on_validations_for(:size) refl[0].macro # => :validates_numericality_of refl[0].options # => { :only_integer => true } == Customization Usually, all the standard Rails validations are reflected. You can change this -- add or remove validations -- in an application-specific initializer, config/initializers/validation_reflection.rb In that file change config.reflected_validations to suit your needs. Say, you have a custom validation for email addresses, validates_as_email, then you could add it like this config.reflected_validations << :validates_as_email If validates_as_email is implemented in terms of other validation methods, these validations are added to the reflection metadata, too. As that may not be what you want, you can disable reflection for these subordinate validations config.reflected_validations << { :method => :validates_as_email, :ignore_subvalidations => true } You have to make sure that all reflected validations are defined before this plugin is loaded. To this end, you may have to explicitly set the load order of plugins somewhere in the environment configuration using config.plugins = [...] == Special Thanks To Michael Schuerig, [email protected] for his initial concept and implementation of this plugin. == License ValidationReflection uses the MIT license. Please check the LICENSE file for more details.
About
This plugin adds reflective access to validations
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published