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