Class: Utilisateur

Inherits:
Model
  • Object
show all
Defined in:
app/model/Utilisateur.rb

Overview

Classe d'administration des utilisateurs Modèle utilisateur

Instance Attribute Summary

Attributes inherited from Model

#db

Instance Method Summary collapse

Methods inherited from Model

#connection, inherited, #insert, #mkDatabaseDir, #to_h

Constructor Details

#initializeUtilisateur

Initialisation



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/model/Utilisateur.rb', line 21

def initialize()
	
	## Crée la table utilisateur
	@@db.execute "CREATE TABLE IF NOT EXISTS utilisateur (
					utilisateur_id integer primary key autoincrement,
					pseudo varchar(30) NOT NULL
					);"

	## Récupère les instances des tables configuration et score (Singleton pattern)
	@configuration = Configuration.instance()
	@score         = Score.instance()
	@jeu           = Jeu.instance()
end

Instance Method Details

#creerUtilisateur(pseudo) ⇒ Object

Ajoute un utilisateur dans la base de données

Parameters:

  • pseudo

    Le pseudo de l'utilisateur

Returns:

  • Retourne l'utilisateur créé



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'app/model/Utilisateur.rb', line 42

def creerUtilisateur(pseudo)
	insert(:pseudo => pseudo)

	@configuration.creerConfiguration(pseudo)

	## Crée un score par défaut si mode débug
	## Cela permet de pouvoir tester la création de score 
	## au chargement des utilisateurs.
	if Core::DEBUG
		@score.creer(pseudo, Jeu::FACILE, 600)
	end

	return self
end

#partieUtilisateur?(pseudo) ⇒ Boolean

Vérifie si un utilisateur a une partie en cours

Parameters:

  • pseudo

    Le pseudo de l'utilisateur à vérifier

Returns:

  • (Boolean)

    Retourne true si une partie est en cours



110
111
112
# File 'app/model/Utilisateur.rb', line 110

def partieUtilisateur?(pseudo)
	return File.exist?(Core::ROOTPROJECT + "assets/save/" + pseudo + ".yml")
end

#rechercherUtilisateur(pseudo) ⇒ Object

Recherche un utilisateur dans la base de données

Parameters:

  • pseudo

    Le pseudo de l'utilisateur à trouver

Returns:

  • Retourne 0 si pas trouvé sinon 1



98
99
100
101
# File 'app/model/Utilisateur.rb', line 98

def rechercherUtilisateur(pseudo)
	resultat = @@db.execute "SELECT pseudo FROM utilisateur WHERE pseudo = ? LIMIT 1;", pseudo
	return resultat.length >= 1 ? true : false;
end

#reinitialiserUtilisateur(pseudo) ⇒ Object

Supprime tout les scores de l'utilisateur

Parameters:

  • pseudo

    Pseudo de l'utilisateur



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'app/model/Utilisateur.rb', line 74

def reinitialiserUtilisateur(pseudo)
	## Récupère id utilisateur
	req = @@db.execute "SELECT utilisateur_id FROM utilisateur WHERE pseudo= ?", pseudo

	utilisateur_id = req[0][0][0]

	if(req.length > 0)
		@@db.execute "DELETE FROM score WHERE utilisateur= ?", utilisateur_id
		@@db.execute "DELETE FROM configuration WHERE utilisateur = ?", utilisateur_id
		@configuration.creerConfiguration(pseudo)
	end

	if(self.partieUtilisateur?(pseudo))
		@jeu.supprimerPartie(pseudo)
	end
end

#supprimerUtilisateur(pseudo) ⇒ Object

Supprime un utilisateur de la base de données

Parameters:

  • pseudo

    Le pseudo de l'utilisateur à supprimer

Returns:

  • Retourne vrai si la suppression a eu lieu



64
65
66
# File 'app/model/Utilisateur.rb', line 64

def supprimerUtilisateur(pseudo)
	@@db.execute "DELETE FROM utilisateur WHERE pseudo = ?;", pseudo
end