Sha256: ba79d07c8f2b36b32185123e446b198bb91d482e22b6a006e304d559c15a05c7
Contents?: true
Size: 994 Bytes
Versions: 1
Compression:
Stored size: 994 Bytes
Contents
require 'active_support/concern' module SocialStream #:nodoc: module Models module Supertype extend ActiveSupport::Concern included do subtypes.each do |s| has_one s, :dependent => :destroy end end module ClassMethods def subtypes SocialStream.__send__ to_s.tableize end def load_subtype_features features = "SocialStream::Models::#{ to_s }".constantize subtypes.each do |s| begin s = s.to_s.classify.constantize s.__send__(:include, features) unless s.ancestors.include?(features) rescue puts "Warning: could not load #{ s }" end end 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
social_stream-0.0.2 | lib/social_stream/models/supertype.rb |