Wagner Andrade

A Vida, Programação, o Universo e Tudo Mais

Remover acentos em Ruby

Quantas vezes você precisou remover acentos de malditas palavras em qualquer linguagem de programação? É recursivo, sempre aparece.

Em Ruby eu nunca tinha encontrado uma solução legal, pequena e que cumprisse a missão. Esses dias precisei de novo, trocar acentos por “letras normais”. Foi aí que encontrei o Extend String, um pequeno script que faz o trabalho sujo.

A utilização é bem simples, através de meta-programação esse script injeta dois métodos de instancia na classe String. Assim:

require 'extend_string'

str = "Isso é bem fácil!"

str.removeaccents
str.urlize
str.gsub(' ', '-').urlize

Resulta nisso:

Isso e bem facil!
issoebemfacil
isso-e-bem-facil

Mel na teta, né!?

Update

Tino Gomes comentou sobre a gem brstring, do Brazilian Rails. É uma implementação mais completa. Pra quem quer um pouquinho mais de sofisticação é uma boa pedida. Obrigado Tino!