Class: ObjectOffWorld
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- ObjectOffWorld
- Defined in:
- app/models/object_off_world.rb
Constant Summary collapse
- TYPES =
Types d’objets autorisés. Le format de la liste imbriquée est :
- Premier champ
-
Valeur à afficher
- Deuxième champ
-
Valeur à stocker en base
On peut étendre cette liste pour ajouter de nouveaux types.
[ [ "URL", "url" ], [ "Media URL", "mediaurl" ] ]
Instance Method Summary collapse
-
#after_destroy ⇒ Object
Enregistrement d’une nouvelle révision des panneaux du mobilier à chaque suppression d’objet.
-
#before_destroy ⇒ Object
Note les id des panneaux dont on doit créer une nouvelle révision, avant destruction des objets associés.
-
#before_validation ⇒ Object
Pour remplir le champ ‘object_key’, calcule le md5 de ‘name’ plus ‘content’ et réécrit le de façon à ce que ça ressemble à une clé Second Life, en rajoutant 4 tirets aux bons endroits.
Instance Method Details
#after_destroy ⇒ Object
Enregistrement d’une nouvelle révision des panneaux du mobilier à chaque suppression d’objet. On reprend les id de panneaux qu’on a notés avant la destruction de l’objet.
70 71 72 73 74 |
# File 'app/models/object_off_world.rb', line 70 def after_destroy @panels_needing_revisions.each do |panel_id| PanelRevision.add(Panel.find(panel_id)) # Nouvelle révision du panneau end end |
#before_destroy ⇒ Object
Note les id des panneaux dont on doit créer une nouvelle révision, avant destruction des objets associés
64 65 66 |
# File 'app/models/object_off_world.rb', line 64 def before_destroy @panels_needing_revisions = self.panels.map(&:id) end |
#before_validation ⇒ Object
Pour remplir le champ ‘object_key’, calcule le md5 de ‘name’ plus ‘content’ et réécrit le de façon à ce que ça ressemble à une clé Second Life, en rajoutant 4 tirets aux bons endroits.
46 47 48 49 50 51 52 53 54 |
# File 'app/models/object_off_world.rb', line 46 def before_validation # Si name ou content sont indéfini on ne peut pas calculer le MD5 return if name.nil? or content.nil? key = Digest::MD5.new.update(name + content).to_s self.object_key = key.sub( /^([[:xdigit:]]{8})([[:xdigit:]]{4})([[:xdigit:]]{4})([[:xdigit:]]{4})([[:xdigit:]]{12})$/, '\1-\2-\3-\4-\5') end |