aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test/validators/email_validator.rb
diff options
context:
space:
mode:
authorjamie <jamie@soniciq.com>2010-01-07 18:44:35 +0100
committerJosé Valim <jose.valim@gmail.com>2010-01-07 19:23:59 +0100
commit0a79eb7889e7ac711ff171a453d65f3df57b9237 (patch)
tree24b32f38be5aee38a950d75178cc59054c4c288c /activemodel/test/validators/email_validator.rb
parent2dcc53bdbc1103693626625b29df8bfea7c3bcd4 (diff)
downloadrails-0a79eb7889e7ac711ff171a453d65f3df57b9237.tar.gz
rails-0a79eb7889e7ac711ff171a453d65f3df57b9237.tar.bz2
rails-0a79eb7889e7ac711ff171a453d65f3df57b9237.zip
Add validates method as shortcut to setup validators for a given set of attributes:
class Person < ActiveRecord::Base include MyValidators validates :name, :presence => true, :uniqueness => true, :length => { :maximum => 100 } validates :email, :presence => true, :email => true end [#3058 status:resolved] Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'activemodel/test/validators/email_validator.rb')
-rw-r--r--activemodel/test/validators/email_validator.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/activemodel/test/validators/email_validator.rb b/activemodel/test/validators/email_validator.rb
new file mode 100644
index 0000000000..cff47ac230
--- /dev/null
+++ b/activemodel/test/validators/email_validator.rb
@@ -0,0 +1,6 @@
+class EmailValidator < ActiveModel::EachValidator
+ def validate_each(record, attribute, value)
+ record.errors[attribute] << (options[:message] || "is not an email") unless
+ value =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
+ end
+end \ No newline at end of file