Sha256: 59d94421d3f660b5638a6b84f402b563a4a099c97236839d0dafb8128082ae11

Contents?: true

Size: 919 Bytes

Versions: 3

Compression:

Stored size: 919 Bytes

Contents

class Post < ActiveRecord::Base
  SECTION_DELIMITER = '<!--ej:section-->'
  
  has_many                :comments, :dependent => true
  has_many                :pings,    :dependent => true
  belongs_to              :user
  has_and_belongs_to_many :tags
  
  validates_presence_of :subject, :body, :user_id

  # The updated_on time stamp is always updated to now.
  def before_save
    self.subject = CGI.escapeElement(self.subject, 'script')
    self.body    = CGI.escapeElement(self.body, 'script')

    @sections = self.body.split(/^----\s*$/).map! do |section|
      RedCloth.new(section).to_html.gsub(/\t/, '')
    end
    self.rendered = @sections.join(SECTION_DELIMITER)
  end

  def updated?
    self.created_at.strftime('%Y%m%d%H%M%S') != self.updated_at.strftime('%Y%m%d%H%M%S')
  end

  def sections
    return @sections.dup if @sections
    (@sections = self.rendered.split(SECTION_DELIMITER)).dup
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
EliteJournal-1.9.400 app/models/post.rb
EliteJournal-1.9.401 app/models/post.rb
EliteJournal-1.9.403 app/models/post.rb