Sha256: 08beac682d2eac8ca51f1343ddab1214aafa0baba1851bb0975193a8be82fe47

Contents?: true

Size: 996 Bytes

Versions: 8

Compression:

Stored size: 996 Bytes

Contents

# frozen_string_literal: true

module Maglev
  class Asset < ApplicationRecord
    include ::Maglev.uploader

    ## validations ##
    validates :file, presence: true

    ## methods ##

    def to_param
      "#{id}-#{File.basename(filename, '.*').parameterize}#{File.extname(filename)}"
    end

    ## class methods ##

    def self.search(keyword, type, page = nil, per_page = nil)
      all
        .optimized
        .where(keyword.present? ? arel_table[:filename].matches("%#{keyword}%") : nil)
        .where(arel_table[:content_type].matches("%#{type}%"))
        .order(created_at: :desc)
        .page(page || 1)
        .per(per_page || 10)
    end
  end
end

# == Schema Information
#
# Table name: maglev_assets
#
#  id           :bigint           not null, primary key
#  byte_size    :integer
#  content_type :string
#  filename     :string
#  height       :integer
#  width        :integer
#  created_at   :datetime         not null
#  updated_at   :datetime         not null
#

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
maglevcms-1.8.0 app/models/maglev/asset.rb
maglevcms-1.7.3 app/models/maglev/asset.rb
maglevcms-1.7.2 app/models/maglev/asset.rb
maglevcms-1.7.1 app/models/maglev/asset.rb
maglevcms-1.7.0 app/models/maglev/asset.rb
maglevcms-1.6.1 app/models/maglev/asset.rb
maglevcms-1.6.0 app/models/maglev/asset.rb
maglevcms-1.5.1 app/models/maglev/asset.rb