Sha256: ce3ede6e57ebe73faa6fd9c3585e6a09d7f522cc54b1592cbc44c50dbe818642

Contents?: true

Size: 755 Bytes

Versions: 4

Compression:

Stored size: 755 Bytes

Contents

# Pages are currently just minimal text-holders. The text is entered in markdown, 
# rendered on save and placed into the usual layout.
#
module Droom
  class Page < ActiveRecord::Base
    attr_accessible :title, :slug, :summary, :body, :video_id
    
    before_validation :ensure_slug
    before_save :render_body
    validates :slug, :uniqueness => true, :presence => true
    validates :title, :presence => true
    default_scope order('title ASC')
  
  protected

    def ensure_slug
      ensure_presence_and_uniqueness_of(:slug, title.parameterize)
    end

    def render_body
      Rails.logger.warn ">>> rendering body: #{self.body.inspect}"
      markdown = RDiscount.new(self.body)
      self.rendered_body = markdown.to_html
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
droom-0.4.3 app/models/droom/page.rb
droom-0.4.2 app/models/droom/page.rb
droom-0.4.1 app/models/droom/page.rb
droom-0.2.1 app/models/droom/page.rb