Um dos maiores problemas que encontro quando crio algo com o Ruby on Rails é a falta de uma internacionalização nos componentes existentes.
Então, vivo tendo de criar ou alterar algo para funcionar do jeito que preciso.
No meu site (carreiraTI) eu queria exibir a abreviação do mês em que a oferta de emprego foi publicada. Para isto bastaria usar o método strftime do próprio objeto Time. [source:ruby]t.strftime(“%b”)[/source] Isto funciona desde que seu site seja em inglês. O que não é o meu caso.
Pesquisei as bibliotecas do próprio Ruby para ver como este método funcionava, e encontrei a seguinte constante: [source:ruby]ABBR_MONTHNAMES = [nil] + %w(Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez)[/source] O problema aqui é não quero alterar as classes originais do Ruby e também não consigo alterar os valores da constante depois. Mesmo usando o método const_set do objeto Module.
A solução que encontrei foi criar o meu próprio método para exibir a abreviação da data: [source:ruby] module ActionView
module Helpers
module DateHelper
BR_ABBR_MONTHNAMES = [nil] + %w(Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez)
def abbr_month_name(month)
BR_ABBR_MONTHNAMES[month]
end
end
end
end [/source] Se alguém tiver uma solução melhor que esta, por favor se pronuncie.
Para ver como ficou clique aqui.