Pertanyaan Rubygems: Bagaimana cara menambahkan dependensi platform-spesifik?


Saya sudah permata ruby yang memiliki dependensi berbeda untuk setiap OS. Saya harus secara eksplisit menulis semuanya:

Di Mac OS X:

gem install livereload

di Linux:

gem install rb-inotify livereload

di Windows:

gem install eventmachine-win32 win32-changenotify win32-event livereload

Dapatkah saya men-tweak permata sedikit sehingga instruksi instalasi akan terlihat seperti biasa gem install livereload untuk setiap OS?


32
2018-01-04 17:36


asal


Jawaban:


Cara yang tepat untuk melakukan ini diuraikan sini. Karena gemspec dievaluasi pada waktu paket, Anda harus melakukannya dalam ekstensi asli. Jangan khawatir, itu tidak terlalu menakutkan karena kode Ruby-nya masih (tidak mengkompilasi C atau apa pun).

Kami saat ini menggunakan pendekatan ini untuk beberapa alat klien untuk OpenShift (sumber). Kemudian di gemspec / Rakefile Anda, alih-alih menambahkan dependensi, Anda akan menambahkan ekstensi. Perhatikan bahwa file perlu diberi nama ext/mkrf_conf.rb agar ini berfungsi.


20
2018-04-20 15:32