Sha256: 2db374d8d89f6835f628d2b7ab40160ae762db98ce68d64bc90d645a84807729

Contents?: true

Size: 1.06 KB

Versions: 56

Compression:

Stored size: 1.06 KB

Contents

class Comment < ActiveRecord::Base
  include SocialStream::Models::Object

  alias_attribute :text, :description
  validates_presence_of :text

  after_create :increment_comment_count
  before_destroy :decrement_comment_count

  define_index do
    activity_object_index
  end

  def parent_post
    _activity_parent_id && _activity_parent.direct_object ||
      post_activity.parent.direct_object
  end

  def title
    description.truncate(30, :separator =>' ')
  end

  private

  # after_create callback 
  # 
  # Increment comment counter in parent's activity_object with a comment
  def increment_comment_count 
    return if self.post_activity.parent.blank?
 
    self.post_activity.parent.direct_activity_object.increment!(:comment_count) 
  end 
 
  # before_destroy callback 
  # 
  # Decrement comment counter in parent's activity_object when comment is destroyed 
  def decrement_comment_count 
    return if self.post_activity.blank? || self.post_activity.parent.blank?
 
    self.post_activity.parent.direct_activity_object.try(:decrement!, :comment_count) 
  end 

end

Version data entries

56 entries across 56 versions & 2 rubygems

Version Path
social_stream-2.2.2 base/app/models/comment.rb
social_stream-base-2.2.2 app/models/comment.rb
social_stream-2.2.1 base/app/models/comment.rb
social_stream-base-2.2.1 app/models/comment.rb
social_stream-2.2.0 base/app/models/comment.rb
social_stream-base-2.2.0 app/models/comment.rb
social_stream-2.1.1 base/app/models/comment.rb
social_stream-1.1.12 base/app/models/comment.rb
social_stream-base-1.1.11 app/models/comment.rb
social_stream-2.1.0 base/app/models/comment.rb
social_stream-base-2.1.0 app/models/comment.rb
social_stream-2.0.4 base/app/models/comment.rb
social_stream-base-2.0.4 app/models/comment.rb
social_stream-2.0.3 base/app/models/comment.rb
social_stream-base-2.0.3 app/models/comment.rb
social_stream-1.1.11 base/app/models/comment.rb
social_stream-base-1.1.10 app/models/comment.rb
social_stream-1.1.10 base/app/models/comment.rb
social_stream-base-1.1.9 app/models/comment.rb
social_stream-1.1.9 base/app/models/comment.rb