Sha256: 111cefa2754f78a17752b709d5380df8b718f38f2b66ece8dc4a36e8c35f7d70

Contents?: true

Size: 1005 Bytes

Versions: 136

Compression:

Stored size: 1005 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, object)
       new object.new_like(subject)
    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

136 entries across 136 versions & 4 rubygems

Version Path
vkhater-social_stream-0.16.3.3 base/app/models/like.rb
vkhater-social_stream-base-0.11.2 app/models/like.rb
social_stream-0.17.1 base/app/models/like.rb
social_stream-base-0.12.1 app/models/like.rb
social_stream-0.17.0 base/app/models/like.rb
social_stream-base-0.12.0 app/models/like.rb
social_stream-0.16.3 base/app/models/like.rb
social_stream-base-0.11.2 app/models/like.rb
social_stream-0.16.2 base/app/models/like.rb
social_stream-base-0.11.1 app/models/like.rb
social_stream-0.16.1 base/app/models/like.rb
social_stream-base-0.11.0 app/models/like.rb
social_stream-0.15.8 base/app/models/like.rb
social_stream-base-0.10.11 app/models/like.rb
social_stream-0.15.7 base/app/models/like.rb
social_stream-base-0.10.10 app/models/like.rb
social_stream-0.15.6 base/app/models/like.rb
social_stream-base-0.10.9 app/models/like.rb
social_stream-0.15.5 base/app/models/like.rb
social_stream-base-0.10.8 app/models/like.rb