Module: Amistad::ActiveRecordFriendshipModel

Extended by:
ActiveSupport::Concern
Defined in:
lib/amistad/active_record_friendship_model.rb

Instance Method Summary collapse

Instance Method Details

#active?Boolean

returns true if a friendship has not beed blocked, else false

Returns:

  • (Boolean)


38
39
40
# File 'lib/amistad/active_record_friendship_model.rb', line 38

def active?
  self.blocker_id.nil?
end

#approved?Boolean

returns true if a friendship has been approved, else false

Returns:

  • (Boolean)


23
24
25
# File 'lib/amistad/active_record_friendship_model.rb', line 23

def approved?
  !self.pending
end

#blocked?Boolean

returns true if a friendship has been blocked, else false

Returns:

  • (Boolean)


33
34
35
# File 'lib/amistad/active_record_friendship_model.rb', line 33

def blocked?
  self.blocker_id.present?
end

#can_block?(friendable) ⇒ Boolean

returns true if a friendship can be blocked by given friendable

Returns:

  • (Boolean)


43
44
45
# File 'lib/amistad/active_record_friendship_model.rb', line 43

def can_block?(friendable)
  active? && (approved? || (pending? && self.friend_id == friendable.id && friendable.class.to_s == Amistad.friend_model))
end

#can_unblock?(friendable) ⇒ Boolean

returns true if a friendship can be unblocked by given friendable

Returns:

  • (Boolean)


48
49
50
# File 'lib/amistad/active_record_friendship_model.rb', line 48

def can_unblock?(friendable)
  blocked? && self.blocker_id == friendable.id && friendable.class.to_s == Amistad.friend_model
end

#pending?Boolean

returns true if a friendship has not been approved, else false

Returns:

  • (Boolean)


28
29
30
# File 'lib/amistad/active_record_friendship_model.rb', line 28

def pending?
  self.pending
end