Sha256: 0cd71c91bf1e14d843986314cf5bc6e773c0278057546af0bd78dcefbc4c7185

Contents?: true

Size: 1017 Bytes

Versions: 71

Compression:

Stored size: 1017 Bytes

Contents

# Convenience class for managing like activities
class Like
  attr_reader :object

  class << self
    # Find the children activity of activity_id liked by subject
    def find(subject, object)
      like = new(object.liked_by(subject).first)
      # Cache object to make it available before it is destroyed
      like.object
      like
    end

    # Like #find but raises error if not found
    def find!(subject, object)
      find(subject, object) ||
        raise(ActiveRecord::RecordNotFound)
    end

    def build(subject, user, object)
       new object.new_like(subject, user)
    end
  end

  # Initialize a new like activity
  def initialize(activity)
    @like = activity
  end

  def save
    @like.save
  end
  
  # The object that is liked. It can be an activity
  def object
    @object ||=
      if @like.is_root?
        obj = @like.direct_object
        obj = obj.subject if obj.is_a?(Actor)
        obj
      else
        @like.parent
      end
  end
  
  def destroy
    @like.destroy
  end
end

Version data entries

71 entries across 71 versions & 2 rubygems

Version Path
social_stream-0.29.0 base/app/models/like.rb
social_stream-base-0.23.0 app/models/like.rb
social_stream-0.28.4 base/app/models/like.rb
social_stream-base-0.22.4 app/models/like.rb
social_stream-0.28.1 base/app/models/like.rb
social_stream-base-0.22.1 app/models/like.rb
social_stream-0.28.0 base/app/models/like.rb
social_stream-base-0.22.0 app/models/like.rb
social_stream-0.27.3 base/app/models/like.rb
social_stream-0.27.2 base/app/models/like.rb
social_stream-base-0.21.2 app/models/like.rb
social_stream-0.27.1 base/app/models/like.rb
social_stream-base-0.21.1 app/models/like.rb
social_stream-0.27.0 base/app/models/like.rb
social_stream-base-0.21.0 app/models/like.rb
social_stream-0.26.2 base/app/models/like.rb
social_stream-base-0.20.2 app/models/like.rb
social_stream-0.26.1 base/app/models/like.rb
social_stream-base-0.20.1 app/models/like.rb
social_stream-0.26.0 base/app/models/like.rb