/* CODIFICANDO */

Relatos de um programador em contínua aprendizagem.

Como criar gems que instalam executáveis na sua máquina

fazer um comentário »

Precisei criar uma gem que gerasse um executável no ambiente, sendo possível assim executar a biblioteca como um utilitário de linha de comando. Encontrei muito pouca documentação sobre como fazer isso, então vou deixar aqui caso seja útil para mais alguém.

O segredo é manter uma pasta bin dentro da estrutura de diretórios da sua gem e colocar ali dentro os arquivos que você deseja que se tornem executáveis após a instalação da gem. Você deve salvar estes arquivos sem a extensão .rb, caso contrário terá que escrever .rb na linha de comando também para inicializar o programa. Em sistemas POSIX você pode criar arquivos executáveis e usar o “shebang” para instruir o shell sobre qual programa deve ser utilizado para executar o conteúdo do arquivo. Assim, basta adicionar a seguinte linha ao início do arquivo:

#! /usr/bin/env ruby

Após criar seu arquivo dentro de bin, basta adicionar o mesmo como um executável à sua gemspec. Estou usando o Jeweler para criar minhas gems, então tudo o que preciso fazer é gerar minha gemspec usando a seguinte raketask que o arquivo será criado corretamente:

rake gemspec

Isso vai criar um arquivo gemspec contendo a seguinte linha:

Gem::Specification.new do |s|
  ...
  s.executables = ["bla", "ble", "bli"]
  ...
end

Onde bla, ble, bli são arquivos dentro de bin que devem se transformar em executáveis após a instalação da gem. Quando sua gem for instalada, estes arquivos será copiados para dentro de /usr/bin e receberão permissão para serem executados.

Escrito por cassiomarques

Novembro 11, 2009 às 12:30 am

Publicado em Desenvolvimento, ruby

Etiquetado com , ,

Deixe uma resposta