Sha256: 44dc3a13eec80c6231c68c8762b862925d79dec46cfc71eade046614e749c3f4
Contents?: true
Size: 983 Bytes
Versions: 9
Compression:
Stored size: 983 Bytes
Contents
require 'active_support/concern' module SocialStream #:nodoc: module Models # Common methods for models that have subtypes. Currently, there are two supertypes: # * Actor: participates in the social network and has ties with other actors. Its subtypes are subjects, like user or group # * ActivityObject: created and managed by actors in activities. Its subtypes are objects, like post or comment module Supertype extend ActiveSupport::Concern included do subtypes.each do |s| has_one s, :dependent => :destroy end end module ClassMethods def subtypes SocialStream.__send__ @subtypes_name.to_s.tableize # SocialStream.subjects # in Actor end end module InstanceMethods def subtype_instance self.class.subtypes.each do |s| i = __send__(s) return i if i.present? end nil end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems