aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test/validators/email_validator.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activemodel/test/validators/email_validator.rb')
-rw-r--r--activemodel/test/validators/email_validator.rb8
1 files changed, 8 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..0c634d8659
--- /dev/null
+++ b/activemodel/test/validators/email_validator.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+class EmailValidator < ActiveModel::EachValidator
+ def validate_each(record, attribute, value)
+ record.errors[attribute] << (options[:message] || "is not an email") unless
+ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i.match?(value)
+ end
+end