Sha256: 2a6c560561bf399973d14aaca59092c9e5015e51930f350952364eeff1fd77fb
Contents?: true
Size: 989 Bytes
Versions: 2
Compression:
Stored size: 989 Bytes
Contents
module Connections module Connectable extend ActiveSupport::Concern module ClassMethods def connectable_with(*types) has_many :incoming_connections, :as => :connectable, :dependent => :delete_all, :class_name => 'Connections::Connection' types.each do |t| class_eval do # user.followers(:user) define_method :"#{t.to_s.sub(/e$/,'')}ers" do |*args| class_name = args.first if class_name klass = class_name.to_s.classify.constantize klass.joins(:connections).where("connections_connections.type = ? AND connectable_type = ? AND connectable_id = ?", t.to_s.classify, self.class.base_class.to_s, self) else incoming_connections.where('connections_connections.type = ?', t.to_s.classify) end end end end end end end end ActiveRecord::Base.send :include, Connections::Connectable
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
connections-0.2.1 | lib/connections/connectable.rb |
connections-0.1.2 | lib/connections/connectable.rb |