Sha256: 43f1d347e0c6eeaf89c4605dc79e3a1a5b2e76fc343b36e4a5b09c97b2017a51

Contents?: true

Size: 920 Bytes

Versions: 6

Compression:

Stored size: 920 Bytes

Contents

class Asset < ApplicationRecord
  include Concerns::Taggable

  mount_uploader :filename, AssetUploader

  has_many :images, dependent: :destroy
  has_many :content_pictures, dependent: :destroy
  has_many :attachments, dependent: :destroy

  scope :image, -> { where(content_type: %w(image/gif image/jpeg image/png)) }

  before_save :update_filesize, :update_content_type

  validates :filename, presence: true

  def image?
    content_type.to_s.include?('image')
  end

  def image
    Udongo::Assets::Resizer.new(self) if image?
  end

  def actual_filename
    read_attribute(:filename)
  end

  def extension
    actual_filename.to_s.split('.').last.downcase
  end

  def deletable?
    images.empty? && content_pictures.empty? && attachments.empty?
  end

  private

  def update_filesize
    self.filesize = filename.size
  end

  def update_content_type
    self.content_type = filename.content_type
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
udongo-7.9.0 app/models/asset.rb
udongo-7.8.1 app/models/asset.rb
udongo-7.8.0 app/models/asset.rb
udongo-7.7.2 app/models/asset.rb
udongo-7.7.1 app/models/asset.rb
udongo-7.7.0 app/models/asset.rb