class Paperclip::Validators::AttachmentDimensionsValidator

Public Class Methods

helper_method_name() click to toggle source
# File lib/paperclip/validators/attachment_dimensions_validator.rb, line 8
def self.helper_method_name
  :validates_attachment_dimensions
end
new(options) click to toggle source
Calls superclass method
# File lib/paperclip/validators/attachment_dimensions_validator.rb, line 4
def initialize(options)
  super
end

Public Instance Methods

validate_each(record, attribute, value) click to toggle source
# File lib/paperclip/validators/attachment_dimensions_validator.rb, line 12
def validate_each(record, attribute, value)
  return unless value.queued_for_write[:original]

  begin
    dimensions = Paperclip::Geometry.from_file(value.queued_for_write[:original].path)

    [:height, :width].each do |dimension|
      if options[dimension] && dimensions.send(dimension) != options[dimension].to_f
        record.errors.add(attribute.to_sym, :dimension, dimension_type: dimension.to_s, dimension: options[dimension], actual_dimension: dimensions.send(dimension).to_i)
      end
    end
  rescue Paperclip::Errors::NotIdentifiedByImageMagickError
    Paperclip.log("cannot validate dimensions on #{attribute}")
  end
end