Quais são os passos necessários para criar e publicar um rubygem de seu próprio país?
Pergunta
Assim você criou uma biblioteca de rubi.
Como criar e publicar seu rubygem? E o que armadilhas e dicas comuns estão lá pertencentes a criação e publicação de rubygems?
Solução
Existem várias ferramentas para ajudar a construir as suas próprias jóias. enxada e newgem são o mais conhecido, e tem um monte de boas qualidades. No entanto, enxada acrescenta-se como uma dependência para a sua jóia, e newgem tornou-se uma ferramenta muito grande, que eu acho difícil de manejar quando eu quero criar e implantar uma jóia rapidamente.
A minha ferramenta favorita é Mr Bones por Tim Pease. É leve, featureful, e não adicionar dependências ao seu projeto. Para criar um projeto com ele, você simplesmente executar bones <my_project_name>
na linha de comando, e um esqueleto é construído para você, completo com um diretório lib
para o seu código, um diretório bin
para suas ferramentas, e um diretório de teste. A configuração está em um Rakefile
, e é clara e concisa. Aqui está a configuração para um projeto que eu fiz há alguns meses:
load 'tasks/setup.rb'
ensure_in_path 'lib'
require 'friend-feed'
task :default => 'test'
PROJ.name = 'friend-feed'
PROJ.authors = 'Clinton R. Nixon'
PROJ.email = 'crnixon@gmail.com'
PROJ.url = 'friend-feed.rubyforge.org'
PROJ.rubyforge_name = 'friend-feed'
PROJ.dependencies = ['json']
PROJ.version = FriendFeed::VERSION
PROJ.exclude = %w(.git pkg)
Mr Bones tem o conjunto padrão de características que você esperaria: você pode usá-lo para empacotar gemas e tarfiles de sua biblioteca, bem como liberá-lo em RubyForge e implantar a documentação lá. Sua característica do assassino, porém, é a sua capacidade para congelar seu esqueleto em seu diretório home. Quando você executa bones --freeze
, um diretório chamado .mrbones
é copiado para seu diretório home. Você pode editar os arquivos de lá para fazer um esqueleto para as suas jóias que funciona a maneira de trabalhar, e daí em diante, quando você executar ossos para criar uma nova jóia, ele irá usar o seu esqueleto gem pessoal. Você pode descongelar Mr Bones executando bones --unfreeze
e seu esqueleto será feito o backup, e o esqueleto padrão será usado novamente.
(Nota Editorial:. Eu escrevi um post sobre este há vários meses, e a maior parte deste é copiado a partir dele)
Outras dicas
Eu recomendo github como um lugar para começar, especialmente para projetos de código aberto.
E tente uma pesquisa no Google, bem ... Muito em primeiro lugar procurar resultado para mim ...
Você também pode querer fazer o checkout da jóia Hoe, que pode automatizar o processo de criação jóia.
Veja: http://nubyonrails.com/articles/tutorial-publishing -rubygems-com-hoe
Na verdade, eu escrevi um tutorial sobre exatamente isso, e eu escrevi-o como eu estava aprendendo. É mais focado no jogo que eu tinha escrito que uma biblioteca. Além disso, ele assume que você quer construir a gema através de rake em vez de em seu próprio país:
enxada não acrescenta-se como uma dependência como off rubygems 1.2. Suas tarefas rake estão focados na implantação do rubygem para rubyforge. Se você quiser apenas para servir a gema de github Eu acho que há algumas novas ferramentas tarefa rake HOE-esque para ajudar.