Module: Amistad::Mongoid::FriendModel

Defined in:
lib/amistad/mongoid/friend_model.rb

Defined Under Namespace

Modules: InstanceMethods

Class Method Summary collapse

Class Method Details

.included(receiver) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/amistad/mongoid/friend_model.rb', line 4

def self.included(receiver)
  receiver.class_exec do
    field :friend_ids, :type => Array, :default => [], :accessible => true
    field :inverse_friend_ids, :type => Array, :default => [], :accessible => true
    field :pending_friend_ids, :type => Array, :default => [], :accessible => true
    field :pending_inverse_friend_ids, :type => Array, :default => [], :accessible => true
    field :blocked_friend_ids, :type => Array, :default => [], :accessible => true
    field :blocked_inverse_friend_ids, :type => Array, :default => [], :accessible => true
    field :blocked_pending_friend_ids, :type => Array, :default => [], :accessible => true
    field :blocked_pending_inverse_friend_ids, :type => Array, :default => [], :accessible => true
    
    %w(friend_ids inverse_friend_ids pending_friend_ids pending_inverse_friend_ids blocked_friend_ids blocked_inverse_friend_ids blocked_pending_friend_ids blocked_pending_inverse_friend_ids).each do |attribute|
      define_method(attribute.to_sym) do
        value = read_attribute(attribute)
        write_attribute(attribute, value = []) if value.nil?
        value
      end
    end
    
    include InstanceMethods
  end
end