diff options
author | Philip Arndt <parndt@gmail.com> | 2012-02-23 00:54:43 -0800 |
---|---|---|
committer | Philip Arndt <parndt@gmail.com> | 2012-02-23 00:54:43 -0800 |
commit | 98f8d3f51529845a76b2ade37f1a1ca7ba8e2c62 (patch) | |
tree | cbcc5471c9114b47206ddfb38bb81183c5fc1065 /app | |
parent | f82d2c96e49cdb3c649358b5fd3fbf3f52389660 (diff) | |
parent | d353cd556cd63da1b60600bb8a6ab38ca7f09f1c (diff) | |
download | refinerycms-blog-98f8d3f51529845a76b2ade37f1a1ca7ba8e2c62.tar.gz refinerycms-blog-98f8d3f51529845a76b2ade37f1a1ca7ba8e2c62.tar.bz2 refinerycms-blog-98f8d3f51529845a76b2ade37f1a1ca7ba8e2c62.zip |
Merge pull request #203 from substantial/cleanup_models
Cleanup model code
Diffstat (limited to 'app')
-rw-r--r-- | app/models/refinery/blog/comment.rb | 4 | ||||
-rw-r--r-- | app/models/refinery/blog/post.rb | 32 |
2 files changed, 14 insertions, 22 deletions
diff --git a/app/models/refinery/blog/comment.rb b/app/models/refinery/blog/comment.rb index 9187306..3675e46 100644 --- a/app/models/refinery/blog/comment.rb +++ b/app/models/refinery/blog/comment.rb @@ -8,7 +8,7 @@ module Refinery :email_field => :email, :message_field => :body - belongs_to :post, :class_name => 'Refinery::Blog::Post', :foreign_key => 'blog_post_id' + belongs_to :post, :foreign_key => 'blog_post_id' acts_as_indexed :fields => [:name, :email, :message] @@ -132,4 +132,4 @@ module Refinery end end -end
\ No newline at end of file +end diff --git a/app/models/refinery/blog/post.rb b/app/models/refinery/blog/post.rb index ddfc3cc..75911b9 100644 --- a/app/models/refinery/blog/post.rb +++ b/app/models/refinery/blog/post.rb @@ -8,11 +8,10 @@ module Refinery is_seo_meta if self.table_exists? default_scope :order => 'published_at DESC' - #.first & .last will be reversed -- consider a with_exclusive_scope on these? belongs_to :author, :class_name => 'Refinery::User', :foreign_key => :user_id, :readonly => true - has_many :comments, :class_name => 'Refinery::Blog::Comment', :dependent => :destroy, :foreign_key => :blog_post_id + has_many :comments, :dependent => :destroy, :foreign_key => :blog_post_id acts_as_taggable has_many :categorizations, :dependent => :destroy, :foreign_key => :blog_post_id @@ -41,23 +40,17 @@ module Refinery self.per_page = Refinery::Blog.posts_per_page def next - self.class.next(self).first + self.class.next(self) end def prev - self.class.previous(self).first + self.class.previous(self) end def live? !draft and published_at <= Time.now end - def category_ids=(ids) - self.categories = ids.reject{|id| id.blank?}.collect {|c_id| - Refinery::Blog::Category.find(c_id.to_i) rescue nil - }.compact - end - def friendly_id_source custom_url.present? ? custom_url : title end @@ -72,23 +65,19 @@ module Refinery end def published_dates_older_than(date) - where("published_at <= ?", date).map(&:published_at) + published_before(date).pluck(:published_at) end - def live - where( "published_at <= ? and draft = ?", Time.now, false) - end - def recent(count) live.limit(count) end - + def popular(count) unscoped.order("access_count DESC").limit(count) end def previous(item) - where(["published_at < ? and draft = ?", item.published_at, false]).limit(1) + published_before(item.published_at).first end def uncategorized @@ -96,10 +85,13 @@ module Refinery end def next(current_record) - self.send(:with_exclusive_scope) do - where(["published_at > ? and draft = ?", current_record.published_at, false]).order("published_at ASC") - end + where(["published_at > ? and draft = ?", current_record.published_at, false]).first + end + + def published_before(date=Time.now) + where("published_at < ? and draft = ?", date, false) end + alias_method :live, :published_before def comments_allowed? Refinery::Setting.find_or_set(:comments_allowed, true, :scoping => 'blog') |