Module: Paperclip::Validators::ClassMethods
- Defined in:
- lib/paperclip/validators.rb
Instance Method Summary collapse
- #create_validating_before_filter(attribute, validator_class, options) ⇒ Object
- #validate_before_processing(validator_class, options) ⇒ Object
-
#validates_attachment(*attributes) ⇒ Object
This method is a shortcut to the validator classes that are in “Attachment…Validator” format.
Instance Method Details
#create_validating_before_filter(attribute, validator_class, options) ⇒ Object
66 67 68 69 70 71 72 |
# File 'lib/paperclip/validators.rb', line 66 def create_validating_before_filter(attribute, validator_class, ) if_clause = .delete(:if) unless_clause = .delete(:unless) send(:"before_#{attribute}_validate", if: if_clause, unless: unless_clause) do |*_args| validator_class.new(.dup).validate(self) end end |
#validate_before_processing(validator_class, options) ⇒ Object
57 58 59 60 61 62 63 64 |
# File 'lib/paperclip/validators.rb', line 57 def validate_before_processing(validator_class, ) = .dup attributes = .delete(:attributes) attributes.each do |attribute| [:attributes] = [attribute] create_validating_before_filter(attribute, validator_class, ) end end |
#validates_attachment(*attributes) ⇒ Object
This method is a shortcut to the validator classes that are in “Attachment…Validator” format. It is almost the same as the validates method that ships with Rails, but is customized for use with attachment validators. This is helpful when you’re using multiple attachment validators on a single attachment.
Example of using the validator:
:avatar, :presence => true,
:content_type => { :content_type => "image/jpg" },
:size => { :in => 0..10.kilobytes }
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/paperclip/validators.rb', line 37 def (*attributes) = attributes..dup Paperclip::Validators.constants.each do |constant| if constant.to_s =~ /\AAttachment(.+)Validator\z/ validator_kind = $1.underscore.to_sym if .key?(validator_kind) = .delete(validator_kind) = {} if == true = .slice(:if, :unless) Array.wrap().each do || method_name = Paperclip::Validators.const_get(constant.to_s).helper_method_name send(method_name, attributes, .merge()) end end end end end |