aboutsummaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorPhilip Arndt <p@arndt.io>2013-09-14 10:00:42 +1200
committerPhilip Arndt <p@arndt.io>2013-09-16 04:56:47 +1200
commita8b5bce609089af8795768230c7dd3a9b87cd5e0 (patch)
tree22a2a154da2b48988c9c4e05600e52fa1b884bf1 /app/models
parent5ae082d79e554d3449083aa70ef64ef5d677759a (diff)
downloadrefinerycms-blog-a8b5bce609089af8795768230c7dd3a9b87cd5e0.tar.gz
refinerycms-blog-a8b5bce609089af8795768230c7dd3a9b87cd5e0.tar.bz2
refinerycms-blog-a8b5bce609089af8795768230c7dd3a9b87cd5e0.zip
Supported Rails 4 and Refinery 3.0.0.dev
Diffstat (limited to 'app/models')
-rw-r--r--app/models/refinery/blog/comment.rb28
-rw-r--r--app/models/refinery/blog/post.rb51
2 files changed, 39 insertions, 40 deletions
diff --git a/app/models/refinery/blog/comment.rb b/app/models/refinery/blog/comment.rb
index 7661e81..ae35a59 100644
--- a/app/models/refinery/blog/comment.rb
+++ b/app/models/refinery/blog/comment.rb
@@ -4,28 +4,26 @@ module Refinery
attr_accessible :name, :email, :message
- filters_spam :author_field => :name,
- :email_field => :email,
- :message_field => :body
+ filters_spam author_field: :name, email_field: :email, message_field: :body
- belongs_to :post, :foreign_key => 'blog_post_id'
+ belongs_to :post, foreign_key: 'blog_post_id'
alias_attribute :message, :body
- validates :name, :message, :presence => true
- validates :email, :format => { :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i }
+ validates :name, :message, presence: true
+ validates :email, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i }
class << self
def unmoderated
- where(:state => nil)
+ where(state: nil)
end
def approved
- where(:state => 'approved')
+ where(state: 'approved')
end
def rejected
- where(:state => 'rejected')
+ where(state: 'rejected')
end
end
@@ -55,7 +53,7 @@ module Refinery
currently = Refinery::Setting.find_or_set(:comments_allowed, true, {
:scoping => 'blog'
})
- Refinery::Setting.set(:comments_allowed, {:value => !currently, :scoping => 'blog'})
+ Refinery::Setting.set(:comments_allowed, {value: !currently, scoping: 'blog'})
end
before_create do |comment|
@@ -68,16 +66,16 @@ module Refinery
class << self
def enabled?
Refinery::Setting.find_or_set(:comment_moderation, true, {
- :scoping => 'blog',
- :restricted => false
+ scoping: 'blog',
+ restricted: false
})
end
def toggle!
new_value = {
- :value => !Blog::Comment::Moderation.enabled?,
- :scoping => 'blog',
- :restricted => false
+ value: !Blog::Comment::Moderation.enabled?,
+ scoping: 'blog',
+ restricted: false
}
Refinery::Setting.set(:comment_moderation, new_value)
end
diff --git a/app/models/refinery/blog/post.rb b/app/models/refinery/blog/post.rb
index f0278f4..11aa5b8 100644
--- a/app/models/refinery/blog/post.rb
+++ b/app/models/refinery/blog/post.rb
@@ -12,9 +12,7 @@ module Refinery
is_seo_meta if self.table_exists?
- default_scope :order => 'published_at DESC'
-
- belongs_to :author, :class_name => Refinery::Blog.user_class.to_s, :foreign_key => :user_id, :readonly => true
+ belongs_to :author, proc{ readonly(true) }, :class_name => Refinery::Blog.user_class.to_s, :foreign_key => :user_id
has_many :comments, :dependent => :destroy, :foreign_key => :blog_post_id
acts_as_taggable
@@ -37,18 +35,15 @@ module Refinery
attr_accessible :source_url, :source_url_title
attr_accessor :locale
-
- class Translation
- is_seo_meta
- attr_accessible :browser_title, :meta_description, :locale
- end
+ class Translation
+ is_seo_meta
+ attr_accessible :browser_title, :meta_description, :locale
+ end
# Delegate SEO Attributes to globalize3 translation
seo_fields = ::SeoMeta.attributes.keys.map{|a| [a, :"#{a}="]}.flatten
delegate(*(seo_fields << {:to => :translation}))
- before_save { |m| m.translation.save }
-
self.per_page = Refinery::Blog.posts_per_page
def next
@@ -60,7 +55,7 @@ module Refinery
end
def live?
- !draft and published_at <= Time.now
+ !draft && published_at <= Time.now
end
def friendly_id_source
@@ -79,7 +74,8 @@ module Refinery
end
end
# A join implies readonly which we don't really want.
- joins(:translations).where(globalized_conditions).where(conditions).readonly(false)
+ where(conditions).joins(:translations).where(globalized_conditions)
+ .readonly(false)
end
def find_by_slug_or_id(slug_or_id)
@@ -91,44 +87,49 @@ module Refinery
end
def by_month(date)
- where(:published_at => date.beginning_of_month..date.end_of_month)
+ newest_first.where(:published_at => date.beginning_of_month..date.end_of_month)
end
- def by_archive(date)
- Refinery.deprecate("Refinery::Blog::Post.by_archive(date)", {:replacement => "Refinery::Blog::Post.by_month(date)", :when => 2.2 })
- by_month(date)
+ def by_year(date)
+ newest_first.where(:published_at => date.beginning_of_year..date.end_of_year).with_globalize
end
- def by_year(date)
- where(:published_at => date.beginning_of_year..date.end_of_year).with_globalize
+ def newest_first
+ order("published_at DESC")
end
def published_dates_older_than(date)
- published_before(date).select(:published_at).map(&:published_at)
+ newest_first.published_before(date).select(:published_at).map(&:published_at)
end
def recent(count)
- live.limit(count)
+ newest_first.live.limit(count)
end
def popular(count)
- unscoped.order("access_count DESC").limit(count).with_globalize
+ order("access_count DESC").limit(count).with_globalize
end
def previous(item)
- published_before(item.published_at).first
+ newest_first.published_before(item.published_at).first
end
def uncategorized
- live.includes(:categories).where(Refinery::Blog::Categorization.table_name => { :blog_category_id => nil })
+ newest_first.live.includes(:categories).where(
+ Refinery::Blog::Categorization.table_name => { :blog_category_id => nil }
+ )
end
def next(current_record)
- where(["published_at > ? and draft = ?", current_record.published_at, false]).reorder('published_at ASC').with_globalize.first
+ where(arel_table[:published_at].gt(current_record.published_at))
+ .where(:draft => false)
+ .order('published_at ASC').with_globalize.first
end
def published_before(date=Time.now)
- where("published_at < ? and draft = ?", date, false).with_globalize
+ where(arel_table[:published_at].lt(date))
+ .where(:draft => false)
+ .with_globalize
end
alias_method :live, :published_before