Initial commit
This commit is contained in:
5
app/validators/attached_validator.rb
Normal file
5
app/validators/attached_validator.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
class AttachedValidator < ActiveModel::EachValidator
|
||||
def validate_each(record, attribute, value)
|
||||
record.errors.add(attribute, :attached, options) unless value.attached?
|
||||
end
|
||||
end
|
||||
17
app/validators/content_type_validator.rb
Normal file
17
app/validators/content_type_validator.rb
Normal file
@@ -0,0 +1,17 @@
|
||||
class ContentTypeValidator < ActiveModel::EachValidator
|
||||
def validate_each(record, attribute, value)
|
||||
return if !value.attached?
|
||||
|
||||
Array.wrap(value).each do |attachment|
|
||||
if !attachment.content_type.in?(content_types)
|
||||
record.errors.add(attribute, :content_type, options)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def content_types
|
||||
options.fetch(:in)
|
||||
end
|
||||
end
|
||||
9
app/validators/email_validator.rb
Normal file
9
app/validators/email_validator.rb
Normal file
@@ -0,0 +1,9 @@
|
||||
class EmailValidator < ActiveModel::EachValidator
|
||||
EMAIL_REGEX = /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
|
||||
|
||||
def validate_each(record, attribute, value)
|
||||
unless value =~ EMAIL_REGEX
|
||||
record.errors[attribute] << (options[:message] || "is not an email")
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user