aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/lib
diff options
context:
space:
mode:
authorSamuel Kadolph <samuel@kadolph.com>2010-12-09 13:30:02 -0500
committerVijay Dev <vijaydev.cse@gmail.com>2010-12-16 01:49:28 +0530
commit972011a2e58be5caf84bf06dd954ba095c823984 (patch)
tree2018a74e10fd1737a4ef2057c99d6c4b1b189742 /activemodel/lib
parent0dc39cd8ee24466f204a292ae61643ce3b3b4c32 (diff)
downloadrails-972011a2e58be5caf84bf06dd954ba095c823984.tar.gz
rails-972011a2e58be5caf84bf06dd954ba095c823984.tar.bz2
rails-972011a2e58be5caf84bf06dd954ba095c823984.zip
Add support for namespaced validators
Includes test and documentation for new feature Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
Diffstat (limited to 'activemodel/lib')
-rw-r--r--activemodel/lib/active_model/validations/validates.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/activemodel/lib/active_model/validations/validates.rb b/activemodel/lib/active_model/validations/validates.rb
index 77c5073c6e..0132f68282 100644
--- a/activemodel/lib/active_model/validations/validates.rb
+++ b/activemodel/lib/active_model/validations/validates.rb
@@ -55,6 +55,10 @@ module ActiveModel
# validates :name, :title => true
# end
#
+ # Additionally validator classes may be in another namespace and still used within any class.
+ #
+ # validates :name, :'file/title' => true
+ #
# The validators hash can also handle regular expressions, ranges,
# arrays and strings in shortcut form, e.g.
#
@@ -86,8 +90,10 @@ module ActiveModel
defaults.merge!(:attributes => attributes)
validations.each do |key, options|
+ key = "#{key.to_s.camelize}Validator"
+
begin
- validator = const_get("#{key.to_s.camelize}Validator")
+ validator = key.include?('::') ? key.constantize : const_get(key)
rescue NameError
raise ArgumentError, "Unknown validator: '#{key}'"
end