JeuWeb - Crée ton jeu par navigateur
email en majuscule - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : email en majuscule (/showthread.php?tid=6338)

Pages : 1 2


RE: email en majuscule - Murthy - 22-08-2012

A moins qu'on me prouve le contraire mais les emails ne sont pas sensibles à la casse. (testé avec plusieurs adresses email de différents fournisseurs)


RE: email en majuscule - php_addict - 22-08-2012

oui, http://tools.ietf.org/html/rfc3696#page-2 :

Citation :1.2.2. Syntactic notation

This standard uses the Augmented Backus-Naur Form (ABNF) notation
specified in [RFC2234] for the formal definitions of the syntax of
messages. Characters will be specified either by a decimal value
(e.g., the value %d65 for uppercase A and %d97 for lowercase A) or by
a case-insensitive literal value enclosed in quotation marks (e.g.,
"A" for either uppercase or lowercase A). See [RFC2234] for the full
description of the notation.

mais expliquons ça aux internautes standards Wink


RE: email en majuscule - niahoo - 23-08-2012

Aux développeurs plutôt. C'est pas bien dur de convertir en lowercase.


RE: email en majuscule - t.bodeux - 23-08-2012


# Dans ma classe Account.
before_save :convert_email_to_downcase
def :convert_email_to_downcase
self.email = email.downcase
end
=> La méthode claire lisible et compréhensible à tout le monde, sinon on peut se faire plaisir avec un simple


def email=(input_email)
# self.email = input_email.downcase <= WRONG
@email = input_email.downcase
end
=> On la transforme des qu'elle est changée.
DONE !


RE: email en majuscule - Sephi-Chan - 23-08-2012

Tu l'as testé ? Car à première vue tu vas te prendre un stack level to deep.
Il convient plutôt de faire ça :


class Account < ActiveRecord::Base
def email=(email)
self[:email] = email.downcase # ou write_attribute(:email, email.downcase)
end
end



RE: email en majuscule - t.bodeux - 23-08-2012

Autant pour moi, erreur de distraction, on utilise pas le "self.attr" pour ce genre de méthode...

def email=(input_email)
@email = input_email.downcase
end



RE: email en majuscule - Sephi-Chan - 23-08-2012

Ça marche peut-être mais ce n'est pas documenté. Nul ne te garantit que @email contient ce que tu penses : c'est un détail d'implémentation.

La solution recommandée est self[:email] = email.downcase ou write_attribute(:email, email.downcase). La différence c'est qu'ils utilisent @attributes[:email].


RE: email en majuscule - t.bodeux - 23-08-2012

Je suis totalement d'accord avec toi Sephi, j'utilise cette méthode car je la trouve très lisible Smile
Je ne la connaissais pas avant peu, découverte dans un sreencast de Ryan Bates ...
Maintenant, Ruby est un langage qui laisse des libertés quand à la manière de procéder, après, cela reste une question d'affinité avec la syntaxe et du degré de lisibilité que l'on veut garder Smile

# Example:
if condition
method1
else
method2
end
# est pareil que:
condition ? method1 : method2



RE: email en majuscule - Sephi-Chan - 23-08-2012

Certes, mais je ne vois pas le rapport. Je dis seulement que tu ne devrais pas utiliser cette notation car elle n'est pas documentée et peut cesser de fonctionner à n'importe quel patch.

À l'inverse, les solutions que j'ai exposé sont documentées et testées pour adresser ce problème (de méthode récursive sans condition d'arrêt) : il faut les utiliser.

Ce n'est de toute façon pas l'endroit pour en discuter (tu peux créer une discussion si tu veux) : je te mets simplement en garde (sans offense) contre tes propres pratiques (ainsi que ceux qui seraient tentés de les imiter).