Class: SecondLifeSimPosNormalizer
- Inherits:
-
Object
- Object
- SecondLifeSimPosNormalizer
- Defined in:
- lib/second_life_validators.rb
Overview
Correction de la sim et de la position avant validation et insertion en base de données Ce validateur doit être défini comme callback before_validation
dans les modèles qui contiennent des attributs Sim et Position.
La classe prend 2 paramètres à la création : sim
et position
Syntaxe :
before_validation SecondLifeSimPosNormalizer.new(:sim, :position)
Instance Method Summary collapse
-
#before_validation(model) ⇒ Object
Le callback lui-même.
-
#initialize(sim_attr, pos_attr) ⇒ SecondLifeSimPosNormalizer
constructor
Création du callback personnalisé Second Life.
Constructor Details
#initialize(sim_attr, pos_attr) ⇒ SecondLifeSimPosNormalizer
Création du callback personnalisé Second Life.
Paramètres :
-
sim_attr
: Nom de l’attribut sim du modèle -
pos_attr
: Nom de l’attribut pos du modèle
71 72 73 |
# File 'lib/second_life_validators.rb', line 71 def initialize(sim_attr, pos_attr) @sim_attr, @pos_attr = sim_attr, pos_attr end |
Instance Method Details
#before_validation(model) ⇒ Object
Le callback lui-même. Il n’est pas appelé par le programme, mais par Rail lui-même.
Paramètres :
-
model
: Nom du modèle contenant les attributs Second Life à normaliser.
80 81 82 83 84 85 86 87 88 |
# File 'lib/second_life_validators.rb', line 80 def before_validation(model) # Suppression du groupe de nombre entre parenthèse après le nom de Sim. Les objets SL # retournent actuellement la sim sous la forme "Myeon (263936, 235008)" model[@sim_attr].gsub!(/\s+\(.*\)$/, "") if !model[@sim_attr].nil? # Suppression des parenthèses, espaces et nombres après la virgule. # Actuellement les objets SL retourne leur position sous la forme "(37.893913, 223.712784, 56.184517)" # On transforme cela en "37,223,56" model[@pos_attr].gsub!(/(\(|\)|\.[[:digit:]]+|\s+)/, "") if !model[@pos_attr].nil? end |