Sha256: 9446ea4ebb9d70656d95017bbda94fd05bc53020b2137b202698f0a5001f5c0e

Contents?: true

Size: 1020 Bytes

Versions: 6

Compression:

Stored size: 1020 Bytes

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
    self.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.decrement!(:comment_count) 
  end 

end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
social_stream-0.28.4 base/app/models/comment.rb
social_stream-base-0.22.4 app/models/comment.rb
social_stream-0.28.1 base/app/models/comment.rb
social_stream-base-0.22.1 app/models/comment.rb
social_stream-0.28.0 base/app/models/comment.rb
social_stream-base-0.22.0 app/models/comment.rb