Suprimindo avisos no Ruby

17/01/07

Se você seguiu o post Localização de mensagens de erro e datas no Rails, deve ter percebido que toda vez que você inicia o WEBRick, mensagens avisando que você está sobrescrevendo constantes aparecem. Isso acontece por que o Ruby permite que você redefina constantes, diferente de outras linguagens, mas avisa antes.

=> Booting WEBrick...
./script/../config/../lib/overrides.rb:5: warning: already initialized constant MONTHNAMES
./script/../config/../lib/overrides.rb:6: warning: already initialized constant DAYNAMES
./script/../config/../lib/overrides.rb:7: warning: already initialized constant ABBR_MONTHNAMES
./script/../config/../lib/overrides.rb:8: warning: already initialized constant ABBR_DAYNAMES
=> Rails application started on http://0.0.0.0:3000

Você pode desabilitar essas mensagens somente no trecho onde você redefine suas contantes com a variável global $VERBOSE.

old_verbose = $VERBOSE
$VERBOSE = nil
 
Date::MONTHNAMES = [nil] + %w(Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro)
Date::DAYNAMES = %w(Domingo Segunda-Feira Terça-Feira Quarta-Feira Quinta-Feira Sexta-Feira Sábado)
Date::ABBR_MONTHNAMES = [nil] + %w(Jan Fev Mar Abr Mai Jun Jul Aug Set Out Nov Dez)
Date::ABBR_DAYNAMES = %w(Dom Seg Ter Qua Qui Sex Sáb)
 
$VERBOSE = old_verbose

Intype

13/01/07

Estou tendo que trabalhar no Windows devido a um freela. Aí, fui dar uma fuçada em um projeto que estou desenvolvendo em Rails, e pensei em testar os editores voltados para RoR. Se você usa Windows, faça um favor a você mesmo. Instale agora o editor Intype, lançado recentemente na versão Alpha 0.2.

Impressiona pela leveza, é baseado no Textmate. Se eu usasse Windows seria eleito meu editor padrão. Por que é tão difícil ter editores como este para o Linux? :(

Vale lembrar que por estar ainda no início do desenvolvimento, não tem funções básicas como "undo/redo", além de muitas outras. Por isso, não se estresse!

Update: Saiu uma nova versão do Intype com algumas funcionalidades implementadas. Undo/Redo é uma delas, então o editor já é usável! ;)

Definindo o fuso horário no Rails

26/12/06

Se você hospeda seu projeto em um servidor que não está alocado no Brasil, pode ter problemas com o fuso horário. Uma solução é fazer esta definição manualmente, tanto para o Rails, quanto para o MySQL.

No arquivo "environment.rb", adicione a seguinte linha:

ENV['TZ'] = 'America/Sao_Paulo'

No arquivo "application.rb", presente no diretório "app/controllers", adicione:

before_filter :set_timezone
 
def set_timezone
    ActiveRecord::Base.connection.execute "SET GLOBAL time_zone='-3:00'"
end

Uma outra solução possível, caso você seja o dono do servidor, é definir isso no arquivo "my.cfn". O grande problema é que isso não pode ser feito por usuários em planos compartilhados (isso é o que me foi dito pelo suporte da RailsPlayground). Veja mais informações sobre isto nos links abaixo.