module Decidim::HasUploadValidations

Public Instance Methods

maximum_avatar_size() click to toggle source
# File lib/decidim/has_upload_validations.rb, line 32
def maximum_avatar_size
  Decidim.organization_settings(organization).upload_maximum_file_size_avatar
end
maximum_upload_size() click to toggle source
# File lib/decidim/has_upload_validations.rb, line 28
def maximum_upload_size
  Decidim.organization_settings(organization).upload_maximum_file_size
end
validates_avatar(attribute = :avatar) click to toggle source
# File lib/decidim/has_upload_validations.rb, line 20
def validates_avatar(attribute = :avatar)
  validates_upload(
    attribute,
    max_size: ->(record) { record.maximum_avatar_size }
  )
end
validates_upload(attribute, options = {}) click to toggle source
# File lib/decidim/has_upload_validations.rb, line 10
def validates_upload(attribute, options = {})
  max_size = options[:max_size] || ->(record) { record.maximum_upload_size }

  validates(
    attribute,
    file_size: { less_than_or_equal_to: max_size },
    uploader_content_type: true
  )
end