Railties
- Corrigido bug ao usar script/about em produção.
ActionPack
- No Rails 2.2 o método ActionView::Base#render_file passa a ser privado.
- O método auto_link agora também suporta o caracter ‘ (aspas simples) no meio da url.
Traduzido do post “Living on the Edge (or what’s new in Edge Rails) #3“, porque não percebi esta alteração e não quero deixar de documentar.
O script/server agora verifica a disponibilidade do Thin e o usa. Muito conveniente se vocês estiver usando Thin no seu ambiente de produção (e quiser rodar o mesmo em desenvolvimento). Você deve acrescentar a linha config.gem ‘thin’ no seu arquivo environment.rb para que isto funcione.
Eu ainda não consegui testar direito esta nova funcionalidade, mas para a próxima versão do Rails teremos um novo generator para testes de performace.
Ao executar no terminal o seguinte comando:
Será criado um arquivo chamado test/performance/login_test.rb. Veja o código gerado:
end
Neste arquivo podemos colocar todos os testes que desejarmos e ao executá-lo teremos informações sobre cada um dos testes como tempo de processamento, uso de memória e outros. Para realizar o teste executamos no terminal:
Acredito que esta implementação ainda não está 100%, tanto que não consegui testar corretamente. Mas vou continuar de olho e aviso quando tivermos novidades sobre isto.
No Rails 2.1, gems passaram a poder ser usadas como plugins em nossos projetos. Para isto bastava criar uma pasta chamada rails dentro do projeto do gem e incluir um arquivo init.rb.
Isto acrescentou um leque de novidades como config.gem e rake:gems. Mas isto nos faz pensar, já que agora eu posso carregar gems dentro da minha aplicação Rails, seria apenas uma questão de tempo até que plugins deixassem de existir.
E parece que isto realmente pode acontecer. No edge rails, por exemplo, foi incluída uma alteração que permite inicializar plugins tanto pelo arquivo init.rb na raiz do plugin, como em um arquivo em um diretório rails/init.rb (da mesma forma como fazemos com os gems), sendo esta segunda opção a prioritária.
Assim, eu poderia por exemplo criar um gem (que funcionaria como um plugin) e instalar de duas maneiras:
./script/plugin install git://github.com/user/plugin.git
sudo gem install user-plugin --source=http://gems.github.com
Isto sem precisar manter dois arquivos init.rb (um na raiz e outro no diretório rails).
Hoje de manhã eu falei desta nova classe no Rails, e comentei que estavam querendo mudar o seu nome. Pois bem, isto aconteceu mesmo!
Agora a classe se chama StringInquirer. Além disso ela também foi incluída no namespace ActiveSupport.
Vejam o mesmo exemplo usado no artigo anterior, mas adaptado para funcionar com estas alterações:
ActiveSupport::StringInquirer.new("ativo")
end
end
c = Cliente.new
c.status
# => “ativo”
# Agora vem a grande diferença:
c.status.ativo?
# => true
c.status.inativo?
# => false