Sha256: e7ce7c79e50d783b7adca746cdd584cea0df665a076e744f42c1cd6c725b64ba
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
module ActiveRecord class Base def is_followable? false end alias followable? is_followable? end end module Socialization module Followable extend ActiveSupport::Concern included do after_destroy { Socialization.follow_model.remove_followers(self) } # Specifies if self can be followed. # # @return [Boolean] def is_followable? true end alias followable? is_followable? # Specifies if self is followed by a {Follower} object. # # @return [Boolean] def followed_by?(follower) raise ArgumentError, "#{follower} is not follower!" unless follower.respond_to?(:is_follower?) && follower.is_follower? Socialization.follow_model.follows?(follower, self) end # Returns an array of {Follower}s following self. # # @param [Class] klass the {Follower} class to be included. e.g. `User` # @return [Array<Follower, Numeric>] An array of Follower objects or IDs def followers(klass, opts = {}) Socialization.follow_model.followers(self, klass, opts) end # Returns a scope of the {Follower}s following self. # # @param [Class] klass the {Follower} class to be included in the scope. e.g. `User` # @return ActiveRecord::Relation def followers_relation(klass, opts = {}) Socialization.follow_model.followers_relation(self, klass, opts) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
socialization-0.5.0.beta4 | lib/socialization/victims/followable.rb |