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