From a8b5bce609089af8795768230c7dd3a9b87cd5e0 Mon Sep 17 00:00:00 2001 From: Philip Arndt Date: Sat, 14 Sep 2013 10:00:42 +1200 Subject: Supported Rails 4 and Refinery 3.0.0.dev --- app/models/refinery/blog/comment.rb | 28 ++++++++++---------- app/models/refinery/blog/post.rb | 51 +++++++++++++++++++------------------ 2 files changed, 39 insertions(+), 40 deletions(-) (limited to 'app/models/refinery') 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 -- cgit v1.2.3