sexta-feira, 10 de julho de 2009

Trabalhando com Gems no Ruby/Rails

Esse post é uma tradução/adaptação do original "Adding and Installing Gems from the Ruby Gems Repository" disponível no Ruby.About.com

Você pode adicionar e instalar Ruby Gems através de procura no repositório do Ruby Gems. Simplesmente rode o comando "gem search". Por padrão, Ruby Gems faz a procura apenas no seu repositório local -- as gems que você tem instalada. Enquanto isso pode ser muito útil para procurar gems já instaladas, isso geralmente não é a intenção de quando se roda o comando search. Para procurar em repositórios remotos, adicione --remote ou -r ao comando.

O forma básica de uma procura com o Ruby Gems é uma simples pesquisa de um termo sem outro argumento que não seja o --remote. O termo pesquisado será comparado com todas as Gems no repositório e seus resultados incluirão respostas aproximadas. Por exemplo, procurando por cloth isso inclui as gems "RedCloth" e "BlueCloth".

Abaixo temos um exemplo de procura por cloth. Uma quantidade de gems são listadas, bem como as sua versão atual. Essa saída pode ser alterada conforme as indicações abaixo.



$ gem search --remote cloth

*** REMOTE GEMS ***

BlueCloth (1.0.0)
ClothRed (0.4.1)
mediacloth (0.0.3)
RedCloth (3.0.4)


O número de argumentos pode ser fornecido para definir qual os resultados devem ser impressos no terminal. A lista completa desses argumentos podem ser acessada rodando o comando "gem help search". Outros tópicos de ajuda podem ser visualizados quando é rodado o comando "gem help".

  • -d, --details - Mostra as descrições das RubyGem bem como os nomes das gems e suas versões. Isso particularmente é útil quando você está procurando por gems relacionadas a um dado tópico. Por exemplo, quando estamos procurando por gems que trabalham com arquivos PDF, se você não tem uma gem específica em mente, procure por gems com PDF em seu nome e lendo as descrições você pode ter uma ideia do que está disponível.

  • --local, --remote, --both - Define onde o RubyGems deverá procurar as gems.

  • -a, --all - Mostra todas as versões da gem no repositório. Quando um desenvolvedor atualiza a versão de uma gem, a gem antiga não é deletada, desde que isso possa ser necessário (às vezes) para instalar uma versão anterior da gem. Usando esse parâmetro o RubyGems mostrará todas as versões da gem que estão no repositório.


Instalando Gems

Para instalar gems, você deve ter acesso de escrita. No Linux ou OS X, isso significa torna-se root/administrador no terminal ou usar o comando "sudo" para ordar a RubyGems como root/administrador. Os exemplos abaixo mostrarão como fazer isso com o "sudo", você precisará se reportar à documentação do seu sistema operacional para instruções de como rodar coisas como root/administrador. No Windows, você não precisará rodar o comando gem como um usuário administrador se, no seu HD, você tiver acesso de escrita na pasta da gem.

Instale gems com o comando "gem install". Com o comando "search", adicionar o parâmetro"--remote" é necessário. Você pode também fornecer o nome completo, não apenas o termo pesquisado como você fez com o comando de busca. Lembre-se que os nomes são também "case sensitive": "redcloth" não é o mesmo que "RedCloth".




$ sudo gem install RedCloth
[sudo] password for username:
Updating metadata for 52 gems from http://gems.rubyforge.org/
....................................................
complete
Successfully installed RedCloth-3.0.4
1 gem installed


Você pode também instalar uma versão específica de uma gem. Por exemplo, pode ser que você queira instalar uma versão anterior do RedCloth porque uma nova versão tem um bug ou quebra um recurso que você precisa usar. Nesse caso, você pode usar o parâmetro "--version", primeiro use o comando com o parâmetro "--all" para verificar quais versões estão disponíveis.





$ gem search --remote --all redcloth

*** REMOTE GEMS ***

Bulk updating Gem source index for: http://gems.rubyforge.org/
Bulk updating Gem source index for: http://gems.rubyforge.org/
RedCloth (3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 2.0.11, 2.0.10,
2.0.9, 2.0.8, 2.0.7, 2.0.6, 2.0.5, 2.0.4, 2.0.3, 2.0.2)



Neste exemplo, uma das últimas versões instaladas da série 2.x, 2.0.11. O parâmetro "--version" pega a "string versão" como um argumento. Uma string de versão tem um operador seguido por um número de versão. O operador pode ser apenas = (o sinal de igual) que significa que você deseja instalar a versão exata gema, mas também pode ser algo do tipo >= (maior ou igual a) para significar que você deseja instalar essa versão ou de qualquer versão mais recente.



$ sudo gem install --version '= 2.0.11' RedCloth
Bulk updating Gem source index for: http://gems.rubyforge.org/
Successfully installed RedCloth-2.0.11
1 gem installed

Nenhum comentário: