Class: Configuration

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

Overview

Déclaration de la table contenant les paramètres Modèle de configuration

Constant Summary

CL_CASE_BASE =

Définit la couleur de la case de base

"65535, 65535, 65535"
CL_CASE_FIXE =

Définit la couleur de la case fixe

"55000, 55000, 55000"
CL_CASE_SELECTIONNE =

Définit la couleur de la case sélectionnée

"64764, 59881, 20303"
CL_INDICES =

Définit la couleur des indices

"0, 32000, 65535"
CL_TEXTE =

Définit la couleur du texte

"0, 0, 0"
POLICE =

Définit la police du texte

"Sans Regular"
TAILLE_POLICE =

Définit la taille de la police

25

Instance Attribute Summary

Attributes inherited from Model

#db

Instance Method Summary collapse

Methods inherited from Model

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

Constructor Details

#initializeConfiguration

Initialisation



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'app/model/Configuration.rb', line 32

def initialize()
	
	## Crée la table configuration
	@@db.execute  "CREATE TABLE IF NOT EXISTS configuration (
					config_id integer primary key autoincrement,
					caseBase varchar(30) DEFAULT '#{CL_CASE_BASE}',
					caseFixe varchar(30) DEFAULT '#{CL_CASE_FIXE}',
					caseSelectionne varchar(30) DEFAULT '#{CL_CASE_SELECTIONNE}',
					couleurTexte varchar(30) DEFAULT '#{CL_TEXTE}',
					couleurIndices varchar(30) DEFAULT '#{CL_INDICES}',
					police varchar(50) DEFAULT 'Sans Regular',
					taillePolice integer DEFAULT #{TAILLE_POLICE},
					utilisateur integer,
					FOREIGN KEY(utilisateur) REFERENCES utilisateur(utilisateur_id)
					);"
end

Instance Method Details

#couleur(gdkColor) ⇒ Object

Convertis un gdk color en composantes

sous forme d'une chaîne séparée par une virgule

Parameters:

  • gdkColor

    GDK::Color

Returns:

  • Les composantes sous forme de chaîne



127
128
129
130
131
132
133
# File 'app/model/Configuration.rb', line 127

def couleur(gdkColor)
    red = gdkColor.red
    green = gdkColor.green
    blue = gdkColor.blue

    return "#{red},#{green},#{blue}"
end

#creerConfiguration(pseudo) ⇒ Object

Crée une configuration par défaut pour l'utilisateur

Parameters:

  • pseudo

    L'identifiant de l'utilisateur

Returns:

  • self



159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
# File 'app/model/Configuration.rb', line 159

def creerConfiguration(pseudo)

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

	params = Hash.new()

	params[:caseBase] = Configuration::CL_CASE_BASE
	params[:caseFixe] = Configuration::CL_CASE_FIXE
	params[:caseSelectionne] = Configuration::CL_CASE_SELECTIONNE
	params[:couleurTexte] = Configuration::CL_TEXTE
	params[:couleurIndices] = Configuration::CL_INDICES
	params[:police] = Configuration::POLICE
	params[:taillePolice] = Configuration::TAILLE_POLICE
	params[:utilisateur] = req[0]

	insert(params)
	
	return self
end

#creerCouleur(composantes) ⇒ Object

Crée un gdk color à partir d'une chaîne

Parameters:

  • composantes

    Composantes (“r,g,b”)

Returns:

  • Gdk::Color



142
143
144
145
146
147
148
149
150
# File 'app/model/Configuration.rb', line 142

def creerCouleur(composantes)
	rgb = composantes.split(",")
	
	red = self.verifierCouleur(rgb[0].to_i)
	green = self.verifierCouleur(rgb[1].to_i)
	blue = self.verifierCouleur(rgb[2].to_i)

	return Gdk::Color.new(red, green, blue)
end

#enregistrer(pseudo, config) ⇒ Object

Enregistre la configuration dans la base de donnée.

Parameters:

  • config

    La Configuration



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'app/model/Configuration.rb', line 55

def enregistrer(pseudo, config)
	utilisateur_id =  @@db.execute "SELECT utilisateur_id FROM utilisateur WHERE pseudo=?", pseudo
	
	req = @@db.execute "SELECT * FROM configuration WHERE utilisateur=?", utilisateur_id
		
	params = Hash.new()

	## Définit tout les paramètres à enregistrer à partir de la configuration
	config.each do |key, param|
		params[key.to_sym] = param
	end

	## Définit l'identifiant de l'utilisateur
	params[:utilisateur]     = utilisateur_id[0][0]

	if(req.length > 0)
		@@db.execute "DELETE FROM configuration WHERE utilisateur = ?", utilisateur_id[0][0]
	end
	
	insert(params)
end

#getConfiguration(pseudo) ⇒ Object

Récupère la configuration de l'utilisateur

Parameters:

  • pseudo

    Pseudo utilisateur

Returns:

  • Configuration sous forme de tableau



84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'app/model/Configuration.rb', line 84

def getConfiguration(pseudo)
	utilisateur_id =  @@db.execute "SELECT utilisateur_id FROM utilisateur WHERE pseudo=?", pseudo

	req = @@db.execute2 "SELECT caseBase, caseFixe, caseSelectionne, couleurTexte, couleurIndices, taillePolice, police FROM configuration WHERE utilisateur=?", utilisateur_id

	## Pas de configuration trouvé donc on en
	## crée une
	if(req .length== 1)
		self.creerConfiguration(pseudo)
		req = @@db.execute2 "SELECT caseBase, caseFixe, caseSelectionne, couleurTexte, couleurIndices, taillePolice, police FROM configuration WHERE utilisateur=?", utilisateur_id
	end

	return self.to_h(req)[0]
end

#verifierCouleur(couleur) ⇒ Object

Limite le dépassement de valeur d'une couleur 16 bits

Parameters:

  • couleur

    La couleur à vérifier

Returns:

  • La couleur limitée à la borne si dépassement sinon la couleur elle même



106
107
108
109
110
111
112
113
114
115
116
117
# File 'app/model/Configuration.rb', line 106

def verifierCouleur(couleur)
    max = 65535
    min = 0

    if(couleur >  max)
        couleur = max
    elsif(couleur < 0)
        couleur = min
    end

    return couleur
end