
David acabou de publicar algumas alterações no trunk do Rails. Vamos a elas:
Rails:update
A partir de agora toda vez que rodarmos a tarefa 'rake rails:freeze:edge' também será executado o 'rails:update', atualizando os arquivos de configuração e JavaScript. Esta é uma alteração simples mas importante, porque na maioria das vezes que congelamos uma versão do Rails em nosso projeto, precisamos rodar um 'rake rails:update', mas muita gente se esquece disso. Agora não será mais necessário.
Titleize
Existe um bug no método String#titleize quando tentamos usá-lo em uma string que contenha o 's. Faça um teste no console de sua aplicação Rails executando o código abaixo:
>> "brando's blog".titleize
=> "Brando'S Blog"
Notou que o 's retornou maiúsculo? Este problema foi corrigido. Se você executar o mesmo código na versão Edge do Rails, o retorno será o texto correto: "Brando's Blog".
Increment e decrement
Os métodos increment, increment!, decrement e decrement! do ActiveRecord receberam mais um parâmetro como opcional. Hoje você pode usar estes métodos para aumentar ou diminuir o valor de uma coluna em 1 (um). Mas a partir da próxima versão do Rails você poderá especificar o valor a ser adicionado ou subtraído se desejar. Assim:
player1.increment!(:points, 5)
player2.decrement!(:points, 2)
No exemplo acima estou somando 5 à pontuação atual do jogador 1 e subtraindo 2 da pontuação atual do jogador 2. Como este parâmetro é opcional, os seus códigos antigos não serão afetados.
127.0.0.1 e DRY
Em um post antigo eu mencionei que o arquivo databases.rake havia sido alterado para suportar o IP 127.0.0.1 na tarefa create. Agora isto foi estendido para a tarefa drop e o arquivo recebeu um refactory para tornar o código menos repetitivo.