Sha256: 6ed9e743ad603962a229528ba3e25e49091c3cb2c840a179b8ca88589474eafc

Contents?: true

Size: 1.2 KB

Versions: 8

Compression:

Stored size: 1.2 KB

Contents

class Article < Content
  # default_scope :order => "#{self.table_name}.published_at DESC"

  validates_presence_of :title, :body
  validates_uniqueness_of :permalink, scope: :section_id, case_sensitive: true

  class << self
    def locale
      "en"
    end
  end

  def primary?
    self == section.articles.primary
  end

  def previous
    section.articles.published.where(["#{self.class.table_name}.published_at < ?", published_at]).reorder(published_at: :desc).first
  end
  alias_method :previous_article, :previous

  def next
    section.articles.published.where(["#{self.class.table_name}.published_at > ?", published_at]).reorder(published_at: :asc).first
  end
  alias_method :next_article, :next

  def has_excerpt?
    return false if excerpt == "<p>&#160;</p>" # empty excerpt with fckeditor
    excerpt.present?
  end

  def full_permalink
    raise "cannot create full_permalink for an article that belongs to a non-blog section" unless section.is_a?(Blog)
    # raise "can not create full_permalink for an unpublished article" unless published?
    date = [:year, :month, :day].map { |key| [key, (published? ? published_at : created_at).send(key)] }.flatten
    Hash[:permalink, permalink, *date]
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
adva-0.3.2 app/models/article.rb
adva-0.3.1 app/models/article.rb
adva-0.3.0 app/models/article.rb
adva-0.2.4 app/models/article.rb
adva-0.2.3 app/models/article.rb
adva-0.2.2 app/models/article.rb
adva-0.2.1 app/models/article.rb
adva-0.2.0 app/models/article.rb