>> si l'utilisateur commence à rentrer "st" il n'aura pas les adresses avec
"saint".
Voici une méthode de mon cru pour reconstituer des noms de patelin sans
ambiguité.
Si ça peut te servir (et c'est certainement améliorable)
N.B. les "_" pourraientêtre rempacés par des espaces, c'est juste que je
stocke comme ça dans ma table "villes"
def self.canonicalize( text )
if text
canon =
text.gsub(/\s*[sS][tT][eE]\s*|\s*[sS][tT]\s*|\s*[sS][sS]\s*|\s*\/\s*|\s*\-\s*|\s*\\'\s*|\s+|./)
do |match|
case match
when /\s*[sS][tT][eE]\s*/ then '_sainte_'
when /\s*[sS][tT]\s*/ then '_saint_'
when /\s*[sS][sS]\s*/ then '_sous_'
when /\s*\/\s*/ then '_sur_'
when /\s*\-\s*/ then '_'
when /\s+/ then '_'
when /\s*\\'\s*/ then '_' # TODO : look closer
???
when /[àâä]/ then 'A'
when /[éêè]/ then 'E'
when /[ùûü]/ then 'U'
when /[ôö]/ then 'O'
when /[ç]/ then 'C'
when /[a-zA-Z]/ then match
end
end
canon.gsub!( /^_+/ , '' )
canon.gsub!( /_+$/ , '' )
canon.upcase!
return canon
else
return ''
end
end
def self.canon2text( text )
text.gsub( /_/ , ' ' )
end
--
IciMarché fédère l'e-commerce de proximité
http://icimarche.fr
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---