Sha256: b2e55373050cf7905061762cb97a1fcffd5b6f3af17734f9904e4545b5eca4fc

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 KB

Contents

# frozen_string_literal: true

# == Schema Information
#
# Table name: assets
#
#  id                :integer          not null, primary key
#  data_file_name    :string(255)      not null
#  data_content_type :string(255)
#  data_file_size    :integer
#  assetable_id      :integer          not null
#  assetable_type    :string(25)       not null
#  type              :string(25)
#  guid              :string(255)
#  locale            :integer          default(0)
#  user_id           :integer
#  sort_order        :integer          default(0)
#  width             :integer
#  height            :integer
#  created_at        :datetime
#  updated_at        :datetime
#  public_token      :string(255)
#

require 'rails-uploader'

class Asset < ActiveRecord::Base
  include Uploader::Asset
  include Sunrise::Models::Asset

  validates :data, presence: true

  default_scope -> { order("#{quoted_table_name}.sort_order") }

  def uri
    @uri ||= URI(data.url)
  end

  def x_accel_url
    return url if uri.host.nil?

    File.join('/private', uri.host, "#{uri.path}?#{uri.query}")
  end

  def self.find_klass(type)
    _types = {
      paper: 'Paper'
    }

    raise ActiveRecord::RecordNotFound, 'File not found' if _types[type.to_sym].nil?

    _types[type.to_sym].safe_constantize
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
translation_cms-0.1.5 app/models/media/asset.rb