Eu sempre pensei no passado que seria bom empacotar algo como uma gema, mas não pensei em expor o código interno por meio de gemas de rubi. No entanto, é super simples configurar um servidor ruby gems interno e usá-lo com seu projeto Rails (ou qualquer bundler).
Primeiro, instale a gem Geminabox em seu computador local e no servidor que você deseja que seja o servidor gem privado. Observe que as instruções de instalação do servidor são curtas, mas exigem a criação de um aplicativo Rack-Sinatra simples. Em seu computador local, basta instalar a gem.
Inicie o servidor via rack:
$> rackup
Em seu computador local, configure o gem para apontar para seu servidor privado, um endereço IP se estiver bem:
$> gem inabox -c
$> http://127.0.0.1:9292
Neste ponto, você deve conseguir navegar pela lista de joias em seu servidor privado (certifique-se de que está executando uma versão recente do Sinatra. Meu servidor estava executando 1.0 e eu tive 500 erros em meu aplicativo Sinatra. Atualizando para 1.3 corrigiu o problema). Você também pode empurrar uma joia neste momento.
$> cd my_gem
$> bundle exec rake build
$> gem inabox pkg/my_gem-0.1.gem
Em seu Gemfile que você deseja incluir a gema, basta adicionar o servidor gem privado como uma fonte:
$> cat Gemfile
$> source "http://127.0.0.1:9292"
$> gem "my_gem"
Corra bundle
e está tudo pronto!
NOTA Se desejar, você pode facilmente configurar isto via passgener como qualquer outro aplicativo baseado em Rack normal e então remover a configuração de porta de seu Gemfile e reconfigurar sua gem local para usar a URL do servidor gem privado atualizado. É sobre isso!