Respostas:
Eu acredito que você pode fazer isso:
gem "foo", path: "/path/to/foo"
spring stop
ver se é realmente esse o problema.
Além de especificar o caminho (como Jimmy mencionou), você também pode forçar o Bundler a usar uma gema local para o seu ambiente apenas usando a seguinte opção de configuração:
$ bundle config local.GEM_NAME /path/to/local/git/repository
Isso é extremamente útil se você estiver desenvolvendo duas gemas ou uma gema e um aplicativo de trilhos lado a lado.
Observe, porém, que isso só funciona quando você já está usando o git para sua dependência, por exemplo:
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
Como visto nos documentos .
BUNDLE_PATH
(construindo um pacote para distribuição). Ao fazer o que você sugeriu, ou a resposta de Jimmy, ele faz apenas um using
e, na verdade, não é instalado na minha BUNDLE_PATH
pasta. Não consegui descobrir isso, ajuda?
bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check true
ou o Bundler reclamará da ramificação. Porém, tenha cuidado com isso, pois as verificações devem impedir a entrada de confirmações incorretas Gemfile.lock
. Documentos aqui: bundler.io/v1.12/git.html
Você também pode fazer referência a uma jóia local com o git se estiver trabalhando nela.
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
Então, se mudar, eu corro
bundle exec gem uninstall foo
bundle update foo
Mas não tenho certeza se todos precisam executar essas duas etapas.
bundle uninstall <gem> && bundle install
, para cada mudança que você quer refletiu sobre a sua aplicação
Para usar o repositório de gemas local em um projeto Rails, siga as etapas abaixo:
Verifique se sua pasta gem é um repositório git (o comando é executado na pasta gem)
git rev-parse --is-inside-work-tree
Obtendo o caminho do repositório (o comando é executado na pasta gem)
git rev-parse --show-toplevel
Configurando uma Substituição Local para o Aplicativo Rails
bundle config local.GEM_NAME /path/to/local/git/repository
onde GEM_NAME
é o nome da sua gema e /path/to/local/git/repository
é a saída do comando no ponto2
No seu aplicativo, Gemfile
adicione a seguinte linha:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Correr bundle install
deve dar algo como isto:
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
onde GEM_NAME
é o nome da sua gema e /path/to/local/git/repository
do ponto2
Por fim, execute bundle list
, não gem list
e você deverá ver algo assim:
GEM_NAME (0.0.1 5a68b88)
onde GEM_NAME
está o nome da sua gema
Alguns casos importantes que estou observando usando:
Rails 4.0.2
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
RubyMine
não está mostrando gemas locais como uma biblioteca externa. Mais informações sobre o bug podem ser encontradas aqui e aquistop/start
o servidor railsSe eu estiver alterando a version
gema, stopping/starting
o servidor Rails me fornecerá um erro. Para corrigi-lo, estou especificando a versão gem no aplicativo de trilhos Gemfile
como este:
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Você pode fazer referência a gemas com source: source: 'https://source.com', git repository (:github => 'git/url')
e com local path :path => '.../path/gem_name'
.
Você pode aprender mais sobre Gemfiles e como usá-los neste artigo.