Sha256: 803e15f1dd11b637a1a54b9cb93a0a152b05f3157ed4c155359025750eb7837c

Contents?: true

Size: 1.96 KB

Versions: 13

Compression:

Stored size: 1.96 KB

Contents

class Asset < ActiveRecord::Base
  require 'mime/types'
  include Sprockets::Helpers::IsolatedHelper
  include Sprockets::Helpers::RailsHelper


  acts_as_taggable
  has_attached_file :attachment, :styles => {:thumbnail => "120x108#", :medium => "800x800>"}
  before_attachment_post_process :prevent_pdf_thumbnail


  default_scope :order => "assets.created_at DESC"

  def swfupload_file!(data, filename)
    data.content_type = MIME::Types.type_for(data.original_filename).to_s
    self.attachment = data
    self.title = filename
  end

  def list_title
    self.title.size > 16 ? self.title[0..15].strip + '...' : self.title
  end

  def is_image?
    self.attachment_content_type =~ /image/
  end

  def dimensions(style = :original)
    Paperclip::Geometry.from_file(self.attachment.to_file(style)).to_s.split('x')
  end

  def self.for_drawer(params)
    unless params[:q].blank?
      assets = where("assets.title LIKE ? OR tags.name = ?", "%#{params[:q]}%", params[:q]).includes(:taggings => :tag)
    else
      case params[:filter]
      when "images"
        assets = where("attachment_content_type LIKE ?", "%image%")
      when "documents"
        assets = where("attachment_content_type NOT LIKE ?", "%image%")
      else
        assets = self
      end
    end
    assets.limit(20).offset(params[:offset] || 0)
  end

  def icon_path
    case attachment_content_type
    when /image/
      attachment.url(:thumbnail)
    when /audio/
      asset_path "forge/asset-icons/audio.jpg"
    when /excel/
      asset_path "forge/asset-icons/spreadsheet.jpg"
    when /pdf/
      asset_path "forge/asset-icons/pdf.jpg"
    else
      asset_path "forge/asset-icons/misc.jpg"
    end
  end


  private
   def prevent_pdf_thumbnail
     return false unless attachment_content_type.index("image")
   end

   def zencoder_setting
     require 'ostruct'
     raw_config = File.read(File.join(Rails.root, 'config', 'zencoder.yml'))
     @zencoder_config ||= YAML.load(ERB.new(raw_config).result)
   end

end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
forge-cli-0.0.18 lib/forge/app/models/asset.rb
forge-cli-0.0.17 lib/forge/app/models/asset.rb
forge-cli-0.0.16 lib/forge/app/models/asset.rb
forge-cli-0.0.15 lib/forge/app/models/asset.rb
forge-cli-0.0.14 lib/forge/app/models/asset.rb
forge-cli-0.0.13 lib/forge/app/models/asset.rb
forge-cli-0.0.12 lib/forge/app/models/asset.rb
forge-cli-0.0.11 lib/forge/app/models/asset.rb
forge-cli-0.0.10 lib/forge/app/models/asset.rb
forge-cli-0.0.9 lib/forge/app/models/asset.rb
forge-cli-0.0.8 lib/forge/app/models/asset.rb
forge-cli-0.0.7 lib/forge/app/models/asset.rb
forge-cli-0.0.6 lib/forge/app/models/asset.rb