class Invitation

Public Instance Methods

accept() click to toggle source
# File lib/app/models/invitation.rb, line 20
def accept
  update(accepted_at: Time.current) unless accepted_or_declined?
end
accepted_or_declined?() click to toggle source
# File lib/app/models/invitation.rb, line 16
def accepted_or_declined?
  accepted? || declined?
end
decline() click to toggle source
# File lib/app/models/invitation.rb, line 24
def decline
  update(declined_at: Time.current) unless accepted_or_declined?
end
reset() click to toggle source
# File lib/app/models/invitation.rb, line 28
def reset
  update(accepted_at: nil, declined_at: nil)
end

Private Instance Methods

call_back_method() click to toggle source
# File lib/app/models/invitation.rb, line 54
def call_back_method
  callback_args = [inviter, invitee, invited_to]
  current_callback = "invitation_#{callback_type}_callback"
  Inviter::InvitationCallbacks.send(current_callback, *callback_args)
end
callback_type() click to toggle source
# File lib/app/models/invitation.rb, line 47
def callback_type
  return 'created' if invitation_created?
  return 'reset' if invitation_reset?
  return 'declined' if invitation_declined?
  'accepted'
end
invitation_reset?() click to toggle source
# File lib/app/models/invitation.rb, line 42
def invitation_reset?
  return true unless declined? || accepted?
  false
end
trigger_callbacks() click to toggle source
# File lib/app/models/invitation.rb, line 60
def trigger_callbacks
  inviters = Inviter::ActsAsInviter.inviters
  invitees = Inviter::ActsAsInvitee.invitees
  invited_tos = Inviter::ActsAsInvitedTo.invited_tos
  listeners = inviters | invitees | invited_tos

  return unless listeners
  listeners.each do |klass|
    _call_back_method = call_back_method
    klass.send(_call_back_method, self) if klass.respond_to?(_call_back_method)
  end
end
valid_callback?() click to toggle source
# File lib/app/models/invitation.rb, line 38
def valid_callback?
  invitation_created? || invitation_accepted? || invitation_declined?
end