Sha256: 5a0fe920aaec183236d1e39cacd2d478aec71f6651df7ab19d0418b17d1034bf

Contents?: true

Size: 1.24 KB

Versions: 9

Compression:

Stored size: 1.24 KB

Contents

class Ecm::News::Item < ActiveRecord::Base
  # database settings
  self.table_name = 'ecm_news_items'
  
  # acts as markup
  acts_as_markup :language => :variable, :columns => [ :body ]
  
  # acts as published
  include ActsAsPublished::ActiveRecord
  acts_as_published
  
  # attributes
  attr_accessible :body, 
                  :link_to_more, 
                  :locale,
                  :markup_language,
                  :published_at, 
                  :slug, 
                  :title
                  
  # callbacks
  after_initialize :set_defaults   
  
  # constants
  MARKUP_LANGAUGES = %w(markdown textile rdoc)             
                  
  # friendly id
  extend FriendlyId
  friendly_id :title, :use => :slugged
                  
  # validations
  validates :title, :presence => true, :uniqueness => true
  validates :locale, :presence  => true, 
                     :inclusion => I18n.available_locales.map(&:to_s)
  validates :body,  :presence => true
  validates :markup_language, :presence  => true, 
                              :inclusion => MARKUP_LANGAUGES
  
  # public methods
  
  def to_s
    title
  end  
  
  private
  
  def set_defaults
    if self.new_record?
      self.markup_language ||= 'textile'
    end  
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ecm_news-0.1.8.pre app/models/ecm/news/item.rb
ecm_news-0.1.7.pre app/models/ecm/news/item.rb
ecm_news-0.1.5.pre app/models/ecm/news/item.rb
ecm_news-0.1.4.pre app/models/ecm/news/item.rb
ecm_news-0.1.3.pre app/models/ecm/news/item.rb
ecm_news-0.1.2.pre app/models/ecm/news/item.rb
ecm_news-0.1.1.pre app/models/ecm/news/item.rb
ecm_news-0.1.0.pre app/models/ecm/news/item.rb
ecm_news-0.0.2.pre app/models/ecm/news/item.rb