Sha256: a66c27e8277d0dc0bb37662a33dab39061a2ef544494c1785c91a9bf7e0f983e

Contents?: true

Size: 1.87 KB

Versions: 2

Compression:

Stored size: 1.87 KB

Contents

class Image < ActiveRecord::Base

  belongs_to :created_by, :class_name => 'User'
  belongs_to :updated_by, :class_name => 'User'
  
  before_save :assign_title
  validates_uniqueness_of :asset_file_name, :message => 'This file already exists', :allow_nil => true
  validates_uniqueness_of :title
  
  default_scope :order => 'position ASC'
  acts_as_list
  
  has_attached_file :asset,
                    :styles           => lambda { Image.config_styles },
                    :whiny_thumbnails => false,
                    :default_url      => '/images/extensions/images/missing_:style.png',
                    :storage          => Radiant::Config['images.storage'] == 's3' ? :s3 : :filesystem, 
                    :s3_credentials   => {
                      :access_key_id      => Radiant::Config['s3.key'],
                      :secret_access_key  => Radiant::Config['s3.secret']
                    },
                    :s3_host_alias    => Radiant::Config['s3.host_alias'],
                    :bucket           => Radiant::Config['s3.bucket'],
                    :url              => Radiant::Config['images.url'],
                    :path             => Radiant::Config['images.path']
                                 
  validates_attachment_presence :asset
  validates_attachment_content_type :asset, :content_type => ['image/jpeg', 'image/png', 'image/gif']
  
  def assign_title
    self.title = self.asset_file_name if title.blank?
  end
  
  def url(style = Radiant::Config['images.default'], include_updated_timestamp = true)
    self.asset.url(style, include_updated_timestamp)
  end
  
  private 
  
  def self.config_styles
    styles = []
    if Radiant::Config['images.styles']
      styles = Radiant::Config['images.styles'].gsub(/\s+/,'').split(',') 
      styles = styles.collect{|s| s.split('=')}.inject({}) {|ha, (k, v)| ha[k.to_sym] = v; ha}
    end
    styles
  end
        
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
radiant-images-extension-0.4.0 app/models/image.rb
radiant-images-extension-0.3.4 app/models/image.rb