Sha256: a053bfb8a3a94ba1e6386ab3a61af6c3e26babbf7260277a80f6e668c876211f

Contents?: true

Size: 1.01 KB

Versions: 16

Compression:

Stored size: 1.01 KB

Contents

require 'dm-timestamps'
class OrangeBlogPost < Orange::Carton
  id
  front do
    title :title
    fulltext :body
  end
  admin do
    fulltext :summary
  end
  orange do
    boolean :published, :default => false
    text :slug
    text :author
  end
  
  property :created_at, DateTime
  property :published_at, DateTime
  property :updated_at, DateTime
  belongs_to :blog, "OrangeBlog"
  
  def title=(t)
    self.attribute_set('title', t)
    self.attribute_set('slug', t.downcase.gsub(/[']+/, "").gsub(/[^a-z0-9]+/, "_"))
  end
  
  def publish
    self.published_at = Time.now
    self.published = true
  end
  
  def publish!
    self.published_at = Time.now
    self.published = true
    self.save
  end
  
  def self.year_and_month(yr, mnth)
    all(:published_at.gte => DateTime.new(yr, mnth, 1), :published_at.lt => DateTime.new(yr, mnth + 1, 1))
  end
  
  def self.slug(slug)
    first(:slug => slug)
  end
  
  def self.published
    all(:published => true)
  end
  
  def self.draft
    all(:published => false)
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
orange-0.3.5 lib/orange-more/blog/cartons/blog_post.rb
orange-0.3.4 lib/orange-more/blog/cartons/blog_post.rb
orange-0.3.3 lib/orange-more/blog/cartons/blog_post.rb
orange-0.3.2 lib/orange-more/blog/cartons/blog_post.rb
orange-0.3.1 lib/orange-more/blog/cartons/blog_post.rb
orange-0.3.0 lib/orange-more/blog/cartons/blog_post.rb
orange-0.2.11 lib/orange-more/blog/cartons/blog_post.rb
orange-0.2.9 lib/orange-more/blog/cartons/blog_post.rb
orange-0.2.8 lib/orange-more/blog/cartons/blog_post.rb
orange-0.2.7 lib/orange-more/blog/cartons/blog_post.rb
orange-0.2.6 lib/orange-more/blog/cartons/blog_post.rb
orange-0.2.5 lib/orange-more/blog/cartons/blog_post.rb
orange-0.2.4 lib/orange-more/blog/cartons/blog_post.rb
orange-0.2.3 lib/orange-more/blog/cartons/blog_post.rb
orange-0.1.10 lib/orange-more/blog/cartons/blog_post.rb
orange-0.1.8 lib/orange-more/blog/cartons/blog_post.rb