Class: Twterm::Repository::FriendshipRepository

Inherits:
AbstractRepository show all
Defined in:
lib/twterm/repository/friendship_repository.rb

Instance Method Summary collapse

Methods inherited from AbstractRepository

#after_create, #before_create, #create

Constructor Details

#initializeFriendshipRepository

Returns a new instance of FriendshipRepository.



11
12
13
14
15
16
# File 'lib/twterm/repository/friendship_repository.rb', line 11

def initialize
  super

  @user_ids = Set.new
  @m = Mutex.new
end

Instance Method Details

#already_looked_up?(user_id) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/twterm/repository/friendship_repository.rb', line 18

def already_looked_up?(user_id)
  @m.synchronize { @user_ids.include?(user_id) }
end

#block(from, to) ⇒ Object



22
23
24
# File 'lib/twterm/repository/friendship_repository.rb', line 22

def block(from, to)
  create(:blocking, from, to)
end

#blocking?(from, to) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/twterm/repository/friendship_repository.rb', line 26

def blocking?(from, to)
  !find([:blocking, from, to]).nil?
end

#cancel_follow_request(from, to) ⇒ Object



30
31
32
# File 'lib/twterm/repository/friendship_repository.rb', line 30

def cancel_follow_request(from, to)
  create(:following_requested, from, to)
end

#delete(status, from, to) ⇒ Object



34
35
36
# File 'lib/twterm/repository/friendship_repository.rb', line 34

def delete(status, from, to)
  repository[status].delete_if { |f| f.status == status && f.from == from && f.to == to }
end

#follow(from, to) ⇒ Object



38
39
40
# File 'lib/twterm/repository/friendship_repository.rb', line 38

def follow(from, to)
  create(:following, from, to)
end

#following?(from, to) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/twterm/repository/friendship_repository.rb', line 42

def following?(from, to)
  !find([:following, from, to]).nil?
end

#following_not_requested(from, to) ⇒ Object



46
47
48
# File 'lib/twterm/repository/friendship_repository.rb', line 46

def following_not_requested(from, to)
  delete(:following_requested, from, to)
end

#following_requested(from, to) ⇒ Object



50
51
52
# File 'lib/twterm/repository/friendship_repository.rb', line 50

def following_requested(from, to)
  create(:following_requested, from, to)
end

#following_requested?(from, to) ⇒ Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/twterm/repository/friendship_repository.rb', line 54

def following_requested?(from, to)
  !find([:following_requested, from, to]).nil?
end

#looked_up!(user_id) ⇒ Object



58
59
60
61
# File 'lib/twterm/repository/friendship_repository.rb', line 58

def looked_up!(user_id)
  @m.synchronize { @user_ids << user_id }
  user_id
end

#mute(from, to) ⇒ Object



63
64
65
# File 'lib/twterm/repository/friendship_repository.rb', line 63

def mute(from, to)
  create(:muting, from, to)
end

#muting?(from, to) ⇒ Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/twterm/repository/friendship_repository.rb', line 67

def muting?(from, to)
  !find([:muting, from, to]).nil?
end

#unblock(from, to) ⇒ Object



71
72
73
# File 'lib/twterm/repository/friendship_repository.rb', line 71

def unblock(from, to)
  delete(:blocking, from, to)
end

#unfollow(from, to) ⇒ Object



75
76
77
# File 'lib/twterm/repository/friendship_repository.rb', line 75

def unfollow(from, to)
  delete(:following, from, to)
end

#unmute(from, to) ⇒ Object



79
80
81
# File 'lib/twterm/repository/friendship_repository.rb', line 79

def unmute(from, to)
  delete(:muting, from, to)
end