3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/rails2/validates_email_whitelist_of.rb', line 3
def validates_email_whitelist_of(*attr_names)
options = {
:on => :save,
:allow_nil => false,
:allow_blank => false,
:whitelist => []
}
options.update(attr_names.pop) if attr_names.last.kind_of?(Hash)
validates_each(attr_names, options) do |record, attr_name, value|
if value.to_s =~ EMAIL_FORMAT
message = ::I18n.t(:invalid_whitelist, :scope => 'activerecord.errors.messages')
record.errors.add(attr_name, message) unless options[:whitelist].include?($2)
else
message = ::I18n.translate(options[:message], :default => [:"activerecord.errors.messages.invalid_email", "is not a valid address"])
record.errors.add(attr_name, message)
end
end
end
|