Archive for Abril 2009
Ruby on Rails e o novo método touch
Recentemente foi adicionado ao Rails o método touch, disponível tanto no Rails 2.3 quanto no Edge (em direção ao 3.0). O touch atualiza o campo updated_at/updated_on do model e então salva o registro. Ele também permite a passagem de um parâmetro, que identifica outro campo data/hora para ser atualizado no lugar de updated_at/updated_on. Touch quer dizer exatamente isto: tocar o registro, ou atualizar um determinado campo com a data/hora atual.
Utilizando o método:
class Project < ActiveRecord::Base validates_presence_of :name end # No console project = Project.create(:name => 'Meu primeiro projeto') #<Project id: 1, name: "Meu primeiro projeto", # created_at: "2009-04-21 05:35:22", updated_at: "2009-04-21 05:35:22"> # Atualizando o campo updated_at no momento que for necessário project.touch # true project #<Project id: 1, name: "Meu primeiro projeto", # created_at: "2009-04-21 05:35:22", updated_at: "2009-04-21 05:40:49">
Preste atenção ao campo updated_at e verifique que ele foi atualizado com sucesso. Podemos também passar o campo que desejamos “tocar”:
project.touch(:created_at) # true project #<Project id: 1, name: "Meu primeiro projeto", # created_at: "2009-04-21 05:42:31", updated_at: "2009-04-21 05:42:31">
Veja que agora foi o campo created_at que foi atualizado (nesse caso o updated_at também foi atualizado por ser uma funcionalidade interna do Rails).
Agora vem o mais interessante: essa funcionalidade foi também adicionada a associação belongs_to, onde é possível passar a opção :touch => true para atualizar o campo updated_at/updated_on do model master automaticamente, ou então passar um símbolo, como :touch => :campo_a_atualizar, para “tocar” este campo específico ao invés do padrão.
Vejamos como fica:
class Project < ActiveRecord::Base has_many :tasks validates_presence_of :name end class Task < ActiveRecord::Base belongs_to :project, :touch => true end # No console project = Project.first #<Project id: 1, name: "Meu primeiro projeto", # created_at: "2009-04-21 05:42:31", updated_at: "2009-04-21 05:42:31"> # Checagem de sanidade project.updated_at # Tue, 21 Apr 2009 05:42:31 UTC +00:00 # Criando uma tarefa project.tasks.create(:name => 'Primeira tarefa') #<Task id: 1, name: "Primeira tarefa", project_id: 1, # created_at: "2009-04-21 05:49:41", updated_at: "2009-04-21 05:49:41"> project.reload.updated_at # Tue, 21 Apr 2009 05:49:41 UTC +00:00
Novamente atenção ao campo updated_at do model Project: atualizado =).
É isso, uma mudança simples que facilita bastante o dia-a-dia.
Lembrando que para testar os método touch é necessário ter a última versão do rails 2.3 disponível no git.
GitHub Issue Tracker
O GitHub lançou ontem o seu próprio issue tracker, que permite gerenciar todos os issues do projeto em uma interface simples, rica, dinâmica, e o principal: totalmente integrada ao github.
Através dela é possível gerenciar as tarefas, criar labels, priorizar o que deve ser feito através de drag/drop, pesquisar e ordenar conforme for necessário, e uma das características que achei mais interessante: é possível votar no que gostaríamos que fosse desenvolvido primeiro.
Além de tudo isso, creio que o que mais chamará a atenção de todos é a integração facilitada com o github: é possível fechar um issue através da mensagem de commit do git. Quando é feito o push para o github ele processa a mensagem e automaticamente fecha a tarefa relacionada. Para isso basta adicionar ao final da mensagem de commit: Closes #1, ou Closes GH-1, ou ainda em minúsculo Closes gh-1. Esse tipo de integração facilita bastante.
Bom.. Será que o Lighthouse está com seus dias contados?
Confiram o post original e assistam ao pequeno screencast mostrando as novas funcionalidades.
Be on The Net
Na semana passada o Vinícius Teles da Improve It fez um post pedindo uma ajudinha para divulgar o seu projeto do Be on the Net.
Para quem não conhece, o Be on the Net é um site criado especialmente para fotógrafos que permite a utilização de fotos e vídeos de qualquer tamanho e qualidade, e que o ajuda a aparecer mais nas buscas do google, além de ter uma facilidade enorme de navegação, dentre outras funcionalidades e pontos positivos. Para conhecer mais sobre o projeto (e se encantar com o trabalho da Improve It, assim como eu) entre no site do Be on the Net.
Bom, como não tive muito tempo para criar um post fazendo a minha parte quanto à divulgação do Be on the Net no primeiro momento, estou aproveitando agora o lançamento oficial do selo promocional para divulgar o projeto:
Abraço a todos.
Rails Guides: agora em português
Ontem a Comunidade Rails brasileira recebeu uma maravilhosa notícia: o lançamento oficial dos Rails Guides na versão traduzida.
Não vou me extender falando sobre o projeto, pois isso já foi feito pelo Cássio Marques, o Daniel Lopes, o Fábio Akita e também no site do Ruby Inside Brasil (e provavelmente em mais alguns blogs que não tive tempo de olhar ainda…).
Parabéns a toda a equipe responsável pelo projeto.
Confira os guias aqui.
O (comovente) guia de Ruby do Why
Acabo de ler uma ótima notícia vinda do blog do Carlos Brando: acabam de liberar a versão 1.0 da tradução do guia de Ruby do Why.
O guia é realmente ótimo, bem fácil de seguir e entender os exemplos. Recomendo a todos.
Parabéns a toda a equipe de tradução/revisão pelo ótimo trabalho.
Para acessar o guia clique aqui.
Ganhe o novo livro de Rails do Urubatan
Como muitos já devem saber o Rodrigo Urubatan lançou o livro Desenvolvimento Fácil e Rápido de Aplicações Web com Ruby on Rails, e agora em conjunto com o Ruby Inside Brasil irão sortear duas cópias do livro para a comunidade.
Para participar do sorteio é muito fácil: basta postar um comentário no artigo do Ruby Inside Brasil. Outro modo de aumentar as chances de ganhar é publicar uma mensagem no twitter linkando o artigo original do sorteio, com a hashtag #ri_urubatan.
O resultado da promoção sai pelo próprio site do Ruby Inside Brasil, no dia 9, quinta-feira.
Confira o artigo original aqui e boa sorte!



