annotate_model, gem útil da semana

Trabalhar com Rails é certeza de encontrar ótimo material para trabalhar/documentar sua aplicação. Tenho uma lista de plugins/gems úteis para o desenvolvimento, o que daria um enorme post. Seguindo os conceitos do Getting Real, rapidinho vou postando (é muito material).

O primeiro da lista é o annotate_model, um gem que gera para cada model as informações da estrutura da tabela daquela entidade. Por exemplo:

# == Schema Information
# Schema version: 20080628203259
#
# Table name: comments
#
# id :integer(11) not null, primary key
# name :string(255)
# email :string(255)
# body :text
# code_id :integer(11)
# created_at :datetime
# updated_at :datetime
#

class Comment < ActiveRecord::Base [/ruby] Uma forma de se conhecer os atributos de uma entidade é, a partir do script/console, digitar: Model.new.attributes, entretanto com o gem, o conhecimento dessas informações fica bem mais fácil. Após instalada (sudo gem install annotate-models), bastar executar o comando annotate na pasta do seu aplicativo. Simples, rápido e quebra um galhão.

 

Leonardo

Registros de Leonardo Faria sobre desenvolvimento web

 
  • Olá Leonardo, primeiro parabéns pelo blog o conteúdo é muito bom!
    Estou começando no RoR, então minha pergunta pode parecer meio besta.
    Enfim, quando eu instalo essa gem ou outra qualquer, ela independe da versão do rails caso eu tenha instalado mais de uma versão na minha máquina ou para cada uma eu tenho que instalar novamente?
    Outra coisa quando instalo uma gem, para onde a mesma vai? No momento estou usando Win, mas em caso utilizo Linux.
    Bom é isso, obrigado!
    Abraço!

  • Raul, gem independe da versão de Rails que você está usando. É um recurso do Ruby, não do framework.

  • Raul, quanto a sua segunda pergunta: o gems são instalados no diretório do Ruby.
    no Mac OS, sistema operacional que uso, eles ficam em “/Library/Ruby/Gems/1.8”. No Linux e Windows, nos diretórios respectivos da instalação do Ruby.

  • Entendi Leonardo, vlw!

  • Já usei esse gem, muito bacana ele!