>> 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]
-~----------~----~----~----~------~----~------~--~---

Répondre à