class Ruboty::SlackTakeTurns::Actions::Next

Public Instance Methods

call() click to toggle source
# File lib/ruboty/slack_take_turns/actions/next.rb, line 5
def call
  message.reply(_next)
rescue ActionBaseError => e
  message.reply(e.message)
  Ruboty.logger.info e.to_s
rescue => e
  message.reply(e.message)
  raise e
end

Private Instance Methods

_next() click to toggle source
# File lib/ruboty/slack_take_turns/actions/next.rb, line 17
def _next
  self.current_user_id = find_next
  "#{I18n.t 'messages.actions.next', current_user_name: current_user_name}"
end
find_next() click to toggle source
# File lib/ruboty/slack_take_turns/actions/next.rb, line 22
def find_next
  raise(CurrentUserNotFound.new(chat_message: message)) unless current_user_id
  idx = target_user_ids.index(current_user_id)
  raise UserNotFound.new(chat_message: message, user_id: current_user_id) unless idx
  if idx == target_user_ids.size - 1
    target_user_ids.first
  else
    target_user_ids[idx+1]
  end
end