Carlos Brando

Nome do Jogo

Edge Rails: Titleize, increment e DRY

92697433_aa5c016a77.jpg

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.

Referências:

Comments