class Login

Logs in users

Public Class Methods

new() click to toggle source
# File lib/utils/game/login.rb, line 8
def initialize
  @store = DATA
  @user = @store.transaction { @store[:user] }
end

Public Instance Methods

create_user() click to toggle source
# File lib/utils/game/login.rb, line 42
def create_user
  @store.transaction do
    store = @store
    @user = Prompter.new.user
    store[:user] = @user
  end
  reset_data
end
current_user() click to toggle source

simple method to return the username only for other methods

# File lib/utils/game/login.rb, line 14
def current_user
  @user
end
delete_user?() click to toggle source

Ask if really sure to delete user

# File lib/utils/game/login.rb, line 74
def delete_user?
  return false unless Prompter.new.delete(@user)
  puts "\nāŒ DELETING user #{@user}! This action cannot be undone\n"
  return false unless Prompter.new.really_sure?
  @store.transaction do
    store = @store
    store.delete(:user)
  end
  reset_data
  puts "āŒ Deleted user #{@user}"
  create_user
end
login() click to toggle source

If there a user exists, ask to resume

# File lib/utils/game/login.rb, line 24
def login
  if @user
    resume
  else
    create_user
  end
  Achievement.new.employee_otm
end
reset_data() click to toggle source
# File lib/utils/game/login.rb, line 51
def reset_data
  Score.new.reset_score
  Morale.new.reset_morale
  reset_list(Achievement.new.list, 'achievements')
  reset_list(Activity.new.list, 'distractions')
  reset_list(Activity.new.list, 'warnings')
  reset_list(Notifications.new.list, 'notifications')
  reset_list(Quests.new.list, 'quests')
end
reset_list(data, type) click to toggle source
# File lib/utils/game/login.rb, line 61
def reset_list(data, type)
  @list = Array.new(data.length, {})
  data.each_with_index do |activity, i|
    @list[i][activity] = 0
  end
  @list.uniq!
  @store.transaction do
    store = @store
    store[type] = @list[0]
  end
end
resume() click to toggle source

Ask to resume, if not, ask to delete user

# File lib/utils/game/login.rb, line 34
def resume
  if Prompter.new.resume(@user)
    user_message
  else
    delete_user?
  end
end
user_message() click to toggle source

Report who is logged in

# File lib/utils/game/login.rb, line 19
def user_message
  puts "Logged in as #{@user}"
end