Vinculando a uma tag gem de um repositório git no Gemfile

Às vezes é útil conectar-se diretamente ao repositório git de uma gema, por exemplo, para código de borda ou para uma gema que não é compartilhada por meio do RubyGems.

Temos um desses casos nas Bibliotecas da NYU para nossa gem de mecanismo de ativos compartilhados, que tem algumas personalizações do Twitter Bootstrap for Rails 3. Nos Gemfiles dos aplicativos que usam esses ativos compartilhados, temos a linha:

gem 'nyulibraries_assets', :git => 'git://github.com/NYULibraries/nyulibraries_assets.git'

Como esta gema não é empacotada e versionada em RubyGems quando fazemos atualizações não compatíveis com versões anteriores e nem sempre podemos atualizar imediatamente todos os nossos aplicativos, podemos fazer uma das seguintes coisas (ou ambos em sucessão):

  • No estágio de desenvolvimento, podemos vincular ao branch especificamente:

    gem 'nyulibraries_assets', :git => 'git://github.com/NYULibraries/nyulibraries_assets.git', :branch => 'development'
  • Quando estivermos prontos para voltar ao master, vamos marcar o último commit de trabalho para aplicativos não atualizados e, em seguida, mesclar de volta ao master:

    git tag -a v1.0 -m 'Stable v1.0 before template changes'
    git push
    --tags

Em seguida, vincule a esta versão em seus aplicativos mais antigos até ter tempo para atualizar:

gem 'nyulibraries_assets', :git => 'git://github.com/NYULibraries/nyulibraries_assets.git', :tag => 'v1.0'

Recursos