Jawaban:
Saya yakin Anda bisa melakukan ini:
gem "foo", path: "/path/to/foo"
spring stoplihat apakah memang itu masalahnya.
Selain menentukan jalur (seperti yang disebutkan Jimmy), Anda juga dapat memaksa Bundler untuk menggunakan permata lokal untuk lingkungan Anda hanya dengan menggunakan opsi konfigurasi berikut:
$ bundle config local.GEM_NAME /path/to/local/git/repository
Ini sangat membantu jika Anda mengembangkan dua permata atau permata dan aplikasi rel berdampingan.
Perhatikan bahwa ini hanya berfungsi ketika Anda sudah menggunakan git untuk ketergantungan Anda, misalnya:
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
Seperti yang terlihat pada dokumen .
BUNDLE_PATH(membangun paket untuk distribusi). Ketika melakukan apa yang Anda sarankan, atau jawaban Jimmy, itu hanya melakukan using, dan tidak benar-benar menginstal ke BUNDLE_PATHfolder saya . Saya tidak dapat menemukan ini, ada bantuan?
bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check trueatau Bundler akan mengeluh tentang cabang. Berhati-hatilah dengan ini, karena cek seharusnya menghentikan komitmen yang salah Gemfile.lock. Documents di sini: bundler.io/v1.12/git.html
Anda juga dapat mereferensikan permata lokal dengan git jika Anda sedang mengusahakannya.
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
Kemudian, jika itu berubah saya jalankan
bundle exec gem uninstall foo
bundle update foo
Tetapi saya tidak yakin semua orang perlu menjalankan dua langkah ini.
bundle uninstall <gem> && bundle install , untuk setiap perubahan yang Anda inginkan tercermin pada aplikasi Anda
Untuk menggunakan repositori permata lokal dalam proyek Rails, ikuti langkah-langkah di bawah ini:
Periksa apakah folder gem Anda adalah repositori git (perintah dijalankan di folder gem)
git rev-parse --is-inside-work-treeMendapatkan jalur repositori (perintah dijalankan di folder gem)
git rev-parse --show-toplevelMenyiapkan override lokal untuk aplikasi rel
bundle config local.GEM_NAME /path/to/local/git/repository
di mana GEM_NAMEnama permata Anda dan /path/to/local/git/repositorymerupakan output dari perintah in point2
Di aplikasi Anda Gemfiletambahkan baris berikut:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'Berlari bundle installharus memberikan sesuatu seperti ini:
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
di mana GEM_NAMEnama permata Anda dan /path/to/local/git/repositorydari titik2
Akhirnya, jalankan bundle list, tidak gem listdan Anda akan melihat sesuatu seperti ini:
GEM_NAME (0.0.1 5a68b88)
di mana GEM_NAMEnama permata Anda
Beberapa kasus penting yang saya amati menggunakan:
Rails 4.0.2
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
RubyMinetidak menampilkan permata lokal sebagai perpustakaan eksternal. Informasi lebih lanjut tentang bug dapat ditemukan di sini dan di sinistop/startserver railsJika saya mengubah versionpermata, stopping/startingserver Rails memberi saya kesalahan. Untuk memperbaikinya, saya menentukan versi permata di aplikasi rel Gemfileseperti ini:
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'Anda dapat mereferensikan permata dengan sumber: source: 'https://source.com', git repository (:github => 'git/url')dan dengan jalur lokal :path => '.../path/gem_name'.
Anda dapat mempelajari lebih lanjut tentang Gemfiles dan cara menggunakannya dalam artikel ini.