Carlos Brando

Nome do Jogo

Edge Rails: Suporte a expressões regulares no time_zone_select

Na classe TimeZone do ActiveSupport existe o método us_zones que convenientemente retorna uma lista dinâmica com todos os fusos-horários americanos.

O problema é que não moramos nos Estados Unidos e muito provavelmente vamos desenvolver software para pessoas em nosso país, mas não existe um método tão conveniente assim que liste os fusos-horários brasileiros ou de outros países.

Ouve uma longa discussão sobre criar ou não criar métodos como african_zones, american_zones, etc.. No fim prevaleceu o seguinte:

Foi implantado no objeto TimeZone o suporte para =~ afim de ajudar a montar uma lista de fusos-horários a partir de uma expressão regular. Além disso o método time_zone_select foi alterado para trabalhar em conjunto com esta novidade do TimeZone.

Agora podemos fazer isto:

<%= time_zone_select( "user", 'time_zone', /Brasilia/) %>

Para softwares brasileiros não faz tanta diferença…

Para aprender mais sobre TimeZones aconselho assistir ao episódio 160 do RailsCasts e dar uma olhada no nosso livro do Rails 2.1.

Comments