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