Sha256: d8111bf8343d21d582177401d50fc92b3ef859e5f71857bd47fd5e25e9a9757c

Contents?: true

Size: 1.23 KB

Versions: 6

Compression:

Stored size: 1.23 KB

Contents

class SpudBanner < ActiveRecord::Base
  belongs_to :owner, :class_name => 'SpudBannerSet', :foreign_key => 'spud_banner_set_id', :inverse_of => :banners, :touch => true

  scope :active, ->{
    where('(start_date IS NULL OR start_date <= ?) AND (end_date IS NULL OR end_date >= ?)', Date.today, Date.today)
  }

  has_attached_file :banner, 
    :styles => lambda { |attachment| attachment.instance.dynamic_styles },
    :convert_options => {
      :tiny => '-strip -density 72x72',
      :banner => '-strip -density 72x72'
    },
    :storage => Spud::Banners.paperclip_storage,
    :s3_credentials => Spud::Banners.s3_credentials,
    :url => Spud::Banners.storage_url,
    :path => Spud::Banners.storage_path

  validates_attachment :banner,
    :presence => true,
    :content_type => {:content_type => ['image/jpg', 'image/jpeg', 'image/png']}

  def dynamic_styles
    styles = {
      :tiny => '150x150'
    }
    owner_style = nil
    if self.owner
      owner_style = "#{self.owner.width}x#{self.owner.height}"
      owner_style += '#' if self.owner.cropped
      styles[:banner] = owner_style
    end
    return styles
  end

  def set_name
    return owner.name
  end

  def is_expired?
    return end_date.present? && end_date < Date.today
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
tb_banners-1.1.6 app/models/spud_banner.rb
tb_banners-1.2.0.beta1 app/models/spud_banner.rb
tb_banners-1.1.5 app/models/spud_banner.rb
tb_banners-1.1.4 app/models/spud_banner.rb
tb_banners-1.1.3 app/models/spud_banner.rb
tb_banners-1.1.2 app/models/spud_banner.rb