Sha256: fe08f314850871bb9eee65667933faf68f61c10aeefb54b76406ac85f0034985

Contents?: true

Size: 1020 Bytes

Versions: 8

Compression:

Stored size: 1020 Bytes

Contents

class SpudBannerSet < ActiveRecord::Base
  has_many :banners, ->{ order('sort_order asc') }, :class_name => 'SpudBanner', :dependent => :destroy, :inverse_of => :owner

  validates_presence_of :name
  validates_uniqueness_of :name
  validates_numericality_of :width, :height

  acts_as_spud_liquid_tag :spud_banner_set, :name

  after_update :check_for_dimension_change

  def self.find_by_identifier(identifier)
    if identifier.class == String
      banner_set = SpudBannerSet.find_by_name(identifier)
    elsif identifier.class == Symbol
      banner_set = SpudBannerSet.find_by_name(identifier.to_s.titleize)
    else
      banner_set = SpudBannerSet.find(identifier)
    end
    return banner_set
  end

  def reprocess_banners!
    self.banners.each do |banner|
      banner.banner.reprocess!
    end
  end

  def set_name
    return name
  end

private

  def check_for_dimension_change
    if self.height_changed? || self.width_changed? || self.cropped_changed?
      self.reprocess_banners!
    end
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

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