Module: Follower

Extended by:
ActiveSupport::Concern
Includes:
FederailsCommon
Included in:
User
Defined in:
app/models/concerns/follower.rb

Constant Summary

Constants included from FederailsCommon

FederailsCommon::FEDIVERSE_USERNAMES

Instance Method Summary collapse

Methods included from FederailsCommon

#federails_actor, #local?, #remote?

Instance Method Details

#follow(target) ⇒ Object



12
13
14
# File 'app/models/concerns/follower.rb', line 12

def follow(target)
  following_follows.create(target_actor: target.is_a?(Federails::Actor) ? target : target.federails_actor)
end

#following?(target) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
24
25
26
27
# File 'app/models/concerns/follower.rb', line 21

def following?(target)
  # follows? gives us the relationship or false if it doesn't exist,
  # we turn that into the pendingstatus (or false if not)
  tgt = target.is_a?(Federails::Actor) ? target : target.federails_actor
  f = federails_actor&.follows?(tgt)
  f&.is_a?(Federails::Following) ? f.status.to_sym : false
end

#unfollow(target) ⇒ Object



16
17
18
19
# File 'app/models/concerns/follower.rb', line 16

def unfollow(target)
  f = federails_actor.follows?(target.is_a?(Federails::Actor) ? target : target.federails_actor)
  f&.destroy unless f == false
end